-
多目标跟踪是指通过分析视频识别和跟踪行人和汽车等多个目标物体,在视频监控[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切换率高和误报率高的问题,本文提出了一个基于CNN-GRU度量网络的多目标跟踪框架。该框架主要包括行人重识别模型、CNN-GRU度量网络和数据关联算法。在CNN-GRU深度度量网络中统一提取目标的外观特征和运动特征,并学习其时间关联性,使得目标具有更好的判别性,降低目标的ID切换率。同时,通过训练使网络学习目标不同时序历史轨迹框正确匹配的概率值,抑制目标轨迹中的误检以及低质量目标框对目标整体特征的影响,降低误报率;在CNN-GRU度量网络结构中直接聚合不同时序的目标历史轨迹框的外观特征,再由该度量网络直接输出目标轨迹框和检测框特征的相似度。该相似度与行人重识别模型输出的特征计算得到的相似度再通过数据关联算法,最终计算出匹配结果。
-
本文提出的基于CNN-GRU的多目标跟踪框架如图1所示。
该多目标跟踪框架主要由以下3个部分组成:
(1)目标框提取。基于目标检测算法提取视频当前帧的目标检测框,而轨迹框是历史视频帧计算得到的目标轨迹框。
(2)相似度计算。采用CNN-GRU度量网络计算目标检测框和轨迹框的相似度。在该网络中,先使用CNN提取目标框的深度特征,再采用两个GRU分别学习目标历史轨迹框的外观特征和运动特征的时间关联性,以及学习目标保存的每个历史轨迹框正确匹配的概率值,聚合不同时序的目标轨迹框的外观特征,再由CNN-GRU网络输出目标轨迹框和检测框特征的相似度。采用基于深度学习的行人重识别(Reid)网络[21]分别提取目标检测框和轨迹框的外观特征,并计算它们之间的相似度(余弦距离)。
(3)数据关联。将Reid网络和CNN-GRU度量网络输出的相似度结合,得到检测框和轨迹框的匹配关联矩阵,通过匈牙利匹配算法[22]最终得到当前视频帧所有检测框和目标轨迹框的匹配结果。
该框架构建了一个直接输出检测框和轨迹框相似度的深度度量网络,通过在该度量网络中直接训练相似度以及自适应结合外观特征和运动特征的方式,应对多目标跟踪复杂的场景变化;通过在深度度量网络中学习不同时序的历史目标轨迹框外观特征和运动特征的时间关联性,降低目标的ID切换率;通过学习每个目标保存的不同时序的历史轨迹框正确匹配的概率值,降低误报率。同时结合深度度量网络输出的相似度和行人重识别网络提取的外观特征的相似度,得到最后的检测框和轨迹框的匹配结果,进一步降低目标ID的切换率。
-
CNN-GRU度量网络结构如图2所示。
CNN-GRU度量网络由一个CNN网络和双GRU网络构成。其中,CNN网络用于提取目标框的外观特征,双GRU网络分别用于学习目标外观特征和运动特征的时间关联性,采用双GRU结构学习多个时序之间特征的关联性,减少目标遮挡、目标外观和速度变化带来的影响。在该网络中,针对ID切换率高的问题,对外观GRU和运动GRU每个时序的隐状态进行拼接,将外观相似但速度不相似的目标区分开。同时,在双GRU拼接以后,通过连接一个全连接层和Sigmoid函数,将属于该目标的历史轨迹框与不属于该目标但进入该目标轨迹中的误检区分开,以降低误报率。然后在CNN-GRU度量网络结构中继续解决多目标跟踪中目标历史轨迹框的特征聚合问题,并输出目标检测框和轨迹框的相似度。
(1)CNN网络。为提取目标轨迹框的外观特征,将目标不同时序的轨迹框输入到CNN-GRU度量网络的CNN中。CNN网络的输入表示为
$ {x}_{j}^{t}=\left\{{x}_{j}^{t-1},\dots , {x}_{j}^{t-T-1},{x}_{j}^{t-T}\right\} $ ,其中$ {x}_{j}^{t-i} $ 表示第$ j $ 个目标在第$ t-i $ 帧的轨迹框。CNN使用的是经过ImageNet数据集预训练的、改进的ResNet18卷积神经网络ResNet18-part,其网络结构如表1所示。与ResNet18不同的是,该网络去掉了最后一个残差层,从而降低输出特征的维度,换掉了ResNet18末端的池化层和全连接层,使得最后输出的特征维度是256维。Layer Kernel/Stride Output shape Input -/- $ 160\times 80\times $ 3Conv/bn/relu 7 $ \times $ 7/2$ 80\times 40\times $ 32Pool 3 $ \times $ 3/2$ 40\times 20\times $ 96Residual 3 $ \times $ 3/2
3$ \times $ 3/2$ 40\times 20\times $ 64Residual 3 $ \times $ 3/2
3$ \times $ 3/2$ 20\times 10\times $ 128Residual 3 $ \times $ 3/2
3$ \times $ 3/2$ 10\times 5\times $ 256Pool 3 $ \times $ 3/2$ 5\times 2\times $ 256flatten 2560 fc 256 表 1 CNN-GRU中的CNN网络结构
Table 1. CNN network structure in CNN-GRU
(1)双GRU网络。GRU是循环神经网络的一种,也是LSTM的变体,擅长处理具有时间信息的序列之间的关联性。本文采用双GRU网络分别用于学习目标历史轨迹框的外观特征和运动特征的时间关联性。其中一个GRU用于学习目标轨迹速度特征的时间关联性,另一个GRU用于学习目标轨迹外观特征之间的时间关联性。双GRU的具体结构如图3所示。其中双GRU结构每个时序的输入为:(1)
$t - i$ 帧目标轨迹框的深度外观特征$f_j^{t - i}$ 和速度特征$v_j^{t - i}$ ;(2)目标轨迹框上一个时序$t - i - 1$ 帧的外观GRU隐状态$h_f^{t - i - 1}$ 和运动GRU隐状态$h_v^{t - i - 1}$ 。在多目标跟踪的匹配过程中,由于多目标跟踪算法难免会出现某些目标的历史轨迹框中包含不属于该目标的误检的情况,为了解决多目标跟踪ID切换高和误报率高的问题,拼接外观和运动GRU每个时序的隐状态,再接一个全连接层将特征转换为1维,并经Sigmoid函数计算目标在该时序的轨迹框($t - i$ 帧目标轨迹框)是当前目标的概率。即以式(1)得到跟踪目标保存的各个时序的历史轨迹框正确匹配(不是误检)的概率:其中:
${\rm{concat}}$ 表示拼接;${\rm{fc}}$ 是全连接层;$h_f^i$ 是当前时序的外观特征隐状态输出值;$h_v^i$ 是当前时序的运动特征隐状态输出值。$p_{\rm{same}}^i$ 值越接近1,表示目标保存的该时序的历史轨迹框是误检的概率越小,反之越大。(3)度量学习。度量学习用于学习目标样本对之间的距离或者相似度,学习度量空间使得实际属于同个类别的目标特征的距离更小。在图2描述的CNN-GRU度量网络的结构图内,在得到目标保存的各个时序的历史轨迹框正确匹配的概率后,还需学习目标轨迹框和检测框特征的相似度,即学习一种度量。该度量针对视频图像中同一轨迹中的特征向量输出的相似度要比属于不同轨迹中的特征向量返回的相似度要大。为在CNN-GRU网络中得到目标轨迹框和检测框特征的相似度,需要先聚合目标历史轨迹框的特征。
在得到跟踪目标保存的各个时序的历史轨迹框正确匹配的概率后,以此概率为权重,聚合多个时序的目标历史轨迹框的特征。将聚合的特征和目标检测框的外观特征
$D_i^t$ 求余弦距离,并经sigmoid函数计算目标轨迹框和检测框特征的相似度。CNN-GRU度量网络中聚合历史轨迹框特征以及检测框和轨迹框的相似度计算公式如下:
其中:
$D_i^t$ 表示第$t$ 帧的第$i$ 个目标检测框的外观特征;${T_j}$ 表示第$t$ 帧的第$j$ 个目标轨迹框聚合的外观特征;$p_j^i$ 表示第$t$ 帧第$j$ 个目标轨迹框与第$t$ 帧第$i$ 个目标检测框匹配的相似度;$\cos\; {\rm{ine}}\_{\rm{similarity}}$ 表示余弦相似度。(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网络在聚合目标轨迹框特征后与检测框计算的相似度特征。
Softmax loss (ID loss)计算公式如下:
其中:
$N$ 是类别数;${P_{{y_i}}}$ 是某个图片属于${y_i}$ 类的概率。Binary cross entropy loss计算公式如下:
其中:N是样本个数;
${y_i}$ 是标签,${y_i} = 1$ 表示是正样本,${y_i} = 0$ 表示是负样本;${P_{{y_i}}}$ 是$i$ 目标属于正样本的概率。Triplet loss使用的是TriHard Loss,计算公式如下:
其中:
$a$ 是一个batch里任意一张图片;$p$ 是与$a$ 属于一类的正例;$\mathop {\max }\limits_{p \in A} {d_{a,p}}$ 表示该batch里与$a$ 距离最远(最不相似)的正例;$n$ 是与$a$ 属于不同类的负例;$\mathop {\max }\limits_{n \in B} {d_{a,n}}$ 表示该batch里与$a$ 距离最近(最相似)的负例。在CNN-GRU度量网络中有两处使用到Binary cross entropy loss,分别用于目标历史轨迹框的正确匹配学习和相似度学习。
正确匹配学习的损失函数公式如下:
其中,
$p_{\rm{same}}^i$ 是目标$i$ 保存的某个时序的历史轨迹框正确匹配的概率,即式(1)得出的值。相似度学习的损失函数公式如下:
在整个CNN-GRU度量网络的训练中,Softmax loss损失函数主要是使得CNN-GRU度量网络中CNN提取的外观特征能区分不同ID的目标,而Triplet loss损失函数主要是使得CNN-GRU度量网络中CNN提取的不同ID间的特征距离更远,同ID间的目标框的特征距离更近,Binary cross entropy loss损失函数主要是使得CNN-GRU度量网络学习历史轨迹框中每个时序的轨迹框是否是正确匹配,以及用于目标轨迹框和检测框的相似度学习。
-
设某个目标轨迹
${T_j}$ 边界框的集合$T_j^t = \left\{ {T_j^{t - 1},...,T_j^{t - T - 1},T_j^{t - T}} \right\}$ ,每个轨迹框的速度特征集合$V_j^t = \left\{ {V_j^{t - 1},...,V_j^{t - T - 1},V_j^{t - T}} \right\}$ ,其中$V_j^{t - i} = \left\{ {\dot x,\dot y,\dot w,\dot h} \right\}$ 代表目标框的中心坐标变化速度以及高宽的变化速度。CNN-GRU度量网络流程如下:(1)将
$T_j^t$ 输入到ResNet18-part卷积神经网络,输出得到每个边界框的特征维度为256维的外观特征$f_j^i$ ;将每个轨迹框的速度特征$V_j^{t - i}$ 输入到一个全连接层中,输出维度为32维的速度特征$v_j^i$ ;(2)将外观特征的时序集合
$f_j^t = \left\{ {f_j^{t - 1},...,f_j^{t - T - 1},f_j^{t - T}} \right\}$ 输入到外观特征单独的GRU中,学习外观特征时间特性,将速度特征的时序集合$v_j^t = \left\{ {v_j^{t - 1},...,v_j^{t - T - 1},v_j^{t - T}} \right\}$ 输入到速度特征单独的GRU中,学习速度特征时间特性。(3)得到两个GRU每个时序输出的隐状态,
$h_f^t = \left\{ {h_f^{t - 1},...,h_f^{t - T - 1},h_f^{t - T}} \right\}$ 和$h_v^t = \left\{ {h_v^{t - 1},...,h_v^{t - T - 1},h_v^{t - T}} \right\}$ 。其中每个GRU每个时序的隐状态的更新公式如下:其中:
${x^t}$ 是GRU当前时序输入,本文中双GRU每个时序的输入分别为第$t - i$ 帧轨迹框的外观特征${f^{t - i}}$ 和速度特征${v^{t - i}}$ ;${z^t}$ 是GRU的更新门;$\sigma $ 是Sigmoid函数,主要是控制历史信息的更新;${r^t}$ 是GRU的重置门,主要是决定以前哪些信息需要重置;${\tilde h^t}$ 是包含当前输入和选择记忆历史信息后的输出;${h^t}$ 则是当前时序的隐状态输出值,其使用同一个门控${z^t}$ 来遗忘和选择记忆。${z^t} \odot {\tilde h^t}$ 表示对当前时序信息进行选择性的记忆;$\left( {1 - {z^t}} \right) \odot {h^{t - 1}}$ 表示对上一个时序的隐状态的选择性的遗忘,$ \odot $ 表示向量对应元素相乘(Element-wise multiplication);Wz、Wt、W和Uz、Ut、U是训练阶段学习到的权重矩阵。GRU每个时序的隐状态的更新,都是意味着遗忘上一个时序传递下来的隐状态的某些维度的信息,并选择性地加入当前时序输入的某些维度的信息,从而学习视频目标轨迹框之间的外观和速度的时间关联性,即每个时序保留一些利于区分当前目标框和其他目标的特征维度,遗忘一些冗余的特征维度。(4)在得到当前外观GRU和运动GRU的隐状态输出以后,根据式(1)得到每个历史时序的轨迹框正确匹配的概率。在得到每个历史时序的轨迹框正确匹配的概率后,以当前概率为权重,聚合
$T - 1$ 个时序的目标历史轨迹框$x_j^t = \left\{ {x_j^{t - 1},...,x_j^{t - T - 1},x_j^{t - T}} \right\}$ 的整体特征$f_j^t = \left\{ {f_j^{t - 1},...,f_j^{t - T - 1},f_j^{t - T}} \right\}$ 。本文将每个目标轨迹框的最大时序长度设为8,即$T - 1 = {\rm{8}}$ 。(5)将聚合的轨迹框特征和目标检测框的外观特征
$D_i^t$ 求余弦距离,以式(2)和式(3)的方式得到CNN-GRU度量网络输出的当前检测框和历史目标轨迹框的相似度。 -
在多目标跟踪中检测框和跟踪框之间的相似度函数是数据关联的重要组成部分,为了求得相似度需要从视频图像中提取特征。研究证明从基于行人重识别任务的卷积神经网络中学到的深层特征,可以结合到多目标跟踪算法中以提高跟踪性能[23]。
本文采用文献[21]提出的行人重识别的网络结构,命名为Reid。该网络由GoogLeNet和部分对齐全连接(fc)层的K个分支组成,并利用大规模的行人重识别数据集Market1501等对网络进行训练。使用余弦距离度量Reid网络提取的外观特征的距离。
-
数据关联是指根据历史轨迹框和检测框的匹配矩阵得到每个检测框对应的目标ID。其中,匹配矩阵的每一项是历史目标轨迹框和检测框特征的距离。
为了得到匹配矩阵中的每一项,先使用文献[21]中的行人重识别网络Reid分别提取目标检测框和轨迹框的深度外观特征,并计算第
$j$ 个目标轨迹框和第$i$ 个检测框的外观特征的余弦距离$d_{j,{\rm{reid}}}^i$ ;再根据CNN-GRU度量网络,输出得到的第$j$ 个目标轨迹框和第$i$ 个检测框的相似度$p_{j,{\rm{CNN}} - {\rm{GRU}}}^i$ ,根据式(13)计算得到匹配矩阵中每一项$d_j^i$ 的值:在得到匹配矩阵以后,还需利用每个跟踪目标的卡尔曼滤波器在当前帧预测的目标位置,限制与当前目标轨迹框匹配的检测框的范围。最后,使用匈牙利匹配算法匹配所有轨迹框和剩下的检测框,得到最后的目标ID和检测框的匹配结果。
-
基于CNN-GRU的多目标跟踪算法的完整描述如下:
算法 CNN-GRU多目标跟踪算法
输入:当前帧目标检测框的集合
${D^t} = \left\{ {D_1^t,...,D_M^t} \right\}$ ;当前帧目标轨迹框的集合${T^{t - 1}} = \left\{ {T_1^{t - 1},...,T_N^{t - 1}} \right\}$ ,其中${T_j}^{t - 1} = \left\{ {T_{j,t - {\rm{l}} e{n_j}}^{t - 1},...,T_{j,t - 1}^{t - 1}} \right\}$ ,其中${\rm{l}} e{n_j}$ 是第$j$ 个目标的轨迹长度;一个视频帧的序列$f$ 。初始化:所有目标轨迹的初始状态是不确定状态
输出:目标轨迹
${T^t} = \left\{ {T_1^t,...,T_N^t} \right\}$ ,${T_j}^t = \left\{ {T_{j,t - {\rm{l}} e{n_j}}^t,...,T_{j,t}^t} \right\}$ for 针对
$f$ 中的每一帧 do-将目标轨迹分为确定状态的轨迹
${T^{\rm{confirm}}}$ 和不确定状态的轨迹${T^{\rm{unconfirm}}}$ -如果轨迹是确定状态:for
${T^{\rm{confirm}}}$ 序列中的每个确定状态的轨迹$T_j^t$ do-输入到Reid网络中提取外观特征,并计算目标轨迹和检测框余弦距离
$d_{j,{\rm{reid}}}^i$ -输入到CNN-GRU网络中得到目标轨迹和检测框的相似度
$p_{j,{\rm{CNN}} - {\rm{GRU}}}^i$ -根据式(13)得到匹配矩阵中的每一项
$d_j^i$ -在匹配矩阵对应
$T_j^t$ 行移除与卡尔曼滤波器预测位置的距离大于一定阈值的$D_i^t$ - If
$d_j^i > 0.6$ :-在cost matrix对应
$T_j^t$ 行移除掉$D_i^t$ ,-使用匈牙利匹配算法匹配所有轨迹框和剩下的检测框
end
-如果轨迹是不确定状态:
for
${T^{\rm{unconfirm}}}$ 序列中的每个不确定状态的轨迹$T_j^t$ do-计算IoU(边界框交叠比)距离
${d_{\rm{iou}}}$ 作为cost matrix每一项-If IoU距离
$ >0.7: $ -在cost matrix对应
$T_j^t$ 行移除掉$D_i^t$ -使用匈牙利匹配算法计算匹配结果
end
end
-更新每个轨迹
$f_T^n$ 保存的外观特征-当一个轨迹连续3帧与检测框匹配,就认为这个轨迹的跟踪状态变为确定状态,并将其添加到轨迹集合中
-
本文采用标准的多目标跟踪数据集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)给它分配低权重来降低其对整体轨迹特征的影响。
-
针对本文关注解决的问题,采用MOTA、IDF1、IDs和FP作为主要评估指标。其中MOTA指标结合了漏报、误报和ID切换率,其得分能够很好地表征跟踪精度,但不能评估轨迹一致性;IDF1是识别F1分数,表示正确识别的检测数与平均ground-truth和检测数量之比,能更好地度量身份匹配的一致性[26];IDs表示目标发生ID切换的次数;FP表示假正例(误报)的数量。MOTA的计算公式如下[27]:
其中:
$FP$ 表示整个视频中误报的数量;$FN$ 表示整个视频中的漏检的数量;${\rm{IDSW}}$ 表示目标ID发生变化的数量;${\rm{GT}}$ 表示ground-truth目标框的个数。本实验的CPU配置为Intel Core-i7-8750H @2.2 GHz,GPU是NVIDIA GeForce GTX1060。
-
本文实验主要关注多目标的跟踪结果,其中,在MOT17数据集上的对比实验采用该数据集提供的公开目标检测结果;在MOT16数据集上的验证实验的跟踪器检测部分的检测结果使用文献[28]的结果。
(1)有效性验证实验。为了验证CNN-GRU度量网络的有效性,首先在MOT16训练集上进行验证实验。设跟踪器的基线模型(基础多目标跟踪器)由卡尔曼滤波器(位置限定)+IOU关联+匈牙利匹配算法组成,命名为baseline。基线模型+CNN-GRU度量网络组成的多目标跟踪器命名为b-cnngru。基线模型+行人重识别网络组成的多目标跟踪器命名为b-reid。b-reid+CNN-GRU网络命名为Ours(+)。为了进一步证明所提数据关联方法的有效性,实验还比较了将(行人重识别网络输出特征计算的相似度)×(CNN-GRU输出的相似度)作为总的相似度分数的方法,命名为Ours(*)。
图4、图5分别示出了b-reid、Ours(+)和Ours(*)在IDF1、IDs两个指标上的比较结果。表2示出了baseline、b-reid、b-cnngru、Ours(+)和Ours(*)在多个指标上的比较结果。
Tracker MOTA/% IDF1 $ \uparrow $ /%FP $ \downarrow $ FN $ \downarrow $ IDs $ \downarrow $ baseline 58.7 56.2 5 622 38 597 1 391 b-reid 60.0 59.5 7 365 36 059 794 b-cnngru 60.1 62.8 6 809 36 492 739 Ours(*) 60.1 60.5 7 364 36 011 721 Ours(+) 60.3 62.9 6 931 36 307 623 表 2 CNN-GRU的效果验证(MOT16)
Table 2. Effects verification of CNN-GRU (MOT16)
表2中向下的箭头表示该指标越小越好;向上的箭头表示该指标越大越好。从图4、图5和表2的结果可以看出,b-cnngru的MOTA得分比b-reid高0.1%,且b-cnngru的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.8%,MOTA提高0.3%。这几个模型的FN相差不多,b-cnngru和Ours(+)略有增加。综合来看,多目标跟踪框架中加入CNN-GRU,对目标ID切换次数、目标误报率有较好的改进作用,目标ID的一致性也有所提升,结合使用reid可以得到更好的跟踪性能。5种跟踪器的运行速度比较结果如表3所示。其中Hz表示多目标跟踪器在基准数据集上的处理速度(即每秒帧数,不包括检测器部分,只包含跟踪部分的处理速度)。
Tracker Hz base 29.1 b-reid 18.2 b-cnngru 13.3 Ours(*) 10.4 Ours(+) 10.7 表 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的跟踪器。
Tracker MOTA IDF1 $ \uparrow $ FP $ \downarrow $ FN $ \downarrow $ IDs $ \downarrow $ GRU-v 60.2 62.8 6 936 36 395 670 GRU-a 60.1 62.2 7 061 36 402 642 Ours(+) 60.3 62.9 6 931 36 307 623 表 4 CNN-GRU的双GRU效果验证(MOT16)
Table 4. Effects verification of dual GRU in CNN-GRU
由表4的实验结果可知,只使用单个运动GRU或者单个外观GRU时,多个性能指标如MOTA、IDF1、FP、FN和IDs均差于在跟踪器中使用双GRU的效果,使用双GRU结构性能高于只使用单个GRU的性能。
(3)跟踪效果验证实验。为了进一步验证加入CNN-GRU度量网络后多目标跟踪算法的改进效果,图6示出了b-reid模型和Ours(+)模型在两个多目标跟踪场景的对比效果图。
在图6视频场景(a1,a2)中,具有相似外观的目标4和目标8发生重叠遮挡。可以看出,对于b-reid模型,在相似外观的目标4和8发生重叠遮挡后发生了ID切换;而对于Ours(+)模型,这些目标在重叠遮挡以后依旧可以被正确区分,没有产生ID切换。在图6视频场景(b1,b2)中,对于b-reid模型,目标21的轨迹框在第2帧时被遮挡,且在第3帧后目标21的轨迹框中加入了目标37的检测框,发生了ID切换和误检;而对于Ours(+)模型,目标26在第3帧时匹配到其他目标检测框,但由于本文模型可学习不同时序目标框正确匹配的概率,因此可重新正确识别目标。
(4)与现有跟踪器的对比实验。将本文所提跟踪器与MOT官网(https://motchallenge.net/)上近几年提出的多目标跟踪器性能进行比较。实验在MOT17测试集(该测试集包含3组检测结果)上进行,实验结果见表5。
Tracker MOTA $ \uparrow $ IDF1 $ \uparrow $ FP $ \downarrow $ FN $ \downarrow $ IDs $ \downarrow $ Hz $ \uparrow $ MASS 46.9 39.9 21 820 277 473 8 727 17.1 FPSN 44.9 48.4 33 757 269 952 7 136 10.1 Ours 44.8 46.7 17 013 291 841 2 566 14.4 GMPHD_DAL 44.4 36.2 19 170 283 380 11 137 3.4 SAS_MOT17 44.2 57.2 29 473 283 611 1 529 4.8 SORT17 43.1 39.8 28 398 287 582 4 852 143.3 GMPHD_N1Tr 42.1 33.9 18 214 297 646 10 698 9.9 Trackers: MASS(IEEE Access2019), FPSN(IEEE Access.2018), GMPHD_DAL (Fusion2019), SAS_MOT17(CVPR2019), Sort(ICIP2016), GMPHD_N1Tr (Journal of Visual Communication and Image Representation 2019) 表 5 MOT17测试集结果
Table 5. Comparison with public detector on MOT17 test dataset
由表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切换次数和误报率方面具有良好的综合性能。
-
本文提出一种多目标跟踪框架,该框架主要包括行人重识别模型、CNN-GRU度量网络和数据关联算法。在CNN-GRU深度度量网络中统一提取目标的外观特征和运动特征,并学习其时间关联性,使得目标具有更好的判别性,以此降低ID切换率。同时,通过训练使CNN-GRU度量网络学习目标保存的不同历史时序轨迹框正确匹配的概率值,抑制目标轨迹中的误检以及低质量目标框对目标整体特征的影响;通过在CNN-GRU度量网络结构中直接聚合不同时序的历史轨迹框的外观特征,再由该度量网络直接输出目标轨迹框和检测框特征的相似度。该相似度与行人重识别模型输出的特征计算得到的相似度通过数据关联算法,最终计算出匹配结果。将reid网络和CNN-GRU度量网络输出的相似度结合进一步降低目标的ID切换率。实验评估结果表明,本文提出的框架能够有效降低ID切换率和误报率,提高跟踪精度。未来考虑加入边界框回归来修正目标检测结果不够精确的目标框的坐标。
基于CNN-GRU度量网络的多目标跟踪算法
Multi-object Tracking Algorithm Based on CNN-GRU Metric Network
-
摘要: 针对复杂场景下多目标跟踪算法存在目标标识切换率高、目标轨迹误报率高的问题,提出了一种基于行人重识别网络和CNN-GRU(Convolutional Neural Networks-Gated Recurrent Unit)度量网络的多目标跟踪算法。通过构建一个CNN和双GRU网络结合的深度度量模型,同时预测跟踪目标轨迹框外观特征和运动特征的时间特性,使提取的目标特征更具有判别性,降低目标的标识切换率。基于CNN-GRU网络自动学习历史目标轨迹框正确匹配的概率,给同一目标的不同轨迹框分配不同的注意力,以此来抑制目标轨迹中误检的目标框对目标整体特征的影响,在降低误报率的同时有效聚合轨迹框的特征。该算法结合行人重识别网络输出的特征计算得到的检测框和轨迹框的相似度,以及CNN-GRU网络直接输出的相似度作为数据关联部分的匹配成本。在标准多目标跟踪数据集上的实验结果验证了本文算法的有效性。Abstract: For multi-object tracking in complex scenes, there are problems of high object identification switching rate and high object trajectory false alarm rate. This paper proposes a multi-object tracking algorithm based on pedestrian re-identification network and CNN-GRU (Convolutional Neural Networks-Gated Recurrent Unit) metric network. By constructing a deep metric model combining CNN and dual GRU network, the time characteristics of appearance and motion features of the tracking object trajectory boxes are predicted simultaneously, so that the object has more discriminative features and the ID switch rate of object is reduced. Based on the CNN-GRU network, the correct matching probability of historical object trajectory is automatically learned. Different attentions are assigned to different track trajectory boxes of the same object, so as to suppress the influence of misdetected object boxes in the object trajectory on the overall features of the object and effectively aggregate the features of the object trajectory box. The algorithm combines the similarity of detection boxes and trajectory boxes calculated by the features of pedestrian re-identification network, and the similarity CNN-GRU network output as the matching cost of data association part. The experimental evaluation results on a standard multi-object tracking dataset show the effectiveness of the proposed algorithm.
-
表 1 CNN-GRU中的CNN网络结构
Table 1. CNN network structure in CNN-GRU
Layer Kernel/Stride Output shape Input -/- $ 160\times 80\times $ 3Conv/bn/relu 7 $ \times $ 7/2$ 80\times 40\times $ 32Pool 3 $ \times $ 3/2$ 40\times 20\times $ 96Residual 3 $ \times $ 3/2
3$ \times $ 3/2$ 40\times 20\times $ 64Residual 3 $ \times $ 3/2
3$ \times $ 3/2$ 20\times 10\times $ 128Residual 3 $ \times $ 3/2
3$ \times $ 3/2$ 10\times 5\times $ 256Pool 3 $ \times $ 3/2$ 5\times 2\times $ 256flatten 2560 fc 256 表 2 CNN-GRU的效果验证(MOT16)
Table 2. Effects verification of CNN-GRU (MOT16)
Tracker MOTA/% IDF1 $ \uparrow $ /%FP $ \downarrow $ FN $ \downarrow $ IDs $ \downarrow $ baseline 58.7 56.2 5 622 38 597 1 391 b-reid 60.0 59.5 7 365 36 059 794 b-cnngru 60.1 62.8 6 809 36 492 739 Ours(*) 60.1 60.5 7 364 36 011 721 Ours(+) 60.3 62.9 6 931 36 307 623 表 3 CNN-GRU的处理速度验证结果(MOT16)
Table 3. Processing speed verification of CNN-GRU (MOT16)
Tracker Hz base 29.1 b-reid 18.2 b-cnngru 13.3 Ours(*) 10.4 Ours(+) 10.7 表 4 CNN-GRU的双GRU效果验证(MOT16)
Table 4. Effects verification of dual GRU in CNN-GRU
Tracker MOTA IDF1 $ \uparrow $ FP $ \downarrow $ FN $ \downarrow $ IDs $ \downarrow $ GRU-v 60.2 62.8 6 936 36 395 670 GRU-a 60.1 62.2 7 061 36 402 642 Ours(+) 60.3 62.9 6 931 36 307 623 表 5 MOT17测试集结果
Table 5. Comparison with public detector on MOT17 test dataset
Tracker MOTA $ \uparrow $ IDF1 $ \uparrow $ FP $ \downarrow $ FN $ \downarrow $ IDs $ \downarrow $ Hz $ \uparrow $ MASS 46.9 39.9 21 820 277 473 8 727 17.1 FPSN 44.9 48.4 33 757 269 952 7 136 10.1 Ours 44.8 46.7 17 013 291 841 2 566 14.4 GMPHD_DAL 44.4 36.2 19 170 283 380 11 137 3.4 SAS_MOT17 44.2 57.2 29 473 283 611 1 529 4.8 SORT17 43.1 39.8 28 398 287 582 4 852 143.3 GMPHD_N1Tr 42.1 33.9 18 214 297 646 10 698 9.9 Trackers: MASS(IEEE Access2019), FPSN(IEEE Access.2018), GMPHD_DAL (Fusion2019), SAS_MOT17(CVPR2019), Sort(ICIP2016), GMPHD_N1Tr (Journal of Visual Communication and Image Representation 2019) -
[1] JIANG C, SU X F, LIU L H, et al. Digital video surveillance system based on network[J]. Wuhan University Journal (Natural Science Edition), 2000, 5(4): 456-456. doi: 10.1007/BF02850774 [2] TIAN Y C, PEI K X, JANA S, et al. Deeptest: Automated testing of deep-neural-network-driven autonomous cars [C] // 40th International Conference on Software Engineering. USA: ACM, 2018: 303-314. [3] FEICHTENHOFER C, PINZ A, ZISSERMAN A. Convolutional two-stream network fusion for video action recognition [C]// 2016 IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas, USA: IEEE, 2016: 1933-1941. [4] SIMONYAN K, ZISSERMAN A. Very deep convolutional networks for large-scale image recognition[EB/OL]. arXiv.org, 2014-09-04[2019-12-20]. https://arxiv.org/abs/1409.1556. [5] SZEGEDY C, LIU W, JIA Y Q, et al. Going deeper with convolutions[C]// 2015 IEEE Conference on Computer Vision and Pattern Recognition. Boston, USA: IEEE, 2015: 1-9. [6] HE K M, ZHANG X G, REN S Q, et al. Deep residual learning for image recognition[C]// 2016 IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas, USA: IEEE, 2016: 770-778. [7] LIU W, ANGUELOV D, ERHAN D, et al. SSd: Single shot multibox detector[C]// European Conference on Computer Vision. Cham: Springer, 2016: 21-37. [8] REN S, HE K, GIRSHICK R, et al. Faster R-CNN: Towards real-time object detection with region proposal networks[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2015, 39(6): 1137-1149. [9] JOSEPH R, ALI F. Yolo9000: Better, faster, stronger [C]// 2017 IEEE Conference on Computer Vision and Pattern Recognition. USA: IEEE, 2017: 7263-7271. [10] SADEGHIAN A, ALAHI A, SAVARESE S. Tracking the untrackable: Learning to track multiple cues with long-term dependencies[C]// 2017 IEEE International Conference on Computer Vision. Italy: IEEE, 2017: 300-311. [11] CIAPARRONE G, SÁNCHEZ F L, TABIK S, et al. Deep learning in video multi-object tracking: A survey[J]. Neurocomputing, 2020, 381: 61-88. doi: 10.1016/j.neucom.2019.11.023 [12] WOJKE N, BEWLEY A, PAULUS D. Simple online and realtime tracking with a deep association metric[C]// 2017 IEEE International Conference on Image Processing. Beijing, China: IEEE, 2017: 3645-3649. [13] BEWLEY A,ZGE, RAMOS F, et al. Simple online and realtime tracking[C]// 2016 IEEE International Conference on Image Processing. Phoenix, Ariz, USA: IEEE, 2016: 3464-3468. [14] HE M, HUI B, LUO H B, et al. Fast online multi-pedestrian tracking via integrating motion model and deep appearance model[J]. IEEE Access, 2019, 7: 9475-9486. [15] LEE S Y, KIM E. Multiple object tracking via feature pyramid siamese networks[J]. IEEE Access, 2019, 7: 8181-8194. doi: 10.1109/ACCESS.2018.2889442 [16] CHEN L, AI H Z, CHEN R, et al. Aggregate tracklet appearance features for multi-object tracking[J]. IEEE Signal Process Letters, 2019, 26(11): 1613-1617. doi: 10.1109/LSP.2019.2940922 [17] XU C, ZHOU Y. Consistent online multi-object tracking with part-based deep network[C]// Pattern Recognition and Computer Vision. Guanzhou: Springer, 2018: 180-192. [18] HAO S, YANG Z, CHEN J H, et al. Heterogeneous association graph fusion for target association in multiple object tracking[J]. IEEE Transactions on Circuits and Systems for Video Technology, 2018, 29(11): 3269-3280. [19] SUN S J, AKHTAR N, SONG H S, et al. Deep affinity network for multiple object tracking[J]. arXiv preprint arXiv: 1810.11780, 2018. [20] THOREAU M, KOTTEGE N. Improving online multiple object tracking with deep metric learning[J]. arXiv preprint arXiv: 1806.07592, 2018. [21] ZHAO L, LI X, ZHUANG Y, et al. Deeply-learned part-aligned representations for person re-identification[C]// 2017 IEEE international conference on computer vision. Venice, Italy: IEEE, 2017: 3219-3228. [22] KUHN H W. The Hungarian method for the assignment problem[J]. Naval Research Logistics, 1955, 2(1/2): 83-97. [23] LEAL-TAIXE L, CANTON-FERRER C, SCHINDLER K. Learning by tracking: Siamese CNN for robust target association[C]// IEEE Conference on Computer Vision and Pattern Recognition Workshops. Las Vegas, USA: IEEE, 2016: 33-40. [24] Sanchez-MATILLA R, POIESI F, CAVALLARO A. Online multi-target tracking with strong and weak detections[C]// European Conference on Computer Vision. Cham: Springer, 2016: 84-99. [25] YANG F, CHOI W G, LIN Y Q. Exploit all the layers: Fast and accurate CNN object detector with scale dependent pooling and cascaded rejection classifiers[C]// 2016 IEEE Conference on Computer Vision and Pattern Recognition, Las Vegas, USA: IEEE, 2016: 2129-2137. [26] RISTANI E, SOLERA F, ZOU R, et al. Performance measures and a data set for multi-target, multi-camera tracking[C]// Computer Vision-ECCV 2016 Workshops. Cham: Springer, 2016, 9914: 17-35. [27] BERNARDIN K, STIEFELHAGEN, R. Evaluating multiple object tracking Performance: The CLEAR MOT Metrics[J]. Image and Video Processing, 2008(1): 1-10. [28] YU F, LI W, LI Q, et al. Poi: Multiple object tracking with high performance detection and appearance feature[C]// European Conference on Computer Vision. Cham: Springer, 2016: 36-42. [29] KARUNASEKERA H, WANG H, ZHANG H. Multiple object tracking with attention to appearance, structure, motion and size[J]. IEEE Access, 2019, 7: 104423-104434. doi: 10.1109/ACCESS.2019.2932301 [30] BAISA N L. Online multi-object visual tracking using a GM-PHD filter with deep Appearance learning[C]// 2019 22th International Conference on Information Fusion. Canada: IEEE, 2019: . [31] BAISA N L, WALLACE A. Development of a N-type GM-PHD filter for multiple target, multiple type visual tracking[J]. Journal of Visual Communication and Image Representation, 2019, 59: 257-271. doi: 10.1016/j.jvcir.2019.01.026 [32] ANDRII M, PASCAL F. Eliminating exposure bias and loss-evaluation mismatch in multiple object tracking[C]// 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). Los Angeles, USA: IEEE, 2019: 4634-4643. -