闫若怡 熊丹 于清华 肖军浩 卢惠民
摘 要:在空地协同背景下,地面目标的移动导致其在无人机视角下外观会发生较大变化,传统算法很难满足此类场景的应用要求。针对这一问题,提出基于并行跟踪和检测(PTAD)框架与深度学习的目标检测与跟踪算法。首先,将基于卷积神经网络(CNN)的目标检测算法SSD作为PTAD的检测子处理关键帧获取目标信息并提供给跟踪子;其次,检测子与跟踪子并行处理图像帧并计算检测与跟踪结果框的重叠度及跟踪结果的置信度;最后,根据跟踪子与检测子的跟踪或检测状态来判断是否对跟踪子或检测子进行更新,并对图像帧中的目标进行实时跟踪。在无人机视角下的视频序列上开展实验研究和对比分析,结果表明所提算法的性能高于PTAD框架下最优算法,而且实时性提高了13%,验证了此算法的有效性。
关键词:并行跟踪和检测;目标跟踪;深度学习;相关滤波;无人机
中图分类号: TP242.62
文献标志码:A
Abstract: In the context of air-ground robot collaboration, the apperance of the moving ground object will change greatly from the perspective of the drone and traditional object tracking algorithms can hardly accomplish target tracking in such scenarios. In order to solve this problem, based on the Parallel Tracking And Detection (PTAD) framework and deep learning, an object detecting and tracking algorithm was proposed. Firstly, the Single Shot MultiBox detector (SSD) object detection algorithm based on Convolutional Neural Network (CNN) was used as the detector in the PTAD framework to process the keyframe to obtain the object information and provide it to the tracker. Secondly, the detector and tracker processed image frames in parallel and calculated the overlap between the detection and tracking results and the confidence level of the tracking results. Finally, the proposed algorithm determined whether the tracker or detector need to be updated according to the tracking or detection status, and realized real-time tracking of the object in image frames. Based on the comparison with the original algorithm of the PTAD on video sequences captured from the perspective of the drone, the experimental results show that the performance of the proposed algorithm is better than that of the best algorithm with the PTAD framework, its real-time performance is improved by 13%, verifying the effectiveness of the proposed algorithm.
Key words: parallel tracking and detection; object tracking; deep learning; correlation filter; drone
0 引言
隨着计算机视觉技术的发展,目标检测与跟踪技术被广泛应用到各个领域,如无人机的军事侦察、监控、打击,电力巡检,街景拍摄等。目标跟踪作为计算机视觉领域的核心问题之一,大量的关于目标检测与跟踪的相关成果已经被提出和发表[1-3]。根据跟踪过程有无目标检测的参与,可将现有的跟踪方法分为两类: 基于生成模型的目标跟踪方法和基于判别模型的目标跟踪方法。基于生成模型的跟踪方法一般首先构建目标的外观模型,然后通过拟合该模型在图像中找到最相似的区域作为目标区域;基于判别模型的跟踪方法将目标跟踪问题考虑为一个二分类问题,通过构建分类器来区分跟踪目标和背景,与仅利用目标外观信息的生成模型不同,基于判别模型的跟踪子对目标和目标周围环境都进行建模。也就是说,目标检测可以看作是目标跟踪的一个组成部分,主要是对目标状态的初始化,基于视觉的目标检测与跟踪框架如图1所示。
在基于目标检测的跟踪算法中,为训练出合适的分类器,依靠在线学习的方式需要大量的计算资源,因此在实际目标跟踪的应用中很难达到实时性要求。基于判别式的目标跟踪方法能够以较高帧率实现对目标的实时跟踪,但是当目标模板存在漂移,尤其是当跟踪的目标从相机视野中消失时常常会丢失目标且不能重新搜寻并跟踪目标。因此,研究人员提出将跟踪和检测作为两个模块运行用于长时间的未知目标跟踪。近年来主流的目标检测与跟踪算法:跟踪学习检测(Tracking-Learning-Detection, TLD)框架[4-5]在长时间的目标跟踪方面具有较高的准确度和鲁棒性,但是在实时性方面仍有待提高。受到并行跟踪和建图(Parallel Tracking And Mapping, PTAM)的启发,熊丹[6]提出了并行跟踪与检测(Parallel Tracking And Detection,PTAD)框架,将跟踪与检测放在两个线程运行,大大提高了跟踪算法的实时性;而且该框架提供了开放接口,能够集成整合不同的目标跟踪和检测算法,实现对移动目标的检测和跟踪,并能比较和测试不同目标跟踪和检测算法的性能。
在PTAD框架中,需要对给定的第一帧图像中的运动目标进行标记,实现跟踪算法的初始化,显然预标记的训练样本并不充足;并且为提高跟踪算法实时性,PTAD框架的检测模块跳过了一些图像帧,加大了目标外观变化对跟踪算法性能的影响。实验证明在无人机的视角下,当运动目标因移动而导致目标外观发生变化时,算法的跟踪框无法随目标外观自适应调整,跟踪的准确度会降低;随着目标在视野中由于角度的变化造成外观的较大变化时,甚至可能丢失目标。文献[6]提出的基于PTAD框架的目标跟踪算法需要人工给定第一帧,手动标定带来的不确定性会影响后续跟踪,且不适用于无人机平台。为了解决上述问题,同时提高跟踪算法的精度和实时性,本文将深度学习算法引入到PTAD框架中,提出基于PTAD和深度学习的目标检测与跟踪算法,并通过对比实验验证了这一算法的可行性。
1 PTAD算法框架
从uav123数据集[7]中提取部分连续的图像帧(如图2所示为第111~119帧)可以看出,目标跟踪过程中,运动目标(汽车)的外观和运动环境的变化是缓慢渐进的,很少发生连续图像帧突变的情况,因此在基于视觉的检测与跟踪算法框架中,检测模块不需要对图像序列中每一帧的跟踪状态进行判断并对跟踪模块进行校正。为了提高算法的运行速度、节省计算资源,熊丹[6]提出了PTAD算法框架。PTAD框架分成跟踪和检测两部分,在两个线程内独立完成任务:一个线程以较高的速度处理连续图像帧实现目标跟踪;另一个线程进行在线半监督学习训练分类器,从而更新目标模型并检测跟踪的目标。
PTAD框架中的跟踪模块和检测模块并行处理,其中跟踪模块通过目标在图像序列前后帧之间的位置关系对目标进行定位,可以看成是PTAD框架的前端。跟踪子计算资源需求少且实时性较好,但如果跟踪失败,它无法靠自身恢复跟踪或初始化。检测模块分为分类和学习两个部分,采用在线半监督学习算法为检测模块更新分类器,当跟踪模块丢失目标或出现大尺度漂移时,检测模块可以帮助其重新初始化和校正,这一部分看成是PTAD框架的后端。PTAD框架的架构如图3所示。
基于PTAD框架的目标跟踪过程如下:首先对第一帧图像中的目标进行人工标定,训练初始分类器,并初始化跟踪模块。接下来整个框架的执行流程可以划分成一系列结构相同的执行块(如图3中粗实线框所示)。每个执行块中的第一帧为关键帧,检测子和跟踪子会处理所有的关键帧。检测子处理关键帧后得到检测框的置信度以及检测框处剪切的图像块,并根据这个置信度判断检测模块的检测状态。跟踪子处理关键帧得到跟踪框、跟踪框处剪切的图像块和跟踪状态,这些结果会输入到检测模块得到跟踪的置信度,而跟踪子继续处理图像帧(仅由跟踪子处理的帧称为跟踪帧,如图3中细虚线框所示),检测子将跳过这些帧,这也是PTAD框架的特点之一。它们处理的结果经过整合为检测子提供更加可靠的训练样本,用于更新检测模块中的分类器,这样训练出来的分类器的误分率较低。每个执行块具体执行流程如图4所示,其中KF、TFs分别为关键帧和跟踪帧,tBox、tState分别为跟踪子中的跟踪框和跟踪状态,dBox、dState分别为检测子的检测框和检测状态,finalBox为框架输出的跟踪结果框。
2 基于PTAD和深度学习的目标跟踪算法
2.1 基于深度学习的目标检测算法
传统目标检测算法存在明显的弊端,基于滑动窗口的区域选择策略没有针对性,导致出现窗口冗余且计算复杂度高的问题,因此基于候选区域的深度学习目标检测算法被提出,大大降低了計算复杂度且获取的候选窗口的质量要高于滑动窗口。Girshick等[10]设计了基于区域选择的卷积神经网络(Regions with Convolutional Neural Network features, R-CNN)目标检测框架, 用候选区域和卷积神经网络代替了传统目标检测算法,使得目标检测取得了重大突破。为解决R-CNN算法检测速度慢且占用大量内存资源的问题, He等[11]提出空间金字塔池化网络(Spatial Pyramid Pooling in Deep Convolutional Networks, SPP-NET),减少了每帧图像需要提取的特征,避免了大量的重复计算,并可以对不同大小的图像产生相同大小长度的表示特征;但是整个框架与R-CNN一样仍然有步骤繁琐的缺点。Girshick[12-13]团队又先后提出了Fast R-CNN和Faster R-CNN,将候选区域和卷积神经网络统一到一个网络中,使用端对端学习的方式进行目标检测,虽然无法达到实时,但也较大地提高了精度和运行速度。为了达到目标检测的实时性,基于单个网络的实时目标检测框架(You Only Look Once, YOLO)[14]和基于单网络多层次预测框(Single Shoot multibox Detector, SSD)的目标检测[15]算法被提出,它们是基于回归方法的深度学习目标检测算法。这类方法使用了回归的思想,将目标检测作为回归问题求解,训练和检测都在一个单独的网络中,没有分类部分,即给定输入图像后,直接在图像的多个位置上回归出这个位置的目标边框及目标类别和置信度。实验结果表明,在VOC数据集上进行目标检测,SSD(512×512)算法的mAP(mean Average Precision)更高,YOLOv2算法的运行速度更快,SSD(300×300)算法的mAP和运行速度介于上述两种算法之间[16]。
2.2 SSD算法
SSD算法是一种直接预测目标边界框(bounding box)坐标和类别的目标检测算法,它没有生成候选区域的过程。算法的主网络结构基于VGG16进行修改,将两个全连接层改成卷积层再增加4个卷积层构造网络结构,修改后的网络结构图如图5所示。
当针对不同大小的物体检测时,相比Faster R-CNN算法选择多尺度的候选区域进行计算,SSD算法则利用不同卷积层的多个特征图(feature map)自然地得到多尺度的检测结果。SSD算法的核心是提出了默认框(default box)的概念(如图6所示), 算法同时采用高层和低层的feature map作检测,网络中有8×8和4×4两种大小的feature map,在feature map的每个小格上都有一系列固定大小的框。 图5中的五个卷积层(每一层的default box的数量是给定的)与两个3×3的卷积核进行卷积,对每个default box得出预测所有物体类别的置信度和偏移。可以看出,default box在不同的feature map有不同的尺寸,在同一个feature map又有不同的长宽比,因此基本上可以覆盖输入图像中各种形状和大小的目标。从图5及上述描述中可知,图像经过网络中的feature map能够生成8732个default box,从而实现对不同尺寸的目标进行更为准确的检测。最后经过非极大值抑制算法得到结果框bounding box。