【学习笔记】目标跟踪领域SOTA方法比较
目录
- 前言
- 方法
- 1 TraDeS:
- 2 FairMOT:
- 3 SMILEtrack:
- 4 ByteTrack:
前言
常用于行人跟踪的多目标跟踪数据集包括:MOT 15/16/17/20、PersonPath22等…
为更好比较现有SOTA算法的检测性能,本博客将针对在各数据集上表现较优的算法模型进行介绍。(表中画粗数据表明对应算法为该数据集表现最优算法)
数据集 | 算法模型 | MOTA | 年份 | 代码 |
---|---|---|---|---|
MOT15 | TraDeS | 66.5 | 2021 | https://github.com/JialianW/TraDeS |
MOT16 | FairMOT | 74.9 | 2022 | https://github.com/ifzhang/FairMOT |
MOT17 | SMILEtrack | 81.06 | 2022 | https://github.com/WWangYuHsiang/SMILEtrack |
MOT20 | SMILEtrack | 78.2 | 2022 | https://github.com/WWangYuHsiang/SMILEtrack |
PersonPath22 | ByteTrack | 75.4 | 2021 | https://github.com/ifzhang/ByteTrack |
注:MOTA(Multiple Object Tracking Accuracy)即多目标跟踪精度,用于衡量跟踪器在检测物体和保持轨迹时的性能
方法
1 TraDeS:
原文
模型结构:
采用JDT(Joint Detection and Tracking)范式,(目标检测 + 数据关联)
追踪器的整体结构,主要由三部分组成,分别是CenterNet、CVA、MFW
CenterNet:backbone(Φ) + 检测head
CVA:基于代价度量C的关联模块
MFW:基于运动指导的特征整理模块
算法流程:
1、连续两帧输入图像(t、t-1时刻)送入共享权值的CenterNet的Backbone进行基础特征提取(f(t)、f(t-1)),并输入CVA
2、CVA计算两帧图像中目标的偏移,构建运动跟踪信息,进行数据关联。
3、MFW使用运动偏移线索将前一帧信息传播到当前帧,辅助当前帧检测。
4、增强特征送入CenterNet的head进行目标检测,再和之前的轨迹进行关联,实现追踪。
1.3 算法性能:
1.4 算法总结:
1、提出了一种新型的基于JDT模式的在线联合检测与跟踪模型。
2、通过将上一帧跟踪的信息反哺给本帧检测,有效提升了算法在遮挡、光线阴暗、运动模糊等条件下对目标的检测能力,为算法实现准确跟踪奠定了基础。
3、TraDeS模型能够快速、高效地实现追踪,同时可以从2维拓展到3维和实例分割追踪上。
2 FairMOT:
原文
2.1 模型结构:
基于JDE(Joint Detection and Embedding)范式,由两个齐次的同质分支组成,分别用于检测对象和提取重识别特征
追踪器的整体结构,主要由三部分组成,分别是主干网络、CenterNet、re-ID分支
主干网络:ResNet-34 + 深度层聚合(DLA+),实现基础特征提取
CenterNet:检测head,定位图像中目标,生成目标度分数
re-ID分支:生成能够区分对象的特性。
2.2 算法流程:
1、单帧图像送入主干网络得到基础特征
2、特征进入CenterNet检测head,对输出热图根据热图分数执行NMS,以提取峰值关键点并保留热图分数大于阈值的关键点的位置。
3、对保留关键点计算估计中心偏移量与估计检测框尺寸,得到目标预测框。
4、re-ID分支通过128维卷积对特征进行处理,得到ReID特征。
5、在追踪阶段,首先利用卡尔曼滤波估计轨迹位置并计算马氏距离。将结果与根据re-ID特征计算的余弦距离融合后利用匈牙利算法进行匹配。
6、对匹配失败目标进一步使用BOX_IOU进行二次匹配,再次失败目标初始化为新轨迹。
7、更新并保存轨迹
注:初始轨迹根据第一帧信息计算得出
2.3 算法性能:
2.4 算法总结:
1、使用齐次分支结构,解决了目标检测和Re-ID存在的“不公平”关系。
2、证明了基于锚框的检测网络对后续有效学习重识别特征具有局限性。
3、证明了re-ID为有效区分同一类的不同实例,应更多地关注低级外观特征。
4、推理速度快,能够实现视频速率推断。
3 SMILEtrack:
原文
3.1 模型结构:
SMILEtrack采用TBD(Tracking By Detection)范式+SDE(Separate Detection and Embedding)范式,(目标检测)+(目标关联)
追踪器的整体结构,主要由三部分组成,分别是YOLOX、SLM(ISA)、SMC
YOLOX:图像中目标定位检测模块
SLM:目标相似度计算
ISA (Image Slicing Attention Block):图像切片注意力模块
SMC(Similarity Matching Cascade):对检测到的目标基于进行数据关联
3.2 算法流程:
1、连续两帧检测图像送入YOLOX,检测并裁剪得到图像中具体目标。
2、两帧图像中目标进入SLM模块,通过其内部共享权重的ISA及全连接聚合后,得到目标外貌特征,并计算其对应余弦相似度得分。
3、对待跟踪目标(t-1)预测本帧运动轨迹(卡尔曼滤波)。
4、SMC模块按照检测框检测分数高低,通过计算目标运动相似度加粗样式矩阵、外貌相似度矩阵依次进行匹配实现跟踪。
5、对于检测分数大于阈值却匹配失败的目标,将其作为新的跟踪对象。
3.3 算法性能:
3.4 算法总结:
1、使用外貌加运动相似度相结合的机制,对目标关联部分提出了改进,有效提升了算法跟踪精度,在MOT17上达到了SOTA。
2、由于基于TBD范式,无法实现端到端检测。
3、运行速度比联合检测和嵌入( JDE )方法慢。
4 ByteTrack:
原文
4.1 模型结构:
基于TBD范式。目标检测 + 数据关联
4.2 算法流程:
1、连续两帧图像输入YOLOX,对图像中存在的目标进行检测。
2、按照得分将预测框分为高分结果与低分结果两类,分开处理。进行三级匹配关联。
BYTE 数据关联方法具体的流程:
(1)使用高分框和之前的跟踪轨迹进行匹配
(2)使用低分框和第一次匹配失败跟踪轨迹进行匹配
(3)对于没有匹配上跟踪轨迹,得分又足够高的检测框,对其新建一个跟踪轨迹。对于没有匹配上检测框的跟踪轨迹保留30帧,以便后续再进行匹配。
注:匹配过程仍沿用SORT方法,使用卡尔曼滤波预测出当前帧的运动轨迹,并计算预测框和实际框间的 IOU相似度得分,通过匈牙利算法完成匹配跟踪。
4.3 算法效果:
4.4 算法总结:
1、提出了一种简单高效的数据关联方法 BYTE,利用低分检测框包含的目标特性,大幅提升了算法跟踪性能。
2、由于ByteTrack 仅采用运动特征,没有采用外表特征进行匹配,故跟踪的效果十分依赖于检测效果。
3、BYTE算法可与任何目标检测算法连接使用,相比JDE和FairMOT,在工程应用上更为简洁。
4、在MOT17上,MOTA为76.6,检测速度能够达到30FPS,能够有效降低漏检并提高轨迹的连贯性。
------tbc-------
有用请点个👍哦~~😀
相关文章:

【学习笔记】目标跟踪领域SOTA方法比较
目录 前言方法1 TraDeS:2 FairMOT:3 SMILEtrack:4 ByteTrack: 前言 常用于行人跟踪的多目标跟踪数据集包括:MOT 15/16/17/20、PersonPath22等… 为更好比较现有SOTA算法的检测性能,本博客将针对在各数据集上表现较优的算法模型进行介绍。(表…...

机器学习 深度学习编程笔记
sigmoid函数 def sigmoid(x):return 1.0 / (1np.exp((-x)))定义最小平方和损失函数 loss torch.nn.MSELoss()线性回归编程 如果不加噪音就成了正常的线性函数了,所以要加噪音。 torch.normal(0, 0.01, y.shape)torch.normal(0, 0.01, y.shape)是一个用于生成服从…...

18.背景轮播
背景轮播 html部分 <div class"container"><div class"slide active" style"background-image: url(./static/20180529205331_yhGyf.jpeg);"></div><div class"slide " style"background-image: url(./s…...

论文代码学习—HiFi-GAN(2)——鉴别器discriminator代码
文章目录 引言正文鉴别器多周期鉴定器多尺度鉴定器问题 总结 引言 这里翻译了HiFi-GAN这篇论文的具体内容,具体链接。这篇文章还是学到了很多东西,从整体上说,学到了生成对抗网络的构建思路,包括生成器和鉴定器。细化到具体实现的…...
Linux Shell 脚本编程学习之【第3章 正则表达式 (第二部分) grep命令】
第3章 正则表达式 (第二部分) 4 grep命令4.1 基本用法4.2 参考命令4.2.1 双引号4.2.2 -c 输出匹配行数4.2.3 -h 或 -l 不显示或只显示文件名4.2.4 -s 不显示错误信息4.2.5 -r 递归显示本级目录及下级目录4.2.6 -w 匹配完整词 -x 匹配完整行4.2.7 -q 退出…...

大语言模型LLM
目录 一、语言模型的发展 语言模型(Language Model,LM)目标是建模自然语言的概率分布,具体目标是构建词序列w1,w2,...,wm的概率分布,即计算给定的词序列作为一个句子出现可能的大小P(w1w2...wm)。但联合概率P的参数量…...

自学网络安全(黑客)的误区
前言 网络安全入门到底是先学编程还是先学计算机基础?这是一个争议比较大的问题,有的人会建议先学编程,而有的人会建议先学计算机基础,其实这都是要学的。而且这些对学习网络安全来说非常重要。 一、网络安全学习的误区 1.不要…...

@Conditional
Conditional Conditional 是 spring framework 中提供的一个条件注解,,满足条件就注入,不满足就不注入ioc Condtional 需要和 Condition接口 一起用: 返回true注入,返回false不注入,, 里面有一…...

【Linux】网络基础之TCP协议
目录 🌈前言🌸1、基本概念🌺2、TCP协议报文结构🍨2.1、源端口号和目的端口号🍩2.2、4位首部长度🍪2.3、32位序号和确认序号(重点)🍫2.4、16位窗口大小🍬2.5、…...
Java设计模式之装饰器(Decorator)模式
装饰器(Decorator)设计模式允许动态地将新功能添加到对象中,同时又不改变其结构。 什么是装饰器模式 装饰器(Decorator)模式通过将对象进行包装,以扩展其功能,而不需要修改其原始类。装饰器模…...
element ui树组件render-content 树节点的内容区的渲染另一种方式
直接上代码吧,不用h的写法。 <el-tree :data"data" node-key"id" default-expand-all :expand-on-click-node"false" :props"defaultProps":render-content"renderContentTree" node-click"handleNodeClick"&g…...

html a标签换行显示
文章目录 用css display属性不用css,可以用<br>标签换行示例 用css display属性 可以使用CSS的display属性来实现多个a标签每行显示一个。 HTML代码: <div class"link-container"><a href"#">Link 1</a>…...
关于Redis-存Long取Integer类型转换错误的问题
背景 最近遇到了两个Redis相关的问题,趁着清明假期,梳理整理。 1.存入Long类型对象,在代码中使用Long类型接收,结果报类型转换错误。 2.String对象的反序列化问题,直接在Redis服务器上新增一个key-value,…...
设计模式一:简单工厂模式(Simple Factory Pattern)
简单工厂模式(Simple Factory Pattern)是一种创建型设计模式,它提供了一个通用的接口来创建各种不同类型的对象,而无需直接暴露对象的创建逻辑给客户端。 简单工厂的三个重要角色: 工厂类(Factory Class&…...

如何利用plotly和geopandas根据美国邮政编码(Zip-Code)绘制美国地图
对于我自己来说,该需求源自于分析Movielens-1m数据集的用户数据: UserID::Gender::Age::Occupation::Zip-code 1::F::1::10::48067 2::M::56::16::70072 3::M::25::15::55117 4::M::45::7::02460 5::M::25::20::55455 6::F::50::9::55117我希望根据Zip-…...

ceph集群搭建
文章目录 理论知识具体操作搭建ceph本地源yum源及ceph的安装配置NTP(解决时间同步问题)部署ceph自定义crush 理论知识 Ceph是一个分布式存储系统,并且提供了文件、对象、块存储功能。 Ceph集群中重要的守护进程有:Ceph OSD、Cep…...

前端密码加密 —— bcrypt、MD5、SHA-256、盐
🐔 前期回顾悄悄告诉你:前端如何获取本机IP,轻松一步开启网络探秘之旅_彩色之外的博客-CSDN博客前端获取 本机 IP 教程https://blog.csdn.net/m0_57904695/article/details/131855907?spm1001.2014.3001.5501 在前端密码加密方案中ÿ…...

汽车UDS诊断深度学习专栏
1.英文术语 英文术语翻译Diagnostic诊断Onboard Diagnostic 在线诊断 Offboard Diagnostic离线诊断Unified diagnostic service简称 UDS 2.缩写表 缩写解释ISO国际标准化组织UDSUnified diagnostic service,统一的诊断服务ECU电控单元DTC 诊断故障码 ISO14229UD…...
macOS 下安装brew、nvm
1、brew: /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" brew -v 查看版本 示例: 安装jdk brew search jdk 查询可用的jdk版本 brew install openjdk11 安装制定版本jdk 更换源࿱…...
【云原生】Kubernetes工作负载-StatefulSet
StatefulSet StatefulSet 是用来管理有状态应用的工作负载 API 对象 StatefulSet 用来管理某 Pod 集合的部署和扩缩, 并为这些 Pod 提供持久存储和持久标识符 和 Deployment 类似, StatefulSet 管理基于相同容器规约的一组 Pod。但和 Deployment 不同…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:
一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...

vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...
JS手写代码篇----使用Promise封装AJAX请求
15、使用Promise封装AJAX请求 promise就有reject和resolve了,就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...