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

相关推荐
不正经学生4 小时前
C语言预处理详解:编译器真正动手之前的那些事
c语言·开发语言·算法·面试·bug
漂流瓶jz5 小时前
【AI】大模型本地部署与量化:Ollama、transformers、llama.cpp实践
人工智能·llm·ai编程
毕竟是shy哥6 小时前
计算YOLO数据集中每个类的目标数
算法·yolo·机器学习
M78佐菲6 小时前
Linux学习笔记:TCP协议
linux·笔记·学习·tcp/ip·算法
飞哥数智坊6 小时前
AI时代,我们到底该学什么、用什么,为什么还没提效?
人工智能
飞哥数智坊6 小时前
GPT 做架构,国内模型写代码:这条 AI 开发路线能跑通吗?
人工智能·ai编程
AI_AGENT_DEV_AI7 小时前
AI 智能体的开发与上线
人工智能
VL——MOESR7 小时前
【具身智能】VLA论文阅读随笔
论文阅读·人工智能·机器学习·具身智能·vla
OCR_133716212757 小时前
从模板匹配到AI泛化识别:文本抽取如何重构护照阅读器落地生态
人工智能·重构
大唐荣华7 小时前
从OpenAI关停Sora看世界模型、AI视频与国内具身智能赛道路线分化
人工智能·openai·sora·内容生成