赞
踩
多目标跟踪,即 MOT(Multi-Object Tracking),顾名思义,就是在一段视频中同时跟踪多个目标。
而由于是多目标,自然就会产生新目标进入与旧目标消失的问题,这就是与单目标跟踪算法区别最大的一点。而由于这一点区别,也就导致跟踪策略的不同。在单目标跟踪中,我们往往会使用给定的初始框,在后续视频帧中对初始框内的物体进行位置预测。而多目标跟踪算法,大部分都是不考虑初始框的,原因就是上面的目标消失与产生问题。
取而代之,在多目标跟踪领域常用的跟踪策略是TBD(Tracking-by-Detecton)。即在每一帧进行目标检测,再利用目标检测的结果来进行目标跟踪,这一步我们一般称之为数据关联(Data Assoiation)。
不得不提的是另一种多目标跟踪算法的分类方式:在线跟踪(Online)与离线跟踪(Offline)。上文提到,大家往往会使用数据关联来进行多目标跟踪。而数据关联的效果,与你能使用的数据是有着直接的关系的。在 Online 跟踪中,我们只能使用当前帧及之前帧的信息来进行当前帧的跟踪。而在 Offline 跟踪中则没有了这个限制,我们对每一帧的预测,都可以使用整个视频的信息,这样更容易获得一个全局最优解。两种方式各有优劣,一般视应用场合而定,Offline 算法的效果一般会优于 Online 算法。而介于这两者之间,还有一种称之为 Near-Online 的跟踪方式,即可以部分利用未来帧的信息。
MOT 算法的通常工作流程:(1)给定视频的原始帧;(2)运行对象检测器以获得对象的边界框;(3)对于每个检测到的物体,计算出不同的特征,通常是视觉和运动特征;(4)之后,相似度计算步骤计算两个对象属于同一目标的概率;(5)最后,关联步骤为每个对象分配数字 ID。
因此绝大多数 MOT 算法无外乎就这四个步骤:①检测 ②特征提取、运动预测 ③相似度计算 ④数据关联。
其中影响最大的部分在于检测,检测结果的好坏对于最后指标的影响是最大的。
一些术语
Trajectory(轨迹):一条轨迹对应这一个目标在一个时间段内的位置序列
Tracklet(轨迹段):形成 Trajectory 过程中的轨迹片段。完整的 Trajectory 是由属于同一物理目标的 Tracklets 构成的。
TP:真正 (True Positive, TP)是指被模型预测为正的正样本,可以称为判断为正的正确率,或被检测出来的 GT。
TN:真负 (True Negative, TN)是指被模型预测为负的负样本,可以称为判断为负的正确率。
FP:假正 (False Positive, FP)是指被模型预测为正的负样本,可以称为误报率。
FN:假负 (FALSE Negative, FN)是指被模型预测为负的正样本,可以称为漏报率。
Accuracy:准确度是指被分类器判定正确的比重,这个指标就太简单了,其实就是分类正确的例子占总数的比例:
A
c
c
u
r
a
r
y
=
T
P
+
T
N
T
P
+
T
N
+
F
P
+
F
N
Accurary=\frac{TP+TN}{TP+TN+FP+FN}
Accurary=TP+TN+FP+FNTP+TN
Precision:精确度是指被分类器判定的正例中真正的正例样本的比重:
P
r
e
c
i
s
i
o
n
=
T
P
T
P
+
F
P
Precision=\frac{TP}{TP+FP}
Precision=TP+FPTP
Recall:召回率是指被分类器正确判定的正例占总的正例的比重:
R
e
c
a
l
l
=
T
P
T
P
+
F
N
Recall=\frac{TP}{TP+FN}
Recall=TP+FNTP
MT:Mostly Tracked trajectories,成功跟踪的帧数占总帧数的 80%以上的 GT 轨迹数量
Fragments:碎片数,成功跟踪的帧数占总帧数的 80%以下的预测轨迹数量
ML:Mostly Lost trajectories,成功跟踪的帧数占总帧数的 20%以下的 GT 轨迹数量
False trajectories:预测出来的轨迹匹配不上 GT 轨迹,相当于跟踪了个寂寞
ID switches:因为跟踪的每个对象都是有 ID 的,一个对象在整个跟踪过程中 ID 应该不变,但是由于跟踪算法不强大,总会出现一个对象的 ID 发生切换,这个指标就说明了 ID 切换的次数,指前一帧和后一帧中对于相同 GT 轨迹的预测轨迹 ID 发生切换,跟丢的情况不计算在 ID 切换中。
FP:总的误报数量,即整个视频中的 FP 数量,即对每帧的 FP 数量求和
FN:总的漏报数量,即整个视频中的 FN 数量,即对每帧的 FN 数量求和
Fragm(FM):总的 fragmentation 数量,every time a ground truth object tracking is interrupted and later resumed is counted as a fragmentation,注意这个指标和 Classical metrics 中的 Fragments 有点不一样
IDSW:总的 ID Switch 数量,即整个视频中的 ID Switch 数量,即对每帧发生的 ID Switch 数量求和,这个和 Classical metrics 中的 ID switches 基本一致
MOTA:注意 MOTA 最大为 1,由于 IDSW 的存在,MOTA 最小可以为负无穷。
M
O
T
A
=
1
−
F
N
+
F
P
+
I
D
S
W
G
T
MOTA=1-\frac{FN+FP+IDSW}{GT}
MOTA=1−GTFN+FP+IDSW
MOTP:衡量跟踪的位置误差,其中 t 表示第 t 帧,
c
t
c_t
ct 表示第 t 帧中预测轨迹和 GT 轨迹成功匹配上的数目,
d
t
,
i
d_{t,i}
dt,i 表示 t 帧中第 i 个匹配对的距离。这个距离可以用 IOU 或欧式距离来度量,IOU 大于某阈值或欧氏距离小于某阈值视为匹配上了。可以看出来 MOTP 这个指标相比于评估跟踪效果,更注重检测质量。
M
O
T
P
=
∑
t
,
i
d
t
.
i
∑
t
c
t
MOTP=\frac{\sum_{t,i}d_{t.i}}{\sum_tc_t}
MOTP=∑tct∑t,idt.i
HOTA:21 年新提出的评价指标
可以参考:
https://github.com/JonathonLuiten/TrackEval
https://link.springer.com/article/10.1007/s11263-020-01375-2
MOTA 的主要问题是它考虑了跟踪器做出错误决定的次数,比如 IDSW。而在某些情况下不想丢失跟踪对象的位置,我们更关心这个跟踪器跟踪某个对象的时间长短。因此,ID scores 被提出,它们是在介绍 MTMC 的一篇论文中被提出的。
IDP:识别精确度 (Identification Precision)是指每个行人框中行人 ID 识别的精确度。公式为:
I
D
P
=
I
D
T
P
I
D
T
P
+
I
D
F
P
IDP=\frac{IDTP}{IDTP+IDFP}
IDP=IDTP+IDFPIDTP
其中
I
D
T
P
IDTP
IDTP 和
I
D
F
N
IDFN
IDFN 分别是真正 ID 数和假正 ID 数。
IDR:识别回召率 (Identification Recall)是指每个行人框中行人 ID 识别的回召率。公式为:
I
D
R
=
I
D
T
P
I
D
T
P
+
I
D
F
N
IDR=\frac{IDTP}{IDTP+IDFN}
IDR=IDTP+IDFNIDTP
其中
I
D
F
N
IDFN
IDFN 是假负 ID 数。
IDF 1:识别 F 值 (Identification F-Score),Identification F 1,是 IDP 和 IDR 的调和均值。公式为:
I
D
F
1
=
2
1
I
D
P
+
1
I
D
R
=
2
I
D
T
P
2
I
D
T
P
+
I
D
F
P
+
I
D
F
N
IDF1=\frac{2}{\frac{1}{IDP}+\frac{1}{IDR}}=\frac{2IDTP}{2IDTP+IDFP+IDFN}
IDF1=IDP1+IDR12=2IDTP+IDFP+IDFN2IDTP
参考:
https://zhuanlan.zhihu.com/p/405983694
https://zhuanlan.zhihu.com/p/35391826
官网: https://motchallenge.net/
拿 MOT 17 举例
- MOT17 - train - MOT17-02-DPM - det - det.txt - gt - gt.txt - img1 - seqinfo.init - MOT17-02-FRCNN ... - test - MOT17-01-DPM - det - det.txt - img1 - seqinfo.ini - MOT17-01-FRCNN ...
在每个子文件夹中都有这个,主要用于说明这个文件的一些信息,比如长度,帧率,图片的长和宽,图片的后缀名。
[Sequence]
name=MOT17-02-DPM
imDir=img1
frameRate=30
seqLength=600
imWidth=1920
imHeight=1080
imExt=.jpg
这个文件中存储了图片的检测框的信息 (检测得到的信息文件),部分内容展示如下:
1,-1,1359.1,413.27,120.26,362.77,2.3092,-1,-1,-1
从左到右分别代表:
可以看出以上内容主要提供的和目标检测的信息没有区别,所以也在一定程度上可以用于检测器的训练。
这个文件只有 train 的子文件夹中有,test 中没有,其中内容的格式和 det. txt 有一些类似,部分内容如下:
1,1,912,484,97,109,0,7,1
从左到右分别是:
frame: 第几帧图片
ID: 也就是轨迹的 ID,可以看出 gt 里边是按照轨迹的 ID 号进行排序的
bbox: 分别是左上角坐标和长宽
是否忽略:0 代表忽略
classes: 目标的类别个数(这里是驾驶场景包括 12 个类别),7 代表的是静止的人。第 8 个类代表错检,9-11 代表被遮挡的类别
最后一个代表目标运动时被其他目标包含、覆盖、边缘裁剪的情况。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。