基于Canny与Frame—ViBE的运动目标检测方法
2018-09-26殷闻强魏赟
殷闻强 魏赟
摘要:ViBE算法前景检测准确率高,但在运动目标检测过程中会产生鬼影,不能很好地适应光照变化。针对ViBE中鬼影及光照变化问题,提出帧差法、ViBE与Canny相结合的方法,利用帧差法提取运动目标像素,使用Canny算子提取运动目标的边缘信息同时能够较好地适应光照变化。实验结果表明,该算法可以有效消除鬼影并减少光照变化的干扰,在复杂的动态环境下取得良好的效果。
关键词:运动目标检测;Canny边缘检测算法;帧差法;ViBE;鬼影消除
DOI:10.11907/rjdk.173148
中图分类号:TP306
文献标识码:A文章编号:1672-7800(2018)007-0037-03
Abstract:ViBEalgorithmhashighaccuracyofforegrounddetection,butintheprocessofmovingtargetdetectionitwillproduceghosting,andcantadapttolightchanges.AimingatViBEghostshadowandlightchanges,weproposethecombinationofedgeframedifferencewithViBEandCanny.Thismethodusestheframedifferencemethodtoextractthepixelofthemovingobject,andtheCannyoperatorisemployedtoextracttheedgeinformationofthemovingtargetaswellascombinethepixelandtheedgeinformationofthemovingtarget,whichcanbeusedtodetectthemovingtargetdetection.Theexperimentalresultsshowthattheproposedalgorithmcaneffectivelyeliminateghostingandlightchanges,anditachievesgoodresultsincomplexanddynamicenvironment.
KeyWords:movingobjectdetection;Cannyedgedetechionalgorithm;inter-framedifferencemethod;ViBE;ghostelimination
0引言
隨着信息技术的发展,人们大量使用计算机辅助工具分析图像序列、检测物体运动,运动目标检测[1]成为当前计算机视觉研究领域的热门。运动目标检测算法主要分为三大类:光流法[2]、帧差法[3]、背景减除法[4]。其中背景减除法利用历史帧构建背景模型,使用当前帧和背景模型做差分运算得到前景图。文献[5-7]采用融合帧间差分法抑制了鬼影。ViBE算法基于像素点构建背景模型,虽然能够实时地适应复杂场景的动态变化,并很好地区分前景与背景,但仍有鬼影拖影现象。文献[8-10]虽然改善了拖影现象,但在环境噪声的影响下,检测结果也不理想,仍易受环境噪声影响。文献[11-13]改进了鬼影现象,但在复杂背景下抗干扰能力较差。文献[14-16]通过形态学处理消除鬼影,取得了比较理想的效果。文献[17]提升对场景的适应性,鲁棒性好,但不能很好地提取目标完整轮廓。针对文献[4-17]中为了改善拖影、鬼影和环境噪声等问题提出的算法在实际运动目标检测中存在的问题,本文提出基于Canny与Frame-ViBE相融合的运动目标检测方法,该算法利用帧差法改善了鬼影现象,利用Canny边缘检测改善噪声、光照等外来因素对运动目标的影响。通过该算法可以准确提取出完整的运动目标,降低噪声和光照的干扰,具有一定的鲁棒性和适用性,适合对运动目标进行检测。
1算法理论
2边缘帧差与ViBE融合算法
在各种复杂场景下,例如光照突变、树叶摇晃等,ViBE算法不能准确地提取出运动目标,可能会造成拖影和鬼影现象。将帧间差分法得到的二值化图像和ViBE算法得到的二值化图像进行相“与”运算。该方法可以改善拖影和鬼影现象,但不能很好地适应光照变化和环境噪声的情况。边缘检测图像仅有目标边缘信息,对光照变化不敏感。本文采用改进的Canny算子,相较于传统的Canny算子,对环境噪声有所抑制。将ViBE、帧差法相“与”运算的结果和Canny算子检测结果进行相“与”运算。
(3)对图像进行非极大值抑制。
(4)选取高低2个阈值T1、T2。用递归跟踪算法不断搜集边缘,将符合规则的边界点连接起来,得到边缘检测结果E。
以上方法获得的二值化图像仅包含运动目标的边缘轮廓信息,导致图像中运动目标出现内部空洞的情况。为了避免这种情况,采用形态学“闭”运算寻找图像中运动目标的轮廓,然后进行区域填充完善运动目标,最终提取完整的运动目标。
2.2算法思想
算法流程如图1所示。
将视频转化为视频帧序列。对视频帧进行灰度处理,把彩色图像转化为灰度图。通过式(1)的帧差法得到D。
判断该帧是否为第一帧,如果是则建立背景模型。计算坐标I(x,y)和样本集M(x,y)像素点的欧式距离D。统计欧氏距离D小于阈值R的个数,并判断个数是否小于阈值min。
若大于min,则有概率更新背景模型;若小于min,则为前景点。帧中所有坐标点经过上述方式处理后得到ViBE前景图V。
将灰度图通过式(2)与当前帧进行卷积得到平滑的图像。根据式(3)、式(4)计算梯度幅值和方向。对梯度幅值进行非极大值抑制。选取双阈值T1、T2,如果图像中的像素点Th大于高阈值T1,则认为是强边界;如果图像中的像素点Th小于低阈值T2,则认为不是边界;如果图像中的像素点Th在高低阈值之间则认为是弱边界,和强边界相连的弱边界认为是边界,其它的弱边界则被抑制。连接边界点得到canny边缘检测图E。寻找轮廓,对轮廓内部进行区域填充,将填充后的E和V进行形态学相“与”运算,最后提取完整的运动目标。
3实验结果
本算法代码实验环境:硬件inteli76700,3.4GHz,8G内存;软件windows10操作系统:visualstudio2017+Opencv3.2。该视频序列来自一个十字路口的拍摄视频,视频的帧率为25帧/s,分辨率为1280×720。Changedetection中streetCornerAtNight序列数据,分辨率位595×245。将ViBE算法、本文算法作为对比,以下图片依次为原图、ViBE算法、本文算法。帧间差分法阈值T为10。Canny算子高低阈值T1和T2分别为10、30。ViBE算法每个像素点的样本集M(x,y)个数为9,min阈值为2,距离阈值R为20,δ为16。如图2所示。
图2中a(1)、a(2)分别为视频序列第14帧、changedetection序列数据集中streetCornerAtNight第80帧。
图a(1)是在白天上海一座高架桥下十字路口录制的一段视频序列。图b(1)中ViBE算法有非常严重的拖影和鬼影现象,本文算法可以改善图b(1)中ViBE算法造成的拖影和鬼影现象,同时较好地获取运动目标的轮廓信息。
图a(2)是在夜间红绿灯十字路口的视频序列,车辆开启车灯的情况。图b(2)中将车灯也当作运动目标。ViBE算法不能准确地识别运动目标,易受到光照变化的影响。本文算法可以更准确地提取图b(2)中完整的运动目标,同时减少车灯光照变化的影响,具有更好的鲁棒性。
根据表1,可以看出本文算法相较于ViBE算法有更好的实时性,计算量相对更少,通过对每个坐标点计数,减少对背景模型更新的频率。
4结语
本文提出了一种基于帧间差分法、canny算子与ViBE算法的融合算法,该算法利用canny算子对光照变化不敏感的特性,改善光照变化对检测结果的干扰,同时获取运动目标的轮廓信息,降低环境噪声对检测结果的干扰;利用帧差法和ViBE算法的融合算法改善帧差法拖影现象、较好地抑制了ViBE算法鬼影现象,并具有一定的抗噪声能力。通过对十字路口夜间车辆的检测实验表明,本文算法明显优于ViBE算法,可以有效消除鬼影、降低环境噪声和光照变化的干扰,且适应更多的复杂环境,能够准确提取出完整的运动目标,具有较强的鲁棒性和实时性。
参考文献:
[1]郑佳,李江勇.基于背景差分和信息熵的运动目标检测算法[J].激光与红外,2014,5(44):563-566.
[2]NIUY,XUZ,CHEX.DynamicallyremovingfalsefeaturesinpyramidalLucas-Kanaderegistration[J].IEEETransactionsonImageProcessing,2014,23(8):3535-3544.
[3]吕国亮,赵曙光,赵俊.基于三帧差分法和连通性检验的图像运动目标检测新方法[J].液晶与显示,2007,22(1):87-92.
[4]何志辉,黄山.一种改进视觉背景提取模型的运动目标检测算法[J].小型微型计算机系统,2015,11(11):2559-2562.
[5]何信华,赵龙.基于改进高斯混合模型的实时运动目标检测与跟踪[J].计算机应用研究,2010,27(12):4768-4771.
[6]华媛蕾,刘万军.改进混合高斯模型的运动目标检测算法[J].计算机应用,2014,34(2):580-584.
[7]邱联奎,刘启亮,雷文龙.基于背景减除与三帧差分相融合的运动检测[J].合肥工业大学学报:自然科学版,2014,37(5):572-577.
[8]尹凯,魏江,李正.改进的ViBE运动目标检测算法[J].电子设计工程,2014,22(16):178-180.
[9]王辉,宋建新.一种基于阈值的自适应ViBE目标检测算法[J].计算机科学,2015,42(6A):154-157.
[10]胡昭华,张维新,王珏.基于改进ViBE的运动目标检测算法[J].计算机技术与应用,2017,43(4):129-132.
[11]张杜,陈元枝,邱凭婷.基于ViBE算法及Canny边缘检测的运动目标提取[J].微机与应用,2015,34(14):36-38.
[12]徐君妍,袁址赟,崔宗勇,等.基于帧间差分的ViBE运动目标检测[J].科学技术与工程,2017,17(27):82-87.
[13]徐文瀚,程石磊.基于改进ViBE算法的前景检测[J].电子技术与软件工程,2017,(16):82-83.
[14]陈世文,蔡念,肖明明.基于高斯混合模型和canny算法的运动目标检测[J].广东工业大学学报,2011,28(3):87-90.
[15]张纬诚,尹莉莉,方文贵.一种基于ViBE和改进LBP的目标跟踪算法[J].惠州学院学报,2017,37(3):76-80.
[16]张红瑞,马永杰.融合混合高斯模型的改进的ViBE算法[J].西北大学学报:自然科学版,2017,47(3):361-366.
[17]魏洪涛,李瑾,吴细秀.融合帧差和ViBE的运动目标检测算法[J].計算机应用研究,2017,34(5):1565-1567.
(责任编辑:江艳)