多目标追踪顾名思义就是跟踪视频画面中的多个目标,得到这些目标的运动轨迹;核心在于目标检测和数据关联,即在每一帧进行目标检测,再利用目标检测的结果来进行目标跟踪,后面一步一般称之为数据关联,数据关联更多依赖于手工特征提取(外观特征、运动特征、形状特征)。下面就多目标跟踪算法总结归纳为以下几类:
多目标追踪算法归纳
一.基于卡尔曼滤波和匈牙利、KM匹配的后端追踪优化算法
代表性的应用有SORT、DEEP-SORT
这类算法特点在于能达到实时性,是目前工程应用上主流的算法.
但依赖于检测算法效果要好,特征区分要好输出最终结果的好坏依赖于较强的检测算法,而基于卡尔曼加匈牙利匹配的追踪算法作用在于能够输出检测目标的id,其次能保证追踪算法的实时性),这样追踪效果会好,id切换少。相关论文和代码如下
-
DeepSort : Wojke, Nicolai and Bewley, Alex and Paulus, Dietrich “Simple Online and Realtime Tracking with a Deep Association Metric” [paper][ code] In ICIP 2017
Sort : Bewley, Alex and Ge, Zongyuan and Ott, Lionel and Ramos, Fabio and Upcroft, Ben “Simple Online and Realtime Tracking”[paper][code] In ICIP 2016.
基本原理:核心:轨迹处理和状态估计、关联问题(匈牙利匹配)、级联匹配、特征描述器
1.引入了线性速度模型与卡尔曼滤波来进行位置预测,在无合适匹配检测框的情况下,使用运动模型来预测物体(track)的位置
2.使用马氏距离或深度特征余弦距离进行相似性度量
3. 采取级联匹配,优先匹配距上次出现间隔短的目标
相似性度量公式
-
欧式距离
d i s t a n c e = ( x 2 − x 1 ) 2 + ( y 2 − y 1 ) 2 distance=\sqrt{ {(x_2-x_1)^2}+{(y_2-y_1)^2}} distance=(x2−x1)2+(y2−y1)2 -
余弦距离
d i s t a n c e = c o s ( θ ) = x → . y → ∣ ∣ x ∣ ∣ . ∣ ∣ y ∣ ∣ distance=cos(\theta)=\frac{\stackrel{\rarr}x.\stackrel{\rarr}y}{||x||.||y||} distance=cos(θ)=∣∣x∣∣.∣∣y∣∣x→.y→