deepsort算法 卡尔曼滤波 匈牙利算法

news2024/9/28 1:26:34

目标追踪最核心的两个算法就是卡尔曼滤波和匈牙利算法算法。

卡尔曼滤波:根据当前帧中的轨迹预测下一帧的轨迹。
匈牙利算法:将预测的目标位置与检测到的目标位置进行匹配,实现对目标的准确跟踪。

在这里插入图片描述

Sort算法


Sort算法分为以下几个步骤:
1.卡尔曼滤波预测轨迹
2.利用匈牙利算法匹配当前帧 目标检测(Detection) 的结果以及步骤一中卡尔曼滤波预测的轨迹进行匹配 (IOU匹配)
3.若匹配成功,卡尔曼滤波进行更新,若匹配失败则直接删除。

Deep Sort算法

Deep Sort算法是在Sort算法基础上进行了一系列的优化,其中最重要的优化就是增加了级联匹配。主要步骤如下:
1.卡尔曼滤波预测轨迹
2.利用匈牙利算法匹配当前帧 目标检测(Detection) 的结果以及步骤一中卡尔曼滤波预测的轨迹进行匹配 (级联匹配 + IOU匹配)
3.卡尔曼滤波进行更新

https://blog.csdn.net/qq_43591839/article/details/126008607

多目标追踪

随着目标的移动,是不是同一个人。是不是之前那个目标。
如果目标突然不见了,等它再出现,要判断他是不是之前识别的人,id不能变。
在这里插入图片描述
既要得到每一帧检测结果
也要看看当前每一帧还是不是之前的人。

卡尔曼滤波

必须是一帧一帧的,不是当前是第一帧,下次是第5帧。

卡尔曼滤波的初始值

在这里插入图片描述

在这里插入图片描述
预测值和估计值都有误差,卡尔曼滤波就是想办法综合预测值和预测值得到更优的结果。
在这里插入图片描述
在这里插入图片描述

如何实现跟踪?

在这里插入图片描述
从当前帧 的绿框开始,来预测下一帧绿框移动的位置,即蓝框。如果预测框与真实框接近,那么他们就是同一个人。

当下一帧一个观众突然冲出来,遮挡住2号球员,那么预测值发现预测与真实的位置相差较远,那么就把真实框,设置为新的人,赋予新的id.

怎么从当前位置对下一个位置预测?

在这里插入图片描述

估计阶段

在这里插入图片描述
卡尔曼滤波的预测有两个部分,上面是对状态的更新。
下面是关系的更新。Q是噪音矩阵,关系中也有不可控的因素。比如今天跟女朋友好好的,明天就翻脸了,不知道为啥。

更新阶段

在这里插入图片描述
K是卡尔曼增益,也是权重项。

追踪问题中需要考虑的状态:

状态包括:位置,速度,协方差矩阵。

在这里插入图片描述

位置和速度

位置用 中心点坐标(cx,cy),r=h/w,h 表示。(cx,cy,r,h) 
速度包括xywh四个方向的速度。(vx,vy,vr,vh)
(cx,cy,r,h,vx,vy,vr,vh)

协方差矩阵

描述多个变量的关系,此时每个变量跟自己和其它变量的关系。

补充:

协方差

协方差是衡量两个变量共同变化程度的一个值。
1.当协方差为正,表示两个变量变化一致。当一个变量增加,另一个也会增加。
2.当协方差为负,表示两个变量变化相反,一个增,一个会减。
3.当为0时,表示两个变量没有线性关系。 

在这里插入图片描述

协方差矩阵与相关性分析

https://zhuanlan.zhihu.com/p/434086112

匈牙利算法

用于解决匹配问题,到底匹配到谁。

完成匹配的同时最小化代价矩阵。当前帧检测到的目标该匹配到前面哪个目标。

有时候并不是最优的,而是尽可能多的分配。

小例子

在这里插入图片描述
就是看怎么分配代价矩阵最小。

比如第一个分配第一个任务,第三个人分培第二个任务,第二个人分配第三个任务。

在目标追踪中

在这里插入图片描述
匹配的例子:
https://www.bilibili.com/video/BV1Ws4y1d7BL/?p=8&spm_id_from=pageDriver&vd_source=ebc47f36e62b223817b8e0edff181613

如何构建代价矩阵呢?

在这里插入图片描述
外观匹配是对框内的目标提取特征,与预测的框看是否匹配

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

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

相关文章

AS/400-物理文件-02

物理文件 - Physical file Physical file物理文件中的条目级别相关命令 Physical file 简介物理文件 这是一个文件。包含预定义的结构化格式的数据。它是PF类型。通过使用CRTPF命令创建PF。PF中包含的字段的最大数量为8000。最多包含120个关键字段。 PF 的结构如下 TYPE SPECIF…

【C++】多态 ⑥ ( 函数重定义涉及的问题 - 子类覆盖父类函数名 )

文章目录 一、函数重定义涉及的问题1、执行出错的代码2、代码分析3、错误原因分析 - 函数重定义问题 : 子类覆盖父类函数名4、正确调用函数的方法 一、函数重定义涉及的问题 1、执行出错的代码 错误代码示例 : #include "iostream" using namespace std;// 父类 cla…

Openssl数据安全传输平台014:OCCI环境搭建和使用:Centos8-Oracle19c代码跑通 + Window代码没跑通(不影响本项目)

文章目录 0 代码仓库1 启动Centos oracle数据库2 Winsows安装配置OCCI库2.1 下载文件2.2 VS 配置2.2.1 VC包含目录2.2.2 VC库目录2.2.3 连接器-附加依赖项2.2.4 代码测试-Oracle11g2.2.4.1 准备2.2.4.2 代码测试 3 Centos安装配置occi库3.0 强调3.1 下载instantclient库文件压缩…

国产思仪 1765A/B/C/D/E程控直流电源

1765A/B/C/D/E程控直流电源 产品综述 1765系列程控直流电源主要用于储能设备系统的测量分析和自动测试系统的加电测试。作为一种双象限直流电源,将电源输出和功率吸收的功能完全集成到单一系统中,可实现电源与负载功能的无缝转换,解决双向能源…

RT-Thread 内存管理(一)

内存管理 在计算系统中,通常存储空间可以分为两种:内部存储空间和外部存储空间。 内部存储空间通常访问速度比较快,能够按照变量地址随机访问,也就是我们通常所说的RAM(随机访问存储器),可以把…

Linux gzip命令:压缩文件或目录

gzip 是 Linux 系统中经常用来对文件进行压缩和解压缩的命令,通过此命令压缩得到的新文件,其扩展名通常标记为“.gz”。 再强调一下,gzip 命令只能用来压缩文件,不能压缩目录,即便指定了目录,也只能压缩目录…

使用WebDav服务远程操作本地服务器?试试群晖NAS【内网穿透】

🎬 鸽芷咕:个人主页 🔥 个人专栏:《速学数据结构》 《C语言进阶篇》 ⛺️生活的理想,就是为了理想的生活! 文章目录 1. 在群晖套件中心安装WebDav Server套件1.1 安装完成后,启动webdav服务,并勾选HTTP复选…

Linux 文件系统简介

文章目录 一、磁盘简介1.1 简介1.2 机械硬盘与固态硬盘1.2.1 机械磁盘(HDD)1.2.2 固态磁盘(SSD)1.2.3 I/O操作 二、文件系统简介2.1. 简介2.2 文件系统特点2.3 Linux文件系统 三、文件数据存储方式3.1 连续存储3.2 链接表存储3.3 …

Ansible中常用模块

目录 一、Ansible实现管理的方式 二、Ad-Hoc执行方式中如何获得帮助 三、Ansible命令运行方式及常用参数 四、Ansible的基本颜色代表信 五、Ansible中的常用模块 1、command模块 2、shell模块、script模块 3、copy模块、fetch模块 4、file模块 5、archive模块、unarc…

FPGA_Signal TapII 逻辑分析仪 在线信号波形抓取

FPGA_Signal TapII 逻辑分析仪 在线信号波形抓取 由于一些工程的仿真文件不易产生,所以我们可以利用 quartus 软件自带的 SignalTap 工具对波形进行抓取 对各个信号进行分析处理,让电子器件与FPGA进行正常通讯工作,也验证所绘制的波形图是否一…

Spring面试题:(一)IoC,DI,AOP和BeanFactory,ApplicationContext

IoC,DI,AOP思想 IOC就是控制反转,是指创建对象的控制权的转移。以前创建对象的主动权和时机是由自己把控的,而现在这种权力转移到Spring容器中,并由容器根据配置文件去创建实例和管理各个实例之间的依赖关系。对象与对…

NSSCTF做题第十页(1)

[GXYCTF 2019]禁止套娃 看源代码也没什么东西&#xff0c;扫一下看看 发现了git泄露 话不多说直接开整 下载下来了 flag.php 还是代码审计 <?php include "flag.php"; echo "flag在哪里呢&#xff1f;<br>"; if(isset($_GET[exp])){ if (!preg_…

怎么看电脑有几个cpu?还有cpu是几核的?

一、怎么查看电脑有几个cpu 电脑CPU是电脑的核心&#xff0c;CPU是中央处理器&#xff0c;是电脑进行线程调度的关键&#xff0c;可以通过查看电脑CPU性能个数可以判定一个电脑的性能。今天小编介绍下如何查看电脑CPU个数。 简单的方式直接查看CPU个数。启动电脑后&#xff0c;…

喜讯!合合信息顺利通过CMMI3级评估

近日&#xff0c;在擎标顾问团的咨询辅导下&#xff0c;上海合合信息科技股份有限公司&#xff08;简称“合合信息”&#xff09;顺利通过了CMMI3级评估。CMMI是国际上最流行、最实用的一种软件生产过程标准和软件企业成熟度等级认证的标准&#xff0c;通过该认证表明企业在开发…

Cesium笔记(0):Cesium简介和本地运行

一、Cesium介绍 是国外一个基于JavaScript编写的使用WebGL的地图引擎开源程序&#xff0c;可以免费用于商业和非商业 二、特点 支持3D,2D,2.5D形式的地图展示可以自行绘制图形&#xff0c;高亮区域&#xff0c;并提供良好的触摸支持支持绝大多数的浏览器和mobile动态地理空间…

【Python百练——第2练】使用Python做一个猜数字小游戏

&#x1f490;作者&#xff1a;insist-- &#x1f490;个人主页&#xff1a;insist-- 的个人主页 理想主义的花&#xff0c;最终会盛开在浪漫主义的土壤里&#xff0c;我们的热情永远不会熄灭&#xff0c;在现实平凡中&#xff0c;我们终将上岸&#xff0c;阳光万里 ❤️欢迎点…

洛谷 B2009 计算 (a+b)/c 的值 C++代码

目录 题目描述 AC Code 切记 题目描述 题目网址&#xff1a;计算 (ab)/c 的值 - 洛谷 AC Code #include<bits/stdc.h> using namespace std; int main() {int a,b,c;cin>>a>>b>>c;cout<<(ab)/c<<endl;return 0; } 切记 不要复制题…

实战之巧用header头

案例&#xff1a; 遇到过三次 一次是更改accept&#xff0c;获取到tomcat的绝对路径&#xff0c;结合其他漏洞获取到shell。 一次是更改accept&#xff0c;越权获取到管理员的MD5加密&#xff0c;最后接管超管权限。 一次是更改accept&#xff0c;结合参数获取到key。 这里以越…

vscode免密码认证ssh连接virtual box虚拟机

文章目录 安装软件virtual box配置vscode配置创建并传递密钥连接虚拟机最后 安装软件 安装vscode和virtual box&#xff0c;直接官网下载对应软件包&#xff0c;下载之后&#xff0c;点击执行&#xff0c;最后傻瓜式下一步安装即可 virtual box配置 创建一个仅主机网络的网卡 …

【Linux】第七站:vim的使用以及配置

文章目录 一、vim1.vim的介绍2.vim基本使用3.vim的命令模式常用命令4.底行模式 二、vim的配置 一、vim 1.vim的介绍 vim编辑器&#xff0c;用来文本编写&#xff0c;可以写代码 它是一个多模式的编辑器 它有很多的模&#xff0c;不过我们暂时先只考虑这三种模式 命令模式插入模…