零 前言
原论文地址:原文
代码地址:代码
今天开始学习多目标跟踪里的经典算法。
背景知识:
卡尔曼滤波:卡尔曼滤波
匈牙利算法:待补充
\space
一 各部分笔记
1.1 Abstract
SORT算法的重点是实时,它只是结合了熟悉的简单的技术(匈牙利算法和卡尔曼滤波),但是具有较快的速度。
1.2 Introduction
MOT问题的关键部分是数据关联问题。然而对于现存的一些算法,很难权衡精度与速度,如下图所示:
在本文的模型中,在跟踪过程中忽略外观特征,仅使用边界框的位置和大小。并且长短时闭塞(?,short and long term occlusion)也被忽略,因为它们很少发生,而且会徒增复杂度。
SORT的重点是高效可靠地处理帧关联。 相比于增加检测的鲁棒性,SORT直接用目标探测的最新进展(指的是FrRCNN?)直接地解决这个问题。
1.3 Literature Review
在这一部分,主要提了一个创新点:相对于两阶段匹配算法,SORT只用了一阶段。所谓两阶段匹配算法,就是用匈牙利算法对相邻帧之间的目标进行匹配生成很多tracklets,之后使用这些tracklets进行二次匹配,以解决遮挡等问题引起的轨迹中断。但这种二阶段匹配方式弊端也很明显,因为这种方式先天地要求必须以Offline的方法进行跟踪,而无法做到Online。
SORT将这种二阶段匹配算法改进为了一阶段方法,并且可以在线跟踪。(参考知乎专栏)
1.4 Methodology
本文采用的是Faster Region CNN,FrRCNN是一个由两个阶段组成的端到端框架。第一阶段提取特征并为第二阶段提出区域,然后在提出的区域中对对象进行分类。
对于已有的跟踪器(MDP)和本文提出的跟踪器,FrRCNN都有着最好的表现,如下表所示:
但好像…从这个表看不出propose的tracker比MDP优秀太多…
SORT通过Kalman滤波来预测目标位置,系统的状态向量为:
x
=
[
u
,
v
,
s
,
r
,
u
˙
,
v
˙
,
s
˙
]
x=[u,v,s,r,\dot{u},\dot{v},\dot{s}]
x=[u,v,s,r,u˙,v˙,s˙]
其中
u
,
v
u,v
u,v分别是目标中心坐标点的水平和竖直坐标,
s
,
r
s,r
s,r分别指检测框的面积和纵横比,但认为纵横比是常数。引入线性速度模型,用Kalman滤波进行位置预测。
在数据关联阶段,采用带权重的匈牙利算法进行匹配。权重就是IOU距离(intersection-over-union distance)。IOU说白了就是交并比,两个框相交部分和并部分的面积之比,能衡量两个框的相似程度。
二 总结
SORT是一个比较简单的算法,我的理解是用FrRCNN做探测,用卡尔曼滤波加匈牙利算法做跟踪。但是局限性也挺大,首先是线性运动模型可能并不精准,而且没有考虑同一目标再出现的重识别(re-identification)问题。