裴莉莉,张 赫,杨 波
(1.长安大学信息工程学院,陕西 西安 710064;2.西安翔腾微电子科技有限公司,陕西西安 710068;3.大唐移动通信设备有限公司西安分公司,陕西西安 710061)
智能视频监控技术是一个众多学科共同作用下的新兴研究领域,也是当前计算机视觉、图像处理等方面的研究热点[1],能够为政府部门、公共区域等场所进行实时、自动全时段的监控[2]。
智能视频监控系统最早出现于欧美等发达国家[3-4],欧盟程序委员会设立ADVISOR 项目,实现对机场、金融机构、地铁等公共场所的监控[5]。我国中科院自动化研究所在城市交通监控方面有深入的研究,其开发的VSTAR 系统可以实现对行人的实时监控以及行为检测[6]。
在目标检测方面,文献[7]提出一种改进的ViBe算法,通过对背景进行填充得到真实背景图像,最后对运动目标进行检测。文献[8]提出一种改进的三帧差分算法,该算法对尺度变化和部分遮挡的目标跟踪鲁棒性更优。文献[9]结合内轮廓填充法,对运动目标检测区域起到增强和滤除干扰的作用。
在目标跟踪方面,文献[10]实现了以HSV 色彩空间为基础的Camshift 算法,能够较准确地跟踪视频中不同速度的车辆。文献[11]提出一种改进的Camshift 跟踪算法来获得目标质心的位置,并成功应用在移动机器人系统中。文献[12]提出一种结合Kalman 滤波和LBP 纹理的改进Camshift 算法,能够在颜色相似干扰、目标快速运动等复杂背景中跟踪目标。
以上各类智能监控系统的设计与研发和三帧差分算法与Camshift 算法在目标跟踪中的应用为该研究提供了良好的实现思路。基于此,文中首先对三帧差分算法进行改进,得到前景检测方法;其次针对目标被干扰后出现无法跟踪的情况,对Camshift 算法进行改进,提高了目标跟踪算法的准确性与检测效率;然后将上述两种算法相结合,实现检测物体是否被放回原位的功能;最后利用Qt 软件设计上位机界面,实现智能目标跟踪与移位还原监控系统。
监控系统的核心算法主要有3 个部分,分别是运动目标检测算法、运动目标跟踪算法、移位还原算法。
在该模块中,将本地视频或摄像头采集的序列作为当前系统的输入视频序列,然后对三帧差分算法进行改进,实现对运动目标的检测,并与GUI 设计相结合。
由于传统帧间差分算法[13]在前景目标提取时,检测到的目标不完整,其外轮廓常常出现“双边”现象。同时目标的运动速度越快,产生的这种“双边”现象就越明显,还会伴随很大的空洞[14]。因此,文中在三帧差分算法的基础上又作了如下处理:
将三帧差分算法处理得到的三帧连续图像进行“与”运算,并保留其公共部分,消除部分噪声后进一步去除噪点和闪烁像素点;之后进行中值滤波处理,消除闪烁点,提取图像轮廓,并将此步骤重复进行10 次;最后对该图像进行腐蚀操作,从而得到运动目标。
三帧差分算法与改进的三帧差分算法对背景复杂的视频处理结果如图1 所示。可以看出,原始算法只能够检测到运动目标的轮廓信息,目标内部存在明显的黑色空洞现象,且伴有一定的噪声;而改进的三帧差分算法可以准确地检测出运动目标,并且图像中的噪声得到了有效消除。
图1 改进前后三帧差分算法的实验结果对比
当背景颜色与目标颜色相似或者与目标附近有相似的运动物体时,仅采用Camshift 算法会导致目标跟踪失败。而AKAZE 算法不依赖目标的颜色特征,通过视频序列中的运动图像与目标模板之间进行特征匹配,从而得到运动目标的位置信息。在Camshift 算法中融合AKAZE 算法可以解决背景颜色对运动目标的干扰。当目标被严重遮挡时,通过Kalman 滤波对跟踪目标下一时刻在图像中可能运动到的位置进行预先判断[15],再通过融合后的Camshfit 算法搜索目标并调整搜索框的大小和位置,从而实现跟踪目标被遮挡后不丢失目标。
基于以上分析,改进后的算法流程如图2 所示。
图2 改进后Camshift算法实现流程
具体步骤如下:
1)读取图像序列,将图像序列由原来的RGB 色彩空间转换到HSV 色彩空间,提取图像的H 通道。
2)选取待跟踪目标,用选出的目标框作为目标的初始状态,计算并显示目标的颜色直方图Hobj,计算出目标模板的AKAZE 特征点,为后续的特征匹配做准备。
3)初始化Kalman 滤波器的参数。
4)预测下一时刻前景目标在场景中可能出现的位置以及得到目标框的宽度和高度。
5)计算场景中被跟踪的目标颜色直方图Hsce,并结合步骤2)计算得到的Hobj,从而得到相似度D(Hobj,Hsce)。以该相似度作为目标是否被遮挡的判断依据[16]。
6)判断D(Hobj,Hsce)与Tth大小。当D(Hobj,Hsce)>Tth时,表示目标被遮挡,此时将视频序列中的目标子图与目标模板进行AKAZE 特征点匹配,并统计出两者之间的最优匹配数N。将N与阈值Nth进行比较,若N≥Nth,则采用随机抽样一致算法来确定被跟踪目标在场景中的位置信息以及包围运动目标的矩形框的宽度和高度。根据得到的数据更新Kalman 滤波算法中的参数。若N<Nth,则直接更新Kalman 滤波器中的参数。
当D(Hobj,Hsce)≤Tth时,表示目标没有被遮挡,此时采用Camshift 算法实时跟踪前景目标,并将得到的前景目标位置信息以及矩形框的大小作为Kalman滤波器的参数,实时更新Kalman滤波器参数。
7)在图像序列中画出矩形运动目标。
8)判断是否为最后一帧图像,如果不是最后一帧图像则跳转到步骤4),如果是则结束跟踪。
采用RANSAC算法(Random Sample Consensus)[17]将目标模板的图像特征与视频序列中的目标子图按单映射进行匹配。将目标模板图像4 个角的映射点显示在当前的图像中,从而得到运动目标在当前视频序列中的位置,此时跟踪丢失后的目标将再一次出现在区域当中。
使用OpenCV3.1 计算机视觉算法库中的测试视频vtest.avi,对Camshift 算法以及改进后的目标跟踪算法进行测试,结果如图3 所示。
图3 有遮挡目标跟踪结果
从图3 中可以发现,当运动目标被部分遮挡并且在背景中存在干扰时,改进后算法可以准确并持续性地对目标进行跟踪,而原始算法则会出现明显的目标误判。
移位还原技术首先检测项目中是否存在残留的工程图像,然后再采集图像。将采集到的图像与现有视频图像进行目标移位还原对比,若继续还原目标物体则继续进行检测,直到目标物体不再进行还原动作后,记录结果并保存,流程如图4 所示[18-19]。
图4 移位还原流程
监控系统的设计采用GUI 用户界面、接口、图像处理算法,整个系统由一个主窗口和多个对话框组成。所采用的软件开发环境、运行环境及开发语言如表1 所示。
表1 智能系统监控系统开发环境需求
系统在界面设计方面主要包括登录界面和目标跟踪还原等子功能界面。
系统登录界面分为系统管理员登录和操作人员登录,系统管理员有最高权限并且是唯一的,管理员可以对其他人员进行授权,授权后的其他人员就可以通过指定的用户名和密码进行后续操作。
运动目标跟踪界面主要由3 部分组成:图像显示区、控制区和参数显示区。
移位还原界面主要包含3 部分:位于左上角多摄像头间的切换区域、位于左侧的工具箱和图像显示区。
目标跟踪模块首先启动摄像头或打开视频文件,然后选择目标,选出待跟踪的目标。此时算法中目标模板被初始化,接着开始跟踪目标。其中算法计算得到特征点匹配对数为10,巴氏距离为0.348,图5 为目标跟踪结果。
图5 目标跟踪的结果
在启动系统后,进入移位还原系统。从摄像头中采集一帧图像并将其显示在图像采集区。然后移走目标物体,在摄像头显示区域显示物体的轮廓信息。
当需要对物体进行还原时,只需将目标物体逐渐向原位置移动,右侧图像采集区的图像可以帮助对目标物体进行快速定位。在目标物体逐渐被还原的过程中,已被完全还原的部分外部轮廓会消失,如图6 所示,从“验证还原结果”处可以看到,目标物体已被大部分还原,并且在“图像还原程度”区,定量地显示物体被还原99.83%。
图6 目标物体临近还原
当移动目标物体与初始轮廓完全融合时,目标被完全还原,如图7 所示。从图中可以得到,像素值的对比为0,目标物体被100%还原。为了进一步检验目标物体的还原程度,采用AKAZE 算法对目标物体的特征点进行检测,并对前后两张图像的特征点进行匹配,结果显示两幅图特征点100%匹配。
图7 目标物体完全被还原
针对复杂场景下目标跟踪和移位还原的问题,设计了一种智能监控系统。首先,对三帧差分检测算法和Camshift 目标跟踪算法进行改进,通过AKAZE特征匹配算法获得当前图像序列中跟踪目标的位置和大小。当目标失去跟踪能力时,能够重新定位移动目标。当运动目标被完全遮挡时,Kalman 滤波算法可以实现对前景目标位置的预测,从而确保目标的定位。其次,实现了目标的移位还原功能。之后转换图像格式,基于Qt 语言和OpenCV 完成软件界面设计。最后,通过实际复杂与有遮挡场景中运动目标的测试,可视化地展示了算法在监控系统的实际运行效果。
良好的测试效果表明,设计的监控系统可以很好地用于复杂背景下的目标检测与跟踪,也可以用于刑侦案件中的目标移位还原,对保障人民生命财产安全具有积极意义。