摘 要: 结合DM8168多核多通道的特点,设计了一个实时运动目标检测系统,能够实现视频数据的采集、实时运动检测、编解码以及传输等功能。采用ViBe的目标检测算法,并利用中值滤波进行改进,解决了背景中容易出现Ghost区的问题,提高了运动目标识别能力。最后采用像素扫描标记法实现了目标跟踪。实验结果表明,所提出的方法能在达芬奇平台上实现实时鲁棒的运动目标检测和跟踪。
关键词: 智能监控;目标检测;中值滤波;像素标记法
0 引言
迅速发展的视频监控在日常生活中起着十分重要的作用,实时处理和智能化分析已经成为视频监控发展的一种趋势。当前,TI公司推出的TMS320DM8168 Davinci平台集成了多个处理器与高效的异构多核和多通道软件开发框架,极大地满足了人们对高集成度、多功能视频监控的需求。本文综合利用DM8168及其异构多核视频的开发套件DVRRDK,设计并实现了嵌入式平台的实时运动目标检测系统。
传统的运动目标检测方法[1]存在鲁棒性较低,计算量较大且适应复杂背景变化的问题。为了适应嵌入式平台的软硬件系统,本文采用并改进ViBe运动目标检测算法,在运动检测中能有效应对光照变化和抖动等影响,而且计算量非常小。最后,在检测的基础上利用像素扫描标记方法[2-4]对目标进行分类,根据分类结果实现运动目标的跟踪。
1 系统结构设计与实现
1.1 总体结构设计
系统采用TI DM8168评估板,由一块负责视频处理的母板和一块主要负责输入输出的子板组成,系统高度集成了Cortex-A8主处理器、视频处理子系统VPSS、C674x DSP、3D加速模块等。视频采集采用子板上的TVP5158芯片,采用Linux操作系统下的TCP/IP协议进行网络传输,VPSS用来实现本地显示。一个网络监控系统主要包括视频采集、编码、处理、网络发送、传输、接收、解码与播放等模块,整体框架如图1所示。
摄像头将采集的模拟信号译码成数字视频YUV格式后交给DM8168进行处理,算法主要是在DSP上实现,在Video-M3协处理器上实现编解码,本地回放与测试通过Vpss-M3实现,Cortex-A8核协调各处理器运行,把处理后的视频帧通过Linux下的网络设备驱动发送到网络。
1.2 系统软件的实现
1.2.1 系统软件框架
为了实现视频监控的基本功能,系统采用DVRRDK开发套件,基于MCFW[5]软件框架,其结构如图2所示。本系统主要由3个从处理器和1个主处理器构成,主处理器为Cortex-A8,负责外围设备驱动、引导、加载各个从处理器等。3个从处理器分别负责视频捕获、播放、隔行转逐行、视频的编解码、运动目标检测等各类视频处理计算。本系统MCFW API包含4个子系统:视频捕获、视频显示、视频编码和视频解码子系统。各个子系统由若干Link API构成,MCFW API通过其下层的Link API实现,构成视频处理数据通路。
1.2.2 视频处理数据通路
系统的VPSS-M3通过CaptureLink获得一路视频数据并传给DSP,经过DSP视频算法的处理后进行编码,然后经过DupLink复制出两路视频数据,一路进行本地测试,一路传给ARM HOST A8。
本系统使用CCS编写TI标准的代码,生成库文件并加入到MCFW目录中,以供调用。本文的运动检测算法库文件运行在DSP上,算法接口实现于alg_link中。运动目标检测事件的触发是用基于sys/link的支持在异构多核之间传递消息的组件。
2 结合中值滤波的ViBe运动目标检测算法
2.1 ViBe运动目标检测算法
ViBe(Visual Background extractor)是VAN D M[6]等人提出一种像素级的背景减除算法。与传统的GMM[7]等方法需要假设模型不同的是,ViBe建立的是样本模型,采用随机更新策略,计算量小,对于光照的变化和抖动等其效果都十分稳定。该算法过程主要包括:建立背景模型、前景检测和模型更新。由于在第一帧中没有包含像素的历史信息,在初始建模时容易因存在运动目标和噪声而产生Ghost现象。
针对上述提到的不足,本文结合中值滤波提出了改进方法。在初始化模型的过程中,利用前L帧选取中间的K个像素值作为初始背景模型。实验效果如图3所示,利用中值滤波能在建立背景模型时有效避免Ghost区的出现,同时过滤其他随机噪声。
2.2 基于改进ViBe算法的实时运动检测
(1)建立背景建模。利用中值滤波方法得到初始背景模型M0;然后对于当前的第t帧建立背景模型,如图4所示:设x点处的像素值为p(x),通过历史t帧的选择和更新结果建立其包含N个样本的背景样本集:
M(x)={p1,p2,…,pN}(1)
(2)前景检测。SR(p(x))是以x为中心、R为半径的球体区域,用球体SR(p(x))和背景模型M(x)的交集来衡量p(x)与M(x)的相似度:
Sim(x)={SR(p(x)∩{p1,p2,…,pN})(2)
若Sim(x)大于阈值Th,则待分类点p(x)与背景模型相似,那么x点属于背景点,否则为前景。
(3)背景模型更新。采用随机更新粗略:在新的一帧中,当像素点p(x)被判断为背景点时,在N个样本中选择替换的样本值时,一个样本值在时刻t被更新的概率只有1/N,那么在经过时间dt后,样本值不被更新的概率是:
式(3)表明,当前样本值在背景模型中被替换的概率与当前时间t无关。
(4)输出。对每一帧设置一个前景点统计量F,当F大于设定的阈值时就输出当前帧。
3 运动目标跟踪
本文在上述的检测结果基础上结合像素扫描标记方法进行实时的运动目标跟踪,使目标检测系统能应用于实际的车流量统计、目标轨迹提取等方面。具体方法如下:
(1)设当前像素所属的目标类为Cxy;M为当前矩形框的最小类别号;List={V1,V2,…}表示属于同一个矩形框的类别号集合;set_List={L1,L2,...}表示所有List的集合。初始化所有像素和背景的类别号都为0。
(2)第一次扫描。将检测得到的二值化图像进行扫描,检查扫描框中像素的最小类别号,对每个像素进行标记分类。分类方法如下:用V表示扫描过程中的所有分类标记的类别数。如果像素值为1,则检查该像素所在矩形框中所有像素的最小类别号M:
当M为0时,如图5(a)所示,将当前像素标记为新的类别号V+1,并将Cxy更新为V+1。
最小M不为0时,类似于图5(b)所示的情况,将当前像素标记为M类,将Cxy更新为M。
(3)归并。所有的List集合中至少有一个相同的类别号时,归并为新集合并标记新类别号。此时,这些相同标记的点就是一个完整的目标所在区域。
4 实验与分析
4.1 算法仿真实验
为了验证算法的有效性,首先在4 GB内存、主频3.2 GHz的PC平台上进行仿真实验,并与参考文献[7]、[8]几种经典的背景建模方法进行比较,最终得到表1所示的仿真实验结果。由表1可以看到,在仿真实验中改进的ViBe目标检测算法的时间比几种传统的背景建模要更快速。
4.2 TI DM8168平台上的实时运动目标检测实验
基于TI DM8168 EVM平台的实时运动目标检测实验,在移植过程中,为了降低DSP的运算量,本文将一些浮点运算改为定点计算,减少了循环中的复杂运算。如图6、图7所示,改进的ViBe算法能在嵌入式平台中克服背景抖动,实现实时鲁棒的目标检测;采用像素标记法能够准确扫描并跟踪目标。
5 结论
设计并实现了基于DM8168的实时视频监控系统,利用中值滤波方法解决了ViBe算法中容易出现Ghost的问题;然后结合像素标记方法对目标进行分类并实现跟踪;最后,通过将该算法融合到TI的视频监控软件框架中,实现了嵌入式平台的实时运动目标检测。经过对系统进一步优化,本文提出的方案还可以应用于安防报警、数量统计等系统的应用中。
参考文献
[1] 苏松志,李绍滋,陈淑媛,等.行人检测技术综述[J].电子学报,2012,40(4):814-820.
[2] 卫保国,曹慈卓.一种基于标记修正和样本更新的目标跟踪算法[J].计算机应用研究,2012,29(5):1963-1966.
[3] 宋南,赵晶.基于改进型像素标记算法的目标定位[J].现代电子技术,2012,35(5):52-54.
[4] 胡小冉,孙涵.一种新的基于ViBe的运动目标检测方法[J].计算机科学,2014(2):149-152.
[5] 朱海.基于DM8168的视频监控系统的实现[D].成都:电子科技大学,2013.
[6] VAN D M, PAQUOT O. Background subtraction: experiments and improvements for ViBe[C]. 2012 IEEE Computer Society Conference on Computer Vision and Pattern Recognition Workshops(CVPRW), IEEE, 2012: 32-37.
[7] 徐成,田峥,李仁发.一种基于改进码本模型的快速运动检测算法[J].计算机研究与发展,2010,47(12):2149-2156.
[8] 刘静,王玲.混合高斯模型背景法的一种改进算法[J].计算机工程与应用,2010,46(13):168-170.0