基于深度神经网络的目标跟踪算法综述
作者: 郭凡 卢铉宇 李嘉怡 王红梅
摘 要: 目标跟踪是根据视频序列中目标的前续信息, 对目标的当前状态进行预测。 深度学习在目标跟踪领域逐渐广泛应用, 本文阐述了目标跟踪算法和深度学习的发展背景, 对传统目标跟踪进行了回顾, 根据不同的网络任务功能, 将基于深度学习的目标跟踪算法分为: 基于分类的深度学习目标跟踪算法、 基于回归的深度学习目标跟踪算法、 基于回归与分类结合的目标跟踪算法, 并选取了具有代表性的目标跟踪算法进行实验, 对比不同算法之间的特点; 最后对目前基于深度学习的目标跟踪方法存在的问题进行分析, 对未来发展方向进行展望。 实验结果证明, 深度孪生跟踪网络在精度与速度上均占优, 成为当前主流的跟踪算法框架。
关键词: 目标跟踪; 深度学习; 神经网络; 卷积神经网络; 孪生神经网络; 生成对抗网络
中图分类号: TJ760; TP273
文献标识码: A
文章编号: 1673-5048(2024)01-0001-12
DOI: 10.12132/ISSN.1673-5048.2022.0226
0 引 言
目标跟踪作为计算机视觉领域十分重要的分支, 其技术被广泛应用于军事制导、 自动驾驶、 社会安防等各个领域。 在实际应用中存在诸多挑战, 如: 相似目标干扰、 目标形变较大、 目标快速移动等, 因此在面对实际干扰因素时, 提高目标跟踪的精度与实时性是使其更加广泛应用于各领域的关键所在。
目标跟踪的一般执行步骤可描述为: 首先对当前目标的候选样本进行特征提取, 并基于目标的特征信息与候选样本的特征信息进行对比与匹配, 由观测模型选定最终跟踪结果[1]。
传统目标跟踪方法主要使用手工特征, 由观测模型的不同划分为两类: 生成式模型方法、 判别式模型方法。
生成式模型方法通过搜索当前图像中与目标最相似的区域作为跟踪结果实现目标跟踪。 Comaniciu等人[2]提出用一个各向同性的核在空域处理目标, 这样就可以定义出一个在空域上平滑的相似函数, 目标定位问题就简化为寻找该相似函数的低谷。 Kwon等人[3]提出一种基于视觉跟踪分解和采样的跟踪框架, 该框架从跟踪器中选择最优混合模型, 从多角度特征对目标进行鲁棒跟踪; 在跟踪过程中采用更优的跟踪器代替当前跟踪器, 并且通过增加更优跟踪器或舍弃次优跟踪器来改变跟踪器的总数量。 Wang等人[4]提出基于稀疏原型的在线目标跟踪算法, 将传统的PCA和稀疏表示结合。 生成式模型方法主要寻找目标的最相似区域, 但容易忽略背景信息。
判别式模型方法通过判别函数搜索决策边界, 将目标归为前景, 并与其他作为背景的非目标区域区分开, 以达到跟踪的目的。 此类方法大量使用了机器学习方法。 文献[5]将基于光流法的跟踪和SVM结合实现长时跟踪; 基于特征选择框架的在线boosting[6]及其与半监督学习结合可以解决更多样的实时跟踪问题; Saffari等人[7]结合在线bagging和随机森林算法, 提出在线决策树生长的方法, 实现更加稳定的跟踪效果; 文献[8]使用线性核函数结合混合特征通道实现了复杂情况下的线性相关滤波跟踪。
综上所述, 目前传统的目标跟踪算法已取得较大发展, 但由于手工特征无法全面描述语义信息, 因此在目标产生较为显著的外观变化时, 传统目标跟踪算法的精度无法满足实际需求。
由于深度神经网络具有强大的语义信息提取能力及泛化能力, 深度学习方法逐渐在跟踪领域被广泛使用并取得了诸多显著成绩。 因此, 本文根据网络对目标跟踪任务的理解与求解方式, 将基于深度学习的目标跟踪方法分为: 基于分类的深度学习目标跟踪、 基于回归的深度学习目标跟踪、 基于分类和回归结合的目标跟踪。
目前已存在一些基于深度学习的目标跟踪算法综述, 例如Marvasti-Zadeh等人[9]从网络结构、 网络训练方式、 网络功能、 网络输出等多个不同的角度对当前的深度学习目标跟踪算法进行介绍; Fiaz等人[10]将当前的目标跟踪算法分为基于相关滤波与非相关滤波两类进行介绍, 并将以上两类按照不同的网络框架结构分别对不同的目标跟踪算法进行进一步的分类介绍, 此外提出新的目标跟踪数据集OTTC, 并在该数据集上进行不同算法之间的对比实验; Javed等人[11]主要进行了对基于判别式相关滤波与基于深度孪生网络的目标跟踪算法的对比研究, 并在多个数据集上分析了判别式相关滤波与深度孪生跟踪网络的性能评估; Soleimanitaleb等人[12]将当前目标跟踪算法分为基于特征、 分割、 估计、 学习的四种类别, 其中着重介绍基于学习的跟踪算法; Han等人[13]对目标跟踪中面临的挑战进行了分析, 着重对基于相关滤波与基于孪生网络的深度目标跟踪算法进行介绍; 同时, 也有一些对多目标跟踪问题进行总结的综述文章[14-15]。 本文从网络功能方面更全面地对算法进行详尽分类, 并对常用数据集及性能指标进行介绍, 此外对部分代表性算法进行实验对比, 针对性地对当前现存的基于深度学习的单目标跟踪算法进行更加全面详尽的阐述。
1 深度神经网络
近年来, 深度学习已经在计算机视觉领域获得了显著成绩。 2006年, Hinton等人[16]首次提出深度学习的概念, 随即应用于图像处理领域, 并取得优异效果。 AlexNet[17]包含5个卷积层和3个全连接层, 使用激活函数ReLu以及dropout策略, 在ILSVRC中AlexNet以绝对优势胜出, 自此深度学习开始在图像领域被广泛使用。 2014年Simonyan等提出VGG[18], 它是由卷积层和池化层反复叠加构成的CNN。 Szegedy等人[19]提出了GoogleNet结构, 其特点是既有纵向的网络深度, 也有横向的宽度, 即Inception结构, 使用了多个大小不同的滤波器, 再合并这些结果, 其结构如图1所示。 He等人[20]提出了由跨层结构组成的ResNet。 该结构跳过两个卷积层, 将输入直接并入输出, 从而解决了由网络加深引起的梯度消失问题。
2 基于深度学习的目标跟踪算法
2.1 基于分类的深度学习目标跟踪
基于分类的深度学习目标跟踪方法可分多个步骤进行, 首先, 在目标可能出现的位置生成若干候选框, 再由分类网络计算候选框为目标的分支, 最后, 认定跟踪结果为网络评分最高的候选框。 由于分类任务并非是直接面向跟踪框的位置, 而是通过分类间接寻找跟踪框的位置, 因此本文基于该问题导向出发, 对基于分类的深度学习目标跟踪算法进行梳理。 其主要脉络如图2所示。
最初使用深度神经网络进行目标跟踪任务的Wang等人[21]提出一种利用多层自编码网络进行特征生成的深度学习跟踪方法(DLT), 但基于全连接的网络对特征的表征能力较弱。 为了加强特征的表征能力, Wang等人[22]提出一种学习分层特征的跟踪方法, 对于给定的跟踪序列, 通过其提出的调整模块对预学习到的特征进行在线调整; Wang等人[23]提出一种基于全卷积神经网络的跟踪方法; 文献[24]提出用深度特征SRDCF[25]中的HOG特征, 从而保留SRDCF中的空域正则化, 使边界区域的滤波系数受到一定惩罚, 背景处的响应得到明显抑制。 相关滤波模型一般通过使用滑动窗口来确定候选区域, 在整个训练过程中, 整个候选区域都无差别看待, 因此会导致跟踪器的漂移, 尤其在候选区域包含复杂背景时更加严重。 为了解决上述问题, Cui等人[26]提出基于循环神经网络的目标周期性参与的跟踪方法, 在跟踪过程中得到效果较好的响应图用于相关滤波的正则化, RTT中的RNN模型从训练中得到, 因此在面对局部遮挡时更具鲁棒性。
最初将深度神经网络应用于目标跟踪的方法, 随着网络加深, 跟踪精度也越好, 但加深到一定程度后, 网络的加深则会带来跟踪框的漂移。 Danelljan等人提出的C-COT[27]结合浅层表观信息和深层语义信息, 在频域空间进行插值得到连续分辨率响应图, 最终通过迭代得到最佳目标尺度和目标位置。 在迭代过程中, 最终的置信函数是通过所有特征通道中的全部滤波器的卷积响应加起来得到的, 计算量较大, 速度较慢, 因此Danelljan等人在C-COT基础上提出ECO[28], 通过卷积因式分解减小模型维数大小、 合并简化训练集、 使用模型更新策略来提高跟踪速度。 C-COT[27]和ECO[28]通过提取多分辨率深度特征图进行插值得到空间连续分辨率特征响应图, 因此可以实现对子像素的定位, 这对于特征点的跟踪任务至关重要。 Bertinetto等人提出孪生网络跟踪方法SiamFC[29], 该网络由两个完全一样且权值共享的分支构成, 两分支的输入分别为目标模板图像和搜索图像, 在搜索图像中产生候选框, 如果目标模板图像和搜索图像的候选框一致, 则返回匹配分值高, YCNN[30]方法与之类似。 SiamFC作为早期孪生网络的跟踪方法, 可以满足实时跟踪的要求, 但精度较差且无法适应目标的尺度变化。 针对SiamFC在面对目标形变、 遮挡时跟踪失败的问题, 冯琪堯[31]等人提出使用通道注意力和空间注意力的混合注意力模块提高网络的识别能力。
将跟踪问题视为分类任务时, 在跟踪相似物体时很容易受到干扰。 SANet[32]使用RNN建立结构感知网络提取目标的自身结构信息, 从而不仅提高了从背景中区分目标的能力, 也提高了对相似物体的判别能力。 由于跟踪失败的情况可以通过学习历史视觉语义和历史跟踪结果得到解决, Ning等人[33]提出一种基于RNN、 在空间域和时间域都进行网络学习分析的跟踪方法。
针对正负样本的失衡, 以及由于正样本在空间上高度重合而无法获得丰富的表观特征的问题, Song等人[34]提出VITAL方法, 使用生成对抗网络GAN, 在增强正样本特征的同时获得丰富的表观变化, 还使用一个高阶代价敏感损失函数来寻找难以区分的负样本, 以此解决正负样本不平衡的问题。 VITAL对特征图随机生成权重掩膜, 和原始的特征图进行dropout, 进入分类全连接层, 并且把随机生成权重掩膜和dropout操作视为对抗特征生成器, 分类全连接层视为生成器进行对抗训练。 文献[35]为了提高视觉跟踪的鲁棒性, 通过正样本生成网络, 得到与训练样本相似的目标甚至是像训练序列帧之间这样没有出现在训练数据集中的样本, 对正样本生成网络的输出添加遮挡, 使其成为难区分的正样本。 GradNet[36]以SiamFC为基础, 利用梯度的判别信息, 通过前馈和反馈更新孪生网络中的匹配模板。 Quadruplet Network[37]以SiamFC为基础, 在训练前进行预训练, 从范例和实例中通过强化分数惩罚, 将正样本和负样本在评分上区分开, 而后利用Triplet[38]思想搭建了由范例、 实例、 正样本和负样本输入生成的样本三元损失和样本对损失共同构成总损失函数, 很好地挖掘了实例间的潜在关系, 提升了网络的训练效果。 对SiamFC在目标形变、 遮挡和快速运动等复杂场景中易导致跟踪失败的问题, 提出一种利用混合注意力机制增强网络识别能力的算法。
不同于检测、 分类等任务拥有数量庞大的训练数据集, 对于跟踪任务而言, 仅仅只有序列第一帧的边界框有精确位置, 因此从零开始训练得到跟踪网络难度很大, 针对这一问题, 鉴于深度特征具有较强的通用性, 直接采用在大量图像数据集上预训练的网络来进行特征提取, 尤其是VGGNet和AlexNet这样普遍性更强的网络。 FCNT[23]使用VGG网络的conv4-3和conv5-3提取到的特征图分别作为其设计的分类网络和通用网络的输入, 分类网络和通用网络进行在线更新, 最终的目标位置是通过融合这两个网络的输出得到的。 TCNN[39]的网络结构由三个卷积层和三个全连接层构成, 卷积层使用VGG-M, 全连接层随机初始化后进行在线更新。 CREST[40]使用VGG-16进行特征提取, 再用DCF来判别目标。 类似的预训练网络和在线微调结合的算法参见文献[41-43]等。