目标跟踪算法概述

总述

总共可以分为三种方法:基于CNN的方法(绿色分支);基于相关滤波的方法(黄色分支);其他的方法(图中others分支)
一、传统算法——KCF
不用深度学习,只需在第一帧图像中给出目标框的位置,只能做单目标跟踪?
难点;运行模糊;遮挡;尺度变化;
二、深度学习算法
参考:https://zhuanlan.zhihu.com/p/97449724
目标跟踪算法概述_第1张图片
1 、IOU

2、SORT
sort详解
目标跟踪算法概述_第2张图片
代码:https://github.com/abewley/sort
详解参考博客:https://blog.csdn.net/sgfmby1994/article/details/98782077?spm=1001.2014.3001.5502
卡尔曼预测是在库filerpy/kalman/kalman_filter.py中。根据前n帧的结果预测,n可以设置。

self.kf = KalmanFilter(dim_x=7, dim_z=4) 

参考:https://blog.csdn.net/bufengzj/article/details/89205966

SORT作为一个粗略的框架,核心就是两个算法:卡尔曼滤波和匈牙利匹配。

卡尔曼滤波分为两个过程:预测和更新。预测过程:当一个小车经过移动后,且其初始定位和移动过程都是高斯分布时,则最终估计位置分布会更分散,即更不准确;更新过程:当一个小车经过传感器观测定位,且其初始定位和观测都是高斯分布时,则观测后的位置分布会更集中,即更准确。

匈牙利算法解决的是一个分配问题。SK-learn库的linear_assignment_和scipy库的linear_sum_assignment都实现了这一算法,只需要输入cost_matrix即代价矩阵就能得到最优匹配。不过要注意的是这两个库函数虽然算法一样,但给的输出格式不同。具体算法步骤也很简单,是一个复杂度 [公式] 的算法。

3、DeepSORT
目标跟踪算法概述_第3张图片
详解参考博客:https://blog.csdn.net/sgfmby1994/article/details/98517210?spm=1001.2014.3001.5502

这是DeepSORT算法的流程图,和SORT基本一样,就多了级联匹配(Matching Cascade)和新轨迹的确认(confirmed)。
关键步骤:轨迹卡尔曼滤波预测→ 使用匈牙利算法将预测后的tracks和当前帧中的detecions进行匹配( 特征匹配和IOU匹配) → 卡尔曼滤波更新

DeepSORT在IOU Match之前做了一次额外的级联匹配,利用了外观特征和马氏距离。外观特征就是通过一个Re-ID的网络提取的。

4、DCF
参考:
也是deepstream sdk中用到的一个目标跟踪算法

参考:
https://blog.csdn.net/lanmengyiyu/article/details/108846295
https://blog.csdn.net/qq_34919792/article/details/107633874
https://blog.csdn.net/yuhq3/article/details/78742658?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_default&utm_relevant_index=2

你可能感兴趣的:(计算机视觉,深度学习)