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

相关推荐
DeepModel2 分钟前
机器学习非线性降维:局部线性嵌入 LLE
人工智能·机器学习
lUie INGA7 分钟前
rust web框架actix和axum比较
前端·人工智能·rust
计算机安禾8 分钟前
【数据结构与算法】第21篇:二叉树遍历的经典问题:由遍历序列重构二叉树
c语言·数据结构·学习·算法·重构·visual studio code·visual studio
信奥胡老师19 分钟前
P1255 数楼梯
开发语言·数据结构·c++·学习·算法
新缸中之脑30 分钟前
HDRI-Generator: 环境贴图生成AI
人工智能·贴图
网安情报局34 分钟前
企业押注Agentic SOC:AI重塑安全运营新范式
人工智能·网络安全
夜幕下的ACM之路36 分钟前
一、基础知识学习(Transformer + 上下文窗口 + Token 计算 + Embedding 向量)
人工智能·学习·transformer·embedding
东离与糖宝37 分钟前
LangChain4j vs Spring AI:最新对比,Java企业级Agent开发
java·人工智能
私人珍藏库41 分钟前
[Windows] 绘画工具 Krita v5.3.1
人工智能·windows·媒体·工具·软件·多功能