首先抛出Tracking的一种思路:Detect+提取ReID特征
该条思路有两种方法,一阶段和两阶段的,因为一阶段的速度快,更有可能达到实时,但是一阶段的目前精度不行。这就引出了文章的重点。
1.一阶段的检测+ReID为什么不准确?
主要是ReID特征提取的不准确,具体表现在两个方面:
1、目前一阶段的检测器是使用基于anchor的,会导致检测不准确。
①黄色框和红色框都是预测的同一个人,但是他们的图像特征差异很大,这是基于anchor的不可避免的偏了,且stride过大,导致物体中心预测不准确
2、目前一阶段检测器大多是在大stride做检测,作者发现如果利用小stride的特征图的话,ReID特征提取的更好
3、目前的ReID特征大多在高尺度提取,作者试验发现,其实在低尺度,特征提取的更好
2.如何改进?
1、既然anchor不好,就用anchor-free的检测器
2、既然大的特征图做ReID效果更好,那我们就在大的特征图上提特征和检测
3、调超参
3.算法流程
介绍了以下几个部分
BackBone设计、检测分支设计、Re-ID分支设计、损失函数、在线推理
3.1Pipeline
并行多尺度特征提取,感觉就像HRnet一样,作者说是抄Deep Layer Aggregation的,但是对于上采样改了一下,里面的卷积层都被替换成deform 卷积了,这样可以动态调整位置(自己觉得:可以让ReID层学到不规则的特征),有助于align(该部分没有太多新奇)
3.2 物体检测分支
1、Heatmap
用来预测物体的中心,对于Heatmap的描述这一段挺新鲜的:
The response decays exponentially as the distance between the location in the heatmap and the object center
2、Center Offset Head
感觉和heatmap是相反的意思啊,离中心越远越大
3、Box Size Head
该分支的预测导致更加准确的检测,其实这个对于ReID特征的提取没有太大帮助,主要是为了提升检测精度
上面三个分支预测完了,我觉得作者只是想提取物体中心附近的特征,并非意在检测框多么准确,这样能够提取任意形状的特征(相比于用基于anchor的)
3.3 ID分支
embedding branch 旨在对于不同目标生成不同特征,该特征的特点是对于同一instance(位于不同时间、位置),他们的间距竟可能的小,不同instance的间距尽可能的大
所以该分支预测得到的是
一个W*H*128的tensor,用来区分ID
3.4 损失函数
3.5在线推理
在线推理分成两个部分,第一部分是模型inference,第二部分是后处理(Online Box Linking)