«上一篇
文章快速检索     高级检索
下一篇»
  应用科技  2019, Vol. 46 Issue (1): 36-42  DOI: 10.11991/yykj.201805009
0

引用本文  

程子一, 刘志林. 改进的核相关滤波算法在自航模动态目标跟踪应用[J]. 应用科技, 2019, 46(1): 36-42. DOI: 10.11991/yykj.201805009.
CHENG Ziyi, LIU Zhilin. Application of improved kernel correlation filtering algorithm in small ship dynamic target tracking[J]. Applied Science and Technology, 2019, 46(1): 36-42. DOI: 10.11991/yykj.201805009.

基金项目

国家自然科学基金项目(51379044);中央高校基本科研业务项目(HEUCFG2018)

通信作者

刘志林, E-mail:liuzhilin@hrbeu.edu.cn

作者简介

程子一, 男, 硕士研究生;
刘志林, 男,教授,博士生导师

文章历史

收稿日期:2018-05-18
网络出版日期:2018-07-17
改进的核相关滤波算法在自航模动态目标跟踪应用
程子一 , 刘志林     
哈尔滨工程大学 自动化学院, 黑龙江 哈尔滨 150001
摘要:针对核相关滤波(KCF)算法在尺度变换和严重遮挡造成跟踪失败的缺点,本设计在KCF算法基础上通过增加尺度变换框与跟踪效果检测的方法,对KCF算法进行了改进,解决了在目标被遮挡或者离开屏幕跟踪失败的问题。实验表明,该方法应用在自航模的动态目标跟踪上,使自航模在目标大小变化、目标被遮挡和逃离视野时,能成功地找回目标并继续跟踪。
关键词目标跟踪    相关滤波    动态目标    机器视觉    尺度变换    机器学习    船舶控制    循环矩阵    
Application of improved kernel correlation filtering algorithm in small ship dynamic target tracking
CHENG Ziyi , LIU Zhilin     
College of Automation, Harbin Engineering University, Harbin 150001, China
Abstract: Kernel correlation filtering(KCF) algorithm is a target tracking algorithm, or KCF algorithm. KCF algorithm has shortcomings in scale transformation and severe occlusion, which causes failure of tracking. The KCF algorithm is improved by increasing the scale transform frame and the method for detection of tracking effect, which solves the problem of failure of the target being blocked or leaving the screen tracking. The experiment shows that when the method is applied to the dynamic target tracking of a small ship, it can make the small ship retrieve the target and continue to track the target when the target has changed in size, obscured and escaped from the field of vision.
Keywords: target tracking    correlative filtering    dynamic target    machine vision    scale transformation    machine learning    ship control    circulant matrix    

目标跟踪一直是计算机视觉中的经典问题,它广泛应用于自动驾驶、人机交互和交通监控等领域[1-3]。目标跟踪[4]要求对输入的图像序列准确地标识出目标位置和大小等信息。Bolme等[5]首次将相关滤波思想引入到目标跟踪,提出了基于误差最小二乘[6]的MOSSE滤波器跟踪。Zhang等[7]提出了时空上下文跟踪(spatio-temporal context,STC)算法,利用深度时空上下文信息,把背景融入到卷积滤波器去训练,具有一定的抗遮挡性。Danelljan等[8]提出了自适应的颜色属性(color name,CN),他将颜色的属性集成到(circulant structure of tracking-by-detection with kernels,CSK)跟踪器上,对形变有较好的自适应性。Henriques等[9]改进CSK算法,提出KCF算法[10-13],采用梯度直方图(histogram of oriented gradient,HOG)[14]特征, 相比于灰度特征具有更好的跟踪性能。

本文在KCF算法的基础上,加入尺度框与目标跟踪质量检测,并应用到自航模的动态目标跟踪上。在实验中将改进的KCF算法与原始KCF算法进行对比,验证了改进算法的优缺点。

1 KCF算法与改进 1.1 KCF算法基本原理

1) 构造样本

x=[x1, x2, …, xn]为基础样本, 通过循环采样得到样本矩阵:

$ \mathit{\boldsymbol{X}} = \mathit{\boldsymbol{C}}\left( {\rm{x}} \right) = \left( {\begin{array}{*{20}{c}} {{x_1}}&{{x_2}}&{{x_3}}& \cdots &{{x_n}}\\ {{x_n}}&{{x_1}}&{{x_2}}& \cdots &{{x_{n - 1}}}\\ {{x_{n - 1}}}&{{x_n}}&{{x_1}}& \cdots &{{x_{n - 2}}}\\ \vdots &{}& \cdots &{}& \vdots \\ {{x_2}}&{{x_3}}&{{x_4}}& \cdots &{{x_1}} \end{array}} \right) $

由文献[6]可知循环矩阵可以由离散傅里叶变换进行对角化:

$ X = \mathit{\boldsymbol{F}}{\rm{diag}}\left( {\hat x} \right){\mathit{\boldsymbol{F}}^{\rm{H}}} $ (1)

式中:^为离散傅里叶变换,F为离散傅里叶矩阵。

2) 训练样本

KCF算法引入核函数来解决线性不可分的问题,提高了目标识别度,并用岭回归训练分类器:

$ \left\{ \begin{array}{l} f\left( {{x_i}} \right) = {\mathit{\boldsymbol{w}}^{\rm{T}}}\varphi \left( {{x_i}} \right)\\ w = \sum\limits_i {{\alpha _i}\varphi \left( {{x_i}} \right)} \\ \mathop {\min }\limits_\alpha {\left\| {\mathit{\boldsymbol{\varphi }}\left( X \right)\mathit{\boldsymbol{\varphi }}{{\left( X \right)}^{\rm{T}}} - \mathit{\boldsymbol{y}}} \right\|^2} + \lambda \left\| {\mathit{\boldsymbol{\varphi }}{{\left( X \right)}^{\rm{T}}}\mathit{\boldsymbol{\alpha }}} \right\| \end{array} \right. $ (2)

式中:f(xi)为样本xi的分类值,αi为待定的分类系数,φ(x)为核函数对应的映射函数,λ为正则化系数,y为样本的标签矩阵,式(2)为岭回归目标函数。解得

$ \mathit{\boldsymbol{\alpha }} = {\left( {\mathit{\boldsymbol{K}} + \mathit{\boldsymbol{\lambda I}}} \right)^{ - 1}}\mathit{\boldsymbol{y}} $

其中K=C(kxx),同式(1)的性质可对α进行快速地计算:

$ \hat \alpha = \frac{{\hat y}}{{{k^{\hat xx}} + \lambda }} $

3) 检测目标

当下一帧图像到来时,以目标框位置的图像作循环采样,获得检测样本集z,则目标的位置响应公式如式(3)。

$ \mathit{\boldsymbol{f}}\left( z \right) = {\mathit{\boldsymbol{w}}^{\rm{T}}}\mathit{\boldsymbol{z}} = \sum\limits_{i = 1}^n {{\alpha _i}k\left( {z,{x_i}} \right)} $ (3)

式中k(z, xi)为核函数。设Kz为检测样本和训练样本的核矩阵,由文献[11]可知Kz为循环矩阵,令KZ=C(kxz),根据循环矩阵性质并对其傅里叶对角化得

$ f\left( {\hat z} \right) = {{\mathit{\boldsymbol{\hat K}}}^{xz}}\Theta \alpha $

式中Θ表示元素相乘。通过计算

$ \max f\left( z \right) = f\left( {{z_t}} \right) $

则样本zt(ztz)的移位坐标为目标框的移动坐标,即目标新位置。

4) 更新分类器

$ {\alpha _n} = \left( {1 - \beta } \right){\alpha _{n - 1}} + \beta {\rm{ne}}{{\rm{w}}_{{\alpha _n}}} $
$ {\hat x_n} = \left( {1 - \beta } \right)\mathop {{x_{n - 1}}}\limits^{\widehat {}} + \beta {\rm{ne}}{{\rm{w}}_{{x_{\hat n}}}} $

式中:β为更新系数,αnαn-1表示当前帧与上一帧的分类系数,xnxn-1表示当前帧与上一帧获得的x

1.2 改进KCF算法

当摄像头与目标距离的改变时,目标在图像中呈现的大小也将改变,为了使目标跟踪具有尺度变换稳定性,我们在检测到目标的新位置后,会更换不同尺度的2个目标框去重新检测目标位置,比较3次检测的目标响应最大值f(zt),取最大的一个作为目标新的位置和目标框大小。

具体目标框的变换大小比例为原始框的1.1倍和0.9倍,其效果如图 1~3所示。

Download:
图 1 目标在远距离
Download:
图 2 目标在初始距离
Download:
图 3 目标在近距离

由1.1节可知,KCF算法是在检测样本中选取f(z)最大的点作为目标新的坐标,那么在运动目标不是特别快的时候,通过实验发现,在目标被遮挡的过程中,f(zt)出现了如下变化:

首先,截取此过程视频部分图片,如图 4~6

Download:
图 4 目标遮挡24帧画面
Download:
图 5 目标遮挡40帧画面
Download:
图 6 目标遮挡64帧画面

从40帧开始目标被水桶遮住,在这之前,KCF算法还是能够准确地找到目标的位置。然而,目标的f(zt)却差别很大。图 4~6对应的f(zt) =0.84、0.24和0.66。通过记录此过程的f(zt),绘制出了如图 7所示曲线。

Download:
图 7 遮挡过程的响应曲线

图 7可以发现,在目标没有被遮挡、也没有干扰的时候,目标的跟踪状态较好,f(zt)始终在0.7以上;在目标被遮挡的第40帧的时候,目标的f(zt)出现了大幅下降,通过不断更新的模板和参数,它开始学习了错误的目标,如图 3第110帧画面,f(zt)又回到了0.65以上,对遮挡物进行跟踪,从而丢失原先目标。因此,在f(zt)出现急剧下降时,可以认为目标被障碍物遮挡或者目标离开视野,此时应该中断目标的继续跟踪,保护之前的参数不再继续修改。

本设计采用的目标遮挡的判定准则为:

$ \left\{ \begin{array}{l} u = \sum\limits_{i = 1}^n {\frac{{{V_i}}}{n}} \\ {\sigma ^2} = \sum\limits_{i = 1}^n {\frac{{{{\left( {{V_i} = u} \right)}^2}}}{n}} \\ {V_p} < u - \lambda \sigma \end{array} \right. $ (4)

式中:u为丢失目标以前n帧画面的最大响应值f(zt)平均值;σ表示标准差;本设计的n为30时效果良好;Vp表示当前帧的响应值,当它比平均值还小λσ时,则认为目标丢失。

通过式(4)可知,如果λ设置得过大,那么对于目标丢失的检测则更加苛刻,在部分遮挡的情况下可能发生漏检;同理,如果设置得过小,容易造成误测,在船舶抖动或者目标形变的情况下,很有可能发生误检。

为了进一步地确定λ的值,进行了如下试验:对不同值的λ,去检验目标遮挡检测效果,在满足式(4)时停止跟踪,也不再画框,并在水池对目标船进行了试验,图 8为框取目标图,图 9为目标框消失图。

Download:
图 8 框取目标
Download:
图 9 目标框消失

首先,如图 8所示,先在水面上框取了目标船(此时λ =2),然后让目标航行到障碍物后。目标船被遮挡时,目标框消失,λ =2可以检测到目标的被遮挡,此过程的f(zt)曲线如图 10所示。

Download:
图 10 目标被遮挡实验响应曲线

然而,当目标船转向发生形变时,程序也判定为目标丢失,目标框消失,即发生了误检。其f(zt)曲线如图 11所示。

Download:
图 11 目标船转向实验响应曲线

图 11可以看出,曲线虽然发生了下降,但是没有在目标遮挡情况下降的幅度大,所以无法满足式(4),λ =2显然过小,无法满足设计要求。

λ =5,再次进行上述试验,具体如图 12所示。

Download:
图 12 目标被遮挡实验

在目标船被遮挡的时候,目标框没有消失,此时为漏检,它将会错误学习到障碍物信息。绘制f(zt)曲线如图 13所示。

Download:
图 13 图(12)对应响应曲线(λ =5)

图 13就可以发现,目标船被遮挡时,f(zt)发生了明显的下降,由于λ =5条件过于苛刻,算法无法判定为遮挡,所以无法满足设计要求。

通过多次试验,并选取了岩石、木桩、灌木丛、塑料瓶等20个障碍物对不同λ值进行试验。绘制检测率与误检率曲线,如图 14所示。

Download:
图 14 检测率与误检率曲线

图 14中实线曲线表示误检率,即没有发生遮挡而被判定为遮挡;虚线曲线表示检测率,即发生了遮挡而被成功检测到了。显然,对于目标跟踪,误检与检测失败两者的代价是不同的:误检时,参数不再更新,仍然可以利用此参数检测出目标;而检测失败时,参数依照遮挡物更新,则不会再检测出目标。

所以,本设计必须保证检测率100%,由图 14可知,在λ =2.4时检测率仍然是100%,但是为了保留一定余量,本设计取λ =2.2。

在检测到目标遮挡后,停止更新分类器参数,然后根据上一帧目标框的高度,在图中构建一个扫描通道,如图 15。在这个通道中,以原目标框尺寸,利用滑窗法,滑动步长为目标框整数倍宽度像素,如式(3)继续计算目标框中的响应值f(z),当不满足式(4)时即认为找回目标,并继续进行跟踪。

Download:
图 15 目标扫描通道

综上所述,改进后算法流程如图 16~17所示。

Download:
图 16 KCF算法流程
Download:
图 17 改进KCF算法流程
2 自航模的航向控制

本设计假定为恒速运动,所以只要进行舵角的控制即可达到航向的控制。在航速一定条件下,舵角δ与航向变化速度和航向变化加速度的关系为

$ {T_1}{T_2}\ddot r + \left( {{T_1} + {T_2}} \right)\dot r + r = K\delta + K{T_3}\delta $ (5)

式中r为航向角速度。对式(5)进行简化,得出一阶KT方程[15],即

$ T\dot r + r = K\delta $

针对本设计的自航模,通过船舶回转试验和“Z”型试验,计算出了自航模的KT参数分别为:K=0.584 6,T =0.134 8,航速u =0.25 m/s。自航模的控制模型传递函数为

$ G\left( s \right) = \frac{{0.584\;6}}{{0.134\;8{s^2} + s}} $

设计PID航向控制器Kp =10.35,Ki =0.89,Kd=0.25对自航模进行航向控制。摄像头传回的图像为宽度W =640 pix的画面。那么

$ p - \frac{W}{2} = ka $

式中:p为在图像上目标中心位置像素横坐标,k =9.143为比例系数,a为航向偏差角,当a为正时表示目标在目标在自航模的右前方。

当满足式(4)目标丢失时:

1) 若目标丢失位置在图像边缘,则为目标脱离视野,自航模保持转向舵角,直至找回目标;

2) 若目标丢失位置不在图像边缘,则认为目标被遮挡,此时保持航向不变,直至找回目标。

3 实验 3.1 改进KCF后稳定性

为验证本文改进算法的稳定性,本文选取了VIVID Tracking Evaluation Web Site上的目标跟踪图片序列作为验证,λ =2.2,n=30, 与本设计保持一致,结果如表 1

表 1 改进算法对一般视频实验

目标遮挡检测率为88.8%, 目标遮挡后找回率为44.4%;对于目标的遮挡,KCF算法全部跟踪失败。

3.2 自航模目标跟踪

由于场地等条件限制,本实验在一个4 m×4 m的水池进行,自航模初始为静止状态,位于水池的一角,以另一艘自航模为目标,开始跟踪时立即加速到最大速度(u=0.25 m/s)并匀速航行。通过在水池正上方安装的摄像头,观察自航模跟踪目标情况,并绘制了如下的航迹。试验开始时,先使目标船处于自航模视野边缘,手动操作目标船向另一个方向航行。

实验一  目标移动且脱离视野范围,无障碍物进行跟踪,比较KCF算法与本文算法,如图 1819所示。

Download:
图 18 目标脱离视野实验(KCF)
Download:
图 19 目标脱离视野实验(改进KCF)

在目标移动自航模开始前进并向目标方向转舵,目标过快脱离视野后,KCF算法的自航模以背景为目标跟踪,几乎不再进行转向,如图 18;本文算法的自航模则向目标船消失方向最大限度转舵,在目标重新出现在视野时,搜索到了目标并重新跟踪,如图 19

实验二  目标移动,有障碍物遮挡进行跟踪,比较KCF算法与本文算法,如图 2021所示。

Download:
图 20 目标经过障碍物实验(KCF)
Download:
图 21 目标经过障碍物实验(改进KCF)

开始时自航模朝目标前进,目标经过障碍物时,KCF算法自航模则以障碍物为新目标进行跟踪,如图 20;本文算法自航模则识别出目标丢失,继续转向,并重新找回目标继续跟踪,如图 21

4 结论

1) 本文改进的算法,在一般视频的目标遮挡检测效果良好,但是为了节约计算资源,目标找回只是在水平方向上进行搜寻,所以无法在一般视频中的目标找回取得较好结果。读者可根据实际情况增加全图的目标搜索;也可根据实际跟踪目标与机器计算速度,调整式(4)的参数。

2) 本设计在KCF算法上进行改进,针对目标跟踪效果不佳时进行及时停止跟踪,实验表明:在目标被遮挡或者脱离视野后,仍然能找回目标继续跟踪。而原始KCF算法由于学习了错误背景,无法继续跟踪。

3) 读者可根据实际情况增加全图扫描窗口进行目标搜索;也可根据实际跟踪目标与机器计算速度,调整式(4)的参数,以取得更好的跟踪效果与稳定性。

参考文献
[1] SMEULDERS A W M, CHU D M, CUCCHIARA R, et al. Visual tracking:an experimental survey[J]. IEEE transactions on pattern analysis and machine intelligence, 2014, 36(7): 1442-1468. DOI:10.1109/TPAMI.2013.230 (0)
[2] KWON J, LEE K M. Tracking by sampling trackers[C]//Proceedings of 2011 International Conference on Computer Vision. Barcelona, Spain: IEEE, 2011: 1195-1202. (0)
[3] 侯志强, 韩崇昭. 视觉跟踪技术综述[J]. 自动化报, 2006, 32(4): 603-617. (0)
[4] 曾巧玲, 文贡坚. 运动目标跟踪综述[J]. 重庆理工大学学报(自然科学版), 2016, 30(7): 103-111. DOI:10.3969/j.issn.1674-8425(z).2016.07.018 (0)
[5] BOLME D S, BEVERIDGE J R, DRAPER B A, et al. Visual object tracking using adaptive correlation filters[C]//Proceedings of 2010 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. San Francisco, USA: IEEE, 2010: 2544-2550. (0)
[6] ZHANG B, MAKRAM-EBEID S, PREVOST R, et al. Fast solver for some computational imaging problems:a regularized weighted least-squares approach[J]. Digital signal processing, 2014, 27: 107-118. DOI:10.1016/j.dsp.2014.01.007 (0)
[7] ZHANG Kaihua, ZHANG Lei, YANG M H. Real-time compressive tracking[C]//Proceedings of the 12th European Conference on Computer Vision. Florence, Italy: Springer, 2012. (0)
[8] DANELLJAN M, KHAN F S, FELSBERG M, et al. Adaptive color attributes for real-time visual tracking[C]//Proceedings of 2014 IEEE Conference on Computer Vision and Pattern Recognition. Columbus, USA: IEEE, 2014: 1090-1097. (0)
[9] HENRIQUES J F, CASEIRO R, MARTINS P, et al. High-speed tracking with kernelized correlation filters[J]. IEEE transactions on pattern analysis and machine intelligence, 2015, 37(3): 583-596. DOI:10.1109/TPAMI.2014.2345390 (0)
[10] 尹宏鹏, 陈波, 柴毅, 等. 基于视觉的目标检测与跟踪综述[J]. 自动化学报, 2016, 42(10): 1466-1489. (0)
[11] 潘振福, 朱永利. 多尺度估计的核相关滤波器目标跟踪方法[J]. 激光与光电子学进展, 2016, 53(10): 101501. (0)
[12] GRAY R M. Toeplitz and circulant matrices:a review[J]. Communications and information theory, 2005, 2(3): 155-239. (0)
[13] 包晓安, 詹秀娟, 王强, 等. 基于KCF和SIFT特征的抗遮挡目标跟踪算法[J]. 计算机测量与控制, 2018, 26(5): 148-152. (0)
[14] DALAL N, TRIGGS B. Histograms of oriented gradients for human detection[C]//Proceedings of 2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR). San Diego, USA: IEEE, 2005: 886-893. (0)
[15] 孙建刚, 邓德衡, 黄国樑. 水面船舶操纵性敏感性分析[J]. 中国航海, 2006(1): 49-52. (0)