基于状态分割的运动目标实时跟踪
2018-06-28,,
,,
(韶关学院物理与机电工程学院,广东 韶关 512005)
0 引言
基于云台的摄像头可移动式视频监控系统,通过摄像头的移动,保证监控对象始终位于摄像头图像中心区域,实现大视角范围内运动目标的检测跟踪,已广泛应用于各类重要场所对可疑目标或异常行为的实时监控、预警[1]。但摄像头移动状态下复杂的动态背景,使得准确、实时的运动目标检测变得困难[2]。
针对动态背景下的运动目标检测方法主要有光流法和背景补偿法。光流法[3-4]依据摄像头运动引起的背景光流与运动目标光流不一样来实现运动目标的识别,但该算法要遍历帧中所有像素点来评估光流,计算量大,难以满足实时性要求。背景补偿法[5]通过提取背景特征,得到基于匹配点的全局运动参数,对背景进行补偿,从而将动态背景情况下的运动目标检测转化为静态背景下的运动目标检测,目前主要通过基于图像像素匹配算法(如SSDA算法[6])和基于图像特征匹配算法(如SIUF算法[7]、SURF算法[8]和块匹配算法[9])等算法,提高全局运动参数估计精度来保证背景补偿精度,但这将导致运动目标检测实时性下降。
对此,提出基于状态分割的运动目标跟踪方法,根据摄像头运动与否,分别实施运动目标检测与运动目标跟踪,避免动态背景下的运动目标检测复杂算法对目标跟踪实时性的影响。在摄像头静止状态时,基于静态背景实施运动目标检测,当检测到运动目标后,对运动目标进行特征提取、匹配,基于目标跟踪算法,定位其运动轨迹和运动参数,并控制摄像头实施目标跟踪,使运动目标始终位于摄像头图像中心区域。
1 基于状态分割思想的运动目标实时跟踪
1.1 运动目标检测算法
基于背景建模技术的背景差法是运动目标检测的一个重要方法,其利用当前图像与背景模型做差分运算来检测运动目标,进而提取出完整的前景运动目标的位置、大小、颜色和形状等信息,算法简单,检测速度快。该算法关键在于背景模型的建立与实时更新。混合高斯背景模型 (GMM)[10]算法采用多个高斯模型分布的加权来表示背景图像,模型中的参数随着背景的不断变化自适应更新,可有效处理背景光照变化对目标检测准确性的影响,其基本原理如下所述。
用K(取值3~5)个高斯模型来描述视频图像序列中的每个像素点的特征,任意像素点在时刻t处3个通道的观察值为xt=[rt,gt,bt]T,属于背景的概率ρ(xt)为:
(1)
(2)
将每一帧视频图像的像素值与上述的K个混合高斯模型的某个分布进行匹配,比较此像素值与K个高斯分布中的某个分布是否满足:
|xt-μt,i|≤Dσi
(3)
若满足,则判定为背景像素点,否则判定为前景像素点。Dσi为用户自定义参数。对匹配成功的高斯分布进行更新,不匹配的高斯分布不变。
GMM算法需对图像中每一个像素点单独处理,为减少建模与更新时间,提高实时性,采用双线性插值法对视频图像进行缩小处理。假设原始图像大小为m×n,缩小后图像为a×b,图像缩小前后像素点坐标变换关系为:
i=int[(x+0.5)×a/m-0.5]
(4)
j=int[(y+0.5)×b/n-0.5]
(5)
i,j分别为缩小后图像的行、列坐标;x,y分别为原始图像的行、列坐标。
经过GMM算法检测到运动目标后,按坐标变换关系,将缩小图像上的运动目标坐标映射到原始比例大小的视频图像上,实现运动目标的检测。
1.2 运动目标跟踪算法
运动目标跟踪是在运动目标检测的基础上,通过对目标进行表观建模,并基于一定的跟踪算法,如基于特征匹配的Meanshift算法[11]、卡尔曼滤波算法[12]、粒子滤波算法[13]等目标跟踪方法,寻找运动目标最优位置的过程。本文针对目标颜色与背景颜色可区分场景,通过提取运动目标颜色特征信息,基于Camshift算法[14],以逐帧处理视频序列的方式完成运动目标的连续跟踪,具有良好实时性与鲁棒性,其算法流程如下:
a.计算来自目标颜色信息的色度直方图。
b.对视频序列图像的单通道色度图,按照色度直方图转化为反向投影图。
c.提供一个用于对视频序列图像进行匹配搜索的初始化搜索窗口,若当前图像是摄像头运动阶段的第1帧图像,搜索窗口的中心位置和大小为静止阶段检测到的目标窗口位置和大小,若不是,则为上一帧搜索窗口的最终位置和大小。
d.计算搜索窗口的质心。设(u,v)为搜索窗口内的像素点坐标,其在反向投影图中的像素值为I(u,v),定义搜索窗口的零阶矩M00和一阶矩M10,M01分别为:
(6)
(7)
(8)
则当前搜索窗口质心坐标为:
(9)
e. 若搜索窗口质心与窗口中心重合,记录此时搜索窗口的中心和大小,其中心位置坐标就是当前帧图像中运动目标的中心坐标;若不重合,则移动搜索窗口,使窗口中心与质心重合,再对新的搜索窗口重新计算质心,不断迭代下去,直到窗口质心与窗口中心重合或达到迭代最大次数。
2 基于OpenCV的运动目标跟踪算法实现
OpenCV是基于C++语言实现图像处理与视觉处理通用算法的开源计算机视觉库[15],其提供的库函数可以非常便捷地完成复杂的计算机视觉处理。在OpenCV使用前,需要对开发环境VS2010进行相关的工程配置。
2.1 运动目标检测算法实现
基于GMM算法的运动目标检测通过OpenCV提供的BackgroundSubtractorMOG2类来实现,主要实现步骤为:
a.利用VideoCapture类读取摄像头视频图像。
b.利用cv::resize()函数完成双线性插值法对图像尺寸的缩小,提高算法的处理速度。
c.利用BackgroundSubtractorMOG2类进行混合高斯建模算法处理,得到处理结果图像fgmask1。
d.利用medianBlur()函数、morphologyEx()函数对图像fgmask1进行中值滤波和形态学闭操作,并保存结果图像fgmask2。
e.利用findContours()函数寻找图像fgmask2的连通域,找出运动目标轮廓。
f.通过boundingRect()计算运动目标轮廓的垂直边界最小矩形rect1坐标位置和大小,再将其映射到到原始比例大小的视频图像上,得到矩形rect2,该矩形所在位置即为运动目标所在实际位置和大小。
检测获取的运动目标轮廓的垂直边界最小矩形rect1和rect2,在原始比例视频图像上的位置和大小如图1所示。
图1 运动目标检测结果
2.2 运动目标跟踪算法实现
基于Camshift算法的运动目标跟踪通过OpenCV的Camshift()函数来实现,该函数的调用需要提供初始的搜索窗口(位置与大小)和运动目标的颜色直方图。
初始搜索窗口的位置和大小与运动目标重合,由运动目标检测结果的rect2提供;对rect2确定的运动目标进行背景信息过滤等预处理,提取其颜色特征信息,建立运动目标颜色直方图,如图2所示。
图2 运动目标颜色直方图的建立
经过上述处理得到初始搜索窗口和运动目标颜色直方图后,按如下步骤实现目标跟踪算法:
a.利用cvtColor()函数把视频帧图像格式转为HSV格式。
b.从视频帧图像中分离出单通道色度值图。
c.利用calcBackProject()函数,计算单通道色度值图关于运动目标颜色直方图的反向投影,滤除反向投影图上的噪声干扰。
d.利用Camshift()函数,根据初始搜索窗口与运动目标颜色直方图,进行Camshift算法运算,得到一个平面上的旋转矩形。该矩形的中心位置就是跟踪目标的中心位置,将该中心坐标加入到物体坐标发送队列里,用于摄像头转动控制。
e.用Ellipse()函数把旋转矩形用椭圆表示出来,用circle()函数画出旋转矩形的矩形中心点。
3 实验结果与分析
为评估本文提出方法的有效性,搭建了基于云台的移动式摄像头视频监控实验系统。系统由上位机和下位机组成,其中,下位机负责云台运动控制及视频图像信息采集,上位机开发了视频实时监控软件,负责视频图像的显示,运动目标检测、跟踪,以及发送云台控制指令等工作,两者通过以太网通讯功能实现信息交流。
图3a ~图3e描述了运动目标(图中小车)跟踪过程中不同时刻的实时跟踪效果,图3f描述了运动目标在各个时刻的坐标轨迹。可以看出,当运动目标进入到摄像头的视野范围后,摄像头精确地捕获到了运动目标,确定了其位置和区域,并快速地追随运动目标移动方向,使运动目标始终位于摄像头图像中心区域。
图3 运动目标跟踪结果
实验结果表明,在目标颜色特征显著的情况下,基于状态分割思想的运动目标实时跟踪方法,实现了移动式摄像头对运动目标的精确检测与跟踪,并具有很好的鲁棒性和实时性。
4 结束语
针对基于云台的摄像头可移动式视频监控系统的运动目标检测与跟踪,提出了一种基于状态分割思想的运动目标实时跟踪方法。借助于OpenCV计算机视觉库,便捷地实现了相关算法,并结合Windows平台应用程序开发环境VS2010,开发了用户界面良好的视频实时监控应用软件。实验结果表明,该方法较好地解决了移动式摄像头对运动目标检测跟踪的精确性和实时性问题,对于基于云台的移动式视频监控系统的运动目标跟踪具有重要意义。
参考文献:
[1] 黄凯奇,陈晓棠,康运锋,等.智能视频监控技术综述[J].计算机学报,2015,38(6):1093-1118.
[2] 陈杏源,郑烈心,裴海龙.基于Camshift和SURF的目标跟踪系统[J].计算机工程与设计,2016,37(4):902-906.
[3] 兰红,周伟,齐彦丽.动态背景下的稀疏光流目标提取与跟踪[J].中国图象图形学报,2016,21(6):771-780.
[4] 崔智高,王华,李艾华,等.动态背景下基于光流场分析的运动目标检测算法[J].物理学报,2017,66(8):116-123.
[5] 于明,孙炜烨,阎刚,等.动态场景下基于精确背景补偿的运动目标检测[J].计算机应用与软件,2013,30(10):139-141,198.
[6] 王文胜,翟尚礼,白俊奇.基于SSDA的图像匹配跟踪算法[J].指挥信息系统与技术,2016,7(6):77-80.
[7] Lowe D G.Distinctive image features from scale-invariant keypoints[J].International Journal of Computer Vision,2004,60(2):91-110.
[8] Kalia R,Lee K D,Samir B V R,et al.An analysis of the effect of different image preprocessing techniques on the performance of SURF: Speeded up robust features[C]//17th Korea-Japan Joint Workshop on Frontiers of computer Vision,2001:1-6.
[9] 施家栋,王建中.动态场景中运动目标检测与跟踪[J].北京理工大学学报,2009,29(10):858-860,876.
[10] Stauffer C,Grimson W.Adaptive background mixture models for real-time tracking [C]//Proceedings of the 1999 IEEE Conference on Computer Vision and Pattern Recognition,1999:246-252.
[11] Comaniciu D,Ramesh V,Meer P. Real-time tracking of non-rigid objects using mean shift[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,2000:142-149.
[12] 梁锡宁,杨刚,余学才,等.一种动态模板匹配的卡尔曼滤波跟踪方法[J]. 光电工程,2010,37(10): 29-33.
[13] 李轩, 张红.基于粒子滤波的检测前跟踪算法的改进[J].科学技术与工程,2017,17(30):227-232.
[14] Bradski G R.Real time face and object tracking as a component of a perceptual user interface[C]//Proceedings of the Fourth IEEE Workshop on Applications of Computer Vision,1998:214-219.
[15] 李振伟,陈翀,赵有.基于OpenCV的运动目标跟踪及其实现[J].现代电子技术,2008(20):128-130,138.