刘晓明,张起贵
(太原理工大学 信息学院,山西 太原 030024)
随着社会的快速发展,起源于计算机视觉的视频分析技术与传统监控手段相比,具有在不需要人为干预的情况下自动对摄像机拍摄的视频序列进行实时分析、自动定位、识别和跟踪目标等优势,引起了人们越来越多的关注,并已成为未来监控的发展方向[1]。徘徊检测属于这种技术,它是当1个或多个人在预先设定的防区内出现徘徊行为时,系统会发出报警。其目的是为了排除一些易成为攻击目标的场所 (如银行、政府机关、大使馆、高安全周界、商业区和住宅区)的安全隐患。
本文提出了徘徊行为的一种简单判定依据并采用背景差分方法检测序列图像中的运动目标,再利用矩形逼近目标轮廓[2],并把该矩形作为目标跟踪时的跟踪框。为了解决目标在跟踪过程中由于长时间静止而导致目标丢失的问题,本文对目标的运动状态进行实时判定,在判定目标静止之后,采用实时性和鲁棒性都表现良好的Camshift跟踪算法继续跟踪。
准确的徘徊行为判定是一个相当复杂的过程。但它可以通过对象在预先设定的防区滞留时间、运动距离、运动方向等简单判定。另外,也可以根据防区的安全级别适当地增减判定条件。本文是通过对象在防区的总移动距离以及目标在当前帧位置和初次进入防区位置之间的距离关系判定徘徊行为的。
对象徘徊行为的判定条件1是依据序列图像的大小,预先对对象在防区允许移动距离进行设定,然后把每帧对象移动的距离累加起来,当对象移动距离的累加和超过规定值时即判定条件1满足。表1是在相同的规定值340下不同对象在防区内运动的总路程(本文所有数据均在窗口坐标系下获得,视频图像大小为320×320),通过表1得出结论是5号和6号对象满足徘徊行为的判定条件1。图1是防区范围坐标,图2是防区实际效果图。
表1 相同的规定值下不同对象在防区内运动的总路程
图1 防区范围坐标
图2 防区实际效果图
对象徘徊行为的判定条件2是依据徘徊行为的特点,即对象需要转身并沿着和原路线成一定夹角的反方向运动,依据这个运动特点,利用对象在当前帧位置和初次进入防区位置之间的距离较前一帧小来判定徘徊行为。但是只通过连续2帧来判定结果并不准确,原因是对象走路和转身时的姿势以及下蹲对结果的判定有影响,表2和表3(数据是对象部分连续几帧里当前帧位置和初次进入防区位置之间的距离,按时间顺序列出)说明了这一点。为了解决这个问题,本方法选择连续几帧来判定。帧数可根据防区内目标的大小进行重新设定,本文选择连续5帧来判定结果。
表2 当前帧位置和初次进入防区位置之间的距离
如果选择连续2帧来判定,由表2中的帧序号1和2满足判定条件,但此时目标并未发生徘徊行为,判定结果错误。错误结论产生原因是由于目标走路和转身时的姿势引起的。为此,将判定条件改为连续5帧来判定。由表2会发现,从帧序号16开始到20号满足条件,判定目标徘徊,该结论与实际相符,判断正确。
表3 当前帧位置和初次进入防区位置之间的距离
如果选择连续2帧来判定,由表3中的帧序号10和11满足判定条件,但此时目标并未发生徘徊行为,判定结果错误。错误结论产生原因是由于目标的下蹲引起的。为此,将判定条件改为连续5帧来判定。由表3会发现没有连续5帧满足条件,判定目标没有徘徊,该结论与实际相符,判断正确。
背景差分方法[3-5]是利用当前帧图像与背景图像相减来进行目标的检测和提取,如图3所示。
图3 背景差分检测目标流程
式中,fi(x,y)为第 i帧(x,y)点的灰度值,Bt(x,y)为 t时刻的背景模型,T为指定阈值。
为提高检测效果,背景按照指定时间进行更新。为提高精度和减少噪声干扰,可以采用形态学滤波对二值图像进行处理,最终获得精确的前景运动目标区域如图4、图 5所示。
图4 当前帧图像
图5 检测到的目标
Camshift算法[6-10](Continuously Apative Mean-Shift算法)是一种运动跟踪算法。它主要通过视频图像中运动物体的颜色信息来达到跟踪的目的。为了便于理解可以将该算法分为 3个部分:Back Projection、Mean Shift算法、Camshift算法。
首先计算被跟踪目标的色彩直方图,采用HSV空间中可以表示颜色信息的H分量,然后将RGB色彩空间转换到HSV空间。因为只对H分量操作,所以只需对H分量做1D直方图计算。根据获得的色彩直方图将原始图像转化成色彩概率分布图像,这个过程即被称为“Back Projection”。
Mean Shift算法是一种密度函数梯度估计的非参数方法,通过迭代寻优找到概率分布的极值来定位目标。算法步骤如下:
(1)在颜色概率分布图中选取大小为s的搜索窗。
(2)计算此时搜索窗口的质心:
则搜索窗的质心(xcyc)为xc=M10/M00
式 中 ,Ic(x,y)是 坐 标(x,y)的 像 素 值 ,x、y 的 变 化 范 围 为 搜索窗的大小。
(3)重新设置搜索窗的大小s。
(4)重复(2)、(3)直到质心收敛。
将Mean Shift算法扩展到连续图像序列,就形成了Camshift算法。它将序列图像的所有帧做Mean Shift运算,并将上一帧的结果(搜索窗的质心和大小)作为下一帧Mean Shift算法的搜索窗的初始值,如此迭代下去实现对目标的跟踪。算法步骤如下:
(1)用背景差分方法得到的矩形框初始化搜索窗。
(2)计算搜索窗内的颜色概率分布。
(3)运行Mean Shift,获得搜索窗新的大小和位置。
(4)在下一帧里用步骤(2)中的值重新初始化搜索窗的位置和大小,再跳转到步骤(2)继续进行。
单目标徘徊检测及跟踪方法流程图如图6所示。
图6 单目标徘徊检测及跟踪方法流程图
实验是在Microsoft Visual C++6.0环境下,基于C语言编程实现的。序列图像选自实际的监控录像,图像大小为320×320。图7是该方法的实际演示效果,只对防区内有徘徊行为发生的对象进行跟踪报警。
本文提出了一种针对静态场景下的单目标徘徊检测及跟踪方法,实验证明,该方法能够自动识别出潜在的威胁,帮助管理人员更加有效地做出相应的处理。在跟踪过程中考虑到了目标长时间静止会消失的问题,采取了处理方法。本方法的不足之处在于无法对防区内多对象的运动行为进行判断,如何解决所存在的问题是下一步研究的内容。
[1]邹芳,肖坦,蒋征朋.视频分析技术综述及铁路应用初探[J].铁路通信信号工程技术,2008,5(3):19-21.
[2]刘瑞祯,于仕琪.OpenCV教程[M].北京:北京航天航空大学出版社,2007.
[3]SPAGNOLO P, DORAZIO T, LEO M, et al.Moving object segmentation by background subtraction and temporal analysis[J].Image and Vision Computing, 2006,24(5):411-423.
[4]朱明旱,罗大庸,曹倩霞.帧间差分与背景差分相融合的运动目标检测算法[J].计算机测量与控制,2005,13(3):215-217.
[5]汪冲,席志红,肖春丽.基于背景差分的运动目标检测方法[J].应用科技,2009,36(10):16-18,30.
[6]DRISN O, GANOUN A, CANALSR.Improved object tracking with Camshift algorithm[C].IEEE International Conference on Acoustics, Speech and Signal Procession, 2006.
[7]董蓓,谢勤岚,贾茜.基于 Camshift算法的运动目标实时跟踪系统[J].现代电子技术,2008,19:116-118.
[8]刘雪,常发亮,王华杰.基于改进 Camshift算法的视频对象跟踪方法 [J].微计算机处理,2007,23(7-3):297-298,305.
[9]孙凯,刘士荣.多目标跟踪的改进 Camshift/卡尔曼滤波组合算法[J].信息与控制,2009,38(1):9-14.
[10]徐琨,贺昱曜,王卫亚.基于 Camshift的自适应颜色空间目标跟踪算法[J].计算机应用,2009,29(3):757-760.
图7 演示效果图