一种基于改进ViBe算法的运动目标检测方法
2018-09-21郭志涛曹小青厉成元于洪泽王卿粹
郭志涛,曹小青,厉成元,于洪泽,王卿粹
(1.天津电气科学研究院有限公司,天津 300301;2.河北工业大学 电子信息工程学院,天津 300401)
运动目标检测[1]是智能视频处理和计算机视觉过程中的关键技术,其主要目的是将视频信息中的运动目标与背景分离开,以提取到清晰完整的运动目标。当前常见的运动目标检测方法主要包括光流法[2]、背景差分法、帧间差分法[3]、视觉背景提取法等。视觉背景提取算法(ViBe算法[4])是目前比较高效的背景建模方法,其内存占用少运行速度快,抗噪性能好,十分适用于对精确度与实时性均要求较高的实时视频监控及智能处理领域。但是 ViBe 算法在处理比较复杂情景时可能会出现运动目标检测不完整的问题,包括运动目标内部有大量空洞、运动目标中间有断层等[5],同时在交通监控视频中还容易出现阴影问题[6],需要及时消除才能保证检测的准确度。
1 ViBe算法简介
ViBe算法主要由背景模型的初始化、前景检测过程、背景模型的更新策略[7]三个部分组成:
(1)背景模型的初始化。ViBe算法利用视频序列的第一帧来初始化背景模型,再以帧为单位迭代对每帧的每个像素点进行建模。在用视频序列第一帧初始化背景模型时,用v(x)表示像素点x处的背景像素值,用M(x)表示x处的背景样本集,其背景模型为(1)式。
M(x)={v1,v2,…,vN}
(1)
(2)前景检测过程。比较每个新像素值v(x)和样本值M(x),若新像素值和样本集中每个样本值的欧式空间距离小于阈值R,则近似样本点数增加,一旦近似样本点数大于判定阈值Min,则判定其为背景点,否则为前景点。
(3)背景模型的更新策略。ViBe算法背景模型的随机更新策略主要包括:第一,无记忆更新策略。用新的像素值随机取代像素点样本集M(x)中的一个样本值来确定该像素点需要进行更新的背景模型。第二,时间取样更新策略。实际过程中并不是每帧都更新,而是按一定的更新率更新背景模型。
2 改进的ViBe算法
2.1 自适应阈值
针对传统ViBe算法阈值R固定,容易出现背景误检为前景和前景误检为背景的问题,本文分别定义了两种误检情况对应的评价函数evaluation1(k)和evaluation2(k)来动态调整阈值R。下面将分别介绍两种评价函数以及动态阈值R的定义式。
2.1.1 评价函数evaluation1(k)定义
评价函数evaluation1(k)以视频帧中目标像素点数量的变化情况为评价对象,如果检测到小范围帧内目标像素点数量发生剧烈波动则说明前景目标区域检测并不稳定,此时需要提高背景模型的准确度。
首先,用传统ViBe背景建模方法得到K帧(例K取值为20)图像的运动目标二值图并统计每帧二值图的目标像素点个数Data(i) (i=1,2,...,K),再统计这K帧图像目标像素点个数Data(i)与第一帧目标像素点个数Data(1)差值的波动情况,并设定波动范围为正负T1。第一种评价函数的定义如式(2)所示。
(2)
其中,W、H分别为图像的宽和高。最后用同样方法得到第(K,2K),(2K,3K),...帧的评价函数。
2.1.2 评价函数evaluation2(k)定义
评价函数evaluation2(k)以检测完整率为评价对象,即单帧图像运动目标检测的完整性,评价目标是否存在内部有空洞、断层、边缘呈C字型凹陷等问题。
定义ViBe算法检测到的单帧图像的运动目标区域为area1,包含目标区域的最小凸形区域为area2,则区域差Δarea如式(3)所示。
Δarea=area2-area1
(3)
若图像里包括n个独立的目标区域,则图像的总区域差定义为式(4):
(4)
该式表明第二种误检情况不仅与阈值R有关系,也与图像内的运动目标个数n有关。为了更好地表明第二种评价函数与阈值R及运动目标个数n之间的关系,其定义式如式(5)所示。
(5)
2.1.3 动态阈值R调整方法
基于以上两种评价函数对阈值R的影响分析,定义阈值R的动态调整式如式(6)所示。
(6)
其中T1、T2分别为评价函数evaluation1(k)、evaluation2(k)的比较门限,ΔR为阈值R的增量。
传统ViBe算法根据上式(6)实现阈值R动态更新后,得到的检测目标图再进行中值滤波。
2.2 阴影消除
在交通监控视频中,除了上述提到的运动目标检测完整性,阴影能否及时有效消除也直接影响运动目标提取的准确度,关系着后续目标的识别、跟踪过程,因此本文提出了一种融合颜色特征和角点特征的阴影消除方法。
2.2.1 颜色特征
阴影区域的像素亮度值相较于同位置的背景区域会更低[8],根据这一特性可以初步判定阴影区域。判定方法为将RGB颜色空间内一个像素的R、G、B分量与参考背景像素的R、G、B分量进行比较,若均有所降低,则该像素被初步判定为疑似阴影像素点,以此方法得到一个疑似阴影像素点集。考虑到现实视频中存在的噪声问题,定义判定公式如式(7)。
(7)
其中SRGB为疑似阴影像素点集, (xbg,ybg)为参考背景像素点,(x,y)为当前帧像素点,(t1,t2,t3)为噪声干扰量,可依视频情况调整。参考背景像素点(xbg,ybg)由ViBe算法背景建模取均值给出并进行更新。
2.2.2 角点特征
角点为邻域内具有两个主方向的特征点,其所在的区域通常稳定且包含信息丰富,具有光照不变性、仿射不变性[9]。角点检测结果在同一场景中不受光照变化影响,而且角点分布情况与车辆结构密切相关,阴影区域形状较光滑角点少,而车辆区域处角点密集。
采用Shi-Tomasi方法[10]提取视频流中的角点特征,标注为彩色圆点,检测结果图如图1所示。由于角点特征主要集中在车辆车灯、车窗、防护杠等处,且成带状或聚合状分布,因此可以采用最小距离聚类算法进行模式聚类,转换角点分布问题为点集聚类问题。根据得到的聚类结果,利用快速凸包方法画出一个包含聚类点集的面积最小的凸多边形,该凸包即为可能的运动车辆区域。将根据颜色特征判定的结果与角点特征得到的凸包进行阴影融合,即可以得到阴影区域并进行清除。
图1 角点检测结果图
3 实验结果与分析
本文实验环境为:Win 7系统,双核 Intel Core i5-5200U @ 2.20 GHz,8 GB内存的计算机;算法采用 Visual Studio 2010和 Open CV 2.4.11编译实现。实验数据采用三个标准测试视频,并与传统ViBe算法进行对比实验。三个视频数据具体信息如表1所示。
表11 测试视频数据信息
视频名称分辨率帧率总帧数highwayⅠ320×24014438Intelligentroom320×24010300campus352×288101 170
在测试中根据测试结果不断调整评价函数比较门限和阈值R的增量,最终确定当T1=0.05,T2=0.2,增量ΔR=2时得到最好的检测结果。为了更全面验证改进算法在各种视频环境中的效果,本文选取三种典型的监控视频进行测试。视频intelligentroom为室内监控视频,视频campus为室外监控视频,这两个测试视频均背景较复杂。视频highwayⅠ为交通监控视频,目标动态性较强,且容易有阴影干扰检测结果。
表2为intelligentroom 视频第284帧和Campus视频第1064帧的检测结果。从中可以看出intelligentroom 视频室内背景复杂,运动目标与背景区分不大,传统ViBe算法不能根据不同情况及时调整R,因此运动目标检测准确度并不高,可能会出现284帧目标内部有空洞、目标边缘残缺的问题。Campus视频中室外光照条件不是很理想,背景较复杂,运动目标较小,这几个因素均为运动目标提取造成困难,其第1064帧出现了目标中间有断层的问题。本文改进算法有效解决了以上问题,得到更为清晰完整的目标,为后续视频分析处理提供良好的基础。
表12 intelligentroom、Campus 视频检测结果
帧数原始图像原Vibe结果改进Vibe结果2841 064
图2为highwayⅠ测试视频第308帧的目标检测结果,交通监控视频中运动目标移动速度快,传统ViBe算法由于阈值固定很难达到实时调整的要求,故而容易出现目标内部有空洞和目标边缘残缺等问题。本论文的改进算法自适应调整阈值R,并结合上述提出的融合颜色特征和角点特征的阴影消除方法,其检测结果较传统算法更加清晰,检测准确度较高。
图2 highwayⅠ视频检测结果
4 小结
传统ViBe算法检测背景复杂或目标动态性较强的视频时容易出现检测不完整的问题,本论文针对这一问题分别定义了两种评价函数来动态调整阈值R,使其在不同检测情况下自适应调整,得到更加准确、完整的目标区域。同时提出的融合颜色特征和角点特征的阴影消除方法也可以及时消除交通监控视频的阴影区域,检测结果更加准确。实验结果表明改进算法在各项评价指标上较传统ViBe算法均有所改进,在视频监控应用方面具有一定的实用性。