【学习笔记】目标跟踪领域SOTA方法比较

目录

    • 前言
    • 方法
      • 1 TraDeS:
      • 2 FairMOT:
      • 3 SMILEtrack:
      • 4 ByteTrack:

前言

常用于行人跟踪的多目标跟踪数据集包括:MOT 15/16/17/20、PersonPath22等…
为更好比较现有SOTA算法的检测性能,本博客将针对在各数据集上表现较优的算法模型进行介绍。(表中画粗数据表明对应算法为该数据集表现最优算法)

数据集算法模型MOTA年份代码
MOT15TraDeS66.52021https://github.com/JialianW/TraDeS
MOT16FairMOT74.92022https://github.com/ifzhang/FairMOT
MOT17SMILEtrack81.062022https://github.com/WWangYuHsiang/SMILEtrack
MOT20SMILEtrack78.22022https://github.com/WWangYuHsiang/SMILEtrack
PersonPath22ByteTrack75.42021https://github.com/ifzhang/ByteTrack

:MOTA(Multiple Object Tracking Accuracy)即多目标跟踪精度,用于衡量跟踪器在检测物体和保持轨迹时的性能


方法

1 TraDeS:

原文

模型结构:
采用JDT(Joint Detection and Tracking)范式,(目标检测 + 数据关联)
追踪器的整体结构,主要由三部分组成,分别是CenterNetCVAMFW
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)范式,由两个齐次的同质分支组成,分别用于检测对象和提取重识别特征
在这里插入图片描述
追踪器的整体结构,主要由三部分组成,分别是主干网络CenterNetre-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)范式,(目标检测)+(目标关联)
追踪器的整体结构,主要由三部分组成,分别是YOLOXSLM(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-------
有用请点个👍哦~~😀

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ip校园广播音柱特点

ip校园广播音柱特点IP校园广播音柱是一种基于IP网络技术的音频播放设备,广泛应用于校园、商业区、公共场所等地方。它可以通过网络将音频信号传输到不同的音柱设备,实现远程控制和集中管理。IP校园广播音柱具备以下特点和功能:1. 网络传输&am…

SSM框架 基础

1.数据库 2.工程 3.pom 4.web.xml 5.spring配置文件头部 6.实体类 7.StudentMapper接口 8. StudentMapper.xml 9.StudentService 10. StudentServiceImpl 11.StudentController 实战 查询所有 StudentMapper StudentService StudentServiceImpl StudentMapper.xml Stude…

效率与质量兼备的6个设计工具!

今天本文为大家推荐的这6个设计工具,将帮助设计师实现高效工作,同时也更好地展示自己的创作力,一起来看看吧! 1、即时设计 即时设计是一款国内的设计工具,它为设计师提供了非常多实用的设计功能和精致的设计素材&…

TCP状态转换图

TCP状态转换图 了解TCP状态转换图可以帮助开发人员查找问题. 说明: 上图中粗线表示主动方, 虚线表示被动方, 细线部分表示一些特殊情况, 了解即可, 不必深入研究. 对于建立连接的过程客户端属于主动方, 服务端属于被动接受方(图的上半部分) 而对于关闭(图的下半部分), 服务端…

day41-Verify Account Ui(短信验证码小格子输入效果)

50 天学习 50 个项目 - HTMLCSS and JavaScript day41-Verify Account Ui&#xff08;短信验证码小格子输入效果&#xff09; 效果 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name&qu…

【西安交通大学】:融合传统与创新的学府之旅

【西安交通大学】&#xff1a;融合传统与创新的学府之旅 引言历史与发展学校特色学科优势院系专业校园环境与设施学生生活与社团活动校友荣誉与成就未来发展展望总结&#x1f340;小结&#x1f340; &#x1f389;博客主页&#xff1a;小智_x0___0x_ &#x1f389;欢迎关注&…

Linux基础以及常用命令

目录 1 Linux简介1.1 不同应用领域的主流操作系统1.2 Linux系统版本1.3 Linux安装1.3.1 安装VMWare1.3.2 安装CentOS镜像1.3.3 网卡设置1.3.4 安装SSH连接工具1.3.5 Linux和Windows目录结构对比 2 Linux常用命令2.0 常用命令&#xff08;ls&#xff0c;pwd&#xff0c;cd&#…

你说你会Java手动锁,但你会这道题吗???

按照这个格式输出你会吗&#xff1f;&#xff1f;&#xff1f; 你说你不会&#xff0c;接下来认真看认真学了。 1.首先引入原子类。AtomicInteger num new AtomicInteger(0); 什么是原子类&#xff1f; 就是可以保证线程安全的原子操作的数据类型。 有什么作用&#xff1f;…

2.2 模型与材质基础

一、渲染管线与模型基础 1. 渲染管线 可编程阶段&#xff08;蓝色区域&#xff09;&#xff1a; 1顶点着色器 2几何着色器 3片元着色器 2. 模型的实现原理 UV&#xff1a;在建模软件中&#xff0c;进行UV展开&#xff0c;UV会放在一个横向为U纵向为V&#xff0c;范围&#xff0…

【Linux】深入理解缓冲区

目录 什么是缓冲区 为什么要有缓冲区 缓冲区刷新策略 缓冲区在哪里 手动设计一个用户层缓冲区 什么是缓冲区 缓冲区本质上一块内存区域&#xff0c;用来保存临时数据。缓冲区在各种计算任务中都广泛应用&#xff0c;包括输入/输出操作、网络通信、图像处理、音频处理等。 …

【前端笔记】本地运行cli项目报错ERR_OSSL_EVP_UNSUPPORTED

报错原因 Node版本>17.x&#xff0c;本地npm run 起项目后会发现终端报错&#xff0c;具体有以下2块关键信息&#xff1a; Error: error:0308010C:digital envelope routines::unsupported和 opensslErrorStack: [ error:03000086:digital envelope routines::initializa…

Python补充笔记5-模块化、文件

目录 一、模块 二、模块的导入 三、python中的包​编辑 四、常用的内容模块 五、第三方模块的安装与使用 六、编码格式的介绍 七、文件读写的原理 八、常用的文件打开模式 ​九、文件对象的常用方法 十、with语句​编辑 十一、os模块的常用函数 十二、os.path模块的常用方法​编…

TCP协议如何实现可靠传输

TCP最主要的特点 TCP是面向连接的运输层协议&#xff0c;在无连接的、不可靠的IP网络服务基础之上提供可靠交付的服务。为此&#xff0c;在IP的数据报服务基础之上&#xff0c;增加了保证可靠性的一系列措施。 TCP最主要的特点&#xff1a; TCP是面向连接的输出层协议 每一条…

如何启用路由器dhcp?快解析如何内网穿透?

一、什么是DHCP&#xff1f; 动态主机设置协议&#xff08;DHCP&#xff09;是一种使网络管理员能够集中管理和自动分配 IP 网络地址的通信协议。在网络中&#xff0c;每个联网设备都需要分配独有的 IP 地址。并当有新计算机移到网络中的其它位置时&#xff0c;能自动收到新的…

微服务——http客户端Feign

目录 Restemplate方式调用存在的问题 Feign的介绍 基于Feign远程调用 Feign自定义配置 修改日志方式一(基于配置文件) 修改日志方式二(基于java代码) Feign的性能优化 连接池使用方法 Feign_最佳实践分析 方式一: 方式二 实现Feign最佳实践(方式二) 两种解决方案 Re…

【数据结构】实验九:二叉树

实验九 二叉树 一、实验目的与要求 1&#xff09;理解二叉树的类型定义&#xff1b; 2&#xff09;掌握二叉树的存储方式及基于存储结构的基本操作实现&#xff1b; 二、 实验内容 1. 二叉树的结点定义如下&#xff1a; struct TreeNode { int m_nvalue; TreeNode* m_…

【梯度下降在波士顿房价预测中的应用】

数据准备 我们首先需要加载波士顿房价数据集。该数据集包含房屋特征信息和对应的房价标签。 import pandas as pd import numpy as npdata_url "http://lib.stat.cmu.edu/datasets/boston" raw_df pd.read_csv(data_url, sep"\s", skiprows22, headerN…

“可以黑掉整个宇宙”的Metasploit Framework

0x01、 简述 Metasploit Framework(MSF)是一款开源安全漏洞检测工具&#xff0c;他带有数千个已知的软件漏洞&#xff0c;目前人在持续更新。Metasploit可以用来信息收集、漏洞探测、漏洞利用等渗透测试的全流程&#xff0c;被安全社区冠以“可以黑掉整个宇宙”之名。在普通的…

又一“邪恶版”ChatGPT出现,专为网络犯罪而生

最近&#xff0c;Hackread 分享了一个恶意聊天机器人 WormGPT 的详细信息&#xff0c;该聊天机器人是为帮助网络犯罪分子进行非法活动而创建的。现在&#xff0c;暗网上又出现了一个名为 FraudGPT 的聊天机器人。这是一个基于订阅的人工智能聊天机器人&#xff0c;可以为网络犯…

解密C++多态机制:发挥对象的多样性,实现更加智能的程序设计

目录 一.多态1.多态的用处2.多态的实现3.虚函数4.override 和 final5.重载重写与重定义6.虚函数表 一.多态 1.多态的用处 众所周知C语言的三大特性&#xff1a;封装、多态、继承。其中多态就是去完成某个行为&#xff0c;但是会根据不同的对象产生不同的状态&#xff0c;所以…