阅读笔记-Quasi-Dense Similarity Learning for Multiple Object Tracking
阅读笔记-Quasi-Dense Similarity Learning for Multiple Object Tracking
论文连接:https://arxiv.org/pdf/2006.06664.pdf
摘要
原文
Similarity learning has been recognized as a crucial step for object tracking. However, existing multiple object tracking methods only use sparse ground truth matching as the training objective, while ignoring the majority of the informative regions on the images. In this paper, we present Quasi-Dense Similarity Learning, which densely samples hundreds of region proposals on a pair of images for contrastive learning. We can directly combine this similarity learning with existing detection methods to build QuasiDense Tracking (QDTrack) without turning to displacement regression or motion priors. We also find that the resulting distinctive feature space admits a simple nearest neighbor search at the inference time. Despite its simplicity, QDTrack outperforms all existing methods on MOT, BDD100K, Waymo, and TAO tracking benchmarks. It achieves 68.7 MOTA at 20.3 FPS on MOT17 without using external training data. Compared to methods with similar detectors, it boosts almost 10 points of MOTA and significantly decreases the number of ID switches on BDD100K and Waymo datasets. Our code and trained models are available at http://vis.xyz/pub/qdtrack.
译文
相似性学习已被认为是对象跟踪的关键步骤。然而,现有的多目标跟踪方法仅使用稀疏的地面实况匹配作为训练目标,而忽略了图像上的大部分信息区域。在本文中,我们提出了准密集相似性学习,它在一对图像上密集采样数百个区域提议以进行对比学习。我们可以直接将这种相似性学习与现有的检测方法结合起来构建准密集跟踪(QDTrack),而无需转向位移回归或运动先验。我们还发现,由此产生的独特特征空间允许在推理时进行简单的最近邻搜索。尽管简单,但 QDTrack 在 MOT、BDD100K、Waymo 和 TAO 跟踪基准上优于所有现有方法。在不使用外部训练数据的情况下,它在 MOT17 上以 20.3 FPS 的速度实现了 68.7 MOTA。与具有类似检测器的方法相比,它提高了近 10 个点的 MOTA,并显着减少了 BDD100K 和 Waymo 数据集上的 ID 开关数量。我们的代码和经过训练的模型可在 http://vis.xyz/pub/qdtrack 获得。
总体思路
以前的外观嵌入学习方法
以前MOT中的外观嵌入学习,要么是检测后单独使用ReID方法获得(a),要么就是联合检测和嵌入特征分类一同训练(b),还有一类方法就是构建GT框的正负样本©,然后利用triplet loss训练。以上这些方法使用的都是只有GT框,都忽略了图像上的大部分信息区域,这些区域同样可当做负样本来扯远真实目标区域特征与其的距离,增强特征嵌入的判别性。
训练框架
上面是整体的训练框图,首先是关键帧和参考帧用作输入,整体结构采用Faster R-CNN框架,基于RPN结构生成许多感兴趣的区域,然后这些区域特征用于类别判断和边框回归以及增加一个4conv+1fc的embeddings head 用于提取这些RoIs对应的特征,即一个RoI的bbox有一个与之对应的embedding特征。最后对提取的特征利用非参数的softmax 和 cross entropy对特征进行学习,已获取更好的目标嵌入表示。
嵌入特征学习方面,根据bbox框和GT框的IoU判断,高于0.7则人为是正样本,低于0.3则认为是负样本(背景),同时对于关键帧中的每个bbox(对于背景bbox,其在参考帧对应的正样本同样为背景bbox),其在参考帧对应的正样本定义为和关键帧的bbox代表相同物体的那些bbox,剩下的其它样本都是负样本。然后利用下述的公式进行嵌入特征提取的损失计算:
$$
\mathcal{L}{\text {embed }}=\log \left[1+\sum{\mathbf{k}^{+}} \sum_{\mathbf{k}^{-}} \exp \left(\mathbf{v} \cdot \mathbf{k}^{-}-\mathbf{v} \cdot \mathbf{k}^{+}\right)\right]
$$
其中$\bf{v}$代表关键帧中的bbox对应的嵌入向量,$\bf{k^-} $和$\bf{k^+} $分别代表$\bf{v}$在参考帧中的负样本和正样本。同样为了保证收敛限制嵌入特征的余弦相似度,作者另外给这些特征加入了一定的约束:
$$
\mathcal{L}_{\mathrm{aux}}=\left(\frac{\mathbf{v} \cdot \mathbf{k}}{|\mathbf{v}| \cdot|\mathbf{k}|}-c\right)^{2}
$$
对于$\bf{k,v}$是一对正样本(在两帧中对应不同时刻的同一物体)的情况,对应的$c=1$,否则$c=0$。
最后的训练损失函数如下:
$$
\mathcal{L}=\mathcal{L}{\text {det }}+\gamma{1} \mathcal{L}{\text {embed }}+\gamma{2} \mathcal{L}_{\text {aux }}
$$
其中$\gamma_1=0.25, \gamma_2=1$。
推理流程
上图是QDTrack的在线推理过程,此时关键帧为当前时刻$t$,参考帧为之前多个时刻,参考帧中包含需要跟踪的目标,包括:激活的轨迹、暂时消失的轨迹以及背景目标,背景目标是用来关联当前检测到的一些背景bbox。然后对于这些bbox对应的嵌入特征使用双端softmax进行相似度匹配计算,计算公式如下:
$$
\mathbf{f}(i, j)=\left[\frac{\exp \left(\mathbf{n}{i} \cdot \mathbf{m}{j}\right)}{\sum_{k=0}^{M-1} \exp \left(\mathbf{n}{i} \cdot \mathbf{m}{k}\right)}+\frac{\exp \left(\mathbf{n}{i} \cdot \mathbf{m}{j}\right)}{\sum_{k=0}^{N-1} \exp \left(\mathbf{n}{k} \cdot \mathbf{m}{j}\right)}\right] / 2
$$
然后文章直接依据双端匹配分数确定跟踪结果,即分数高的匹配边说明关键帧和参考帧是一致的,跟踪成功;分数低的匹配边说明两帧之间目标不一致,如果此时关键帧中的检测bbox置信度又比较高的话说明这是一个新出现的物体,此时初始化目标轨迹,其余的低分匹配被删除。但是这里有一个问题就是根据匹配公式会存在两个高分匹配边,他们来自参考帧的不同目标,但是他们可能都连接了同一个物体,此时如何分配他们之间的连接关系?是通过贪婪匹配原则,先把最高匹配的边分配了在看剩余的还是说用其他二分图匹配的算法?
总结
这篇文章最大的亮点就是充分利用了检测器的检测框,并且通过一种简单的正负样本指定策略和非参数化的softmax 交叉熵损失函数以一种对抗学习的方式完成对嵌入特征的优化,同时基于双端softmax的目标相似度计算保证了相互匹配的一致性,可见简单使用相似度阈值完成轨迹-检测之间的关联。