张红艳,黄宏博,2+,何嘉玉,刘亚辉,李 颖
(1.北京信息科技大学 计算机学院,北京 100101;2.北京信息科技大学 计算智能研究所,北京 100192;3.北京信息科技大学 信息管理学院,北京 100192)
多目标跟踪是计算机视觉领域的重要方向之一[1],目前的多目标跟踪算法主要是基于检测的跟踪。该类算法将目标检测和重识别作为两个独立的任务分开进行(也称两步法),即首先使用目标检测器来定位图像中所有运动的对象并分别用边界框标记出来,接着将目标检测框送入重识别(re-identification,ReID)网络,以提取判别性特征,最后通过关联算法将每帧中各个目标的边界框连接起来形成多个目标运动轨迹,如Deep SORT[2]。两步法多目标跟踪可以分别为目标检测和重识别选择最合适的模型,并且可以把检测框调整到相同的大小,然后再提取重识别特征,这有助于处理目标的尺度变化。因此,两步法在公共数据集上取得了很好的性能。然而,由于目标检测和重新识别特征嵌入都需要大量的计算,且两者之间没有共享特征,跟踪模型很难实现视频帧率推断。而单步双分支多目标跟踪在单一网络架构中同时完成目标检测和重识别特征提取,通过共享大部分计算来减少推理时间,可以解决上述问题,如JDE[3]。
在上述研究的基础上,为了进一步提高多目标跟踪精度,使用融合改进注意力机制的深度聚合主干网络[4]来提取共享特征,得到同时适用于检测与重识别的判别性特征;然后将特征图送入联合训练的无锚框检测与重识别两个任务分支来预测目标的位置以及得到外观特征向量,提高了跟踪的准确度;最后使用简洁的卡尔曼滤波和匈牙利算法组合的方式进行轨迹匹配与更新,提高算法跟踪效率。
为了提高多目标跟踪的跟踪准确度,本文使用深层聚合网络的改进结构作为主干网络,并融入改进的通道注意力机制,以此来提取目标特征,进而将特征送入检测分支和重识别分支,图1为该阶段的框架。
图1 单步双分支多目标跟踪网络框架
在单步双分支多目标跟踪中,特征共享网络需要同时满足后续的检测和重识别特征提取两个任务的需求:①具备多层特征聚合功能;②解决目标尺度变化和形变问题。
根据上述条件,设计如下方案:为了在准确性和速度之间取得良好的平衡,使用深层聚合网络(deep layer aggregation,DLA[5])改进的DLA-34作为主干网络。具体网络结构如图1所示,其中,根据特征图的分辨率不同,每个层次(Stage)由不同的基础块(BasicBlock)聚合而成。在原有结构的基础上,改进后的网络在低级特征和高级特征之间添加了更多的跳跃连接以此来满足目标检测和重识别两个分支(前者需要深度和抽象的特征来估计目标的类别和位置,后者更注重使用低级的外观特征来区分同一类的不同实例)使用不同深度特征图的需求,同时使用可变形卷积代替上采样模块中的卷积层动态调整感受野,解决目标尺度变化和形变问题。
注意力机制归根结底是模仿人脑视觉信号处理机制获取信息,即注意力只关注其本身认为重点的信息,从而忽视或相对忽视其它方面的信息。改进的DLA-34特征提取网络仅关注特征图的空间信息,忽略了特征通道间的相互依赖关系,从而使提取的特征不能准确地代表目标。SENet(squeeze-and-excitation networks)[6]是一种通道注意力机制,它可以学习特征通道之间的相互依赖关系,自动实现特征通道之间的权重标注,根据特征通道产生的效果大小赋予不同的权重值。该网络包括Squeeze和Excitation两部分。
1.2.1 Squeeze部分
传统的卷积操作利用固定大小的卷积核进行,导致输出特征图上的特征点无法利用卷积核区域以外的上下文信息。为了解决这个问题,Squeeze网络使用全局平均池化对每个特征通道进行特征压缩,将全局空间信息压缩到一个特征通道描述符z∈Rc中。具体过程如下式所示
(1)
其中,Fsq表示Squeeze操作,H表示输入特征图的高度,W表示输入特征图的宽度,zc表示特征通道描述符z的第c个元素,uc表示特征图U的第c通道。由公式可以看出使用极简单的操作就可以实现全局信息的聚合,降低了计算量,提高了效率。
1.2.2 Excitation部分
为了利用上步操作中的全局平均池化信息,需要进行第二步操作来标注不同特征通道的权重。为了完成上述目标,需要设计满足如下标准的函数:第一,它必须具有灵活性,可以学习特征通道之间的非线性关系;第二,它必须学会构造非互斥关系,因为需要多个特征通道并存,而不是类似于独热编码那样只允许一个通道存在。所以,Excitation网络部分使用一个简单的门控机制和Sigmoid非线性激活函数来完成上述要求。具体实现过程如下式所示
s=Fex(z,W)=σ(g(z,W))=σ(W2δ(W1z))
(2)
图2 改进的通道注意力机制
(3)
将该改进网络嵌入到特征共享网络的基础块,充分学习特征通道之间的依赖关系,提取更具判别性的特征,以实现更好的跟踪性能。
1.3.1 目标检测分支
目标检测按照表现形式可以分为无锚框和基于锚框的。但是基于锚框的目标检测一般采用非极大值抑制(NMS)进行边界框的弃留,所以通常会面临如图3(a)所示的问题,即一个锚框包含多个目标(左侧)或者一个目标由多个锚框(右侧)表示,这样容易导致特征提取歧义。针对这些问题,借鉴文献[7],本文拟采用无锚框的CenterNet目标检测器,将目标检测作为一个在高分辨率的特征图上基于中心点的边界框回归任务,将主干网络输出的特征图作为输入,输出目标在当前帧的位置,以更好适应跟踪场景。
图3 基于锚框与无锚框检测效果
如图1所示,在主干网络上附加3个平行分支回归头来分别输出目标的热力图、目标中心偏移量和边界框大小。
(1)热力图分支
热力图分支采用基于热力图的表示方法估计目标中心的位置,热力图的尺寸为1×H×W。 其实现思想是:如果热力图中某一位置与真实标记目标中心重合,其响应预计为1,并且响应随着热力图中位置和目标中心之间的距离越大呈指数衰减。
(4)
其次,通过划分步长得到其在特征图上的对应位置为
(5)
再次,在特征图 (x,y) 位置处的热力图响应计算为
(6)
其中,N表示图像中目标的数量,σc表示标准差。
最后,损失函数定义为焦点损失[8]的像素级逻辑回归
(7)
(2)中心偏移和边界框大小回归分支
重识别特征需要根据精确的目标中心来提取,然而由于特征图的缩放步长会引入量化误差,所以该误差对于跟踪的影响比较大。中心偏移分支估计每个像素相对于对象中心的连续偏移,负责更精确地定位物体,以减轻下采样的影响。边界框大小回归分支负责估计目标边界框的高度和宽度,该分支定位的精度会影响对目标检测性能的评估。
(8)
同样,真实标记框偏移量计算为
(9)
(10)
其中,N表示目标数量。
1.3.2 重识别网络分支
重识别网络分支的目标是提取能够区分不同目标的判别性特征。在同一空间维度中,同一物体之间的距离应该远远小于不同物体之间的距离。为了达到上述目标,重识别分支使用128核的卷积层来提取特征图上每个位置的重识别特征,进而得到的特征映射E∈R128×W×H。 最后从特征图中提取以 (x,y) 为中心的目标的重识别特征Ex,y∈R128。
P={p(k),k∈[1,K]}
(11)
其中,K为总类别数。
定义Li(k) 为真实标记框的类标签的独热编码,重识别网络的损失函数定义为
(12)
1.3.3 损失函数联合训练
为了使检测与重识别两个分支同时得到充分学习,采用联合训练的方式,即不确定性损失[9]加权式(7)、式(10)和式(12),自动平衡检测与重识别任务
Ldetection=Lheat+Lbox
(13)
(14)
其中,w1和w2是平衡这两项任务的可学习参数。
使用上述加权损失函数来训练整个网络模型,以期达到鲁棒的跟踪性能。
在整个单步双分支多目标跟踪中,数据关联阶段也是至关重要的一部分。该阶段主要考虑如何使用检测结果和身份嵌入信息来执行后续跟踪流程。为了实现实时在线跟踪,本文使用卡尔曼滤波加匈牙利算法组合的方式实现帧间连接。首先,使用上文提到的无锚框目标检测器检测目标,并对每个目标初始化一个跟踪器(ID号)。然后计算当前帧中的每个检测目标与上一帧的所有目标轨迹之间的外观余弦距离代价矩阵,接着计算卡尔曼滤波预测的每个轨迹的平均轨道位置和实际检测框之间的平方马氏距离代价矩阵。随后将这两个代价矩阵进行加权,并使用匈牙利算法以加权代价矩阵为输入将检测与轨迹进行匹配,返回初步的匹配结果。对于未匹配的轨迹和检测,使用IOU距离作为代价矩阵输入到匈牙利算法进行匹配,得到最终的匹配结果。最后是轨迹更新和后续处理阶段,使用卡尔曼滤波对轨迹进行更新,并确定轨迹状态是开始还是终止。
1.4.1 卡尔曼滤波
卡尔曼滤波(Kalman)[10]是利用目标的动态信息进行状态估计,在已知上一帧图像的估计值及当前帧图像的观测值的情况下,预测并更新目标在当前帧中可能出现的位置。通过对目标位置进行线性预测能够解决一些复杂情况下的目标漂移现象。所以其可以在无合适匹配检测框的情况下,根据目标状态历史信息线性预测目标位置,为后续应用匈牙利算法提供匹配信息。
1.4.2 匈牙利算法
解决卡尔曼滤波预测的运动状态与目标检测之间的匹配的方法是把其看作分配问题。常规做法是使用匈牙利算法[11]来求解分配问题。匈牙利算法本质上是在二分图中寻找最大匹配。二分图将无向图的顶点划分为两个子集,并且这两个子集互不相交,图中每条边的两个顶点分别连接两个子集且每两条边之间没有公共顶点。在视频多目标跟踪中,由于同一帧图像的不同检测框不会是同一个目标不需要互相关联匹配,所以适合二分图的应用。连续两帧图像中的所有检测边界框可以看作二分图的全部顶点,前一帧图像中全部边界框作为一个集合,当前帧图像所有边界框作为另一个集合。两个集合之间需要相互连通,最终相邻两帧图像的检测边界框被尽可能地连接起来,实现最大匹配。本文通过结合运动信息和外观信息以及IOU距离来实现匈牙利算法的匹配。
(1)外观信息
(15)
其中,rj是第j个目标检测边界框的外观向量。
(2)运动信息
为了计算运动度量,使用卡尔曼滤波预测的运动状态与目标检测结果之间的(平方)马氏距离如式(16)所示
(16)
其中,dj表示第j个检测的边界框位置,yi表示第i个跟踪器在当前帧中的预测位置,Si表示检测位置与平均跟踪位置之间的协方差矩阵。即马氏距离考虑状态测量误差的标准是计算检测位置和平均跟踪位置之间的标准差。
对于本文多目标跟踪中的数据关联,首先已完成了用单步双分支联合检测与重识别网络得到当前帧图像中的目标边界框的坐标位置以及目标的外观特征向量,然后计算已有轨迹与当前帧中检测结果外观向量的最小余弦距离,接着使用卡尔曼滤波根据上一帧图像的跟踪结果完成了当前帧中目标位置的预测,进而计算目标位置预测与当前帧检测之间的马氏距离,最后利用余弦距离和马氏距离加权构造关联矩阵,表达式如下
ci,j=λd(1)(i,j)+(1-λ)d(2)(i,j)
(17)
其中,λ为权重系数,负责控制外观度量与运动度量所占的比重,为匈牙利算法提供更准确的匹配矩阵。
(3)IOU距离
使用匈牙利算法将加权代价矩阵作为输入,将轨迹与检测进行匹配,得到初步的多目标跟踪匹配成功结果以及没有匹配上的检测与轨迹。然后计算未匹配的检测与未匹配的轨迹之间的IOU距离作为新的代价矩阵,并将其输入到匈牙利算法进行匹配,再次得到匹配结果以及未匹配的检测和轨迹。进而使用卡尔曼滤波更新轨迹状态,并确定未匹配的轨迹与检测的状态。其具体确定流程如下:对于每个轨迹,设置一个计数器。在没有合适检测框匹配的时间段内,卡尔曼滤波将持续预测,计数器的数字在预测期间持续增大,直到轨迹与检测相关联时重置为0。当计数器增大到最大阈值时,认为该目标离开场景并从轨迹设置中删除。对于不能与现有轨迹相关联的每一个检测,都启动一个新的轨迹假设(即假定新目标轨迹开始)。这些新的轨迹在它们出现的前三帧中被监督。在这段时间内,没有成功关联到新检测的轨迹将被删除(目标离开了画面),反之,则被确定轨迹状态并分配新的ID号。
使用的操作系统为Ubuntu 16.04.7,CPU为Intel(R) Core(TM) i9-9820X CPU @ 3.30 GHz,内存为32 GB;GPU为两块TITAN RTX,每块TITAN RTX的显存是24 GB。
实验采用多目标跟踪综合评价指标[12]多目标跟踪准确度(MOTA)、多目标跟踪精确度(MOTP)、成功跟踪的目标轨迹占真实标注目标轨迹比例(MT)、丢失的目标轨迹占真实标注目标轨迹比例(ML)、误检目标总数(FP)和漏检目标总数(FN)以及身份切换次数(IDs)进行结果分析,其中前3种指标表示数值越大跟踪性能越好,而后4种指标表示数值越小跟踪性能越好。
为了保持整个训练过程的简洁性以及与其它算法对比的公平性,本文不使用其它额外数据集,仅使用多目标跟踪挑战(MOT challenge)官网提供的2D MOT2015数据集[13]进行训练以及测试。2D MOT 2015数据集收集在固定或移动摄像机拍摄、不同的环境和照明条件等情况下的各类视频,包含22个视频序列,分为训练数据集和测试数据集两部分,每部分都各有11个视频序列。其中,训练数据集提供了真实标注,测试数据集没有提供真实标注。所以,本文将上述训练数据集划分为训练集和验证集以验证本文提出的算法性能,具体的划分情况见表1。
表1 2D MOT 2015训练数据集的划分
本文提出的添加改进注意力机制与没改进之前的对比实验见表2。其中,“DLA-34”表示未融合注意力机制的单步双分支多目标跟踪算法,“Se-DLA-34”表示加入原始SENet的单步双分支多目标跟踪,“Ours”表示本文提出的算法。由表2可以发现,融合注意力机制的多目标跟踪算法比未添加的跟踪算法跟踪性能有了明显提升,其中MOTA提升了1.9%,FP和IDs都有明显下降。而本文改进的通道注意力机制更是发挥了巨大的作用,相对于原始的跟踪算法,其MOTA提高了2.7%,说明在降低计算参数量的同时,使模型更容易训练,避免陷入局部最优。更进一步说明了提出的融合改进的通道注意力的单步双分支多目标跟踪更加适合多目标跟踪场景。
表2 验证集上的对比实验
在验证集上验证本文提出的算法有效后,接着使用2D MOT 2015中的全部训练数据集进行训练,然后将测试结果提交MOT Benchmark进行跟踪性能测评,并与其它4种在线的使用私有检测器的多目标跟踪器CDA-DDAL[14]、HFRN[15]、Tracktor++[16]和IFMOT[17]进行对比,见表3。
表3 各类算法在2D MOT 2015测试数据集的结果
从表3可知,本文的算法在MOTA和MOTP上实现了最好的性能,且MOTA得分比位于第二位的CDA-DDAL算法高3.8%。并且丢失的目标轨迹占真实目标轨迹比例以及漏检的数目最少,在单块TITAN RTX上以28.6 FPS的速度运行。上述结果验证了本文提出的融合改进注意力机制的单步双分支多目标跟踪算法具有较高的多目标跟踪准确度和精确度,并且可以有效解决目标的遮挡问题导致的轨迹丢失以及身份切换问题。
为直观体现本文提出的跟踪算法的跟踪效果,从测试数据集TUD-Crossing中选择3帧视频图像来定性分析说明,其中第一行是第36帧行人遮挡发生前;第二行是第47帧行人遮挡正在发生,最右侧的两个行人发生了遮挡与被遮挡;第三行是第56帧遮挡结束。图4显示了本文跟踪算法与其它4种跟踪算法的跟踪性能对比结果。由图4可以看出,本文的算法在遮挡前后的目标检测以及身份号保持都有不错的效果;而CDA-DDAL算法虽然身份号保持不错,但是在第47帧发生了明显的漏检;HFRN在第36帧有目标漏检;Tracktor++不仅在第36帧和47帧有漏检,而且还发生了明显的身份号切换;IFMOT在3帧图像中均出现了漏检现象,并且还伴随着遮挡前后的身份号切换,跟踪准确度较低。结果表明,本文提出的算法在应对遮挡时能保持不错的跟踪性能,并且拥有鲁棒的检测性能。
图4 5种算法跟踪结果
为了在实现实时多目标跟踪的同时进一步提高多目标跟踪精度、减少身份切换次数,本文提出了一种融合注意力机制的单步双分支多目标跟踪算法。在联合检测与重识别网络框架的基础上,添加改进的通道注意力机制,使模型学习到更丰富更具判别性的特征,提高了目标检测器的精度,同时有效解决了由于遮挡问题引起的身份切换次数增加的问题。为了进一步提高跟踪速度,在数据关联阶段使用卡尔曼滤波加匈牙利算法的组合方法并利用了运动信息、外观信息以及IOU信息,实现了快速、准确的跟踪。从实验结果可以看出,本文提出的算法在遮挡以及目标形变的复杂环境下,都可以实现不错的跟踪性能。