0. 前言
- 相关资料:
- 论文基本信息
- 领域:多目标跟踪
- 作者单位:华科+微软亚洲研究院
- 发表时间: arxiv 最近更新 [v5] 2020/9/9
- 一句话总结:吊打目前所有跟踪算法,是名副其实的SOTA。
1. 要解决什么问题
- 总体目标是为了解决One-Shot 方案下融合 re-ID 和 多目标跟踪时,re-ID性能下降的问题。作者认为原因有两点:
- (1)以前的方法将re-ID作为次要的任务,放在检测之后,因此re-ID的性能依赖于检测任务的性能,因此,训练过程很大程度上偏向于检测任务而忽略了re-ID;
- (2)以前的方法通常使用ROI对齐,来提取re-ID特征,而 re-ID特征则直接来源于目标检测的输出。这样做将为目标对象引入非常多的歧义,因为很多取样点包含了干扰物体或背景。
- 为解决以上问题,作者提出FairMOT,用两种同等地位的分支来预测像素级别的目标分数和re-ID特征。
2. 用了什么方法
-
模型总体结构如下图,主要由backbone加Detection和Re-ID两个分支组成。下图所示的结构输入为单张图片,输出为检测分支输出的人体 Bbox尺寸、中心点偏移、heatmap(可根据heatmap输出bbox中心点),和Re-ID分支提取的 bbox框对应的外观特征
-
-
Backbone
- 选择 ResNet-34 作为 . 应用 Deep Layer Aggregation (DLA) 在 Encoder-decoder 部分融合多层特征,但是跟原始DLA相比又做了一些改造:将所有上采样模块用可变形卷积替代。这样做可以根据物体的尺寸和姿态灵活调整感受野的尺寸,并且有效缓解对齐问题
-
Detection 分支
- 选用了CenterNet 检测模型,损失函数有两个:
- heatmap 损失,由heatmap可以得到物体bbox的中心点:
- bbox 偏移和尺寸(长,宽)损失,用了L1损失
-
Re-ID 分支
- 基本原理:类似于 triple loss,来自同一个人的特征距离小,来自不同人的特征距离大。 L i ( k ) L^i(k) Li(k) 是一个one-hot向量,表示个体类别。re-Id的损失如下:
-
训练策略
- 由于两个分支要平衡训练,作者采用了不确定损失来自动平衡检测和re-ID任务,公式如下:
- 公式(5)中的 w 1 w_{1} w1和 w 2 w_{2} w2就是训练时平衡俩任务的参数。作者先在CrowdHuman 数据集上预训练,之后在MOT数据集上finetune。
- 由于两个分支要平衡训练,作者采用了不确定损失来自动平衡检测和re-ID任务,公式如下:
-
Inference过程 在预测的热图上,执行非最大抑制
(NMS)根据热图得分提取峰值关键点。保留热图得分大于阈值的关键点的位置。然后,根据估计的偏移量和框的大小计算相应的边框。在估计的目标中心提取身份嵌入。之后利用re-ID提取的特征计算余弦距离,用卡尔曼滤波+关联算法进行跟踪。
3. 效果如何
- 速度:30 fps
- 目前最优,据说吊打所有跟踪算法。
4. 还存在什么问题&有什么可以借鉴
- 根据实测经验,对人的衣服等外观信息依赖程度很高,假如跟踪对象在跟踪期间换衣服的话会丢失目标,发生ID switch。
- 跟踪效果从demo上来看还是很好的,值得实际尝试一下。