目标追踪算法DeepSORT简介

news2024/12/29 8:45:54

背景:目标检测 vs 目标跟踪

在开始介绍 DeepSORT 的原理之前呢,我们先来了解下目标检测,和目标跟踪之间的区别:

  • 目标检测:在目标检测任务中,我们需要利用 AI 模型识别出单张画面中,物体的位置和类别信息,每一帧画面之间检测结果相对独立,没有依赖关系。这也意味着目标检测算法可以被应用于单张图片的检测,也可以用于视频中每一帧画面的检测。
  • 目标跟踪:而目标跟踪则是在目标检测的基础上加入的跟踪机制,他需要追踪视频中同一物体在不同时刻的位置信息,因此他需要判断相邻帧之间的被检测到对象是否是同一个物体,并且为同一物体分配唯一的编号 ID,用来区别不同的目标对象。

例如下面短跑运动员比赛的例子中,目标检测任务只需要识别到画面中所有人体的位置即可,而目标跟踪任务则需要区分画面中相同的对象和不同对象。

DeepSORT

DeepSORT 的前身是 SORT 算法,SORT 算法是由目标检测器以及跟踪器所构成,其跟踪器的核心是卡尔曼滤波算法和匈牙利算法。

利用卡尔曼滤波算法预测检测框在下一帧的状态,将该状态与下一帧的检测结果利用匈牙利算法进行匹配,实现追踪。

一旦物体受到遮挡或者其他原因没有被检测到,卡尔曼滤波预测的状态信息将无法和检测结果进行匹配,该追踪片段将会提前结束。

预测:用卡尔曼滤波算法预测已经tracker到的obj在下一时刻的状态

卡尔曼滤波算法用于预测已经tracker到的object在下一时刻的状态

状态表示:8维向量,[cx, cy, r, h, vx, vy, vr, vh]

  • cx,cy是bbox中心坐标点
  • r=高宽比,h=高度
  • Vx,vy,vr,vh是以上四个量的速度(速度初始值=0)

这里卡尔曼滤波预测下一个状态:使用匀速模型和线性观测模型

检测:在新的帧里detection

例如用YOLO进行物体检测

关联:trackerID关联

SORT算法的思路是将detection出的box和预测出的box分别计算IOU,生成一个IOU矩阵,然后再将矩阵输入到匈牙利算法来计算出box之间的一个最佳匹配

detect box1

detect box2

预测boxa

IOU

IOU

预测boxb

IOU

IOU

目标是将预测出的box和detect出的box一一对应分配,匈牙利算法找出一个最优匹配。

匹配后,detect出的box就可以用对应的预测box的trackerID

更新:用新的有trackerID的detect box来更新维护的tracker box

为后续的预测做准备

更新卡尔曼滤波

匈牙利算法简介:

用于解决最优分配问题,在代价矩阵上找出代价最小的分配方案。

定理:如果代价矩阵的某一行或某一列同时加上或减去某个数,则这个新的代价矩阵的最优分配方案仍然是原代价矩阵的最优分配方案。

参考:

  1. 目标跟踪初探(DeepSORT) - 知乎

卡尔曼滤波算法:

通过观测值来预测

SORT算法两个地方使用卡尔曼滤波:

  1. 预测track在下一时刻的位置
  2. 基于匹配后的detect来更新预测数据,以便于下一次预测

 参考:

  1. 图说卡尔曼滤波,一份通俗易懂的教程 - 知乎

SORT算法的不足:要求必须连续detect到,否则产生新的trackID

一旦物体受到遮挡或者其他原因没有被检测到,卡尔曼滤波预测的状态信息将无法和检测结果进行匹配,该追踪片段将会提前结束

DeepSORT:利用已检测到的物体的外观特征,即使中间遮挡等断开,后续也能追踪上

使用一个简单的CNN提取物体的外观特征,计算特征相似度

结合运动+外观特征

马氏距离:运动物体在两个不同状态的距离

余弦距离:用于计算特征相似度

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

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

相关文章

【稳定性】稳定性建设之弹性设计 | 京东物流技术团队

背景 随着业务的快速变化和技术的不断发展,系统面临着诸多挑战,例如流量峰值、依赖服务故障、硬件故障、网络中断、软件缺陷等,这些因素都可能影响到系统的正常运行。在这种背景下,弹性设计(Resilience Design&#x…

开启深度学习之门—《深度学习》

开启深度学习之门—《深度学习》 《深度学习》由Ian Goodfellow和Yoshua Bengio合著,以其前沿的内容和深入浅出的风格,成为了当今最受欢迎的人工智能教材之一。首先,让我们来了解一下这两位作者。Ian Goodfellow是一位备受瞩目的计算机科学家,他在深度学习和生成对抗网络的…

第二证券:华为全液冷超充上线,高压快充概念爆发,双杰电气等涨停

受华为全液冷超充上线消息提振,高压快充概念9日盘中强势拉升,到发稿,双杰电气、永贵电器“20cm”涨停,英可瑞、易事特涨超13%,伊戈尔、协鑫能科、宝馨科技、日丰股份等涨停,万祥科技、星云股份涨近8%。 消…

外汇天眼:三大方法提高容错率——成功投资者的秘密策略!

容错率是什么? 虽然A股市场投资体验不佳,但相较于中概股市场的波动,A股投资者仍有幸福感。以中概股的代表,金龙指数ETF为例,仅一年多时间内从85.90元下跌至20.47元,跌幅高达76%。 然而,有一位…

【PPT】ppt里面使用svg图标

要想编辑好的PPT,少不了小图标的美化,图标可以使PPT变得更有趣,更易懂,更美观。 对于png,主要处理它的颜色,可使用【重新着色】功能。 对于jpg,主要处理它的背景,删除背景后同png处…

vue-6

一、声明式导航-导航链接 1.需求 实现导航高亮效果 如果使用a标签进行跳转的话,需要给当前跳转的导航加样式,同时要移除上一个a标签的样式,太麻烦!!! 2.解决方案 vue-router 提供了一个全局组件 router…

进程同步互斥之吸烟者问题,读者写者问题,哲学家进餐问题

1.吸烟者问题 1.问题描述 假设一个系统有三个抽烟者进程和一个供应者进程。 每个抽烟者不停地卷烟并抽掉它,但是要卷起并抽掉一支烟,抽烟者需要有三种材料:烟草、纸和胶水。 三个抽烟者中,第一个拥有烟草、第二个拥有纸、第三个拥有胶水。 …

【MyBatis】MyBatis 详解

MyBatis 详解 一. MyBatis 是什么二. MyBatis 在整个框架中的定位三. MyBatis 的操作1. 先创建好数据库和表2. 添加MyBatis框架⽀持3. 修改配置文件4. 添加业务代码5. 增、删、改操作① 增加⽤户② 修改用户操作③ 删除操作 6. 查询操作① 单表查询② 多表查询 一. MyBatis 是什…

Ubuntu16.04apt更新失败

先设置网络设置 换成nat、桥接,如果发现都不行,那么就继续下面操作 1.如果出现一开始就e,检查源,先换源 2.换完源成功之后,ping网络,如果ping不通就是网络问题 如果ping baidu.com ping不通但是ping 112…

2023年中国非晶带材产量、竞争现状及行业市场规模前景分析[图]

非晶带材指生产工艺采用急速冷却技术将含铁、硅、硼等元素的合金熔液以每秒百万度的速度快速冷却后得到的带材,其物理状态表现为金属原子呈长程无序的非晶体排列。非晶带材及其制品非晶铁心主要用于电力领域,是非晶配电变压器的主要用材及核心部件。 我国…

Git入门详解

Git入门详解 本文承接上文 Git入门简介 并做了内容扩充。本文讲述Git工具的安装、配置及使用友情参考链接:https://gitee.com/all-about-git 1. Git安装 安装官网:https://git-scm.com/安装过程如下: 双击.exe默认安装即可 2. Git配置 …

基于DBC Signal Group生成Autosar SR接口(1)

文章目录 前言实现方法结构体在Simulink中的定义SignalGroup提取 总结 前言 在开发Autosar CAN通信模块时,对于Signal Group需要建立对应的Interface,其中的数据类型实际是一个结构体,包含Group中的Signal的数据类型定义。手动建立比较费时间&#xff0…

2023年中国人防服务需求现状及行业市场规模前景分析[图]

人防服务指利用人发现风险事件,并延迟或阻止风险事件的发生,在自身力量不足的情况下发出应急救援信号,以待做出进一步的反应,制止风险事件的发生或处理已发生的风险事件。人防服务是保安服务公司最基本的业务内容。2022年国内保安…

日常学习收获之----react的ref和wrappedComponentRef的区别

react获取子组件的方式,有ref和wrappedComponentRef。那这两者有什么区别呢? 区别在于是否用了高阶组件!!!!!!!!!!!&#…

中国鞋业品牌步力宝:传统制造业蜕变为资本上市公司的光辉征程

​中国鞋业,作为典型的劳动密集型产业,一直在不断演进。从最初的皮鞋、布鞋、胶鞋、塑料鞋(化学鞋)四大类鞋,到今天的复杂多样,中国鞋业一直在追求更高的品质和创新。随着社会的进步和科学技术的发展&#…

第二证券:临时停牌一般多久?

随着股票买卖市场的日益开展,股票买卖的监管也越来越严格。而前段时刻,上市公司中多家公司被暂时停牌,此举引起了公众对于暂时停牌时刻的重视。那么,暂时停牌一般多久?本篇文章将从多个视点出发,对这一问题…

迅为RK3568开发板Scharr滤波器算子边缘检测

本小节代码在配套资料“iTOP-3568 开发板\03_【iTOP-RK3568 开发板】指南教程\04_OpenCV 开发配套资料\33”目录下,如下图所示: 在 Sobel 算子算法函数中,如果设置 ksize-1 就会使用 3x3 的 Scharr 滤波器。Scharr 算子是 Soble 算子在 ksize…

基于Python和Tkinter的双目相机驱动界面

文章目录 前言准备工作代码分析初始化创建按钮创建图像显示区域创建信息标签启动摄像头捕捉主函数结论效果展示 前言 本文将介绍如何使用Python和Tkinter库来创建一个简单的摄像头应用程序。这个应用程序可以打开摄像头,显示摄像头捕捉的图像,并允许用户…

Nosql redis高可用和持久化

Nosql redis高可用和持久化 1、redis高可用2、redis持久化2.1redis持久化2.2Redis 持久化方法2.3RDB 持久化2.3.1RDB持久化工作原理2.3.2触发条件2.3.3其他自动触发机制2.3.4执行流程2.3.5启动时加载 2.4AOF 持久化2.4.1AOF持久化原理2.4.2开启AOF2.4.3执行流程2.4.4文件重写的…