【深度学习|目标跟踪】SSD+Sort实现MOT!

news2024/11/16 3:16:31

SSD+Sort实现目标跟踪

  • 源码地址
  • 1、🙌🏻匈牙利匹配算法
    • 1.1 什么是匈牙利匹配
    • 1.2 什么是二分图:
    • 1.3 最大匹配
    • 1.4 最优匹配
    • 1.5 最小点覆盖
    • 1.6 交替路
    • 1.7 增广路
    • 1.8 匈牙利匹配具体流程以及实例
    • 1.9 广度优先匹配
    • 1.10 深度优先匹配
    • 1.11 给匹配加权来示例(实际应用中基本都是带加权的匹配)
    • 1.12 实际使用方法及代码实现
  • 2、🚀卡尔曼滤波
  • 3、⚡️Sort算法流程
  • 4、🌈Sort算法代码详解

源码地址

⚡️⚡️⚡️Github: SSD+Sort⚡️⚡️⚡️

1、🙌🏻匈牙利匹配算法

   关于匈牙利匹配算法,网上有十分多的教程,讲的也都很细致,这里我精简一下描述。
   参考文献:
   匹配算法之 匈牙利算法详解
   yolo目标追踪:卡尔曼滤波 + 匈牙利匹配算法 + deepsort算法
   多目标跟踪算法中之图匹配——匈牙利算法和KM算法详解
   超详细!图解匈牙利匹配算法

1.1 什么是匈牙利匹配

  匈牙利匹配算法,就是图论中寻找最大匹配的算法,即要保证匹配到最多的边,并且保证这些边的加权和最小。
  匈牙利匹配算法,用于解决与二分图匹配有关的问题。
  后面会具体的讲解什么叫匹配到最多的边,加权和又是指什么,什么是二分图这些问题。

1.2 什么是二分图:

二分图是一种特殊的图,它是由两个部分组成的,各部分内部没有直接关系并不相连,如下图:
在这里插入图片描述
  二分图中的匹配讲的就是两个分布之间的连线,并且该连线的两端不能拥有共同的顶点,如上图,这就不是一个二分图的最终匹配,因为其中有很多的连线具有公共的端点,如(X1,Y2)和(X1,Y4)就是一组冲突的连线,我们可以通过去除一些公共端点的连线来使其变成匹配的二分图。下图这样的二分图则可以被称为匹配:
在这里插入图片描述
  这样的即可以被称作是该图的一个匹配
匹配有以下属性:

  • 匹配是由一组没有公共断电的不是圈的边构成的集合。
  • 匹配是边的集合。
  • 在该集合中,任意两条边不能有共同的顶点。

1.3 最大匹配

  二分图中的某一个匹配中含有最多的边数,我们即称之为是最大的匹配。(注意,一个二分图的最大匹配不一定只有一个!)

1.4 最优匹配

  二分图的某一个匹配是最大匹配,并且匹配中的每条边的权重相加求和是其他最大匹配中的最小值,即称这个最大匹配是最优匹配。

1.5 最小点覆盖

  最小顶点覆盖是指最少的顶点数使得二分图中的每条边都至少与其中一个点相关联,二分图的最小顶点覆盖=二分图的最大匹配数。

1.6 交替路

  从未匹配的点出发,依次经过未匹配的边和已匹配的边,即为交替路。如下图从2出发:2-5-1-7-4-8。
在这里插入图片描述
这里橘色的线我们认为是已经匹配的,黑色的连线认为是还每匹配的,我们可以看到2是未匹配的点,出发之后(2,5)是一个未匹配的边,(5,1)是匹配的边,(1,7)是未匹配的边,(7,4)是匹配的边,(4,8)是未匹配的边。

1.7 增广路

  如果交替路经过除出发点外的另一个为匹配点,则这条交替路被成为增广路,根据fig.3来看,2是一个出发的未匹配点,经过的5174都是已经匹配的点,直到8是一个未匹配的点。
观察这中现象,我们可以总结出以下几条规律:

  • 增广路径长度一定是一个奇数,因为最后会达到一个未匹配的点。
  • 对于增广路径,所有的奇数边都不在匹配的集合中,偶数边在匹配的集合中。
  • 当且仅当不存在关于该二分图的增广路径时,这个二分图此时达到最大匹配。

  最后我们可以将匈牙利算法总结成不断寻找增广路径来增加匹配个数的算法。

1.8 匈牙利匹配具体流程以及实例

  匈牙利匹配分为广度优先深度优先两种匹配原则。具体这两者有什么优劣我还没有具体了解过,我感觉就是一种方法的选择吧。

1.9 广度优先匹配

  广度优先匹配的原则即:为先匹配上的一对保留原先配对,后面的竞争者想匹配上之前的已经匹配好的对象是不可能的,只有找它其他的能匹配且还未匹配好的对象。(这是我自己总结的大白话)我们用下图这个例子来举例说明:
按照从上至下的顺序来匹配,首先是A,有两个可以匹配的对象a和b,我们先让A与a匹配上。然后是B,B可以匹配的对象有两个,分别是a和b,但是a已经被A匹配上了,因此我们只能让B去匹配其他的对象b,最后C的话直接和c匹配即可。

在这里插入图片描述

1.10 深度优先匹配

  深度优先匹配得原则即:每个点从另一个集合里挑选对象,没冲突的话就先安排上,要是冲突了,就找增广路径重新匹配。重复上述操作,直到所有的点找到对象,或者找不到对象也没有增广路了。 用下图的这个例子来说明:

在这里插入图片描述
按照这个逻辑,最后的匹配结果(绿色的阴影):
在这里插入图片描述

1.11 给匹配加权来示例(实际应用中基本都是带加权的匹配)

  假设我们这里以检测到的汽车为例,ABC表示前一帧检测到的,abc表示当前帧检测到的,每个数表示两帧目标之间的距离:
在这里插入图片描述
在这里插入图片描述

1.12 实际使用方法及代码实现

  在实际使用中,我们首先需要确定的是两个分布之间的代价矩阵cost matrix,也就是这里面的数是怎么来的,通常情况下会根据任务的不同定制不同的计算方式,像在目标检测中使用目标跟踪的话可以使用IOU的计算方式,也可以使用欧氏距离(检测框质心的距离)等。
  如果是使用python来完成匈牙利匹配的任务的话,我们可以通过直接调用第三方库的方式来完成,如scipy库中的scipy.optimize.linear_sum_assignment 函数即可实现。输入一个代价矩阵,返回的是两个分布的对应索引。

C++实现匈牙利匹配:
未完待续~~~

2、🚀卡尔曼滤波

3、⚡️Sort算法流程

4、🌈Sort算法代码详解

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

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

相关文章

SQL—数据库与表操作

目录 SQL语句分类 DDL 数据库操作 1. 查询所有数据库 2. 查询当前数据库 3. 创建数据库 案例:创建一个itcast数据库,使用数据库默认的字符集 案例:创建一个itheima数据库,并且指定字符集 4. 删除数据库 5. 切换数据库…

Java从入门到精通 (十) ~ 计算机是如何工作的呢 ?

每天进步一点点,每天创造一点点,每天做事多一点,愿你事事都领先,卓越成绩现眼前,美好生活一天又一天。 文章目录 目录 前言 前置知识 认识一下计算机的真实相貌 都说计算机使用二进制传输,为什么要使…

哇!0.8秒启动!Linux快速启动方案分享,全志T113-i国产平台!

本文主要介绍基于创龙科技TLT113-EVM评估板(基于全志T113-i)的系统快速启动方案,适用开发环境如下。 Windows开发环境:Windows 7 64bit、Windows 10 64bit 虚拟机:VMware15.5.5 Linux开发环境:Ubuntu18.04.4 64bit U-Boot:U-Boot-2018.07 Kernel:Linux-5.4.61、Li…

政策收紧下,给EI人的一个小建议!

自中央大力推动文化体制改革、促进文化产业加快发展以来,我国出版业的数字化转型升级工作拉开序幕。其后,得益于新技术的发展、市场趋势的变化,数字出版开始出现“井喷”,出版融合成绩巨大,但也面临诸多挑战&#xff0…

手持气象站:便携与精准的完美结合

在气象监测领域,手持气象站以其独特的优势特点,正逐渐成为专业人士和爱好者的首选工具。这款小巧而强大的设备,将便携性与精准性完美融合,为各种户外活动和科学研究提供了极大的便利。 首先,手持气象站的最大亮点在于其…

虚拟主播实时直播技术方案:以年轻人互动方式探索直播新玩法2

随着互联网将内容传播的渠道变得逐渐丰富,观众对直播内容形式、互动玩法的多元化要求越来越高,文旅、电商、企业品牌、广电、泛娱乐MCN、游戏动漫等等领域纷纷主动迎合Z世代喜好,利用虚拟人直播内容抢夺观众的注意力,以独特的虚拟…

2024 杭电多校 第四场

分组 给定 n 个正整数 a1,a2,…,an (1≤ai<2m) 以及 0 到 2m−1 的权重 w0,w1,…,w2m−1&#xff1b;你需要把这 n 个正整数分成四组 A,B,C,D&#xff0c;令 f(A),f(B),f(C),f(D) 分别表示每组中所有数字的异或和&#xff0c;你的分组方案需要最小化 wf(A),wf(B),wf(C),wf(…

智慧社区的秘密武器:数据可视化的力量

在现代城市的发展中&#xff0c;智慧社区已成为提升居民生活品质和管理效率的重要方式。而数据可视化作为信息技术的关键工具&#xff0c;正是实现智慧社区目标的强大助推器。通过将复杂的数据转化为直观的图表和可视化图像&#xff0c;数据可视化不仅能够帮助社区管理者快速理…

前端工具专有名词记录

目录 前言 正文 1.包管理器 2.构建工具和开发环境&#xff08;项目管理器&#xff09; 3.自动化测试工具 4.JavaScript 框架和模版 5.代码质量工具 尾声 &#x1f52d; Hi,I’m Pleasure1234&#x1f331; I’m currently learning Vue.js,SpringBoot,Computer Security and so…

全新小体积RK3562核心板,解锁神秘技能!

RK3562小体积金手指系列核心板基于瑞芯微四核Cortex-A53Cortex-M0处理器设计&#xff0c;工作主频高达2GHz&#xff0c;最高搭载4GB高速LPDDR4、32GB eMMC。该核心板拥有204 Pin脚&#xff0c;尺寸仅为67.6mm *45mm&#xff0c;支持千兆网、USB3.0、串口、PCIE、HDMI等丰富外设…

vite tsx项目的element plus集成 - 按需引入踩坑

前面我们进行了开源组件的自研&#xff0c;很多组件可直接用现成的开源组件库&#xff0c;并不需要自己重复造轮子&#xff0c;为此我们讲如何在当前vite vitepress tsx技术整合的项目中实现element plus组件的按需引入&#xff0c;同时解决遇到的一些坑。 安装Element Plus…

《史上最简单的SpringAI+Llama3.x教程》-03-ETL pipeline解决RAG文件处理问题

在企业内部构建基于大型语言模型&#xff08;LLM&#xff09;的应用程序时&#xff0c;数据的提取、转换和加载&#xff08;ETL&#xff09;过程至关重要。Spring AI 提供了一个集成的框架&#xff0c;可以简化这一过程&#xff0c;特别是在使用 LLM 进行检索增强生成&#xff…

Postman 接口测试工具简易使用指南

一、Postman是什么? 我通过kimi问了这样一个问题&#xff0c;它给我的回答是这样的: 它的回答也算比较中规中矩&#xff0c;简单的说postman实际上就是一款接口测试工具&#xff0c;同时它还可以编写对应的测试脚本以及自动生成对应的API文档&#xff0c;结合我的习惯来说&am…

Springboot处理跨域请求

文章目录 概要同源策略跨域问题复现解决跨域方法1方法2方法3 jwt拦截器验证token防止请求存在缓存 概要 跨域请求&#xff08;Cross-Origin Requests&#xff09;指的是在一个网页中加载的资源来自与当前网页不同的域、协议或端口。浏览器出于安全考虑&#xff0c;默认会限制这…

Mybatis超级方便操作数据方式(注解+封装mapper接口)!!!

Mybatis作为一个流行的持久层框架&#xff0c;其优化了Java程序与数据库的交互过程。它的核心在于使用Mapper接口与XML映射文件或注解绑定来实现对数据库的操作。这种方式不仅简化了数据库操作&#xff0c;还提升了开发效率&#xff0c;使得开发者可以从繁琐的JDBC代码中解放出…

索引排序以及explain

标题 explain函数typekeyextrarows 索引排序 前言&#xff0c;如无特殊提醒&#xff0c;默认建立如下索引。 explain函数 type type列反映了访问类型。表示mysql如何找到数据。访问类型有很多种&#xff0c;从全表扫描到索引扫描、范围扫描、唯一索引查询、常数引用等。这里列…

Oracle <left> join on where 先过滤还是先join

一、left join onon条件是在生成临时表时使用的条件&#xff0c;它不管on中的条件是否为真&#xff0c;都会返回左边表中的记录。 二、left join on and&#xff08;1&#xff09;如果and语句是对左表进行过滤的&#xff0c;那么不管真假都不起任何作用。&#xff08;2&#x…

视频剪辑免费素材哪里能找到?

在创作视频时&#xff0c;素材的选择至关重要。为了让您的项目更具吸引力和专业性&#xff0c;我整理了8个剪辑必备素材网站&#xff0c;它们提供了丰富多样的资源&#xff0c;从高清视频到优质音乐&#xff0c;应有尽有。让我们一起探索这些资源丰富、质量上乘的平台&#xff…

倍思开放式耳机佩戴舒服吗?南卡、倍思、QCY三款热门产品测评!

​放式蓝牙耳机已然成为年轻族群的新风尚&#xff0c;就连不少中老年朋友也偏爱在公园漫步时佩戴它们。这些耳机在娱乐、学习、健身、办公等多元化场景中展现出强大的实用性。作为一名数码博主和耳机狂热粉&#xff0c;我最近一直收到不少小伙伴的私信&#xff0c;想让我测评一…

reaConverter(图片格式转换工具) Pro v7.819 中文授权版

reaConverter是一款图片文件格式转换工具&#xff0c;它支持480多种不同的文件格式。使用reaConverter可以轻松的转换一批图片文件&#xff0c;也可以对其进行编辑和优化。 软件功能&#xff1a; 1. 图片文件格式转换&#xff1a;支持将JPEG、PNG、GIF、TIFF、BMP等格式的图片…