论文笔记Multiple Object Tracking by Flowing and Fusing
1. 论文标题及来源
Multiple Object Tracking by Flowing and Fusing, arxiv, 2020
2. 拟解决问题
大多数MOT方法分为估计目标运动和reid两个子任务,由于待跟踪目标的不确定性,因此很难进行端到端融合,本文解决了这个问题
3. 解决方法
3.1 算法流程
上图是算法的网络结构图,它由两个分支组成,上分支是光流模块分支,下分支是检测和融合分支。它的流程如下
a. 将上一帧和当前帧输入FlowNet中提取光流信息
b. 将光流信息和GT框输入FlowTracker,预测所有跟踪目标的回归框,记为B
c. 将当前帧输入检测网络(Faster RCNN + FPN),生成回归框,记为D
d. 通过FuseTracker融合B和D,得到最终的回归框
3.2 FlowTracker
上图是FlowTracker的网络结构图,它的流程如下
a. 将GT框和FlowNet预测的光流图片输入网络
b. 通过GT框裁剪目标
c. 将它们输入网络(一些卷积层和FC层)中预测回归框,得到所有跟踪目标的回归框
此处的损失函数
L
1
(
Δ
B
t
,
Δ
B
t
∗
)
=
∣
∣
Δ
B
t
−
Δ
B
t
∗
∣
∣
F
2
L_1(\Delta B_t, \Delta B^*_t) = ||\Delta B_t - \Delta B^*_t||^2_F
L1(ΔBt,ΔBt∗)=∣∣ΔBt−ΔBt∗∣∣F2
Δ
B
t
∗
=
B
t
−
B
t
−
1
\Delta B_t^* = B_t - B_{t - 1}
ΔBt∗=Bt−Bt−1表示GT框的运动向量
Δ
B
t
\Delta B_t
ΔBt表示网络预测的运动向量
此处的损失函数应该是L1 loss
3.3 FuseTracker
上图是FuseTracker的网络结构图,它的流程如下
a. 将当前帧输入检测网络(Resnet + FPN)提取回归框,记为
D
t
D_t
Dt
b.FlowTracker输出的回归框 ,记为
B
t
B_t
Bt
c. 将
B
t
B_t
Bt和
D
t
D_t
Dt以及当前帧输入FuseTracker中,其中
B
t
B_t
Bt和
D
t
D_t
Dt作为proposal
d. 对于每个proposal,FuseTracker预测其回归偏移和置信度
e. 使用双层的NMS合并回归框
第一个NMS用来处理目标遮挡问题,第二个NMS通过IoU匹配对应的目标,并且选出置信度最高的回归框作为其最终回归框
该模块损失函数
L
2
(
c
,
c
∗
,
b
,
b
∗
)
=
L
c
l
s
(
c
,
c
∗
)
+
λ
[
c
∗
≥
1
]
L
r
e
g
(
b
,
b
∗
)
L_2(c, c^*, b, b^*) = L_{cls}(c, c^*) + \lambda [c^* \ge 1] L_{reg}(b, b^*)
L2(c,c∗,b,b∗)=Lcls(c,c∗)+λ[c∗≥1]Lreg(b,b∗)
c是预测的分类得分,b是预测的回归偏移
这个公式感觉和RPN的公式几乎一样
4. 实验结果
4.1 消融实验
4.2 MOT
5. 总结
该论文使用检测网络检测出所有目标,然后使用光流预测回归框,最终将光流预测的回归框与检测框进行匹配和融合,得到所有目标最终的融合框。但是当目标很小或者遮挡非常严重时,会丢失目标,并且会存在光流的错误累积效应(个人感觉跟踪过程都会出现错误累积效应,即第i帧不准确之后,若用不准确的框继续回归,就会累积误差,从而丢失目标),该问题在消融实验中其实也可以体现出来。
可供参考
https://www.pianshen.com/article/19471163876/,感觉这个博客基本上是对原文进行翻译(没有攻击的意思)