【学习笔记】目标跟踪领域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 不同…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...
React Native 导航系统实战(React Navigation)
导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)
UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化…...
Element Plus 表单(el-form)中关于正整数输入的校验规则
目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入(联动)2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

DingDing机器人群消息推送
文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人,点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置,详见说明文档 成功后,记录Webhook 2 API文档说明 点击设置说明 查看自…...

如何更改默认 Crontab 编辑器 ?
在 Linux 领域中,crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用,用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益,允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...

算法打卡第18天
从中序与后序遍历序列构造二叉树 (力扣106题) 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 示例 1: 输入:inorder [9,3,15,20,7…...