黄柏华,黄 新
(桂林电子科技大学电子工程与自动化学院,广西桂林 541004)
基于ARM-Linux的改进Camshift算法目标跟踪系统
黄柏华,黄 新
(桂林电子科技大学电子工程与自动化学院,广西桂林 541004)
为了使ARM-Linux目标跟踪系统在复杂场景中准确跟踪目标并实现远程监控,提出基于ARM-Linux的改进Camshift算法目标跟踪系统。利用摄像机成像原理设置搜索窗口的阈值,防止Camshift算法错误地把相近色归为目标。利用Kalman滤波器观测数据对系统状态进行最优估计的特点,弥补Camshift算法在目标被遮挡或变速运动时收敛位置偏离目标的不足。利用TCP协议使ARM-Linux系统与远程计算机建立连接,实现跟踪结果远程显示。实验结果表明,该系统在相近色干扰、目标被遮挡、变速运动时能稳定跟踪目标。
ARM-Linux;TCP协议;Camshift;Kalman滤波
嵌入式系统是一种为特定应用而设计的专用计算机系统,具有软硬件可裁剪、功耗低、体积小等特点。近年来,随着嵌入式技术的飞速发展,嵌入式系统在许多应用场合代替了通用计算机,降低了产品的成本,充分发挥了嵌入式系统的优越性。在社会公共安全亟需得到充分保障的大环境下,基于嵌入式系统的图像处理技术日益成为研究热点。程子伦[1]基于ARM嵌入式的目标跟踪系统,实现了对目标的识别与跟踪。吴禄慎等[2]基于ARM9,利用自适应背景差法,实现远程监控运动目标和GPRS报警。颜科斐[3]在ARM嵌入式系统上,使用一种摄像头位移自动判别方法,解决了亮度影响识别入侵精度的问题。在众多目标跟踪算法中,Meanshift算法以其无需参数、快速模式匹配的特性得到广泛应用[4]。胡波等[5]提出一种基于Kalman和Meanshift的组合算法,在状态向量中包含搜索窗口宽度的动态信息以及中心位置,预测搜索窗口位置,动态调整窗口大小。孙凯等[6]采用Camshift、Kalman滤波器组合算法,解决了匀速运动目标交错、重叠、分离的问题。传统的Kalman、Camshift组合算法只适合匀速运动目标的预测,当短时间内目标发生强机动转弯时,则跟踪精度会大幅下降[7]。鉴于此,提出基于ARM-Linux的改进Camshift算法目标跟踪系统,通过Kalman滤波器改进Camshift算法,解决Camshift算法在受遮挡、高速运动、相近色干扰下容易丢失目标的问题,通过TCP协议传输跟踪视频序列到远程上位机,实现目标跟踪结果的远程显示。
Camshift算法与Meanshift算法的不同在于其能够自动调整搜索窗口。在Meanshift算法中,设二维平面上的点{xi}i=1,2,…,n是二维图像上各个像素点,设核函数
h为带宽;c为常数;x为迭代起始位置;m(x)-x为迭代方向。迭代方向总是指向概率密度增大最快的方向,通过多次迭代最终可获得收敛点,从而得到局部最大值(局部的重心)[6]。根据文献[5]的假设条件,令∇P(x)=0,可得到Meanshift算法的迭代算式m(x)。
2.1 灰度处理及反向投影
目标跟踪过程中,目标亮度会随着位置和背景亮度变化,若基于RGB颜色空间进行跟踪,会因为亮度的剧烈变化造成目标丢失,因此,图像应转换成HSV图像。OpenCV提供了转换函数cvCvtColor(image,hsv,CV_BGR2HSV),转换后函数中的hsv指针变量指向的是HSV图像。平滑处理hsv指向的HSV图像后,通过cvSplit(hsv,hue,NULL,NULL,NULL)获取hue单通道图像,从而完成灰度处理。
2.2 根据跟踪目标调整搜索窗
Camshift算法根据目标大小自动调整搜索窗口,在相近色干扰时Camshift算法会错误地把相近色物体归为目标的一部分,当目标与相近色物体分离时,搜索框可能停留在相近色物体上,无法继续跟踪目标。对于这种情况,由于Meanshift算法不具备自动调整搜索窗口的功能,不会把相近色物体归为跟踪目标的一部分,从而在相近色物体干扰下仍能继续跟踪目标。
在实际场合中,目标在摄像机成像的尺寸与目标到摄像机的距离、物体的真实尺寸有关:当目标到摄像机距离一定时,目标尺寸与其成像尺寸成正比;当目标尺寸一定时,目标到摄像机的距离与目标的成像大小成正比。据此,考虑摄像机到目标的距离比较固定,不同目标的尺寸相差不大,设搜索窗口的阈值为目标自身面积的1.6倍,当跟踪目标受到背景色干扰导致搜索窗口自动增大达到阈值时,搜索窗口不再增大,不会将相近色物体归为目标,经过多次迭代后收敛位置为目标的重心,从而解决Camshift算法受相近色干扰的问题。Camshift搜索窗口设置阈值效果如图1所示。
图1 Camshift搜索窗口设置阈值效果Fig.1 Effect of Camshift search window with threshold
2.3 Camshift与Kalman滤波组合算法
Camshift算法结构如图2所示。该算法以上一帧收敛点为中心初始化搜索窗口,通过多次迭代的方法获取与起始点的Bhattacharyya系数最大的位置作为输出,若目标被遮挡或做变速运动导致搜索窗口不包含目标,不能保证输出的位置就是目标的真实位置[2]。
图2 Camshift算法结构Fig.2 Structure of Camshift algorithm
文献[8]中的无迹卡尔曼滤波器(scaled unscented Kalman filter,简称SUKF)与Meanshift组合算法,借助SUKF获取目标的尺度变化,自适应调节Meanshift算法中核函数带宽,实现根据目标尺寸自动调整搜索窗口。SUKF与Meanshift组合算法相对Meanshift算法提高了跟踪成功率,但SUKF维数的增加会增加算法复杂度,不利于在嵌入式系统实现实时目标跟踪。Camshift是改进的Meanshift算法,计算量小并能自动调节搜索窗口适应目标尺寸的变化,与Kalman滤波组合能在嵌入式系统上获得良好的实时跟踪效果。因此,采用Camshift与Kalman组合算法,组合算法框图如图3所示。
图3 Kalman与Camshift组合算法Fig.3 Kalman algorithm in combination with Camshift
Kalman滤波器是一种状态预测器,能弥补Camshift算法在目标被遮挡、变速运动的不足。Kalman滤波与Camshift组合算法搜索目标步骤:
1)以Camshift算法输出的目标重心更新Kalman滤波器状态的初始值;
2)Kalman滤波器根据更新的状态,预测目标在下一帧的位置;
3)Camshift算法利用Kalman滤波器预测的位置作为初始搜索窗口中心,输出收敛的位置。
Kalman滤波器一般假设跟踪物体做匀速线性运动,能够在目标遮挡后继续跟踪目标,但运动目标在跟踪过程中突然停止或者速度变化,Kalman滤波器无法根据假设的匀速条件做出正确预测,导致目标跟踪失败。Kalman算法将目标的位置、速度以及加速度作为预测对象,使得组合算法适应目标变速运动。算法将Kalman滤波器的状态设为xk=[x(k),vx,ax,y(k),vy,ay]T,相应的状态转移矩阵为,其中
0为3阶0方阵。引入平面轴方向加速度ax、ay,此时x轴的位移为,x方向的速度vx=axT,y方向的计算与x方向相同,常数T为前后两帧视频图像的时间差。相应的观测矩阵
Camshift算法总是在局部区域内寻找与跟踪目标的巴氏距离最近的点作为目标在某一帧图像中的位置。当被跟踪目标受到遮挡或变速运动时,Camshift算法在不包含目标的区域内无法找到与目标巴氏距离最近的点。Kalman滤波器根据目标历史的观测数据对系统状态进行最优估计,获得目标位置的预测值,修正Camshift算法的输出,弥补Camshift算法存在的不足。2种算法目标跟踪效果如图4、5所示。
图4 被遮挡目标跟踪效果Fig.4 Tracking effect of blocked target
图5 变速运动的跟踪效果Fig.5 Tracking effect of variable motion
3.1 系统组建
系统的软件框图如图6所示。远程嵌入式系统主要通过OpenCV提供的各类函数接口完成图像数据的采集、目标检测与跟踪,通过Socket提供的函数实现网络向上位机实时传输图像。
图6 嵌入式系统软件框图Fig.6 Diagram of embedded system software
上位机软件使用Qt编写,Qt提供了QTcpServer类,还有很多Socket编程接口,能很方便地实现网络通信。软件主要实现接收远程发送的视频图像数据,并实时显示跟踪结果。图7为上位机的软件框图。
图7 上位机软件框图Fig.7 Diagram of PC software
3.2 系统测试与结果分析
3.2.1 系统测试
测试ARM-Linux系统的硬件为搭载contex-A7双核处理器的BananaPi开发板。开发板以USB接口的摄像头采集视频,通过网线传输视频到远程计算机显示。硬件连接完成后,给开发板上电,确保开发板与远程计算机的网络连接正常。远程计算机运行服务器程序,监听网络端口。开发板上运行跟踪程序,当串口终端打印“Camera is sending video stream…”时,服务器上Qt编写的上位机软件显示监控场景的画面。当目标进入监控场景,组合算法对目标实施跟踪,图8~10矩形框表示跟踪目标的位置。
3.2.2 结果分析
1)相近色干扰实验主要验证系统在相近色干扰下对目标跟踪的稳定性。图8为系统的摄像机在某实验室内采集的一段视频中的3帧画面。第119帧,身穿黄色外套的目标经过贴着黄色纸的墙,矩形框尺寸不变且包含目标;第207帧,目标到达黄色纸的边缘,矩形框保持尺寸不变;第236帧,目标与墙上的黄色纸分离,矩形框跟随目标。实验表明,系统解决了相近色干扰导致的目标丢失问题。
图8 相近色干扰实验Fig.8 Experiment of similar color interference
2)遮挡实验主要验证系统在受遮挡目标重新出现时能否继续正确跟踪目标。图9为系统摄像机拍摄的一段视频中的3帧画面。在第1515帧中选择跟踪的目标区域;第1527帧由于目标在背包后面,导致目标暂时丢失;在1536帧,目标重新出现,系统继续跟踪丢失的目标。实验表明,系统解决了目标被遮挡导致的目标丢失问题。
图9 遮挡实验Fig.9 Occlusion test
3)变速运动实验主要验证系统在目标变速运动时能否正常跟踪目标。图10为系统摄像机拍摄的一段视频中的3帧画面。在第33帧中选择跟踪目标,此时目标静止;第41帧目标突然加速起步行走,矩形框正确包含目标;第82帧目标突然放慢行走速度,整个过程矩形框紧跟目标。实验表明,系统在目标变速运动时能连续跟踪目标。
图10 变速运动实验Fig.10 Experiment of variable motion
设计了基于ARM-Linux的改进Camshift算法目标跟踪系统,在ARM-Linux系统上实现目标的跟踪,并通过网络将跟踪画面传输到远程计算机上显示。目标跟踪算法是研究的主要内容,针对Camshift算法存在的不足,对Camshift的搜索窗口设置了阈值,并提出Kalman滤波与Camshift的组合算法,解决了目标跟踪存在的目标被遮挡、相近色干扰、目标变速运动导致目标丢失的问题。然而各测试实验代表性不强,需要更多的测试、更长的测试时间,才能证明系统具有较好的稳定性。基于ARM-Linux远程目标跟踪系统是无重叠视域多摄像机目标跟踪的重要部分,为多摄像机的目标跟踪做了研究准备。
[1] 程子伦.基于ARM嵌入式平台的视频目标识别与跟踪系统的研究与实现[D].石家庄:河北科技大学,2015:1-57.
[2] 吴禄慎,吴益根.基于ARM9的自适应背景差法智能远程视频监控系统[J].仪表技术与传感器,2015(11):81-84.
[3] 颜科斐.嵌入式智能视频监控报警系统设计[J].实验技术与管理,2014,31(2):69-73.
[4] COMANICIU D,RAMESH V,MEER P.Real-time tracking of non-rigid objects using mean shift[C]//Proceedings of the IEEE Computer Society Conference on Computer Vision and Pattern Recognition.Los Alamitos,CA,USA:IEEE Computer Society,2000:142-149.
[5] 胡波,陈恳,徐建瑜,等.基于Kalman预测和Mean-2shift算法的视频目标跟踪[J].光电子·激光,2009,20(11):1517-1522.
[6] 孙凯,刘士荣.多目标跟踪的改进Camshift/卡尔曼滤波组合算法[J].信息与控制,2009,38(1):9-14.
[7] AI-MAHMOUD M,ZOLTOWSKI M D.A novel approach to space-time-frequency coded MIMO-OFDM over frequency selective fading channels[C]//2010IEEE International Conference on Acoustics Speech and Signal Processing,2010:2554-2557.
[8] 刘献如,蔡自兴.UKF与Mean shift算法相结合的实时目标跟踪[J].中南大学学报(自然科学版),2011,42(5):1338-1343.
编辑:翁史振
Target tracking system with improved Camshift algorithm based on ARM-Linux
HUANG Baihua,HUANG Xin
(School of Electronic Engineering and Automation,Guilin University of Electronic Technology,Guilin 541004,China)
In order to make ARM-Linux accurately track target in a complex scene and realize remote monitoring,target tracking system with improved camshift algorithm based on ARM-Linux is proposed.Camera imaging principle is used to set a threshold for the search window for preventing Camshift algorithm wrongly classifies similar background color as the target.Kalman filter optimal estimation of the system state is used to make up for the lack of Camshift convergence location that deviates from the target location while the target is blocked or variable motion.TCP protocol is used to connect ARMLinux system and the remote computer,the tracking results are displayed on the remote computer.Experimental results show that the system can stably track the target in the case of similar color interference,obscured target and variable motion.
ARM-Linux;TCP protocol;Camshift;Kalman filter
TP391.4
:A
:1673-808X(2016)05-0396-05
2016-02-26
广西科学研究与技术开发计划(桂科攻11107001-40)
黄新(1978-),男,湖北黄冈人,副教授,研究方向为可测性设计、图像处理。E-mail:hxgl@guet.edu.cn
黄柏华,黄新.基于ARM-Linux的改进Camshift算法目标跟踪系统[J].桂林电子科技大学学报,2016,36(5):396-400.