基于KCF的多个同构无人机目标跟踪算法∗

2022-12-01 03:40任帅军韩裕生
舰船电子工程 2022年3期
关键词:滤波轨迹预测

任帅军 韩裕生

(1.陆军炮兵防空兵学院 合肥 230031)(2.安徽省偏振成像与探测重点实验室 合肥 230031)

1 引言

随着人工智能技术的发展,旋翼无人机逐步被用在多种场合下进行飞行表演。这给人们带来视觉盛宴的同时,也给人们带来了安全问题[1]。我们经常听到有无人机在飞行表演时撞向了大楼,也有违规放飞的无人机将列车逼停。为能够及早应对放飞无人机带来的安全问题,需建立对此类目标的检测跟踪系统。作为其中关键技术的组成部分,多目标跟踪是人们研究的重点内容。

目前,多目标跟踪方法可分为两种模式:一种是依托每一帧检测结果的,另一种是不依托检测结果的[2]。前者的基本过程是:首先利用目标检测器得到目标在每一帧图像中的位置,再通过数据关联技术将检测结果分配给已存在的轨迹,从而产生连续的轨迹。根据此跟踪架构的多目标跟踪算法,按照数据关联方式的不同,主要有MOT[3],Sort(Sim⁃ple online and realtime tracking)[4],DeepSort[5],POI[6]等。MOT是对目标轨迹与当前帧的检测进行IOU计算实现数据关联;Sort是先对目标轨迹状态进行预测,然后用匈牙利指派算法对预测的轨迹状态和当前帧的目标检测进行数据关联,关联中应用到了目标的位置信息和大小特征,但没有使用到目标的表观信息特征;DeepSort是在Sort的基础上,在数据关联中增加了目标的表观信息特征;POI又在Dee⁃pSort的基础上,在数据关联时增加目标的形状相似度信息特征。以上算法,都是在每一帧进行检测的基础上通过数据关联实现多目标跟踪,对于表观特征高度相似且相互遮挡的目标进行跟踪时易发生轨迹关联错误,并且整个算法对检测器性能要求较高,实时性不高,算法实现比较复杂。不依托检测结果的目标跟踪过程是:首先在初始帧中标出目标候选框,然后对目标候选框进行目标特征提取,最后根据所提取的特征利用Kalman滤波[7]、粒子滤波[8]方法在下一帧中找出目标的位置。这类目标跟踪算法无法对新出现的目标进行跟踪,并且对表观信息特征高度相似的目标进行跟踪时也会发生轨迹关联错误,优点是算法易于实现。

基于所有被跟踪的多个目标的表观信息特征相似,本文借鉴以上第二种多目标跟踪的思路,以多个并行的 KCF(Kernelized Correlation Filters)[9]跟踪算法为基本的跟踪框架,通过计算两两目标之间的欧氏距离对目标的相互遮挡情况做出判断,利用Kalman滤波对发生遮挡时目标位置进行预测,最终实现对多个同构无人机目标的稳定跟踪。

2 KCF跟踪算法在多目标跟踪中的应用

KCF跟踪算法实现目标跟踪的基本过程如下图1所示。

图1 相邻两帧目标区域检测跟踪示意图

t−1帧中目标位置坐标为(x0,y0),用循环矩阵对获得的t−1帧中向目标周围外扩后的区域(图中所示正方形区域)进行稠密采样生成大量样本,对滤波模板进行训练,用新获得的模板对原有的模板进行更新。t帧图像中,以坐标(x0,y0)为中心生成t帧目标搜索区(图中所示上一帧进行滤波模板训练的正方形区域),用t−1帧训练得到的滤波模板进行相关滤波,计算出响应最大值得到目标在t帧的位置坐标(x1,y1)。重复上述步骤,进行滤波模板的训练与更新,实现对后续图像序列中目标的跟踪。

基于KCF跟踪算法实现多个无人机目标的跟踪,主要是通过对多个目标中的每个目标单独的使用KCF跟踪算法,从而达到多个目标被同时跟踪的效果。但是,在使用KCF跟踪算法进行目标跟踪时,当目标相互遮挡时,两个跟踪器会同时跟踪到一个目标,对于被遮挡的目标,则会跟踪丢失。如下图2所示,使用KCF跟踪算法实现跟踪过程中,计算滤波响应最大值所得目标位置为遮挡在前方的目标位置。

图2 最大滤波响应指向前方遮挡目标位置示意图

在t−1帧中,跟踪到了两个目标,获得的目标跟踪框分别为箭头所指虚线框Tracker 1和实线框Tracker 2,实线框Tracker 2所含目标对虚线框Tracker 1所含目标造成遮挡,此时,分别生成了t帧中各自目标的搜索区(图中所示的大的虚线框和实线框)。尽管两个目标搜索区域中都包含个两个目标,但是,遮挡在前方的目标表观信息特征更加接近滤波模板,所以,计算滤波响应最大值得到的目标位置都指向了遮挡在前方的黄色框目标,t帧所示两个目标跟踪框重合了。这样,在后续跟踪序列中,两个框都一直跟踪在遮挡在前方的目标了,被遮挡的目标发生了跟踪丢失。

通过使用KCF跟踪算法单独对被遮挡目标进行跟踪的过程分析,可以看出,在对多目标进行跟踪时,由于目标的外观信息特征相似,在目标被遮挡的一瞬间,遮挡在目标前方的目标出现在了对被遮挡目标使用KCF跟踪算法跟踪过程中生成的目标搜索区域中,从而造成计算滤波响应最大值获得的目标位置为遮挡在前方的目标位置。在算法实现中,共有两个方面因素决定了遮挡目标出现在被遮挡目标的目标搜索区域中,一是目标发生遮挡;二是生成的目标搜索区域的能够将遮挡目标包含进去。

3 加入遮挡判断和Kalman滤波位置预测的多目标跟踪

针对使用KCF跟踪算法进行多目标跟踪中目标相互遮挡造成的目标跟踪丢失问题,本文设计了一种加入遮挡判断和Kalman滤波位置预测的多目标跟踪方法。基本过程如下图3所示。

图3 本文设计多目标跟踪流程图

在图像序列的第一帧,获取被跟踪的多个目标,计算出目标的中心位置坐标,并提取每个目标的表观信息特征,完成所要使用的KCF跟踪算法的初始化。计算经KCF跟踪算法获得的下一帧中各个目标位置之间的欧氏距离,利用设定的阈值判定目标是否发生遮挡。对于被遮挡的目标,停止使用KCF跟踪算法进行下一帧目标位置的预测更新,启用Kalman滤波进行下一帧目标位置的预测更新。对于获得的新的目标位置,再次计算各个目标之间的欧氏距离,进行遮挡情况判断。重复遮挡判断和对被遮挡目标

位置的预测更新,直到相互遮挡结束,重新启用KCF跟踪算法对曾经被遮挡目标的位置的预测更新。最终,完成对所有帧中各个目标的持续跟踪。

3.1 遮挡判断阈值设定

对遮挡判断阈值的设定,需要达到的临界状态是要保证即使使用KCF跟踪算法对被轻微遮挡目标进行跟踪时也不发生错误跟踪到遮挡在前方的目标的现象,也就是最大限度的使用KCF跟踪算法进行各个目标的跟踪。

这是因为在使用KCF跟踪算法进行目标跟踪时,计算滤波响应的最大值得到下一帧中目标位置,精度高,而使用Kalman滤波进行目标跟踪时,只能进行目标位置的预测,精度低。所以,在算法设计时,要最大限度的使用KCF跟踪算法进行目标跟踪,所设定的遮挡判断阈值要比两个目标在图像中相接时求得的中心距离要小。

同时,通过对被轻微遮挡目标使用KCF跟踪算法进行跟踪的过程分析,可以看出,目标搜索区域的大小不同,对被遮挡目标的跟踪效果是不同的。目标搜索区域的大小的计算公式为

其中,target_sz为目标跟踪框的大小,padding为在目标跟踪框的基础上进行外扩获得目标搜索区域时的扩充系数。目标搜索区域大小由初始参数 padding值确定。 padding值取得太大,目标可能在没有发生遮挡时就相互包含在其他目标的搜索区域,相互产生干扰;padding值取得太小,各自的滤波模板训练的不好,对目标跟踪时效果不好。本文经过反复验证,最终设定padding=1。

对于被跟踪的无人机目标,由于成像距离远,特征分布近似高斯分布,在图像序列中近似成圆形,获得的跟踪框一般近似为矩形[10]。所以,在目标即将发生遮挡的临界状态下,可将目标之间的距离近似为目标的宽与高的乘积取平方根的值。图4所示为目标即将发生相互遮挡的临界情况。此时,目标m1的中心位置像素坐标为(i1,j1),目标m2的中心位置像素坐标为(i2,j2)。

图4 目标即将发生相互遮挡的临界情况

在二维平面中,点a(x1,x2)与点b(y1,y2)之间的欧式距离为

计算可得,目标在图像中的欧氏距离[11]为

结合实际情况,对参数进行调节,可得遮挡判断的阈值

所以,当 DTℎ时,目标没有发生遮挡,可以使用KCF跟踪算法进行预测。

3.2 基于Kalman滤波位置预测

结合本文实际,须对目标前三帧的位置信息进行保存,用于Kalman滤波模型的建立,当目标被遮挡时,对目标在下一帧的位置做出预测。其相关的状态转移方程和观测方程分别为

其中,xt表示t时刻的目标状态向量,zt+1为观测向量,A,H分别为状态转移矩阵和观测矩阵,ω,σ为系统噪声和测量噪声,其协方差矩阵分别为Q和R。目标的状态可描述为

其中,cx、cy表示目标中心点坐标,vx、vy对应水平和垂直方向的运动速度。定义观测向量z=[cx,cy]T,则滤波过程描述如下:

其中,xt+1|t和Pt+1|t分别表示t时刻对目标状态和误差协方差的预测值,xt|t和Pt|t是t时刻目标状态和目标状态误差协方差的估计值,Kt+1是t+1时刻滤波器增益。

规定Δt为单位时间,根据物理运动学基本原理,结合式(5)~(7),可用矩阵的形式对目标状态过程进行描述,转移矩阵可以表示如下:

如果将状态向量中的位置和速度分量当作观测向量中的值,观测矩阵可表示为如下:

系统噪声协方差矩阵Q和观测噪声协方差矩阵R对应的值如下所示:

将以上数据带入滤波模型中,经过迭代更新,可对发生遮挡时,目标在下一帧的位置进行预测。

4 实验结果与分析

本文方法基于Windows10系统使用Matlab2019R实现,实验全部是在Intel Core i5-4210U CPU进行。所用的实验数据为用红外成像设备采集的8个旋翼无人机目标在天空背景下飞行的图像序列。每一帧图像序列的大小为640×512,帧与帧间隔Δt=40ms。按照飞行的姿态不同,共分成7组实验数据,并对每帧中各个目标坐标位置进行了手工标注。

4.1 相互遮挡时Kalman滤波目标位置预测结果

图5所示为图像序列1中的17帧和18帧跟踪效果图,在未进行遮挡判断和Kalman滤波位置预测的情况下,直接并行的使用多个KCF进行目标跟踪的效果图。可以看出,两个目标(图中橘色跟踪框和灰色跟踪框所跟目标)同向飞行,一个目标对另一个目标有一定的遮挡时对被遮挡目标的跟踪框错误的跟踪到了遮挡在前方的目标。图6所示为采用本文算法进行跟踪时对同向飞行目标发生相互遮挡时的跟踪效果。由于使用了遮挡判断,启用Kalman滤波进行目标位置的预测,确保对被遮挡目标进行跟踪时能够按照其原来的轨迹生成目标跟踪框,没有错误的跟踪到遮挡在前方的目标。

图5 同向飞行时未进行遮挡预测的跟踪效果

图6 同向飞行时进行遮挡预测的跟踪效果

图7所示为对图像序列3中第392帧到411帧中两个相向飞行的目标进行KCF跟踪算法并行跟踪的轨迹图。由于未进行遮挡判断和Kalman滤波位置预测,两个目标交叉的一瞬间,错误的跟踪到相向飞来的目标,图中轨迹呈现出目标折回的假象。图8所示为在本文算法对交叉飞行的两个目标进行跟踪的轨迹图。可以看出,在目标即将发生遮挡的瞬间,由于停止使用KCF,启用Kalman滤波进行了位置预测,实现了在遮挡期间对被遮挡目标位置的准确估计,图中轨迹显示各自按照原来的方向保持飞行。

图7 交叉飞行时未进行遮挡预测的跟踪轨迹

图8 交叉飞行时进行遮挡预测的跟踪轨迹

4.2 与传统多目标跟踪算法的比较

为了定量分析本文所提算法的性能,利用自己拍摄的数据集,从 MOTA、MOTP、MT、ML、IDS和检测速度几个技术指标[12]与Sort跟踪算法进行对比试验和分析。MOTA表示目标定位准确性,与目标漏检率和虚警率相关,值越大,越利于跟踪,MOTA的主要影响因素为目标(IDentity,ID)的交换次数(ID Switches,IDS)、误检目标的数目(False Posi⁃tives,FP)和漏检目标的数目(False Negatives,FN),计算式如下:

其中:GT为实际轨迹。MOTP表示目标框的平均重叠率,值越大,跟踪效果越好。IDS表示轨迹与目标切换的次数,值越小,稳定性越好。MT表示目标与轨迹配对成功占比,一般认为值大于80%算法较为稳定;ML表示目标跟丢的轨迹占比,此值一般要求小于20%。

本文所用的实验数据共有7组,每组数据中都有8个目标。分别计算所拍摄数据集中所包含序列度量值的平均值,实验结果如表1所示。

表1 基于拍摄的红外多目标数据集序列的跟踪结果

从表中数据可以看出,使用本文算法对多个同构无人机目标进行跟踪的效果要优于传统多目标跟踪算法的跟踪效果。相比传统的多目标跟踪算法Sort,本文算法的MOTA、MOTP、MT这3个指标均有提升,本文算法的ML、IDS、FP、FN这4个指标均有降低。

从表中可以看出,对于多个同构的无人机目标的检测跟踪,本文算法在目标检测性能上要比Sort跟踪算法要好。本文算法基于滤波思想实现检测跟踪,检测性能较好,误检率和漏检率低;Sort跟踪算法中每一帧都单独使用检测算法,导致整体的误检率和漏检率比较高。同时,从表中还可以看出,本文算法在目标跟踪的精度和稳定性较Sort要高,这是因为本文算法以KCF跟踪算法为基本跟踪框架,KCF跟踪算法的跟踪精度高,而Sort对红外目标的检测精度不高,并且对外观高度相似的目标跟踪时数据关联效果也不好。

实验中,对7组图像序列中的目标跟踪速度进行了计算,取平均值为24帧/秒,跟踪速度满足对此类目标跟踪的应用需求。

5 结语

本文利用多个无人机目标的运动特征和表观信息特征,以多个并行的KCF跟踪算法为基本跟踪框架,对目标飞行中的遮挡情况作出判断,基于Kalman滤波对遮挡目标的位置进行预测,实现了对此类多目标的跟踪。通过实验,对算法性能进行了分析验证,所提算法可以满足实际应用需求。但是,对于更加弱小的目标,本文算法还需要设计更加鲁棒的目标特征提取方式和数据关联方式,这是今后研究的重点。

猜你喜欢
滤波轨迹预测
船岸通信技术下舰船导航信号非线性滤波
无可预测
选修2-2期中考试预测卷(A卷)
选修2-2期中考试预测卷(B卷)
解析几何中的轨迹方程的常用求法
选修2—2期中考试预测卷(A卷)
轨迹
轨迹
一种考虑GPS信号中断的导航滤波算法
高效LCL滤波电路的分析与设计