目标跟踪SORT算法原理浅析

SORT算法

Simple Online and Realtime Tracking(SORT)是一个非常简单、有效、实用的多目标跟踪算法。在SORT中,仅仅通过IOU来进行匹配虽然速度非常快,但是ID switch依然非常严重。

SORT最大特点是基于Faster RCNN的目标检测方法,并利用卡尔曼滤波算法与匈牙利算法,极大提高了多目标跟踪的速度。
SORT算法核心就是卡尔曼滤波匈牙利算法

卡尔曼滤波

卡尔曼滤波被广泛应用于无人机、自动驾驶、卫星导航等领域,简单来说,其作用就是基于传感器的测量值来更新预测值,以达到更精确的估计。

假设我们要跟踪位置变化,如下图所示,蓝色的分布是卡尔曼滤波预测值,红色的分布是传感器的测量值,黄色的分布就是预测值基于测量值更新后的最优估计。

匈牙利算法

匈牙利算法解决的是一个分配问题,在多目标跟踪主要步骤中的计算相似度的,得到了前后两帧的相似度矩阵。匈牙利算法就是通过求解这个相似度矩阵,从而解决前后两帧真正匹配的目标。

SORT核心算法流程

Detections是通过目标检测器得到的目标框,Tracks是轨迹信息。核心是匹配的过程与卡尔曼滤波的预测和更新过程。

SORT算法的工作流程如下:

  1. 目标检测器得到目标框Detections,同时卡尔曼滤波器预测当前的帧的Tracks, 然后将Detections和Tracks进行IOU匹配,最终得到的结果分为:
  • Unmatched Tracks,这部分被认为是失配,Detection和Track无法匹配,如果失配持续了T次,该目标ID将从待跟踪目标中删除。
  • Unmatched Detections, 这部分说明没有任意一个Track能匹配Detection, 所以要为这个detection分配一个新的track。
  • Matched Track,这部分说明得到了匹配。
  1. 卡尔曼滤波可以根据Tracks状态预测下一帧的目标框状态。
  2. 卡尔曼滤波更新是对观测值(匹配上的Track)和估计值更新所有track的状态。

总结

作者使用了Faster RCNN来进行模型的检测,并使用Kalman滤波预测状态,基于检测框位置和IOU的匈牙利算法,使得算法有很高的效率,但是这么频繁的ID切换,在实际应用中跟踪的价值会大打折扣!

相关推荐
励志要当大牛的小白菜27 分钟前
ART配对软件使用
开发语言·c++·qt·算法
qq_5139704431 分钟前
力扣 hot100 Day56
算法·leetcode
白-胖-子1 小时前
深入剖析大模型在文本生成式 AI 产品架构中的核心地位
人工智能·架构
PAK向日葵1 小时前
【算法导论】如何攻克一道Hard难度的LeetCode题?以「寻找两个正序数组的中位数」为例
c++·算法·面试
想要成为计算机高手2 小时前
11. isaacsim4.2教程-Transform 树与Odometry
人工智能·机器人·自动驾驶·ros·rviz·isaac sim·仿真环境
静心问道3 小时前
InstructBLIP:通过指令微调迈向通用视觉-语言模型
人工智能·多模态·ai技术应用
宇称不守恒4.03 小时前
2025暑期—06神经网络-常见网络2
网络·人工智能·神经网络
爱喝矿泉水的猛男4 小时前
非定长滑动窗口(持续更新)
算法·leetcode·职场和发展
小楓12014 小时前
醫護行業在未來會被AI淘汰嗎?
人工智能·醫療·護理·職業
YuTaoShao4 小时前
【LeetCode 热题 100】131. 分割回文串——回溯
java·算法·leetcode·深度优先