基于Kalman和Surf的Camshift目标跟踪研究
王超+苏湛
摘要:
传统的Camshift运动目标跟踪算法在目标遮挡或背景颜色干扰下,容易陷入局部最大值,造成目标跟踪丢失。针对这一问题,提出了一种结合Kalman滤波及Surf特征提取的改进算法。该算法需在视频序列中手动框选跟踪目标作为目标模板。将传统Camshift算法得到的目标候选区域与目标模板进行直方图对比,得到的巴氏系数若大于设定的阈值则说明目标跟踪丢失。采用Surf算法,在该帧图像中匹配出新的目标候选区域,最终得到候选区域的位置信息更新Kalman滤波。仿真实验表明,改进后的算法在复杂背景下仍然具有良好的跟踪效果。
关键词:
Camshift算法;Kalman预测器;Surf算法;颜色干扰;目标遮挡
DOIDOI:10.11907/rjdk.172315
中图分类号:TP312
文献标识码:A文章编号文章编号:16727800(2018)001007704
Abstract:The traditional Camshift moving target tracking algorithm is easy to fall into the local maximum value and lost tracking target under the target occlusion or background color interference. An improved algorithm combining Kalman filter and Surf feature extraction is proposed. Firstly, it is necessary to manually select the target as a template region in the sequence of video frames while using this algorithm. Then calculate the Bhattacharyya coefficient of the candidate region obtained by the traditional Camshift algorithm and the template region by histogram matching. If the coefficient is greater than the threshold, this situation represents lost tracking traget. The Surf algorithm is used to match the new target candidate region in the frame image. The Kalman filter is updated according to the position information of the finally obtained candidate region. The simulation results show that the improved algorithm still has a good tracking effect in the complex background.
Key Words:Camshift algorithm; Kalman predictor; Surf algorithm; color interference; target occlusion
0引言
目標跟踪结合机器视觉、图像处理、模式识别等多个学科知识,广泛应用在交通、军事、工业等领域[1]。Camshift是一种基于颜色直方图的跟踪算法,利用颜色的相关信息跟踪运动目标。该算法在黑白背景下具有良好的跟踪效果,但当跟踪目标的颜色与背景颜色相似,或目标被遮挡时,使用该算法很容易造成目标跟踪丢失,并且很难恢复[23]。
传统的Camshift改进算法很多。文献[4]加入了帧间差分法,当出现颜色干扰时,采用帧间差分法仍然可以检测出运动物体,但是该方法仅适用于视频画面中存在单个运动物体,当画面中同时有多个运动物体时,则无法自动选出特定运动目标。文献[5]中加入了Kalman滤波解决目标被遮挡问题,但跟踪效果易受光照及背景颜色等外界因素干扰。
针对上述问题,本文提出了一种结合Kalman预测器与Surf特征匹配的改进方案。当跟踪失败时,利用Surf算法,对目标模板模型及对应帧图像进行特征匹配,重新定位候选目标区域。利用 kalman滤波,预测下一帧图像中搜索框的信息,依此实现持续准确的跟踪。
2.2Surf特征提取匹配
Surf (Speeded Up Robust Features),即加速的具有鲁棒性特征。Surf算法是尺度不变特征算法(Sift)的加速版。理论上,Surf的速度是Sift的3倍,并且稳定性更好。利用Surf算法可以在两幅图像中找出相同的物体,并且建立映射关系[13]。
Surf算法步骤:通过Hessian矩阵构造高斯金字塔尺度空间,通过非最大信号确定特征点,再采用三维线性插值法得到亚像素级特征点,选取特征点的主方向,最后生成特征向量[14]。
在跟踪过程中,若发生目标跟踪丢失,则需要采用该算法重新定位目标区域。基本思路为:跟踪前手动选取跟踪目标并保存,作为模板模型。当检测到丢失跟踪目标时,将保存的目标模型和对应的视频帧图像进行Surf特征点提取与匹配,再通过透视变换,即可得到目标区域的具体位置信息,从而找回丢失的运动目标。
如图1所示,首先使用Surf算法,对目标书籍及书籍所在的场景图进行特征提取,再使用Flann匹配对应的特征点,最后通过透视变换,便可在场景图中找出目标书籍,即图1右侧区域所框选出来的四边形区域。通过上述操作就可以得到目标在相应场景中的位置信息,进而实现对跟踪目标的重新定位。在运动目标跟踪过程中,若发生丢失跟踪目标的情形,则需要采用该方法重新找到跟踪的物体,实现对目标的重新定位。
2.3改进的Camshift算法
传统的Camshift算法在实际跟踪过程中存在相应缺陷,本文介绍一种基于Kalman预测器与Surf特征匹配的改进方案。在跟踪过程中,通过对Camshift跟踪的候选区域与最初框选的目标模板区域进行直方图对比,可以得到一个巴氏系数d(H1,H2):
式中:H1,H2为需要进行对比的直方图参数,d(H1,H2)∈[0,1],巴氏系数越接近0,说明两幅图内容越接近。设置一个阈值,当得到的巴氏系数大于这个阈值时,说明此时跟踪得到的候选区域与模板模型内容相似度较低,即丢失跟踪目标[15]。通过该方法可方便地判断此帧图像中运动目标是否跟踪成功。改进后的算法步骤如下:
(1)读入视频帧序列,并用鼠标手动选取所要跟踪的目标,框选出的区域即为目标模板模型,将该区域作为初始搜索窗口。
(2)初始化Kalman滤波。
(3)根据搜索窗口信息,利用Camshift算法进行目标跟踪,得到目标候选区域。
(4)将跟踪得到的目标候选区域与目标模板模型进行直方图对比,判断得到的巴氏系数是否大于设定的阈值(本文设置的阈值为0.4)。如果大于阈值,则表明丢失跟踪目标,跟踪失败。利用Surf算法对目标模板模型与对应的视频帧图像进行特征提取,使用Flann算法进行特征点匹配。最后通过透视变化,重新找回视频画面中所要跟踪的运动目标,得到新的目标候选区域。
(5)将目标候选区域的位置和大小作为观测值,更新Kalman预测器参数。
(6)读入下一帧图像,利用参数更新后的Kalman滤波,预测出运动目标的位置信息。
(7)根据预测出的运动模板位置信息,更新搜索窗口,返回步骤(3)继续执行,直至视频播放结束。
对应的流程如图2所示。
3实验仿真分析
仿真实验处理器型号为Inteli53210M,主频2.50GHz,内存8GB,操作系统Windows 7,使用Visual Studio2015以及OpenCV 3.2.0版本。
图3和图4是一组汽车行驶视频序列,选取汽车为跟踪目标,跟踪结果显示在红色矩形框内。画面中天空的颜色与汽車的颜色相似,从而对跟踪造成干扰。将该视频序列的第21帧框选为跟踪目标。图3采用的是传统的Camshift跟踪算法,图4采用的是基于本文改进后的跟踪算法。由于天空颜色的干扰,两种方法都不能完全框选出整个汽车。图3中,从第121帧开始,红色矩形框逐渐偏离汽车,第325帧则完全丢失跟踪目标。图4中,虽然红色矩形框也存在偏离目标的情况,但是和图3相比偏离程度明显降低,并且在第325帧图像中,仍然很好地对汽车进行了跟踪,未出现丢失跟踪目标的情况。
图5和图6是一组道路行人视频序列,选取其中的一个行人作为跟踪目标。在该视频序列的第212帧选取跟踪目标,即身穿浅绿色上衣的行人。第263帧中,路灯上的指示牌及周围的行人对跟踪目标造成遮挡,第274帧画面中,遮挡消失。此次跟踪,两种方法均未出现丢失跟踪目标的情况。但是采用传统Camshift跟踪算法得到的红色矩形框的面积,明显要大于采用改进的跟踪算法得到的红色矩形框面积。对比后发现,改进后的算法能对行人实现更为准确的定位跟踪,效果得到显著提高。
仿真实验表明,改进后的Camshift具有更好的跟踪效果,跟踪准确度得到明显提高。但是由于加入了Surf特征匹配算法,程序运行时间要略微延长。由于Camshift算法是基于颜色直方图进行跟踪的,所以背景颜色干扰对跟踪过程影响较大[16],在此情形下,改进后的算法虽然能明显改善跟踪效果,但仍然存在结果矩形框偏离运动目标的情形。综上,改进后的算法达到了预期效果。在背景颜色干扰与目标遮挡情形下,仍然能进行有效跟踪。
4结语
本文在传统Camshift跟踪算法的基础上,加入了Kalman预测器及Surf特征匹配,因而在复杂背景条件下仍然体现出良好的跟踪效果。但在特定场景下出现背景颜色干扰时,跟踪效果并不是特别理想。当今深度学习技术发展迅速,利用深度学习法实现运动目标跟踪是研究趋势,如何利用此方法提高跟踪效果将作进一步研究。
参考文献:
[1]徐光柱,雷帮军.实用性目标检测与跟踪算法原理及应用[M].北京:高等教育出版社,2015:45.
[2]CHUNBO XIU, FUSHAN BA. Target tracking based on improved Camshift method[C]. Chinese Control and Decision Conference, 2016.
[3]SHENGLUAN HUANG, JINGXIN HONG. Moving object tracking system based on Camshift and Kalman filter[C]. International Conference on Consumer Electronics, Communications and Networks, 2011.
[4]ZHENG HAN, RUI ZHANG, LINRU WEN, et al. Moving object Tracking method based on improved Camshift algorithm[C]. International Conference on Industrial InformaticsComputing Technology, Intelligent Technology, Industrial Information Integration, 2016.
[5]XIANGYU WANG, XIUJUAN LI. The study of moving target tracking based on KalmanCamShift in the video[C]. The 2nd International Conference on Information Science and Engineering,2010.
[6]湯泉.基于AdaBoost和Camshift的人脸检测与跟踪[J].电子科技,2016,29(12):166169.
[7]储珺,杜立辉,汪凌峰,等.基于局部背景感知的目标跟踪[J].自动化学报,2012,38(6):19851995.
[8]CHIH HSIEN,HSIAYUN JUNG,LIOUJEN SHIUN CHIANG. Directional prediction CamShift algorithm based on adaptive search pattern for moving object tracking[J]. Journal of RealTime Image Processing, 2016,12(1):183195.
[9]牛春峰,刘世平,王中原.制导炮弹飞行姿态的卡尔曼滤波估计方法[J].中国惯性技术学报,2012,20(5):510514.
[10]闫钧华.基于Kalman预测器的改进的CamShift目标跟踪[J].中国惯性技术学报,2014,22(4):536542.
[11]KIN HONG WONG, YING KIN YU, HO YIN FUNG. Robust and efficient pose tracking using perspectivefourpoint algorithm and Kalman filter[C]. St.Petersburg, Russia: International Conference on Mechanical, System and Control Engineering, 2017.
[12]孙凯,刘士荣.多目标跟踪的改进Camshift卡尔曼滤波组合算法[J].信息与控制,2009,38(1):914.
[13]谢红,原博,解武.基于Orb特征点匹配的改进Camshift运动目标跟踪算法[J].应用科技,2016,45(5):713.
[14]任克强,胡梦云.基于改进 SURF 算子的彩色图像配准算法[J].电子测量与仪器学报,2016,30(5):748756.
[15]张磊,彭力.结合Surf与Kalman滤波的Camshift跟踪算法[J].电子测量与仪器学报,2017,31(3):389394.
[16]唐文平,胡庆龙.基于多目标Camshift手势识别[J].电子科技,2012,25(2):7181.
(责任编辑:杜能钢)
摘要:
传统的Camshift运动目标跟踪算法在目标遮挡或背景颜色干扰下,容易陷入局部最大值,造成目标跟踪丢失。针对这一问题,提出了一种结合Kalman滤波及Surf特征提取的改进算法。该算法需在视频序列中手动框选跟踪目标作为目标模板。将传统Camshift算法得到的目标候选区域与目标模板进行直方图对比,得到的巴氏系数若大于设定的阈值则说明目标跟踪丢失。采用Surf算法,在该帧图像中匹配出新的目标候选区域,最终得到候选区域的位置信息更新Kalman滤波。仿真实验表明,改进后的算法在复杂背景下仍然具有良好的跟踪效果。
关键词:
Camshift算法;Kalman预测器;Surf算法;颜色干扰;目标遮挡
DOIDOI:10.11907/rjdk.172315
中图分类号:TP312
文献标识码:A文章编号文章编号:16727800(2018)001007704
Abstract:The traditional Camshift moving target tracking algorithm is easy to fall into the local maximum value and lost tracking target under the target occlusion or background color interference. An improved algorithm combining Kalman filter and Surf feature extraction is proposed. Firstly, it is necessary to manually select the target as a template region in the sequence of video frames while using this algorithm. Then calculate the Bhattacharyya coefficient of the candidate region obtained by the traditional Camshift algorithm and the template region by histogram matching. If the coefficient is greater than the threshold, this situation represents lost tracking traget. The Surf algorithm is used to match the new target candidate region in the frame image. The Kalman filter is updated according to the position information of the finally obtained candidate region. The simulation results show that the improved algorithm still has a good tracking effect in the complex background.
Key Words:Camshift algorithm; Kalman predictor; Surf algorithm; color interference; target occlusion
0引言
目標跟踪结合机器视觉、图像处理、模式识别等多个学科知识,广泛应用在交通、军事、工业等领域[1]。Camshift是一种基于颜色直方图的跟踪算法,利用颜色的相关信息跟踪运动目标。该算法在黑白背景下具有良好的跟踪效果,但当跟踪目标的颜色与背景颜色相似,或目标被遮挡时,使用该算法很容易造成目标跟踪丢失,并且很难恢复[23]。
传统的Camshift改进算法很多。文献[4]加入了帧间差分法,当出现颜色干扰时,采用帧间差分法仍然可以检测出运动物体,但是该方法仅适用于视频画面中存在单个运动物体,当画面中同时有多个运动物体时,则无法自动选出特定运动目标。文献[5]中加入了Kalman滤波解决目标被遮挡问题,但跟踪效果易受光照及背景颜色等外界因素干扰。
针对上述问题,本文提出了一种结合Kalman预测器与Surf特征匹配的改进方案。当跟踪失败时,利用Surf算法,对目标模板模型及对应帧图像进行特征匹配,重新定位候选目标区域。利用 kalman滤波,预测下一帧图像中搜索框的信息,依此实现持续准确的跟踪。
2.2Surf特征提取匹配
Surf (Speeded Up Robust Features),即加速的具有鲁棒性特征。Surf算法是尺度不变特征算法(Sift)的加速版。理论上,Surf的速度是Sift的3倍,并且稳定性更好。利用Surf算法可以在两幅图像中找出相同的物体,并且建立映射关系[13]。
Surf算法步骤:通过Hessian矩阵构造高斯金字塔尺度空间,通过非最大信号确定特征点,再采用三维线性插值法得到亚像素级特征点,选取特征点的主方向,最后生成特征向量[14]。
在跟踪过程中,若发生目标跟踪丢失,则需要采用该算法重新定位目标区域。基本思路为:跟踪前手动选取跟踪目标并保存,作为模板模型。当检测到丢失跟踪目标时,将保存的目标模型和对应的视频帧图像进行Surf特征点提取与匹配,再通过透视变换,即可得到目标区域的具体位置信息,从而找回丢失的运动目标。
如图1所示,首先使用Surf算法,对目标书籍及书籍所在的场景图进行特征提取,再使用Flann匹配对应的特征点,最后通过透视变换,便可在场景图中找出目标书籍,即图1右侧区域所框选出来的四边形区域。通过上述操作就可以得到目标在相应场景中的位置信息,进而实现对跟踪目标的重新定位。在运动目标跟踪过程中,若发生丢失跟踪目标的情形,则需要采用该方法重新找到跟踪的物体,实现对目标的重新定位。
2.3改进的Camshift算法
传统的Camshift算法在实际跟踪过程中存在相应缺陷,本文介绍一种基于Kalman预测器与Surf特征匹配的改进方案。在跟踪过程中,通过对Camshift跟踪的候选区域与最初框选的目标模板区域进行直方图对比,可以得到一个巴氏系数d(H1,H2):
式中:H1,H2为需要进行对比的直方图参数,d(H1,H2)∈[0,1],巴氏系数越接近0,说明两幅图内容越接近。设置一个阈值,当得到的巴氏系数大于这个阈值时,说明此时跟踪得到的候选区域与模板模型内容相似度较低,即丢失跟踪目标[15]。通过该方法可方便地判断此帧图像中运动目标是否跟踪成功。改进后的算法步骤如下:
(1)读入视频帧序列,并用鼠标手动选取所要跟踪的目标,框选出的区域即为目标模板模型,将该区域作为初始搜索窗口。
(2)初始化Kalman滤波。
(3)根据搜索窗口信息,利用Camshift算法进行目标跟踪,得到目标候选区域。
(4)将跟踪得到的目标候选区域与目标模板模型进行直方图对比,判断得到的巴氏系数是否大于设定的阈值(本文设置的阈值为0.4)。如果大于阈值,则表明丢失跟踪目标,跟踪失败。利用Surf算法对目标模板模型与对应的视频帧图像进行特征提取,使用Flann算法进行特征点匹配。最后通过透视变化,重新找回视频画面中所要跟踪的运动目标,得到新的目标候选区域。
(5)将目标候选区域的位置和大小作为观测值,更新Kalman预测器参数。
(6)读入下一帧图像,利用参数更新后的Kalman滤波,预测出运动目标的位置信息。
(7)根据预测出的运动模板位置信息,更新搜索窗口,返回步骤(3)继续执行,直至视频播放结束。
对应的流程如图2所示。
3实验仿真分析
仿真实验处理器型号为Inteli53210M,主频2.50GHz,内存8GB,操作系统Windows 7,使用Visual Studio2015以及OpenCV 3.2.0版本。
图3和图4是一组汽车行驶视频序列,选取汽车为跟踪目标,跟踪结果显示在红色矩形框内。画面中天空的颜色与汽車的颜色相似,从而对跟踪造成干扰。将该视频序列的第21帧框选为跟踪目标。图3采用的是传统的Camshift跟踪算法,图4采用的是基于本文改进后的跟踪算法。由于天空颜色的干扰,两种方法都不能完全框选出整个汽车。图3中,从第121帧开始,红色矩形框逐渐偏离汽车,第325帧则完全丢失跟踪目标。图4中,虽然红色矩形框也存在偏离目标的情况,但是和图3相比偏离程度明显降低,并且在第325帧图像中,仍然很好地对汽车进行了跟踪,未出现丢失跟踪目标的情况。
图5和图6是一组道路行人视频序列,选取其中的一个行人作为跟踪目标。在该视频序列的第212帧选取跟踪目标,即身穿浅绿色上衣的行人。第263帧中,路灯上的指示牌及周围的行人对跟踪目标造成遮挡,第274帧画面中,遮挡消失。此次跟踪,两种方法均未出现丢失跟踪目标的情况。但是采用传统Camshift跟踪算法得到的红色矩形框的面积,明显要大于采用改进的跟踪算法得到的红色矩形框面积。对比后发现,改进后的算法能对行人实现更为准确的定位跟踪,效果得到显著提高。
仿真实验表明,改进后的Camshift具有更好的跟踪效果,跟踪准确度得到明显提高。但是由于加入了Surf特征匹配算法,程序运行时间要略微延长。由于Camshift算法是基于颜色直方图进行跟踪的,所以背景颜色干扰对跟踪过程影响较大[16],在此情形下,改进后的算法虽然能明显改善跟踪效果,但仍然存在结果矩形框偏离运动目标的情形。综上,改进后的算法达到了预期效果。在背景颜色干扰与目标遮挡情形下,仍然能进行有效跟踪。
4结语
本文在传统Camshift跟踪算法的基础上,加入了Kalman预测器及Surf特征匹配,因而在复杂背景条件下仍然体现出良好的跟踪效果。但在特定场景下出现背景颜色干扰时,跟踪效果并不是特别理想。当今深度学习技术发展迅速,利用深度学习法实现运动目标跟踪是研究趋势,如何利用此方法提高跟踪效果将作进一步研究。
参考文献:
[1]徐光柱,雷帮军.实用性目标检测与跟踪算法原理及应用[M].北京:高等教育出版社,2015:45.
[2]CHUNBO XIU, FUSHAN BA. Target tracking based on improved Camshift method[C]. Chinese Control and Decision Conference, 2016.
[3]SHENGLUAN HUANG, JINGXIN HONG. Moving object tracking system based on Camshift and Kalman filter[C]. International Conference on Consumer Electronics, Communications and Networks, 2011.
[4]ZHENG HAN, RUI ZHANG, LINRU WEN, et al. Moving object Tracking method based on improved Camshift algorithm[C]. International Conference on Industrial InformaticsComputing Technology, Intelligent Technology, Industrial Information Integration, 2016.
[5]XIANGYU WANG, XIUJUAN LI. The study of moving target tracking based on KalmanCamShift in the video[C]. The 2nd International Conference on Information Science and Engineering,2010.
[6]湯泉.基于AdaBoost和Camshift的人脸检测与跟踪[J].电子科技,2016,29(12):166169.
[7]储珺,杜立辉,汪凌峰,等.基于局部背景感知的目标跟踪[J].自动化学报,2012,38(6):19851995.
[8]CHIH HSIEN,HSIAYUN JUNG,LIOUJEN SHIUN CHIANG. Directional prediction CamShift algorithm based on adaptive search pattern for moving object tracking[J]. Journal of RealTime Image Processing, 2016,12(1):183195.
[9]牛春峰,刘世平,王中原.制导炮弹飞行姿态的卡尔曼滤波估计方法[J].中国惯性技术学报,2012,20(5):510514.
[10]闫钧华.基于Kalman预测器的改进的CamShift目标跟踪[J].中国惯性技术学报,2014,22(4):536542.
[11]KIN HONG WONG, YING KIN YU, HO YIN FUNG. Robust and efficient pose tracking using perspectivefourpoint algorithm and Kalman filter[C]. St.Petersburg, Russia: International Conference on Mechanical, System and Control Engineering, 2017.
[12]孙凯,刘士荣.多目标跟踪的改进Camshift卡尔曼滤波组合算法[J].信息与控制,2009,38(1):914.
[13]谢红,原博,解武.基于Orb特征点匹配的改进Camshift运动目标跟踪算法[J].应用科技,2016,45(5):713.
[14]任克强,胡梦云.基于改进 SURF 算子的彩色图像配准算法[J].电子测量与仪器学报,2016,30(5):748756.
[15]张磊,彭力.结合Surf与Kalman滤波的Camshift跟踪算法[J].电子测量与仪器学报,2017,31(3):389394.
[16]唐文平,胡庆龙.基于多目标Camshift手势识别[J].电子科技,2012,25(2):7181.
(责任编辑:杜能钢)