Reference:
1. 介绍
IOU Tracker 是 2017 年提出的一种不需要图像信息的简单高效的跟踪模型,它在 DETRAC 车辆跟踪数据集可以轻松运行到 100K fps。
它主要基于两个假设:
- 检测器对每帧要跟踪的每个物体都产生一个检测,也就是说,在检测中 没有/只有很少 的间断;
- 在连续帧中检测一个物体有高度重叠的 I O U IOU IOU,这在足够高的帧率是常见情况。
文内使用的
I
O
U
IOU
IOU 测量方式:
IOU
(
a
,
b
)
=
Area
(
a
)
⋂
Area
(
b
)
Area
(
a
)
⋃
Area
(
b
)
.
\operatorname{IOU}(a, b)=\frac{\operatorname{Area}(a) \bigcap \operatorname{Area}(b)}{\text { Area }(a) \bigcup \operatorname{Area}(b)} .
IOU(a,b)= Area (a)⋃Area(b)Area(a)⋂Area(b).
如果这两个条件都满足,跟踪将变得没那么重要,即使不使用图像信息也能够完成。
2. 算法内容
文中提出的
I
O
U
IOU
IOU 跟踪器,如果满足一定的阈值
σ
I
O
U
σ_{IOU}
σIOU,它通过将最高的
I
O
U
IOU
IOU 与前一帧的最后一个检测相关联来继续跟踪。所有没有分配到现有跟踪的探测将开始一个新的跟踪。所有没有被分配的检测的跟踪将被干掉。
通过滤除所有长度小于
t
m
i
n
t_{min}
tmin 的跟踪和一次都没评分在
σ
h
σ_h
σh 以上的检测,进一步提高了性能。较短的跟踪被删除,因为它们通常来源于假阳性,普遍会增加输出的混乱。要求跟踪至少有一个高分检测,以确保跟踪是一个真正感兴趣的对象。
详细的方法描述如下图所示,其中
D
f
D_f
Df 表示在第
f
f
f 帧的检测,
d
j
d_j
dj 表示在那一帧的第
j
j
j 个检测结果,
T
a
T_a
Ta 活跃的(active)跟踪,
T
j
T_j
Tj 完成的跟踪,
F
F
F 序列中帧的个数:
流程:
- 对于当前帧,首先利用阈值 σ l \sigma_l σl 进行初筛,得到输入检测集 D D D;
- 对于每个活跃的跟踪,找到和它有最大 I O U IOU IOU 的该帧检测框,如果该 I O U IOU IOU 大于 σ I O U \sigma_{IOU} σIOU,将检测 d b e s t d_{best} dbest 加入到当前活跃跟踪 t i t_i ti 中,随后将该检测框从当前帧检测集 D f D_f Df 内删去;而如果最大的 I O U IOU IOU 小于 σ I O U \sigma_{IOU} σIOU,这时如果该活跃跟踪的历史最高检测评分大于 σ h \sigma_h σh 且跟踪的时间长度大于 t m i n t_{min} tmin,则将 t i t_{i} ti 加入到 T f T_f Tf 中,否则将从 T a T_a Ta 中删去 T a T_a Ta;
- 对于没有匹配到的检测,将其初始化为新跟踪并添加到 T a T_a Ta 中;
- 在上述循环完毕后,对激活跟踪 T A T_A TA 中的每个跟踪做判断,如果满足跟踪的历史最高检测评分大于 σ h \sigma_h σh 且跟踪的时间长度大于 t m i n t_{min} tmin,则将该跟踪 t i t_i ti 加入到 T f T_f Tf 中。
文章跳转:
IOU 目标跟踪其二:VIOU Tracker