目标跟踪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切换,在实际应用中跟踪的价值会大打折扣!

相关推荐
用户360055579002 分钟前
【FHE 同态加密】我们如何实现同态加密推理(十四):为什么 `RESULT=PASS` 不是判据(纯 C11 · 零依赖)
人工智能
Starry-sky(jing)4 分钟前
Hermes Agent 部署后怎么升级?v0.21.7 Linux 源代码版实测
linux·人工智能·ai agent·版本升级·hermes agent
柯南466810 分钟前
【AI工程师精讲】10:微调方案选型:全参微调、LoRA、QLoRA 到底怎么选
人工智能·ai编程
碧海银沙音频科技研究院10 分钟前
基于炬芯ATS308X的LE aduio LC3编解码算法功能实现
算法
黄权光11 分钟前
AI智能体项目实战记录(02):初始化 Python 项目
人工智能
小蒋观天下13 分钟前
厂区人员徘徊游荡判别——基于时序轨迹速度的逗留行为分级算法落地
大数据·人工智能·深度学习·算法·机器学习·ai大模型
方方洛13 分钟前
ai-agent教程-07-从零实现一个工程化AI-Agent
人工智能·llm·agent
龙虾电话14 分钟前
写 telephony 网关时,我把「拨不通」查了三天:AT 命令回 OK 不代表通话接通
人工智能
方方洛14 分钟前
ai-agent教程-08-多智能体协作
人工智能·llm·agent
styshoo14 分钟前
[snapshot]2-snapshot部署
人工智能