SIMPLE ONLINE AND REALTIME TRACKING WITH A DEEP ASSOCIATION METRIC (deepsort)论文解析

论文地址:https://arxiv.org/pdf/1703.07402.pdf

论文代码:https://github.com/nwojke/deep_sort

早期拜读的sort论文是sort论文阅读 是它的基础版本。

deepsort能够解决sort 中无法处理遮挡,目标ID不断切换的问题。


ABSTRACT

       SORT是解决多目标跟踪中较为实用的算法。本文,集成目标外观特性信息以改善SORT的性能。基于外观特性的加入,能够跟踪长时间遮挡的目标,有效减少目标ID常常切换次数。在在线应用方面,我们使用可视化外观空间中的最近邻查询方式建立测量到跟踪的关联。实验评估显示这一延伸操作减少了目标ID切换次数到45%,实现高帧率下较为竞争力的性能。


1. INTRODUCTION

       由于目标检测方面的进步,基于检测的跟踪技术已经成为多目标跟踪的主导范式。尽管就跟踪精度和准确度方面来说SORT取得了不错的性能,但其(同个目标)ID转换次数较多,这是因为只有在状态估计不确定性低的时候使用的关联度量才较为精确。因此SORT在目标遮挡这一常见场景下做目标跟踪仍存在缺陷。本文作者克服了这一问题,将原来的关联度量方式(两个bbox的IOU)替换为更好的度量方式:结合运动和外观特征信息。此外,作者还用CNN在re-ID数据集上训练了个行人检测器,通过集成该网络,改善了漏检和遮挡情况,并且保证了该系统应用简单,有效,可在实时场景中使用。


2. SORT WITH DEEP ASSOCIATION METRIC

      作者采用了传统单假设跟踪方法与递归卡尔曼滤波和逐帧数据关联。

2.1. Track Handling and State Estimation 

       采用的跟踪处理与卡尔曼滤波框架主要与SORT的一致。文中跟踪场景定义在8个维度的状态空间 (u,v,\gamma ,h,\dot{x},\dot{y},\dot{\gamma},\dot{h}) ,其中(u,v)是bbox中心位置,纵横比 γ, 高 h, 以及他们在图像座标系下的速度(即一阶导数)。作者还使用标准的卡尔曼滤波,匀速运动假设,以及线性观测模型,将边界框(u,v,γ,h)作为目标观测状态

       对每个跟踪器k, 我们会计算其自上一次成功与测量关联 a_{k} 帧数量。该计数值在卡尔曼预测阶段会增加,在跟踪器与测量关联后会重置为0. 当累计计数超过预先定义的最大值Amax后将视该跟踪器已经离开了场景,并将其从trackset(跟踪器集)中删除。针对那些没有关联成功的检测结果,将会为其初始化个跟踪器,表示新出现在场景的目标。这些新的跟踪器在前三帧中被归为暂定的。在这三帧期间,我们期望在每个时间帧中能有测量值与其关联。如果在这前三帧中没有能成功与测量值关联上的 暂定的跟踪器将被删除

2.2. Assignment Problem

        一种传统解决卡尔曼预测状态和新检测值之间关联问题的方式是采用匈牙利算法。作者将运动和外观特性信息两者以适当的度量方式集成到匈牙利算法中。

利用卡尔曼预测的状态新检测结果之间的马氏距离来将运动信息包含进来:

其中dj 表示第 j 个边界框检测结果, yi 是第 i 个卡尔曼跟踪器预测结果。马氏距离考虑到状态估计不确定性,通过测量检测结果偏离平均跟踪位置的标准方差大小。利用该度量方法,能够通过给马氏距离阈值化来排除不可能的关联。

如果第 i 个跟踪预测结果与第 j 个检测结果允许关联,则将指示器 bij 置位1. 针对我们的4维测量空间,相应的马氏距离阈值为

当运动不确定性低时,马氏距离是个较为适合的关联度量方式,在我们的图像空间问题公式化下,通过卡尔曼滤波框架得到的预测状态分布是个较为粗糙的目标位置估计。特别地,未知的相机运动会引入图像平面内物体的迅速偏移,使得马氏距离在作为跟踪遮挡目标度量时变得不那么好。因此,作者引入第二个度量方式来处理该问题。对于每个bbox检测结果dj 我们计算一个特征描述器 r_{j} ,其满足 \left \| r_j \right \|=1 . 此外,我们保持 \Re _k=\left \{ r_k^{(i)} \right \}_{k=1}^{L_k}  ,其中L_k =100是 针对跟踪器 k最后关联的特征描述器个数。

具体来讲就是对于跟踪器i, 为它建立了一个集合\Re,保留它过去Lk次成功跟踪后物体检测bbox对应的Lk个Feature向量集合,公式(3)就是在计算第i个跟踪器的所有Lk个特征向量和第j个检测器之间的最小余弦距离。

 第二个度量测量第 i 个跟踪器和第 j 个检测器在特征空间的最小余弦距离:

其中余弦度量距离的图示如下:

当两个向量同向时,向量乘应该是最大的,表示两者距离小,用1去减之后得到的d也会小,因此求d的最小值,就是求最近距离。

同样地,引入以下二值变量来指示根据度量结果判断是否达到关联,

实际中,使用预训练的CNN来计算bbox的特征描述器。该网络结构在Section2.4中会描述。

以上两个度量在实际情况中相互弥补,一方面,马氏距离提供基于运动的目标可能位置,这对于短时预测较为有用。另一方面,余弦距离考虑到外观特性信息,这对于在遮挡较久之后恢复目标ID尤为重要,因为这个时候运动的区分度较低。作者将两种度量方式以权重形式作和:

如果每个度量都在控制区内,则认为关联成功,总的关联指示如下;

2.3. Matching Cascade

       替代解决全局分配问题中解决测量到跟踪的关联,我们引入一个级联来解决一系列子问题。这一方法的动机来自如下情形:当一个目标物体被长时间遮挡,之后的卡尔曼滤波预测的位置不确定性会增加。因此,概率质量会在状态空间逐渐分散开,观测可能性将变得不那么高。当两个跟踪器竞争一个检测结果时,马氏距离倾向于更大的不确定性,因为它有效地降低了任何检测到的标准偏差到投射跟踪器均值的距离。

  • Listing 1是匹配级联算法的框架。将跟踪器集T 和检测器集D ,以及最大寿命(age,暂且这么翻译吧,作者想表达的就是累计值)值Amax. 
  • 第1行中,计算关联代价矩阵C (存放物体跟踪器i和物体检测结果j之间距离值),第2行中计算被接受为关联的矩阵B (即公式6中对应的track和detector是否关联得到的判断0或1)。
  • 然后对跟踪器进行迭代来解决跟踪器寿命不断增加过程中的线性分配问题。
  • 第6行,从刚刚匹配成功的跟踪器循环遍历到最多已经有Amax 次没有匹配的跟踪器,即我们选择那些在最后n帧中没有与检测结果关联的跟踪器集Tn的子集,和没有匹配的检测结果 U.
  • 第8行和第9行,我们更新匹配的集合和没有匹配的检测器,第11行返回其结果。
  • 该匹配级联算法给了较小寿命的跟踪器有更大优先权,例如那些最近才可被看见的跟踪器。(意思就是说遮挡一段时间后,目标重新出现后的跟踪器)。

在最后匹配阶段,我们对未确认和未匹配的跟踪器集(其寿命 n=1)上运行IOU,这有助于说明突然的外观特征变化,例如静态场景下的部分遮挡,以及为错误初始化情况下增加算法鲁棒性。

2.4. Deep Appearance Descriptor

通过使用简单的近邻查询而不需要额外的度量学习,要想用我们的方法实现在线目标跟踪,需要一个区分性好的线下训练的特征描述模型。作者使用了CNN在大规模行人re-ID数据集(含110万以上图像,1261个人)上训练的模型,使它适合于用作人的跟踪的深度度量学习。CNN结构如表1所示。在第10层计算了个维度是128的特征图,最后用了batch和 L2归一化将特征投射到单位超球面上,使得和余弦特征度量兼容。具体的做法是把物体检测BBox dj  对应的图像patch作为下图的CNN输入,输出128维feature向量r。网络整体参数量为2,800,864 ,在Nvidia GeForce GTX 1050 mobile GPU上,前向过程中32个bbox将近30ms


3. EXPERIMENTS


结论

和sort对比,好处是:

  • 减少了45%的ID switch;
  • 结合了深度外观信息,对遮挡目标的追踪效果大大提升;
  • FP的升高很多,文章中提出这主要是由于静态场景中detection的错误以及过长的允许丢失的track age所导致的(相对于SORT只用相邻帧进行匹配来说,Deep SORT允许高达30帧的丢失,而Kalman的等速运动模型没有改变,这主要造成了FP的升高)。
  • 20Hz,依旧实用;
  • 达到了state-of-art online tracking的效果。
     

PS:

关于算法中各类距离的定义说明请参考:欧式距离、标准化欧式距离、马氏距离、余弦距离

匈牙利算法中的线性分配问题:linear assignment problem

参考:https://blog.csdn.net/HaoBBNuanMM/article/details/85555547

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章