一种改进的视觉背景提取算法研究*
2018-03-26胡旻涛
徐 赟, 彭 勇, 胡旻涛
(江南大学 物联网工程学院,江苏 无锡 214122)
0 引 言
在智能视频监控领域,背景模型的建立对算法的检测精度至关重要,是目标分类、目标跟踪和行为分析等后续处理的基础[1]。然而在建立背景模型时会面临各种挑战[2]:如光照的改变、天气的好坏、树叶的干扰、相机的抖动等。 视觉背景提取(visual background extraction,ViBe)算法是一种基于非参数的背景模型,算法首次将随机聚类技术引入到背景模型中,使用视频序列的第一帧初始化背景模型,从第二帧开始即可检测出运动物体。与混合高斯模型[4](Gaussian mixture model,GMM)和码本[5](code-book,CB)算法相比,该算法因简单、高效而被广泛应用和研究。
本文深入分析了ViBe算法的工作原理及不足,并进行了以下改进:在算法初始化中,统计出静止的前景像素点占前景块的百分比,当统计结果大于给定阈值时,则检测该像素为背景像素并将其更新到背景模型中,有效抑制鬼影;在前景检测阶段,根据实际场景的动态程度自适应调整聚类阈值,提高了对动态场景的适应能力。
1 ViBe算法分析
1.1 算法分析
ViBe算法根据相邻像素具有时空一致性原理,采用样本随机聚类的方法,随机选取像素邻域内的N个像素值建立样本模型,将当前帧像素与样本模型对比,检测出运动目标,具有较好的实时性和鲁棒性。具体步骤如下:
1)模型初始化
ViBe算法使用视频序列的第一帧进行初始化,为每个像素建立样本模型
M(x)={v1,…,vi,…,vN}
(1)
式中vi∈NG(v(x))为v(x)邻域内索引为i的像素值;N为背景模型所选取的样本容量。ViBe算法从x的8邻域内随机选择20个样本值建立样本模型。
2)前景检测
首先定义一个以v(x)为圆心,R为半径的圆SR(v(x)),如图1所示。以SR(v(x))与背景模型M(x)的交集判断当前像素v(x)与样本模型中vi是否相似,其匹配过程为
#R=SR(v(x))∩{v1,…,vi,…vN}
(2)
当v(x)与M(x)匹配的样本数大于阈值时,将v(x)分类成背景像素点;反之,为前景像素点。分类过程为
(3)
背景像素算法中R取值为20, #min取值为2。
3)背景模型更新策略
ViBe算法采用保守更新策略和随机策略对背景模型更新。对于容量为N的样本模型,在时间间隔dt内,样本点依旧存在的概率P随时间变化的关系
P(t,t+dt)=e-ln(N/(N-1))dt
(4)
说明样本模型中每个像素点的生命周期与时间t无关且呈指数衰减。
图1 二维欧氏空间中像素分类
1.2 算法不足
ViBe算法首次引入随机聚类的方法,具有简单、运算量小等优点,但仍存在不足:1) 在初始化过程中,如果视频序列第一帧中存在前景物体,原算法会将前景点作为背景像素初始化背景模型,产生“鬼影”,导致误检;2)算法中采用全局阈值对背景进行聚类,对静态场景有较好的检测效果,但对于户外复杂动态的场景(如晃动的树叶、波动的水面、喷泉等)适应能力较差。
2 ViBe算法改进
2.1 背景初始化鬼影消除
鬼影[6]是指与实际的运动目标不对应的前景区域。目前检测鬼影的算法可以分为两类:1)判断前景的运动属性;2)利用自适应背景维护和更新[7]。本文提出前景像素计数的方法抑制鬼影,记录一帧图像At在t时刻前景块MOV中像素点被检测为静止的次数,计算过程为
(5)
式中SD(i,j)为相邻帧在同一位置上像素值的绝对差值;TSD为阈值,取值为20。当SD(i,j)小于预设阈值则认为该像素是静止的。当前景块像素满足式(6)时检测该前景块鬼影
(6)
式中MOVt为t时刻的前景块;Nt为前景块的像素总数;Tghost为鬼影判断阈值。根据文献[8],取值为0.95。不等式左侧表示被检测为静止像素的个数占整个前景块像素的百分比,当大于设定阈值Tghost时,说明该前景块为鬼影。鬼影在更新过程中被作为背景像素处理,实现鬼影消除。
2.2 自适应阈值前景检测
在ViBe算法中,采用全局固定阈值对前景进行分割,导致了算法对户外动态场景的适应性差。当阈值设置过大时,容易将与背景像素相似的前景点误检为背景;当阈值设置过小时,在检测结果中容易增加很多噪声,因此阈值的选择对提高算法的检测精度至关重要[7]。文献[9]提出了阈值的大小与样本集方差成正比,可以根据场景的复杂度动态地调整检测阈值,由此,本文提出了基于全局阈值与邻域像素信息结合的自适应阈值算法。具体实现步骤如下:
1)计算样本集标准差σt(x,y)。计算背景模型中样本的平均灰度值μt(x,y)
(7)
(8)
2)求判定条件
T=μt(x,y)+kσt(x,y)
(9)
式中k为常数,一般取[2,6]。
3)获得自适应阈值R(x,y)为
(10)
3 实验结果与分析
本算法在硬件平台Intel Core i5,内存为4 GB,软件开发环境为Windows7,Visual Studio 2010和OpenCV 2.4.8下完成测试。选changedetection[10]数据集Canoe,pedestrians,overpass等视频序列进行测试。实验选用了3种代表性的背景建模算法GMM,CB,ViBe与本文算法进行对比。
3.1 基于像素点统计的鬼影消除验证
利用本文算法对pedestrians视频序列进行检测,该视频序列是行人在路上行走的监控图像。在第506帧时,静止的行人开始运动,ViBe算法在背景初始化时在行人原始位置产生了鬼影。从图2中可以看出,在第521,605帧和654帧中,ViBe算法的检测结果中在行人的原静止位置处产生了鬼影,而本文算法在15帧以后抑制了鬼影。本文算法能够有效地消除鬼影,提高了算法的检测精度。
图2 本文算法与ViBe算法鬼影消除对比
3.2 基于自适应阈值的ViBe算法验证
为了验证本文算法在动态背景下的适应能力,选取数据集中的Canoe视频序列进行验证,该视频是水面不断波动的动态画面。对比结果如图3中,可以看出:ViBe算法的检测结果中将原本属于背景的水面错误地检测为前景,导致在检测结果中存在大量的噪声像素;在本文算法的检测结果中噪声像素点数量明显减少,波动的水面几乎完全被准确检测为背景,有效地解决了动态背景的干扰问题,提高了算法的适应能力。
图3 本文算法与ViBe算法在动态场景下的检测对比
3.3 算法性能对比
为了进一步验证本文算法在动态背景下的检测效果,选取了changedetection中overpass测试视频。该序列是行人走在天桥的监控视频,在第2 380帧时,静止的行人开始运动,视频背景中树叶晃动,对前景检测产生了较大干扰。 图4给出了GMM算法、CodeBook算法、ViBe算法和本文算法的检测效果。可以看出:GMM,CodeBook和ViBe算法均将背景中剧烈晃动的树叶误检为前景像素点,在检测结果中产生大量的噪声点,本文算法根据场景的复杂程度动态地调整分割阈值,可以很好地消除动态场景的干扰;另外由于视频序列中静止的行人开始运动,ViBe算法在检测过程中产生了鬼影,影响检测结果,本文算法采用的前景点计数方法有效消除了鬼影。
图4 4种算法在户外动态场景下检测结果
为了更加精确地评价几种算法的性能,采用准确率(Precision,PR)、查全率(Recall,RE)和F测度( F-measure,FM)作为评价指标[11]
RE=TP/(TP+FN)
(11)
PR=TP/(TP+FP)
(12)
FM=2·PR·RE/(PR+RE)
(13)
式中TP为正确检测为前景像素的点数;FP为背景被误检为前景像素的点数;FN为前景被误检为背景像素的点数。RE,PR,FM的值越大,说明算法的检测效果越好。对4种算法的RE,PR和FM求平均值,评价结果如表1所示。
表1 4种算法的评价结果
从表1可以看出:本文算法的查全率RE低于ViBe算法,这是由于本文算法未进行图像预处理和后期的形态学处理,所以检测结果中存在空洞,但是本文的准确率PR以及综合指标FM高于其他算法。
4 结 论
针对ViBe算法容易产生鬼影以及对动态场景适应性差的问题做出了改进。与几种背景建模算法相比,本文算法检测效果明显优于其他算法。下一步将进行空洞修复等后期的形态学处理,以得到完整的前景运动目标。
[1] 王 闪,吴 秦.全局运动补偿的动态背景下运动轨迹跟踪算法[J].传感器与微系统,2016,35(8):137-140.
[2] 伍健荣,杜向龙,刘海涛.一种基于Kalman滤波器的自适应背景建模改进算法[J].传感器与微系统,2012,31(1):52-54.
[3] Barnich O,van Droogenbroeck M.ViBe:An universal background subtraction algorithm for video sequences[J].IEEE Transactions on Image Processing,2011,20(6):1709-1724.
[4] 邱联奎,刘启亮,赵予龙,等.混合高斯背景模型目标检测的一种改进算法[J].计算机仿真,2014(5):378-384.
[5] Kim K,Chalidabhongse T H,Harwood D,et al.Real-time foreground-background segmentation using codebook model[J].Real-time Imaging,2005,11(3):172-185.
[6] 徐久强,江萍萍,朱宏博,等.面向运动目标检测的ViBe算法改进[J].东北大学学报:自然科学版,2015,36(9):1227-1231.
[7] 庄哲民,章聪友,杨金耀,等.基于灰度特征和自适应阈值的虚拟背景提取研究[J].电子与信息学报,2015,37(2):346-352.
[8] 苏延召,李艾华.改进视觉背景提取模型的运动目标检测算法[J].计算机辅助设计与图形学学报,2014,26(2):232-240.
[9] Hofmann M,Tiefenbacher P,Rigoll G.Background segmentation with feedback:The pixel-based adaptive segmenter[C]∥Proceedings of the 2012 IEEE Computer Society Conference on Computer Vision and Pattern Recognition Workshops,CVPRW 2012,Washington DC:IEEE Computer Society,2012:38-43.
[10] Goyette N,Jodoin P,Porikli F,et al.Change detection.net:A new change detection benchmark dataset[C]∥Proceedings of the 2012 IEEE Computer Society Conference on Computer Vision and Pattern Recognition Workshops,CVPRW 2012,Washington DC:IEEE Computer Society,2012:1-8.
[11] Agarwal S,Awan A,Roth D.Learning to detect objects in images via a sparse,part-based representation[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2004,26(11):1475-1490.