SORT追踪

news2025/7/29 6:29:18

卡尔曼滤波
卡尔曼滤波用当前时刻运动变量去预测下一时刻的运动变量,检测器第一次的检测结果用来初始化卡尔曼滤波的运动变量,后续的结果作为更新。在信号处理中卡尔曼滤波是去除噪声的一个算法,作用是使用信号更加的准确。在SORT中的,因为检测器可能会不准确,将目标跟踪算法得到的目标位置进行滤波,卡尔曼滤波使得结果更准确。
卡尔曼滤波共有预测和更新两部分组成,其中预测部分通过上一时刻状态预测这一时刻状态,其中没有添加观测值,并不是最佳的观测值。更新部分,添加了当前的观测值,经过更新后的值为最佳估计值。
在这里插入图片描述

卡尔曼滤波通过上一时刻的检测值,得到这一时刻的估计值,使用这一时刻的检测值修正得到最优估计值。
匈牙利匹配
匈牙利匹配是用来求二分图最优匹配问题,首先会建立一个图,其中有当前帧t=1 和前一帧t=0 的节点。然后计算两帧节点互相的距离,易得这个距离越小,那么当前帧的物体与前一帧相同的概率越大。
在这里插入图片描述
在SORT中匈牙利匹配解决的是分配问题,把当前帧检测器的检测框和上一帧卡尔曼滤波的预测框做匹配,将卡尔曼预测的框找到和检测器最匹配的框,进行IOU匹配,在通过IOU匹配结果计算代价矩阵,作为代价矩阵(1-IOU),代价矩阵作为匈牙利算法的输入,得到线性结果(最佳匹配结果)。
SORT工作流程
SORT算法流程:简单的来说SORT就是将卡尔曼滤波预测的结果和检测器预测的结果用匈牙利算法进行匹配,将不同的匹配状态执行不同的操作,并将结果迭代更新,SORT流程图。

在这里插入图片描述
(1)第一帧进来检测器进行检测,SORT根据检测器的结果初始化生成N个追踪器,每个目标生成一个唯一ID。
在这里插入图片描述

(2)第二帧进来检测器进行检测,先从卡尔曼滤波中得到由第一帧BBOX产生的状态预测和协方差预测,计算跟踪器生成的所有目标状态预测框和检测器检测框的IOU,通过匈牙利匹配算法得到IOU最佳匹配(目标的框子之间是否匹配)。
(3)匹配到检测器BBOX的去更新卡尔曼跟踪器,计算卡尔曼增益、状态更新矩阵和协方差矩阵更新,并将状态更新输出,作为本帧的跟踪BBOX。
在这里插入图片描述

(4)对于本帧中没有匹配到的目标,重新初始化跟踪器或者删除最追踪器。

SORT匹配状态
(1)Unmatched Tracks
如果检测器和追踪器不匹配(这帧目标多,下帧目标少),则删除已有追踪器。
在这里插入图片描述
(2)Unmatched Detections
如果检测器和追踪器不匹配(这帧目标少,下帧目标多),则生成新的追踪器。
在这里插入图片描述

(3)Matched Tracks
如果检测器和追踪器匹配轨迹成功,则进行卡尔曼更新,持续绑定ID。
在这里插入图片描述

参考资料:
https://blog.csdn.net/zimiao552147572/article/details/106009021
https://zhuanlan.zhihu.com/p/494453670
https://blog.csdn.net/qq_40608730/article/details/118710715
https://blog.csdn.net/yiran103/article/details/89421140
https://zhuanlan.zhihu.com/p/419270159
https://zhuanlan.zhihu.com/p/571623539
https://zhuanlan.zhihu.com/p/459758723

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/16309.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL常用语句汇总

一、背景 日常测试开发工作中会用到各类SQL语句,很多时候都是想用的时候才发现语句细节记不清楚了,临时网上搜索SQL语法,挺费时费力的,语法还不一定是对的。因此汇总整理了一下MySQL最常用的各类语句,以后就不用再到处…

Linux环境安装

学习Linux首先要准备一个Linux环境。环境的安装有两种途径:买一个云服务器,安装虚拟机。 推荐使用云服务器,较虚拟机方便很多。 云服务器具体来说是Centos 7.6 64位——我也不知道为啥用这个 步骤一: 购买云服务器的主要方式…

“向美好女人致敬”粉红丝带主题活动,谈水果养生之道

传递粉红正能量,践行粉红关爱,“向美好女人致敬”粉红丝带关爱月公益线下活动于11月13日顺利收尾,帮助广大女性更加深入地了解、认识乳腺癌预防和康复治疗,推进乳腺癌防治意识。此次活动邀请到了云南省肿瘤医院乳腺三科科主任、副…

Android通过jni调用本地c/c++接口方法总结

网上有网友问android的原生应用,上层java代码如何通过jni调用本地的c/c++接口或第三方动态库 ?之前搞过android应用开发和底层c/c++接口开发都是一个人搞定,觉得还是蛮简单的。其实没啥难度,如果觉得难只是因为你没有经历过,只要搞过一遍基本就记住了。这里总结下方法留作…

李嘉诚人生最大的错误,并非错过阿里华为,而是套现中国投资欧洲

李嘉诚是很多人心中的生意之神,很多人认为李嘉诚一生从来都没有失败过,他是生意场的常胜将军。可是事实上真的是如此么? 很多人可能不知道,李嘉诚其实也曾经犯下了很大的错误,比如说2003年前后,李嘉诚先后错…

【设计模式】2.工厂模式

文章目录1. 工厂模式概述2. 简单工厂模式3. 工厂方法模式4. 抽象工厂模式1. 工厂模式概述 工厂模式属于创建型模式的一种。 在java中,万物皆对象,这些对象都需要创建,如果创建的时候直接new该对象,就会对该对象耦合严重&#xf…

图神经网络学习笔记

1 图神经网络应用 芯片设计、场景分析问题推理、推荐系统、欺诈检测风控相关、道路交通动态流量预测、自动驾驶、无人机等、化学医疗等场景 2 图神经网络基本组成 点(vertex)、边(edge)、全局图(global),图神经网络(GNN,Graph Neural Netw…

Java 集合知识点总结

Java 集合知识点总结总览Collection 接口ListArrayList源码&扩容机制SetQueueMap接口HashMapHashMap源码&底层数据结构HashMap 的遍历LinkedHashMapTreeMapHashtableConcurrentHashMap 源码&底层数据结构本文是个人阅读学习JavaGuide的集合知识的总结笔记。总览 C…

【计算机毕业设计】个人交友网站源码

一、系统截图(需要演示视频可以私聊) 摘 要 本论文主要论述了如何使用JAVA语言开发一个个人交友网站,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中&#xff0…

【最强最全车牌识别算法】支持13种中文车牌识别的云端API部署(可直接获取源码使用)

项目简介 在城市交通管理、视频监控、车辆识别和停车场管理中车辆检测与车牌识别是一项富有挑战而重要的任务。利用深度学习识别不同条件下的车辆及其车牌信息。更具体地说,实时目标检测网络(Yolov5)用于从车辆图像中提取特征并且通过训练对…

[附源码]java毕业设计面试刷题系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

基于分组码的消息验证码的程序实现

目 录 摘 要 I 1 绪论 1 1.1 课题研究背景和意义 1 1.2 课题研究现状 1 2 CBC MAC的特征和基本工作原理 2 2.1 CBC MAC的特征和码集选择的原则 2 2.2 CBC MAC生成原理 2 2.3 CBC MAC模块结构图 3 3 FPGA和VHDL语言 4 3.1 概述 4 3.2 VHDL语言特点 5 3.2.1 常用硬件描述语言简介…

GUI编程--PyQt5--QAbstractButton

文章目录绘制事件设置文本设置快捷键设置自动重复按钮状态排他性按钮的点击按钮点击有效区域按钮的信号QAbstractButton是一个抽象类,无法直接使用。绘制事件 from PyQt5.QtWidgets import QAbstractButton from PyQt5.QtGui import QPainter, QPen, QColor # 定义…

loki单机对接minio

安装minio 请参考minio官方文档部署 创建Buckets 配置Policy策略 创建一个loki的policy,授权内容如下 (权限配置请参考aws的s3权限配置) { "Version": "2012-10-17", "Statement": [ { …

部署安装yapi

配置环境 部署安装yapi 前提是配置环境,需要 nodejs(7.6)mongodb(2.6) 这里我使用docker 安装上面的nodejs 或 mongodb docker 安装 mongodb 教程: 使用docker 安装MongoDB数据库_小周sir的码农的博客-CSDN博客Doc…

删除pip下载的所有第三方库,最快的方法,没有之一

1、问题描述 初学Python的朋友,经常会使用pip下载各种各样的第三方库,例如自动化办公的专用库:python-office。 下载了很多库会占用电脑空间,而且互相之间有很多依赖关系,也不知道怎么样才能卸载干净。 虽然卸载的方法…

一起学习集合框架之 TreeSet

什么是 TreeSet TreeSet 是一个具有唯一元素的二叉树的集合,又被翻译为 树集。Java 中的 TreeSet 类是 Java 集合框架的一部分,从 Java 6 开始,它实现了 NavigableSet 接口(这个接口增加了几个查找元素以及反向遍历的便利方法&am…

【快速上手系列】使用MD5加密对密码进行加密

【快速上手系列】使用MD5加密对密码进行加密 介绍 MD5加密 Message Digest Algorithm MD5(中文名为消息摘要算法第五版)应用程序的密码通常不会明文保存,会使用各种各样的加密算法对密码进行加密MD5算法相对来说较为安全。初始的MD5算法是…

开发微信小程序的流程_微信小程序开发的作用

小程序的快速发展和围绕其诞生的产业链逐步完善,更多的平台和流量开始参与到小程序的开发领域,推出属于平台的小程序接口。相较于传统的线下广告宣传模式,小程序的传播和推广拥有互联网便捷高效的属性。用户扫描二维码就能关注公众号&#xf…

【安全测试学习】自动化注入攻击之 FuzzDB和Burp 组合拳

一、FuzzDB 开源的应用程序模糊测试数据库,包含了各种攻击 payload 的测试用例集合。 主要功能: OS 命令注入 目录遍历 文件上传绕过 身份验证绕过 XSS SQL 注入 HTTP 头注入 CRLF 注入 NoSQL 注入等 还包含了一些用不同语言写成的 webshell 与常用的账…