基于归一化互相关匹配算法和Kalman预测器的目标跟踪 下载: 771次
1 引言
随着计算机视觉的不断发展,越来越多应用于视觉目标跟踪的算法不断被提出,但是提高目标跟踪算法的鲁棒性依旧是一个充满挑战的难题[1-2]。刘巧元等[3]将相关滤波引入到目标跟踪中,尽管在处理各类跟踪问题时,MOSSE算法性能并不能完全达到预期,但仍在目标跟踪领域具有里程碑式的意义。文献[ 4]提出一种基于小波金字塔搜索策略的快速归一化互相关(NCC)图像匹配算法。该算法在NCC算法的基础上,采用和表法分别计算图像均值、图像方差及图像间的互相关来降低运算的复杂度,减少算法的计算量;同时在选择特征点匹配搜索策略时,构造图像小波金字塔结构,利用分层匹配来提高图像匹配的效率。针对CAMShift目标跟踪算法容易对快速运动目标跟踪失败、且很难从失败中复原的问题,文献[ 5]利用Kalman预测器改进CAMShift算法,首先利用Kalman预测器预测下帧图像中目标的位置,以此位置为中心确定CAMShift算法进行目标跟踪的搜索区域,然后利用目标匹配时的Bhattacharyya系数和目标大小来判断目标是否被遮挡及被遮挡的程度。
目标遮挡是处理跟踪类问题时最常出现的难题,在研究跟踪问题时,处理遮挡类问题的算法不断被提出,已有处理遮挡问题的方法基本上可以分为两大类,即基于轨迹预测的方法和基于模板匹配的方法。文献[ 6]提出一种融合相关滤波与关键点匹配的跟踪算法,该算法利用多个相关滤波器分别对目标进行跟踪和验证,同时建立并实时更新一个关于目标和背景的关键点数据库,在验证跟踪失败后,利用关键点匹配方法对全局关键点进行分类,根据分类结果对目标关键点进行分析,从而得到重检测结果。文献[ 7]提出一种基于改进核相关滤波的运动目标跟踪算法,该算法首先提出基于相位特征的高斯核相关算子,以增强算法对光照强度变化的适应能力,然后融合Kalman预测器形成预测-跟踪-校准的跟踪机制,结合遮挡处理提高系统在目标被完全遮挡时跟踪的准确性。在模型更新方面,将在线更新与离线更新相结合,提出自适应更新策略,利用跟踪效果较好的历史模型建立备选模型,以及时解决模型偏移、特征丢失等问题。
本文基于Kalman预测器对NCC跟踪算法进行改进,首先通过三帧差分法提取出运动目标,并求出目标的位置;通过Bhattacharyya系数和Bhattacharyya距离,计算出当前帧目标与上一帧目标之间的相似程度,从而判断出目标是否被遮挡。如果目标没有被遮挡,直接使用NCC匹配算法对目标进行跟踪;如果目标被遮挡,则需要使用Kalman预测器预测目标位置并更新Kalman参数,在此基础上完成跟踪。
2 基于三帧差分法的目标检测
使用三帧差分法[8-9]实现目标检测。利用三帧差分法选取连续三帧视频图像进行差分运算,消除运动对背景的影响,从而提取较为准确的运动目标。先选取视频图像序列中连续三帧图像并分别计算相邻两帧的差分图像,然后选取适当的阈值对差分图像进行二值化处理,得到二值化图像,最后对得到的两幅二值图像进行逻辑与运算,获取共同部分,从而获得运动目标的轮廓信息。三帧差分法实现目标检测的步骤如下。
表 1. 运动区域数据
Table 1. Data of motion areas
|
1)选取视频中连续的三帧图像Ik(x,y)、Ik+1(x,y)及Ik+2(x,y),计算相邻图像的差分图像D(x,y),公式为
式中:k为第k帧。
2)选择合适的阈值T对差分图像D(x,y)进行二值化,得到二值图像R(x,y):
在使用三帧差分法将相邻差分图像转换为二值图像时,根据多次实验,阈值设为0.05,第7、8帧的差分二值图如
图 1. 差分二值图。(a)第7、8帧;(b)第8、9帧
Fig. 1. Differential binary images. (a) 7th and 8th frames; (b) 8th and 9th frames
3)对二值图像R(x,y)进行逻辑“与”,得到所需的目标前景B(x,y):
得到的目标前景图如
在目标前景图中,将像素值大于阈值的点看作目标在运动的点,经过多次尝试,阈值设为0.2时后续跟踪效果更好。
3 基于NCC匹配算法和Kalman预测器的视频目标跟踪
3.1 遮挡判断—Bhattacharyya距离
运动目标遮挡是目标跟踪难点之一,首先需要判断目标是否被遮挡。Bhattacharyya距离[10]可以判断两个直方图之间的相似程度,值越大代表两者之间的相似性越小。引入Bhattacharyya距离来判断目标是否被遮挡,如果没有被遮挡,调用NCC匹配算法持续跟踪目标;如果出现遮挡,则将Kalman预测器的预测值作为前景的位置和大小,并用该组数据更新Kalman预测器中的参数。基于Bhattacharyya距离的目标遮挡判断步骤如下。
1)首先利用目标模型的直方图pu(y)和待跟踪图像中目标的直方图qu(y)计算出Bhattacharyya系数ρ(y):
式中:u为图像中的第u个像素点;m为图像中总的像素点数。第18帧原图如
2)然后在Bhattacharyya系数ρ(y)基础上计算出Bhattacharyya距离d(y):
3)设定阈值T,如果d(y)<T,表明目标没有被遮挡;如果d(y)≥T,则目标被遮挡。
为了有效地判断目标是否被遮挡,自适应阈值T具体定义为
式中:Tmax设定为0.39;自适应权重系数λ∈(0,1),具体定义为
式中:A为当前帧目标框面积;Apre为上一帧目标框面积。
3.2 归一化互相关匹配算法
NCC匹配算法[4]是一种最常见且经典的图像匹配算法,是基于灰度信息完成匹配的。假设原图像S的大小为a×a,模型图像L的大小为n×n,且a>n,其中a、n分别为图像S、模板L的像素。匹配过程如下:
1)模板L在图像S上平移,搜索窗口所覆盖的子图,记作S(i, j),(i, j)为子图的左上角顶点在搜索图S中的坐标;
2)通过相关函数计算子图与实时图的灰度相关值;
3)对搜索图进行自上而下、自左而右的遍历搜索,计算每一个子图位置的NCC系数值,值最大的子图位置即为匹配位置。
NCC系数r(x,y)的计算通常分去均值和不去均值两种。
去均值:
不去均值:
式中:u1和u2分别为模板L和图像S匹配窗口内像素的灰度值;W1(x+i,y+j)和W2(x+i,y+j)分别为需匹配的两幅图像在(x+i,y+j)处的灰度值。NCC系数r(x,y)为-1~1,取值越大表示两者相关性越大。当r(x,y)=-1时,表示两图像之间毫无相关性;当r(x,y)=1时,表示两图像之间相关性最大。模板L、原图像S、NCC系数最大值点cmax,匹配位置坐标(xoffset,yoffset)如
3.3 Kalman预测器
Kalman预测器[11-12]是一个在最小误差协方差情况下的最优估计方法。运用Kalman预测器预测目标在下一帧可能出现的位置,从而解决跟踪过程中出现的遮挡问题。Kalman主要分为两部分,即预测与更新。
1)系统预测阶段
状态预测方程:
误差协方差预测方程:
2)系统更新阶段
Kalman增益系数:
状态修正方程:
误差协方差修正方程:
式中:A为作用在
设定系统初始状态向量为xinit,表达式为
设定Xsmooth为当前时刻状态变量的最优估计值,其类型为4×35 double,取第一行第一列为col,代表目标位置的最优估计值横坐标;取第二行第一列为row,代表目标位置的最优估计值纵坐标。w和h分别表示被遮挡目标的宽度和长度,部分Kalman数据如
表 2. 滤波数据
Table 2. Data of smoothing
|
3.4 遮挡目标的跟踪算法
将模板目标与下一帧图像之间的Bhattacharyya距离d(y)与设定阈值T相比较,判断目标是否发生遮挡。当d(y)<T时,表示目标未被遮挡,此时使用NCC匹配算法;当d(y)≥T时,说明此时目标已被遮挡,采用Kalman预测器跟踪目标。所提算法流程如
4 实验与结果分析
4.1 实验环境与参数设置
实验在内存为16G,处理器为i5-7500(3.40 Hz)的计算机上进行,编程环境为MATLAB2016a,操作界面如
采用所提算法分别测试了标准测试视频Laboratory.avi和自拍摄视频gyy.avi,并对得到的结果与NCC匹配算法在同一视频中运行的结果进行对比。针对目标被上下遮挡及左右遮挡进行实验,通过Bhattacharyya距离判断目标是否被遮挡,若未被遮挡,采用NCC匹配算法,跟踪框为绿色g;若被遮挡,采用Kalman算法,跟踪框为红色r。
4.2 实验分析
通过两个实验来验证所提算法的跟踪效果。
实验1跟踪结果如
表 3. 视频Laboratory的遮挡情况
Table 3. Occlusion of video Laboratory
|
实验2跟踪结果如
以帧数为横坐标,运动目标左上角坐标(xoffset,yoffset)分别为纵坐标,作目标运动轨迹图,如
结合
图 13. 坐标轨迹图。(a) xoffset;(b) yoffset
Fig. 13. Diagram of coordinate trajectory. (a) xoffset; (b) yoffset
表 4. 视频gyy的遮挡情况
Table 4. Occlusion of video gyy
|
4.3 结果比较
为了进一步评价所提算法的性能,
由
表 5. 跟踪成功率结果
Table 5. Results of tracking success rate%
|
从实验中可以看出:在目标被遮挡时,经典的NCC匹配算法在处理被遮挡目标时,跟踪效果欠佳;所提改进的结合遮挡判断和Kalman预测器的NCC匹配算法可以有效地判断出目标是否被遮挡,在判断遮挡与否后能调用不同的跟踪算法,从而保证目标能被成功捕捉到。
5 结论
为解决目标被小部分遮挡或被严重遮挡时的跟踪问题,利用三帧差分法提取出运动目标,然后通过计算当前帧目标与下一帧图像之间的Bhattacharyya距离来判断目标是否被遮挡。当目标没有被遮挡时,采用NCC匹配算法,计算出当前帧目标与下一帧图像的最大相似性,从而定位出目标位置;当目标被遮挡时,利用Kalman预测器预测目标的位置和大小,并将这组数据作为测量值代入Kalman预测器中更新参数。实验表明,基于NCC算法和Kalman预测器的视频目标跟踪算法能有效解决跟踪出现的遮挡问题。所提算法在静态背景下效果良好,但在动态背景下效果欠佳,这是因为三帧差分法适宜于在静态背景下提取运动目标,因此动态背景下的目标提取是未来需要继续研究的问题。
[1] Wu Y, Lim J, Yang M H. Object tracking benchmark[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2015, 37(9): 1834-1848.
[2] DanelljanM, HagerG, Khan FS, et al. Learning spatially regularized correlation filters for visual tracking[C]∥2015 IEEE International Conference on Computer Vision (ICCV), December 7-13, 2015, Santiago, Chile. New York: IEEE, 2015: 4310- 4318.
[3] 刘巧元, 王玉茹, 张金玲, 等. 基于相关滤波器的视频跟踪方法研究进展[J]. 自动化学报, 2019, 45(2): 265-275.
Liu Q Y, Wang Y R, Zhang J L, et al. Research progress of visual tracking methods based on correlation filter[J]. Acta Automatica Sinica, 2019, 45(2): 265-275.
[4] 吴鹏, 徐洪玲, 宋文龙. 结合小波金字塔的快速NCC图像匹配算法[J]. 哈尔滨工程大学学报, 2017, 38(5): 791-796.
Wu P, Xu H L, Song W L. A fast NCC image matching algorithm based on wavelet pyramid search strategy[J]. Journal of Harbin Engineering University, 2017, 38(5): 791-796.
[5] 闫钧华, 陈少华, 艾淑芳, 等. 基于Kalman预测器的改进的CAMShift目标跟踪[J]. 中国惯性技术学报, 2014, 22(4): 536-542.
Yan J H, Chen S H, Ai S F, et al. Target tracking with improved CAMShift based on Kalman predictor[J]. Journal of Chinese Inertial Technology, 2014, 22(4): 536-542.
[6] 张哲, 孙瑾, 杨刘涛. 融合相关滤波与关键点匹配的跟踪算法[J]. 光学学报, 2019, 39(2): 0215001.
[7] 邢运龙, 李艾华, 崔智高, 等. 改进核相关滤波的运动目标跟踪算法[J]. 红外与激光工程, 2016, 45(S1): S126004.
[8] 李成美, 白宏阳, 郭宏伟, 等. 一种改进光流法的运动目标检测及跟踪算法[J]. 仪器仪表学报, 2018, 39(5): 249-256.
Li C M, Bai H Y, Guo H W, et al. Moving object detection and tracking based on improved optical flow method[J]. Chinese Journal of Scientific Instrument, 2018, 39(5): 249-256.
[9] Sengar S S, Mukhopadhyay S. Foreground detection via background subtraction and improved three-frame differencing[J]. Arabian Journal for Science and Engineering, 2017, 42(8): 3621-3633.
[10] 章学静, 陈禾, 杨静. 结合卡尔曼滤波和Mean Shift的抗遮挡跟踪算法[J]. 北京理工大学学报, 2013, 33(10): 1056-1061.
Zhang X J, Chen H, Yang J. Anti-occlusion tracking algorithm combined Kalman filter and Mean Shift[J]. Transactions of Beijing Institute of Technology, 2013, 33(10): 1056-1061.
[11] Zhang A, Bao S D, Gao F, et al. A novel strong tracking cubature Kalman filter and its application in maneuvering target tracking[J]. Chinese Journal of Aeronautics, 2019, 32(11): 2489-2502.
[12] 孔军, 汤心溢, 蒋敏, 等. 基于多尺度特征提取的Kalman滤波跟踪[J]. 红外与毫米波学报, 2011, 30(5): 446-450.
Article Outline
马永杰, 龚影, 陈敏. 基于归一化互相关匹配算法和Kalman预测器的目标跟踪[J]. 激光与光电子学进展, 2020, 57(18): 181023. Yongjie Ma, Ying Gong, Min Chen. Target Tracking Based on Normalized Cross-Correlation Matching Algorithm and Kalman Predictor[J]. Laser & Optoelectronics Progress, 2020, 57(18): 181023.