基于改进ViBe算法的运动目标检测方法研究

2020-05-14 03:30王艳梅张艳珠刘义杰
沈阳理工大学学报 2020年6期
关键词:阴影背景算法

王艳梅,张艳珠,刘义杰

(沈阳理工大学 a.信息科学与工程学院;b.自动化与电气工程学院,沈阳 110159)

目前典型的目标检测传统算法有帧差法[1-2]、光流法[3]和背景减除法[4]等。其中帧差法检测运动目标的计算量较少,但这种算法针对缓慢运动物体检测效果较差。光流法对物体的运动速度及光照变化比较敏感,且计算量较大,不能用于实时的目标检测。背景减除法是最常用的目标检测方法之一,这种算法的原理是将前景与背景分离,高斯混合模型和ViBe(Visual Background Extractor)算法[5-6]就是最为常用的背景减除算法,其中高斯模型对各种复杂的场景都有较好的检测效果[7-8],但在实际应用当中,针对场景的目标检测需要建立许多高斯混合模型,参数量大,实时性较差;而ViBe算法则能够快速地分离出图像的前景与背景,这种算法能以固定的更新率更新背景模型,在环境没有波动时可产生很好的效果,但一旦环境发生变化,就会产生鬼影[9-10]。由于传统算法的限制,一些智能算法逐渐出现,如Faster-rcnn算法、Yolo算法等;其中Faster-rcnn算法能够准确地进行目标定位,但实时性较差[11-12];而Yolo算法可以在实时性上领先Faster-rcnn算法[13],准确率不如Faster-rcnn算法,且两种算法都需要大量的数据标注,实际应用中会浪费大量时间与人力、物力成本来进行数据处理工作。可见无论传统算法还是智能算法都有各种各样的问题,本文针对这些问题提出了一种改进的ViBe算法,提高了原有ViBe算法的准确性,且不需要智能目标检测中的数据标注过程,可节省大量人力成本,并实现了对运动物体高准确率与时效性的目标检测,有着较强的鲁棒性。

1 ViBe算法原理

ViBe算法出现时间相对较近,是一种像素级视频背景建模算法,其原理是将一个像素点过去的值或其领域的值保存为一个样本集,利用当前像素点和该样本集的值比较,如果属于背景点,则随机替换背景模型中的一个值;其主要过程可分为三个部分,分别是模型的初始化、前景分割与背景模型的更新。

1.1 模型初始化

ViBe算法只需要单帧序列就能初始化模型,而大多数算法背景建模需要一定长度视频帧序列去初始化建模;对于复杂系统,反复初始化的时间很长,不利于运动目标检测的实时性和连贯性,这也是ViBe算法的优点[14]。

假设vi为第i帧图像序列的背景模型样本像素值,选取N个样本,构成背景模型几何M(x)。

M(x)={v1,v2,…,vN-1,vN}

式中vi表示i领域随机样本值。

1.2 前景分割

当获取背景中所有样本集后,建立模型,判断当前点是否属于前景点。

式中:#{·}表示满足阈值条件的个数;d(·)表示v(x)与vi(x)间欧氏距离;SR(v(x))是以v(x)为中心、R为半径的球体区域;η表示阈值,若交集数小于阈值,认为是前景点,否则为背景点。

1.3 背景模型更新

背景模型更新是该算法的关键部分,为适应环境的各种变化(如光照强度突变、场景物体变更等扰动),背景模型也应当更新以适应这种变化。现有的更新策略一般分为保守更新策略和Blind更新策略。所谓保守更新策略,即背景模型仅计算那些被判断为背景点的像素,而前景点不予采用。ViBe算法采用的是保守更新策略,其优点是能够完整准确快速的检测运动目标物体,但易存在鬼影区域。为此,ViBe算法结合空间信息并添加了对前景点计数的策略来消除鬼影区域。传统ViBe算法基本能适应各种背景情况,检测结果相对于光流法等其他传统方法用时更短,能够获得更完整的检测信息。缺点是如果第一帧就包含运动目标,则检测结果的鬼影较难消除。

2 改进的ViBe算法

传统的ViBe算法由于很难完全将阴影去除,影响对检测结果形状识别,本文提出一种针对室内视频中运动目标运动速度过快造成的阴影不易识别的ViBe算法的改进方法,提取不包含阴影的检测结果,从而提升检测的准确性,用于后续目标识别、行为理解。该方法利用ViBe算法和基于灰度比的阴影检测和抑制算法相结合,改进提取前景运动目标的算法,获得一个相对更为准确的提取结果,算法如下。

(1)利用ViBe算法来提取运动目标二值化图像D(x,y),并对结果进行形态学处理,参数选取;

(2)运用边缘算子将处理的结果提取边缘,这样得到的边缘图像只包括检测到的运动目标,消除背景物体边缘对检测结果影响,并将边缘图像与提取结果相或,得到待处理区域F(x,y);

(3)在待处理区域,即F(x,y)=1的部分,进行阴影提取,将ViBe算法提取得到的二值化图像与背景图像比值求出,得到r。当Tmin

(4)将结果进行形态学处理,并转换为灰度图像,得到提取结果。

本文采用的算法参数选取如表1所示。

表1 改进ViBe算法的参数选择

3 实验结果与分析

为验证本文提出的改进ViBe算法的有效性,研究了多个视频系统,对比本文提出的改进算法和传统ViBe算法在不同背景下应用的优劣性。实验操作环境为Window 10系统,运行平台为Matlab R2019b,针对不同背景下对比前运行结果,并对结果进行分析。不同背景分别为纯净背景、复杂背景、室内背景。纯净背景下视频摄像机固定,背景较纯净,无明显扰动;复杂背景视频则摄像机会有轻微抖动,背景含有多种复杂噪声干扰;室内背景视频针对的是摄像机有明显抖动,室内由于光线问题有反光,目标移动速度时快时慢,形态不断变化的情况。采取的实验视频的分类和描述如表2所示。

表2 实验视频的分类和描述

手持摄像机,有明显抖动,室内有反光,导致地板不同区域受光照亮度不同且随时间任意变化,目标移动速度时快时慢,形态不断变化。

实验中视频的背景分类和描述见表3所示。

表3 实验中视频的背景分类和描述

各算法实验结果如表4所示。

表4 各算法在不同背景条件下的实验结果(数字代表视频的帧数)

从表4可以看出,对视频中运动目标不带阴影的情况,ViBe算法信息比较完整准确,起始时含鬼影,但最终的处理结果和本文的改进算法一致。对视频中运动目标带阴影,且移动速度时快时慢、形态不断变化的情况,ViBe算法虽然能够提取目标完整信息,但复杂背景下会含有部分空洞,不能去除阴影;而本文所采用的改进算法相比常规的ViBe算法多了一部分阴影抑制,更能明确的辨别检测物体的准确形状。改进的算法能够有效去除绝大部分阴影,且检测结果相比ViBe算法拥有更完整的形态信息,能更准确判别目标形状。图1为室内动物运动视频不同帧猫的检测结果。

图1视频为手持摄像机,视频有明显抖动,室内地面有反光,导致地板不同区域受光照亮度不同且随时间任意变化;另外猫的移动速度时快时慢,形态也不断变化。从图1中可以看出,本算法可以有效去除绝大部分阴影且获得更完整的形态信息,但检测结果存在阴影边缘线;第102帧检测结果看上去就像断断续续的碎片组成。

图1 改进后的ViBe算法检测结果

4 结论

提出一种针对室内视频中运动目标运动速度过快造成的阴影不易识别的ViBe算法的改进方法,所提出的算法可以较好的去除阴影区域,较准确获得目标的形态信息,对于后续的目标识别、跟踪和理解提供基础,具有一定的实际借鉴性。该方法对于车辆系统和行人系统这类复杂背景的阴影去除有较好效果;而对于室内背景动物的运动系统的处理结果仍有不足,如检测结果边缘线还在,这是由于目标没有准确轮廓,在光滑的地砖上边缘灰度难以界定,如强行消除边缘阴影,又会导致目标本体被更多的消除;此外,由于室内光照变化,运动目标自身灰度值的变化,固定的阈值可能导致检测结果丢失部分目标本体。

猜你喜欢
阴影背景算法
“新四化”背景下汽车NVH的发展趋势
哪种算法简便
《论持久战》的写作背景
你来了,草就没有了阴影
黑洞背景知识
Travellng thg World Full—time for Rree
进位加法的两种算法
根据问题 确定算法
阴影魔怪