薛建伟,史庆杰,周泽强,钱久超,朱肖光,刘佩林
(1.上海交通大学 北斗导航与位置服务上海市重点实验室·上海·201109;2.上海航天控制技术研究所·上海·201109)
目标追踪在计算机视觉中是一个非常具有挑战性的问题。传统的追踪方法主要是对视频中每一帧的数据进行边框标记,则所有边框的运动轨迹可以近似看作目标的运动轨迹。近些年来,目标追踪研究发展得非常迅速,已经从单目标追踪扩展到多目标追踪。但是在目标追踪领域中仍然存在许多挑战性问题,例如目标物的姿态变化、遮挡、背景模糊、光照变化等问题。
基于传统的追踪方法,经过多年的发展已经有了较大的进步,在一定程度上可以获得较好的追踪效果,例如,文献[1]通过特征空间以及压缩采样进行目标追踪;文献[2]提出了一种滤波器用于缓解在追踪过程中遮挡带来的影响,并通过蜂群优化算法进行多目标追踪;文献[3]采用一种核变化的稀疏学习方法设计追踪器,可以通过学习获得目标物的多个特征,并以此进行追踪。虽然上述方法可以在一定程度上实现追踪的效果,但是设计的追踪器不能充分学习到图像中目标物体的特征,因此对目标的追踪效果并不是特别稳定。
为了更好地理解图像中的信息,即提取图像特征点信息,学术界与工业界开始使用基于深度学习的方法对图像的特征点进行学习,这些方法可以自动对图像中的有效特征信息进行提取。目前,基于深度学习的方法已经广泛应用于各种领域,如计算机视觉、语音信号处理、自然语言处理等。很多学者提出了多种不同的深度学习方法对图像中的目标物体进行检测,之后再对目标添加运动估计算法进行追踪。H.Nam等提出了一种创新的多领域学习框架网络,能够在预训练阶段得出与领域无关的表示,并通过在线学习获得与领域相关的消息。文献[5]将全卷积网络嵌入到简单的追踪算法中,极大地提高了检测性能并且降低了计算时间。 文献[6]提出了一种无需在线学习的前馈神经网络的追踪器。上述这些基于深度学习的追踪器,在追踪效果上得到了极大的提升,但同时其运算时间也明显增加。
近年来,关于目标的检测与追踪已有一些相关的研究,但是其主要集中在行人的检测和追踪应用中,对于飞机的追踪研究较少。飞机作为一种重要的运输工具以及军事装备,有效地对其进行追踪具有十分重要的现实意义。YOLO算法作为一种高效的识别算法,对于目标的检测识别应用有着十分优秀的性能,可以作为目标追踪中检测阶段的目标检测器,用于提供追踪目标的初始位置。为了实现全天候的飞机追踪,本文使用红外飞机数据集,并针对在飞机追踪场景中飞机存在多角度、多尺度等情况,且需要满足实时性和准确性的需求,采用改进的YOLOv3目标检测算法,实现对多种情况下的高精度飞机检测。在此基础上,提出了一种结合卡尔曼滤波器的飞机追踪方法,实现了对红外飞机的准确跟踪。
本文提出了一种基于检测的跟踪算法,其框架图如图1所示。当将视频图像输入算法时,首先通过改进的YOLOv3算法对图像进行目标检测,得到视频中所有物体的位置及边框大小。之后通过卡尔曼滤波算法对目标的运动状态进行预测,即通过视频中上一帧的目标物体的位置及速度等参数,预测出当前帧目标框的位置和速度等参数,并将预测的目标物边框与前一帧中目标边框通过匈牙利算法进行匹配。此时如果可以正确匹配,则将状态进行更新;如果发现不能进行匹配,则确定图像中是否存在新目标,如果存在则新增一条运动轨迹,否则删除该预测信息,显示当前的检测结果。
图1 算法流程图Fig.1 Framework of the algorithm
根据算法框架图可知,为了更好地实现系统的追踪,首先需要对视频中的目标进行有效的检测,因此本文选用了目前比较流行的YOLOv3目标检测算法对视频中的飞机进行检测。YOLOv3 是J.Redmon 等于 2018 年提出的一种单阶段的目标检测算法,其结合了残差网络、特征金字塔以及多特征融合等方法,具有非常好的识别速度和检测精确度。其原型网络以 Darknet53为骨干网络架构,通过进行 32倍、16倍、8倍降采样获取三种尺度下的特征图,以适应不同尺度目标的检测输出;同时为了减少底层目标特征的损失,通过对顶层特征图的2次上采样并与底层特征图进行融合,增强了对不同尺度目标的适应性,其结构如图2所示。
图2 YOLOv3的网络结构Fig.2 YOLOv3 network structure
从YOLOv3的网络结构可以看出,其使用了大量的卷积结构,在卷积结束后使用L2正则化处理,并使用Leaky Relu函数进行激活处理。此外,YOLOv3使用了多尺度特征进行预测,其尺寸分别为(52,52,256)、(26,26,512)和(13,13,1024),并对特征层进行卷积处理用于预测。结果显示,YOLOv3算法具有很好的检测效果,并且可以对不同尺度的目标进行检测输出。但是本文中使用的飞机数据集,包含各种尺度大小的飞机,并且为了保证夜晚的检测能力,还使用了红外数据集,其分辨率相对较低,因此如果继续使用上述算法,将会导致目标物体的信息量随着层数的增加而急剧下降或者消失,造成目标漏检。
为了实现对飞机的全天候追踪,首先需要YOLOv3实现对飞机的全天候检测,因此需要提高网络对于红外图像下不同尺度目标的识别能力。本文通过将图像中底层和深层特征图相结合,以提高算法对红外图像中目标检测的效果,其具体方法如下:
1)将网络结构中第103层的特征图通过1×1卷积层进行特征信息的融合,通道数从128降到64,并输出到108层,以精简结构。
2)对网络结构中108层的特征图进行上采样,从52×52扩展到104×104,并在网络结构的109层降低目标的感受野尺度,以提高对小目标检测的能力。
3)将网络结构中11层的特征图与109层的特征图进行融合,由于11层的特征信息属于底层的特征,经过多次的卷积处理,其保存了小目标物体更多的细节,将两层融合可以带来更多的信息。
4)在网络结构第81层、93层、105层、117层中,其输出的尺度大小分别为13×13、26×26、53×53、104×104,并通过逻辑回归对不同尺度情况下的目标分别进行检测,减少漏检、虚警等情况。
本文使用卡尔曼滤波器对运动过程中的状态变量进行最优估计。卡尔曼滤波器算法是用一组数学方程式来表示的,其可以对运动物体的状态进行估计。在估计的过程中,将观察到的目标物体的状态值提供给卡尔曼滤波器以对其进行预测,被预测的物体的状态可以由式(1)进行确定
=[u
,v
,s
,r
](1)
其中,u
和v
分别表示目标物当前的中心点的横坐标和纵坐标;s
和r
分别表示目标边框的长宽比。卡尔曼滤波器模型假设第k
时刻的状态是由k
-1时刻的状态演化而来,其可以表示为=-1++(2)
其中,是第k
时刻的状态量;是第k
时刻输入的外部控制信号;是在k
时刻处理过程中的噪声信号;是第k
时刻的状态转移矩阵;是第k
时刻的输入控制信号模型。此外,在时刻k
,对真实状态的一个测量值满足以下公式=+(3)
(4)
(5)
(6)
(7)
|=(-)|-1(8)
在对图像中的各个检测目标进行预测之后,数据关联是一个非常重要的部分,其目的是确定当前预测的目标与之前数据帧中目标的对应关系,或者检测新的图像中是否出现了一个新的对象。当新物体进入框架,但是系统未检测到该物体或者物体超出了图像的范围,在这种情况下,检测算法可能会产生虚警值(即检测不存在的对象)或者预测位置与实际位置差异很大。
假设检测出的物体可以用表示,其中n
表示视频中第n
个目标物体,t
表示对应的图像序列,其取值范围为[1,i
],其中i
表示最大的数据帧数,且=(,,…,1,,…,1,2,…,)。对于观测的有序序列,即=(1,2,…,),这些序列构成单个目标的运动轨迹信息,其中任意时刻的观测状态∈。关联假设定义为一组单目标轨迹的集合,即=,数据关联的目的是在给定观测集的情况下最大化的后验概率Τ
=P
(|)(9)
Τ
=P
(|)P
()(10)
Τ
=∏P
(|)P
()(11)
其中,Τ
为最佳的预测值;P
(|)为给定当前观测集时当前轨迹集合发生的概率;P
()为当前轨迹集合发生的概率;P
(|)为给定当前轨迹集合时给定观测集发生的概率。为此,本文采用匈牙利算法将检测的边框与预测的轨迹边框进行最佳匹配。此时将交并比(Intersection over Union,IoU)作为损失函数进行优化。在匈牙利算法中,假设其损失矩阵为,其中元素C
表示第i
个检测的边框与第j
个预测的边框的交并比。为了计算预测和检测之间的损失矩阵,将交并比定义为IOU
,其计算公式如式(12)所示,其中和分别表示图像中目标的检测框和预测框(12)
为了最大程度地降低损失矩阵,需设定一个最大的检测关联的阈值,当超出该阈值时,不会追踪新的目标;如果经过一段时间的遮挡之后其重新出现,则重新对该目标进行检测以及跟踪预测。此外,使用交并比作为损失函数,在一定程度上缓解了短期遮挡带来的跟踪误差。
当前针对军事环境中的飞机检测追踪场景,识别是追踪的第一阶段,因此如何进行识别是非常重要的一环,而且如果想实现全天候的追踪,首先需要实现全天候的识别,这对夜间红外探测能力提出了较高的要求。随着深度学习的发展以及各类开源数据库的兴起,如ImageNet、COCO等开源图像数据库得到了广泛的应用,给相关的算法研究带来了极大的便利。但是开源数据库中一般只包含普通场景下的照片用于检测,红外图像的资源较少,而且用于飞机的红外图像数据也比较少,给识别红外飞机图像的检测带来了困难。同时,由于红外探测的成像机理不同,导致同一目标的纹理、形状信息较少,分辨率普遍较低,容易受到噪声的影响,不利于红外图像中目标特征的提取。本文采用的数据集是针对飞机滑行、起飞、降落等条件下的红外数据,并通过LabelImag软件进行标注,图3所示为本文中使用的部分数据集照片,可以看到红外图像数据的清晰度较低,且与周围环境区分不明显。本文用于检测的训练集为500张红外飞机图像,验证集为随机的200张红外飞机图像,测试集为500张红外飞机图像。
图3 目标检测数据集Fig.3 Target detection data set
在进行飞机检测模型的训练时,直接通过YOLOv3网络架构进行训练需要耗费大量的时间,且由于硬件资源计算能力有限以及数据集样本较少,从头进行训练不仅速度慢而且容易产生过拟合现象。为加快模型的训练速度,增强模型泛化能力,本文通过迁移学习将已有的预训练模型作为本次训练的初始化权重,并在使用的红外数据集上进行模型训练。
本次实验的硬件平台主要采用的CPU为i7-8700K,内存为16G,显卡为NVIDIA RTX2070。软件平台为Ubuntu16.04系统环境,Python 3.6.9作为开发语言,采用NVIDIA推出的CUDA(Compute Unified Device Architecture)并行计算架构和CUDNN(CUDA Deep Neural Network)深度学习专用加速库,对检测算法的训练和推理进行加速,模型训练方式采用Adam优化器对网络进行优化。
分别使用YOLOv3算法以及改进的YOLOv3算法对红外数据集进行网络的训练,分别记录模型过程中损失值的变化,为了防止过拟合,训练过程中使用了早停法,其损失函数曲线如图4所示。从图4中可以看出,改进之后的检测算法其损失值下降更快,可以更快地收敛到稳定值,证明了改进算法在红外飞机图像检测中的有效性。
图4 损失值变化曲线Fig.4 Loss change curve
P
)和召回率(P
)作为检测算法性能的评价指标,其定义分别为(13)
(14)
其中,TP
表示模型可以正确预测的飞机样本个数;FP
为模型误检的飞机样本个数(实际不存在);FN
为检测到的飞机样本个数。此外,基于精确率和召回率,使用综合评价指标F
进行评估,其表达式为(15)
为了验证改进YOLOv3算法的有效性,使用了两种算法对飞机图像进行识别,实验结果如表1所示。根据结果可知,改进后的YOLOv3模型在红外飞机图像的检测任务中较YOLOv3算法的准确度更高。
表1 不同模型的检测对比结果Tab.1 Comparison of detection results of different model
如表1所示,改进的YOLOv3检测算法对样本数据的检测准确率可以达到83.7%,召回率可以达到82.3%,较YOLOv3检测算法在本数据集上测试的检测准确率提高了5.3%,召回率提高了3.1%。图5所示为改进的YOLOv3算法对数据集中飞机在不同尺度、不同场景下进行检测的结果示意图。改进YOLOv3模型通过增加网络模型的感受野,增加了网络对于红外图像特征的检测和利用能力,提高了模型检测的平均准确率, 因此也为进一步进行检测跟踪的算法模型提供了良好的条件。
图5 检测结果Fig.5 Detection results
本文采用了改进的YOLOv3与卡尔曼滤波器算法进行飞机的跟踪实验。在视频测试中,运行了本文提出的基于改进的YOLOv3和卡尔曼滤波器的追踪算法与YOLOv3和卡尔曼滤波器的追踪算法的对比实验,对测试集中的20段红外飞机视频进行跟踪测试。图6和图7所示分别为针对飞机滑行状态以及飞行状态的追踪效果,并分别选取视频中的第10帧、第17帧、第34帧及第70帧的检测效果进行显示对比。
图6 滑行状态时的追踪结果Fig.6 Tracking results when taxiing
图7 飞行状态时的追踪结果Fig.7 Tracking results during flight status
图6所示为本文追踪算法对于飞机滑行状态时的跟踪效果图,其中蓝色框为通过改进YOLOv3算法检测所得到的飞机的目标框,红色的线为算法追踪到的轨迹示意图。分别选取飞机滑行时视频数据中的第10帧、17帧、34帧以及70帧的追踪效果图,由于飞机在滑行时运动轨迹平稳,本文的追踪算法对滑行状态时的飞机具有可靠的追踪效果。图7所示为本文追踪算法对于飞机飞行状态时的跟踪效果图,其中蓝色框和红色线的意义同图6,由于飞机在飞行状态时飞行较平稳,因此本文的追踪算法具有可靠的追踪效果。
针对20段100帧的视频数据,其中包含不同角度、不同尺度的飞机运动轨迹。本文以飞机追踪的准确性评价追踪方法的性能,通过YOLOv3和卡尔曼滤波器的检测追踪算法与本文提出的改进YOLOv3和卡尔曼滤波器的检测追踪算法在数据集中进行测试,算法的对比结果如表2所示。从表2可以看出,本文提出的方法在检测效果上较未改进的YOLOv3结合卡尔曼滤波器的追踪算法而言,追踪的准确率提升了10%,但在追踪的帧率上提升并不明显,平均帧率只提升了2帧。这是由于这些方法都是在基于检测的效果下进行追踪的,检测的时间占据主要的因素,因此检测的性能决定了追踪的准确率及追踪帧率。本文提出的改进结构通过提高感受野,提升了对小角度、小目标的飞机的检测效果,因此带来了一定的追踪性能的提升。整体而言,本文提出的方法可以满足国防军事场景下对红外飞机图像的检测和跟踪的应用需求。
表2 不同算法的追踪结果对比Tab.2 Comparison of tracking results of different algorithms
本文研究了基于改进YOLOv3和卡尔曼滤波器的飞机追踪算法,首先通过改进的YOLOv3算法提高了网络结构的感受野,使其可以更好地检测不同尺度大小的飞机,以提供飞机的位置信息。之后结合卡尔曼滤波器对飞机的位置信息进行预测,并采用匈牙利算法对其进行匹配,进而实现追踪。仿真实验证明了本文提出的方法对于飞机的识别性能有了较大的提升,达到了预期追踪效果,且本文算法的帧率可以达到实时性要求,满足军事领域中对于小角度、小目标的飞机的识别和追踪的需求。此外,由于红外视频的特性,该方法仍然存在多种未检测到目标而导致追踪失败的情况,下一步将继续增加训练样本的数量,以提高系统的性能。