基于CNN-GRU 度量网络的多目标跟踪算法
2021-07-26王潇潇张雪芹
王潇潇, 张雪芹
(华东理工大学信息科学与工程学院,上海 200237)
多目标跟踪是指通过分析视频来识别和跟踪行人、汽车等多个目标物体,在视频监控[1]、自动驾驶[2]、动作识别[3]及人群行为分析等实际应用中都依赖于多目标跟踪算法。目前多目标跟踪仍然是一个具有挑战性的视觉任务,其主要困难在于同时跟踪多个目标时,由于目标之间的遮挡和外观相似性,容易造成跟踪目标丢失或者目标标识(ID)切换等问题。近年来,深度学习在图像分类[4-6]、目标检测[7-9]等计算机视觉任务中取得了成功,推动了多目标跟踪技术的进步,与深度神经网络相结合的多目标跟踪算法成为研究热点[10]。
多目标跟踪框架一般都是基于检测的跟踪框架,即在已知当前视频帧目标检测框的情况下,进一步匹配得到目标的ID。基于检测的多目标跟踪框架的基本流程是:目标检测、目标检测框的特征提取、目标检测框和轨迹框的相似度计算及数据关联[11]。检测阶段主要依赖于目标检测算法,而目前对多目标跟踪算法的研究主要集中在后二项。
针对目标检测框的特征提取问题,由于多目标跟踪场景下一般都存在多个目标遮挡、交互的情况,因而提取判别性的特征很困难。特征提取阶段最常用的方法是卷积神经网络(Convolutional Neural Network, CNN),或者是将CNN 提取的外观特征和人工提取的特征相结合。基于深度学习的外观特征提取算法能够有效提取目标的外观特征,但是当多个目标外观相似且发生重叠时,ID 切换率仍然较高。Wojke 等[12]将行人重识别网络提取的外观特征与位置特征相结合,用卡尔曼滤波器预测目标框位置,计算匹配相似度矩阵,改善了SORT 算法[13]ID 切换率高的问题。He 等[14]通过构建目标轨迹的运动模型、外观模型以及尺度模型,减弱目标部分遮挡对外观特征的影响。Lee 等[15]将金字塔网络和Siamese网络结合,采用上采样和合并策略为金字塔分层创建特征,将深层特征与浅层特征合并在一起,以提供更具有判别性的特征。然而这几种方法没有很好地利用不同时序的目标轨迹框的特征。
在多目标跟踪中的相似度计算方面,Chen 等[16]将行人重识别模型和前景网络结合成一个外观模型,利用该模型中前景网络的位置敏感得分图(Position-Sensitive Score Map)作为空间注意力,减少目标检测框的背景以及遮挡的影响,通过前景分数聚合外观特征并用欧式距离计算相似度。Xu 等[17]通过训练Siamese 网络来学习不同ID 目标间的差异度量,并在该网络中分别提取目标全局和局部特征,减轻遮挡对多目标跟踪结果的影响,用欧式距离计算度量网络输出特征的相似度。Hao 等[18]使用GoogLeNet 来提取外观特征,利用余弦距离来计算检测框和轨迹框之间的相似度,并结合运动预测计算整体相似度。然而这些方法只使用训练得到的深度模型提取外观特征,在相似度度量方面,将提取的特征直接使用预设好的距离度量如余弦距离或欧式距离求相似度,可能会造成ID 切换率和误报率较高的问题。
在多目标跟踪的数据关联算法方面,Sun 等[19]构建了一个端到端的计算视频帧中所有行人目标检测框和轨迹框数据关联成本矩阵的深度模型,通过直接学习成本矩阵来构建独特的损失函数,但该方法只提取了目标中心点的特征,没有完全学习到整个目标框的外观表达。Thoreau 等[20]构建了基于度量学习的Siamese 网络,以此来学习多个目标在不同视频帧的相似度,其数据关联算法使用外观模型和运动模型,并通过给这两个模型赋予固定的相似度权重,融合得到最后的检测框和轨迹框的相似度,但是这种预先给外观模型和运动模型设定固定权重的方式不能自适应学习外观模型和运动模型各自的重要性。
以上方法证明了深度学习方法在外观特征提取、相似度计算以及数据关联过程中的有效性,不同模型在数据关联算法中的融合使用可以增加模型的性能,但是针对相似目标难区分、目标轨迹框误报率高的问题,仍有进一步提高的空间。
针对复杂多目标跟踪场景中行人目标ID 切换率高和误报率高的问题,本文提出了一个基于CNNGRU 度量网络的多目标跟踪框架。该框架主要包括行人重识别模型、CNN-GRU 度量网络和数据关联算法。在CNN-GRU 深度度量网络中统一提取目标的外观特征和运动特征,并学习其时间关联性,使得目标具有更好的判别性,降低目标的ID 切换率。同时,通过训练使网络学习目标不同时序历史轨迹框正确匹配的概率值,抑制目标轨迹中的误检以及低质量目标框对目标整体特征的影响,降低误报率;在CNN-GRU 度量网络结构中直接聚合不同时序的目标历史轨迹框的外观特征,再由该度量网络直接输出目标轨迹框和检测框特征的相似度。该相似度与行人重识别模型输出的特征计算得到的相似度再通过数据关联算法,最终计算出匹配结果。
1 基于CNN-GRU 的多目标跟踪框架
1.1 总体框架
本文提出的基于CNN-GRU 的多目标跟踪框架如图1 所示。
该多目标跟踪框架主要由以下3 个部分组成:
(1)目标框提取。基于目标检测算法提取视频当前帧的目标检测框,而轨迹框是历史视频帧计算得到的目标轨迹框。
(2)相似度计算。采用CNN-GRU 度量网络计算目标检测框和轨迹框的相似度。在该网络中,先使用CNN 提取目标框的深度特征,再采用两个GRU 分别学习目标历史轨迹框的外观特征和运动特征的时间关联性,以及学习目标保存的每个历史轨迹框正确匹配的概率值,聚合不同时序的目标轨迹框的外观特征,再由CNN-GRU 网络输出目标轨迹框和检测框特征的相似度。采用基于深度学习的行人重识别(Reid)网络[21]分别提取目标检测框和轨迹框的外观特征,并计算它们之间的相似度(余弦距离)。
(3)数据关联。将Reid 网络和CNN-GRU 度量网络输出的相似度结合,得到检测框和轨迹框的匹配关联矩阵,通过匈牙利匹配算法[22]最终得到当前视频帧所有检测框和目标轨迹框的匹配结果。
该框架构建了一个直接输出检测框和轨迹框相似度的深度度量网络,通过在该度量网络中直接训练相似度以及自适应结合外观特征和运动特征的方式,应对多目标跟踪复杂的场景变化;通过在深度度量网络中学习不同时序的历史目标轨迹框外观特征和运动特征的时间关联性,降低目标的ID 切换率;通过学习每个目标保存的不同时序的历史轨迹框正确匹配的概率值,降低误报率。同时结合深度度量网络输出的相似度和行人重识别网络提取的外观特征的相似度,得到最后的检测框和轨迹框的匹配结果,进一步降低目标ID 的切换率。
1.2 CNN-GRU 的深度度量网络
1.2.1 CNN-GRU 度量网络结构 CNN-GRU 度量网络结构如图2 所示,由一个CNN 网络和双GRU 网络构成。其中,CNN 网络用于提取目标框的外观特征,双GRU 网络分别用于学习目标外观特征和运动特征的时间关联性,采用双GRU 结构学习多个时序之间特征的关联性,减少目标遮挡、目标外观和速度变化带来的影响。在该网络中,针对ID 切换率高的问题,对外观GRU 和运动GRU 每个时序的隐状态进行拼接,将外观相似但速度不相似的目标区分开。同时,在双GRU 拼接以后,通过连接一个全连接层和Sigmoid 函数,将属于该目标的历史轨迹框与不属于该目标但进入该目标轨迹中的误检区分开,以降低误报率。然后在CNN-GRU 度量网络结构中继续解决多目标跟踪中目标历史轨迹框的特征聚合问题,并输出目标检测框和轨迹框的相似度。
表1 CNN-GRU 中的CNN 网络结构Table 1 CNN network structure in CNN-GRU
图3 双GRU 的结构图Fig. 3 Structure of dual GRU
(3)度量学习。度量学习用于学习目标样本对之间的距离或者相似度,学习度量空间使得实际属于同个类别的目标特征的距离更小。在图2 描述的CNN-GRU 度量网络的结构图内,在得到目标保存的各个时序的历史轨迹框正确匹配的概率后,还需学习目标轨迹框和检测框特征的相似度,即学习一种度量。该度量针对视频图像中同一轨迹中的特征向量输出的相似度要比属于不同轨迹中的特征向量返回的相似度要大。为了在CNN-GRU 网络中得到目标轨迹框和检测框特征的相似度,需要先聚合目标历史轨迹框的特征。
在得到跟踪目标保存的各个时序的历史轨迹框正确匹配的概率后,以此概率为权重,聚合多个时序的目标历史轨迹框的特征。对聚合的特征和目标检测框的外观特征求余弦距离,并经Sigmoid 函数计算目标轨迹框和检测框特征的相似度。
CNN-GRU 度量网络中聚合历史轨迹框特征以及检测框和轨迹框的相似度计算公式如下:
(4)损失函数。CNN-GRU 度量网络主要采用3 种 损 失 函 数:Softmax loss、Binary cross entropy loss 和Triplet loss。 其 中, 分 类 损 失 使 用 的是resnet18-part 经过分类层输出且L2 归一化后的特征;Triplet loss 使用的是resnet18-part 全连接层输出的256 维的特征;Binary cross entropy loss 在该网络结构中用在两个地方,一是双GRU 结构中全连接层输出的特征,二是CNN-GRU 网络在聚合目标轨迹框特征后与检测框计算的相似度特征。
在CNN-GRU 度量网络中有两处使用到Binary cross entropy loss,分别用于目标历史轨迹框的正确匹配学习和相似度学习。
正确匹配学习的损失函数公式如下:
相似度学习的损失函数公式如下:
在整个CNN-GRU 度量网络的训练中,Softmax loss 损失函数主要是使得CNN-GRU 度量网络中CNN 提取的外观特征能区分不同ID 的目标;Triplet loss 损失函数主要是使得CNN-GRU 度量网络中CNN 提取的不同ID 间的特征距离更远,同ID 间的目标框的特征距离更近;Binary cross entropy loss 损失函数主要是使得CNN-GRU 度量网络学习历史轨迹框中每个时序的轨迹框正确匹配,以及用于目标轨迹框和检测框的相似度学习。
其中:xt为GRU 当前时序输入,本文中双GRU 每个时序的输入分别为第t-i帧轨迹框的外观特征ft-i和速度特征;zt为GRU 的更新门; σ 为Sigmoid函数,主要是控制历史信息的更新;rt为GRU 的重置门,主要是决定以前哪些信息需要重置;h~t为包含当前输入和选择记忆历史信息后的输出;ht为当前时序的隐状态输出值,其使用同一个门控zt来遗忘和选择记忆。zt⊙h~t表示对当前时序信息进行选择性的记忆; ( 1-zt)⊙ht-1表示对上一个时序的隐状态的选择性的遗忘, ⊙ 表示向量对应元素相乘(Element-wise multiplication);Wz、Wt、W和Uz、Ut、U为训练阶段学习到的权重矩阵。GRU 每个时序的隐状态的更新都意味着遗忘上一个时序传递下来的隐状态的某些维度的信息,并选择性地加入当前时序输入的某些维度的信息,从而学习视频目标轨迹框之间的外观和速度的时间关联性,即每个时序保留一些利于区分当前目标框和其他目标的特征维度,遗忘一些冗余的特征维度。
1.3 行人重识别网络
在多目标跟踪中检测框和跟踪框之间的相似度函数是数据关联的重要组成部分,为了求得相似度需要从视频图像中提取特征。研究证明从基于行人重识别任务的卷积神经网络中学到的深层特征,可以结合到多目标跟踪算法中以提高跟踪性能[23]。
本文采用文献[21]提出的行人重识别的网络结构,命名为Reid。该网络由GoogLeNet 和部分对齐全连接(fc)层的K个分支组成,并利用大规模的行人重识别数据集Market1501 等对网络进行训练。使用余弦距离度量Reid 网络提取的外观特征的距离。
1.4 数据关联算法
数据关联是指根据历史轨迹框和检测框的匹配矩阵得到每个检测框对应的目标ID。其中,匹配矩阵的每一项是历史目标轨迹框和检测框特征的距离。
在得到匹配矩阵以后,还需利用每个跟踪目标的卡尔曼滤波器在当前帧预测的目标位置,限制与当前目标轨迹框匹配的检测框的范围。最后,使用匈牙利匹配算法匹配所有轨迹框和剩下的检测框,得到最后的目标ID 和检测框的匹配结果。
1.5 基于CNN-GRU 的多目标跟踪算法
基于CNN-GRU 的多目标跟踪算法的完整描述如下:
-当一个轨迹连续3 帧与检测框匹配,就认为这个轨迹的跟踪状态变为确定状态,并将其添加到轨迹集合中
2 结果与分析
2.1 数据集
本文采用标准的多目标跟踪数据集MOT16 和MOT17[24]进行实验。MOT16 数据集共有14 个视频序列,其中7 个为带有标注信息的训练集,7 个为测试集。MOT16 主要标注的目标是移动的行人与车辆,拥有不同拍摄视角、不同天气状况的复杂场景视频。MOT17 数据集与MOT16 具有相同的视频,但是MOT17 数据集中每个视频提供3 组公开的目标检测结果:分别来自Faster R-CNN[8]、DPM 和尺寸池化检测器SDP[25]。本文采用MOT16 训练集中可用的460 个可跟踪目标训练CNN-GRU 度量网络。
在训练CNN-GRU 度量网络的过程中,采用随机采样同个目标轨迹中的相邻的帧组成训练集正样本,并且在轨迹集中加入负样本(即在目标轨迹框出现的视频帧中随机选择其他目标框作为负样本)构成训练集。这样即使目标轨迹中加入了其他目标检测框,也可以通过在聚合历史特征时通过式(2)给它分配低权重来降低其对整体轨迹特征的影响。
2.2 评估标准和实验环境
针对本文关注解决的问题,采用MOTA、IDF1、IDs 和FP 作为主要评估指标。其中MOTA 指标结合了漏报、误报和ID 切换率,其得分能够很好地表征跟踪精度,但不能评估轨迹一致性;IDF1 是识别F1 分数,表示正确识别的检测数与平均groundtruth 和检测数量之比,能更好地度量身份匹配的一致性[26];IDs 表示目标发生ID 切换的次数;FP 表示假正例(误报)的数量。MOTA 的计算公式如下[27]:
其中:FP 表示整个视频中误报的数量;FN 表示整个视频中漏检的数量; I DSW 表示目标ID 发生变化的数量; GT 表示ground-truth 目标框的个数。
本实验的CPU 配置为Intel Core-i7-8750H @2.2 GHz,GPU 是NVIDIA GeForce GTX1060。
2.3 实验与结果
实验主要关注多目标的跟踪结果,其中,在MOT17 数据集上的对比实验采用该数据集提供的公开目标检测结果;在MOT16 数据集上的验证实验的跟踪器检测部分的检测结果使用文献[28]的结果。
(1)有效性验证实验。为了验证CNN-GRU 度量网络的有效性,首先在MOT16 训练集上进行验证实验。设跟踪器的基线模型(基础多目标跟踪器)由卡尔曼滤波器(位置限定)+IOU 关联+匈牙利匹配算法组成,命名为baseline。基线模型+CNN-GRU 度量网络组成的多目标跟踪器命名为b-cnngru。基线模型+行人重识别网络组成的多目标跟踪器命名为breid。b-reid+CNN-GRU 网络命名为Ours(+)。为了进一步证明所提数据关联方法的有效性,实验还比较了将(行人重识别网络输出特征计算的相似度)×(CNN-GRU 输出的相似度)作为总的相似度分数的方法,命名为Ours(*)。
图4、图5 分别示出了b-reid、Ours(+)和Ours(*)在IDF1、IDs 两个指标上的比较结果。表2 示出了baseline、b-reid、b-cnngru、Ours(+)和Ours(*)在多个指标上的比较结果。
图4 基于IDF1 指标的效果验证Fig. 4 Verification of effects based on IDF1 index
图5 基于IDs 指标的效果验证Fig. 5 Verification of effects based on IDs index
表2 中向下的箭头表示该指标越小越好;向上的箭头表示该指标越大越好。从表2 的结果可以看出,b-cnngru 的MOTA 得分比b-reid 高0.1%,且bcnngru 的IDF1、FP 和IDs 指标均优于b-reid,说明在baseline 中加入CNN_GRU 度量网络比在baseline 中加入Reid 网络的整体性能要高。与b-reid 相比,Ours(*)的IDF1 提高1.0%,IDs 下降了9.2%;Ours(+)的IDF1 提 高3.4%,IDs 下 降 了21.5%,FP 下 降 了5.9%,MOTA 提高0.3%。这几个模型的FN 相差不多,b-cnngru 和Ours(+)略有增加。综合来看,多目标跟踪框架中加入CNN-GRU,对目标ID 切换次数、目标误报率有较好的改进作用,目标ID 的一致性也有所提升,结合使用Reid 可以得到更好的跟踪性能。5 种跟踪器的运行速度比较结果如表3 所示。其中Hz 表示多目标跟踪器在基准数据集上的处理速度(即每秒帧数,不包括检测器部分,只包含跟踪部分的处理速度)。
表2 CNN-GRU 的效果验证(MOT16)Table 2 Effects verification of CNN-GRU (MOT16)
表3 CNN-GRU 的处理速度验证结果(MOT16)Table 3 Processing speed verification of CNN-GRU (MOT16)
从表3 中可以看出,在基线模型中加入行人重识别网络会使整个跟踪器的处理速度降低,因为视频中每个行人框都要提取外观特征会消耗一定的时间。加入CNN-GRU 度量网络后,处理上需要更多的时间。
(2)双GRU 验证实验。为了验证CNN-GRU 度量网络中双GRU 的有效性,比较了在双GRU 结构中只使用运动GRU 或外观GRU 时的性能(去掉双GRU 结构中的Concat)。在MOT16 训练集上进行验证实验,实验结果如表4 所示。其中,Ours(+)使用的是单CNN 和双GRU 的结构,而GRU-v 是使用单CNN 和运动GRU 的跟踪器,GRU-a 是使用单CNN和外观GRU 的跟踪器。
由表4 的实验结果可知,只使用单个运动GRU或者单个外观GRU 时,多个性能指标如MOTA、IDF1、FP、FN 和IDs 均差于在跟踪器中使用双GRU的效果,使用双GRU 结构性能高于只使用单个GRU 的性能。
表4 CNN-GRU 的双GRU 效果验证(MOT16)Table 4 Effects verification of dual GRU in CNN-GRU(MOT16)
(3)跟踪效果验证实验。为了进一步验证加入CNN-GRU 度量网络后多目标跟踪算法的改进效果,图6 示出了b-reid 模型和Ours(+)模型在两个多目标跟踪场景的对比效果图。
在图6 视频场景(a1,a2)中,具有相似外观的目标4 和目标8 发生重叠遮挡。可以看出,对于breid 模型,在相似外观的目标4 和8 发生重叠遮挡后发生了ID 切换;而对于Ours(+)模型,这些目标在重叠遮挡以后依旧可以被正确区分,没有产生ID 切换。在图6 视频场景(b1,b2)中,对于b-reid 模型,目标21 的轨迹框在第2 帧时被遮挡,且在第3 帧后目标21 的轨迹框中加入了目标37 的检测框,发生了ID 切换和误检;而对于Ours(+)模型,目标26 在第3帧时匹配到其他目标检测框,但由于本文模型可学习不同时序目标框正确匹配的概率,因此可重新正确识别目标。
图6 视频多目标场景的跟踪效果对比图Fig. 6 Comparison of tracking effect of video multi-target scene
(4)与现有跟踪器的对比实验。将本文所提跟踪器与MOT 官网(https://motchallenge.net/)上近几年提出的多目标跟踪器性能进行比较。实验在MOT17 测试集(该测试集包含3 组检测结果)上进行,实验结果见表5。
由表5 可以看出,在MOT17 测试集上,与MASS[29]和FPSN[15]跟踪器相比,本文提出的跟踪器虽然整体精度略低,但是有更低的误报率以及更低的ID 切换次数。与GMPHD_DAL[30]、SORT17[13]和GMPHD_N1Tr[31]相比,除FN、Hz 外,本文提出的跟踪器总体指标都有提升。与SAS_MOT17[32]相比,本文提出的跟踪器有更高的MOTA 分数和更低的误报率。与多个跟踪器的处理速度相比,本文提出的跟踪器的速度居中。总的来说,在MOT17 数据集的实验结果表明,CNN-GRU 多目标跟踪器在跟踪准确度、ID 切换次数和误报率方面具有良好的综合性能。
表5 MOT17 测试集结果Table 5 Comparison with public detector on MOT17 test dataset
3 结 论
本文提出了一种多目标跟踪框架,该框架主要包括行人重识别模型、CNN-GRU 度量网络和数据关联算法。在CNN-GRU 深度度量网络中统一提取目标的外观特征和运动特征,并学习其时间关联性,使得目标具有更好的判别性,以此降低ID 切换率。同时,通过训练使CNN-GRU 度量网络学习目标保存的不同历史时序轨迹框正确匹配的概率值,抑制目标轨迹中的误检以及低质量目标框对目标整体特征的影响;通过在CNN-GRU 度量网络结构中直接聚合不同时序的历史轨迹框的外观特征,再由该度量网络直接输出目标轨迹框和检测框特征的相似度。该相似度与行人重识别模型输出的特征计算得到的相似度通过数据关联算法,最终计算出匹配结果。将Reid 网络和CNN-GRU 度量网络输出的相似度结合进一步降低目标的ID 切换率。实验评估结果表明,本文提出的框架能够有效降低ID 切换率和误报率,提高跟踪精度。未来考虑加入边界框回归来修正目标检测结果不够精确的目标框的坐标。