【论文笔记】DiffusionTrack: Diffusion Model For Multi-Object Tracking

news2024/11/24 15:45:58

原文链接:https://arxiv.org/abs/2308.09905

1. 引言

  多目标跟踪通常分为两阶段的检测后跟踪(TBD)和一阶段的联合检测跟踪(JDT)。TBD对单帧进行目标检测后,使用跟踪器跨帧关联相同物体。使用的跟踪器包括使用卡尔曼滤波器的基于运动的跟踪、使用重新识别技术关联物体、基于图的跟踪器(将关联过程建模为最小代价流问题)。
  JDT方法统一处理跟踪与检测,可分为3类:基于查询的跟踪器(使用隐式的独特查询,强制查询跟踪相同物体)、基于偏移量的跟踪器(使用运动特征估计运动偏移量)和基于轨迹的跟踪器(利用时空信息处理严重的物体遮挡问题)。
  但多数TBD和JDT方法存在下列问题:

  1. 全局或局部的不一致性:TBD对检测和跟踪分开的训练过程导致全局不一致性,而JDT也将检测和跟踪置于不同分支或模块,并未完全解决不一致性。
  2. 鲁棒性和模型复杂度的平衡是次优的:TBD简单,但检测波动影响性能;JDT鲁棒,但损害了检测精度。
  3. 同一视频内不同场景的不灵活性:在统一的设置下处理视频,而没有将策略自适应地应用于不同场景下。

  本文提出DiffusionTrack,建立了新的从噪声到跟踪的范式。该方法直接从相邻帧内的一组随机边界框对形成目标关联,如图所示。细化边界框对的坐标,使其覆盖两帧内的同一物体,从而在统一模型下隐式地同时进行检测与跟踪。
在这里插入图片描述

3. 方法

3.1 准备知识

  多目标跟踪的目标是获取一组按时间排序的输入目标对 ( X t , B t , C t ) (X_t,B_t,C_t) (Xt,Bt,Ct),其中 X t X_t Xt t t t时刻的输入图像, B t B_t Bt C t C_t Ct t t t时刻边界框和类别标签的集合。 B t B_t Bt的元素 B t i = ( c x i , c y i , w i , h i ) B_t^i=(c_x^i,c_y^i,w_i,h_i) Bti=(cxi,cyi,wi,hi),其中 i i i为物体的标识编号。当 X t X_t Xt中第 i i i号物体不存在或未被检测到时, B t i = ∅ B_t^i=\empty Bti=
  扩散模型通常利用两个马尔科夫链,即为图像添加噪声的前向链和从噪声提炼出图像的逆向链。给定数据分布 x 0 ∼ q ( x 0 ) x_0\sim q(x_0) x0q(x0)并定义方差序列 β 1 , β 2 , ⋯   , β T \beta_1,\beta_2,\cdots,\beta_T β1,β2,,βT,前向过程被定义为 p ( x t ∣ x t − 1 ) = N ( x t ; 1 − β t x t − 1 , β t I ) p(x_t|x_{t-1})=\mathcal{N}(x_t;\sqrt{1-\beta_t}x_{t-1},\beta_tI) p(xtxt1)=N(xt;1βt xt1,βtI)给定 x 0 x_0 x0,通过采样高斯向量 ϵ ∼ N ( 0 , I ) \epsilon\sim\mathcal{N}(0,I) ϵN(0,I),按照下式即可得到 x t x_t xt的样本: x t = α ˉ t x 0 + ( 1 − α ˉ t ) ϵ t x_t=\sqrt{\bar{\alpha}_t}x_0+(1-\bar{\alpha}_t)\epsilon_t xt=αˉt x0+(1αˉt)ϵt其中 α ˉ t = ∏ s = 0 t ( 1 − β s ) \bar{\alpha}_t=\prod_{s=0}^t(1-\beta_s) αˉt=s=0t(1βs)。训练时,网格会根据不同时刻的 x t x_t xt预测 x 0 x_0 x0。推断时,从随机噪声 x T x_T xT开始并迭代进行逆向过程以获得 x 0 x_0 x0

3.2 DiffusionTrack

在这里插入图片描述

  网络结构如图所示,包含特征提取主干和数据关联去噪头(扩散头),前者运行一次,以提取深度相邻两帧 ( X t − 1 , X t ) (X_{t-1},X_t) (Xt1,Xt)的特征表达,后者将特征作为条件,逐步从带噪声的边界框对中提炼出预测的关联边界框对。数据样本为边界框对的集合 z 0 = ( B t − 1 , B t ) ∈ R N × 8 z_0=(B_{t-1},B_t)\in\mathbb{R}^{N\times8} z0=(Bt1,Bt)RN×8。神经网络 f θ ( z s , s , X t − 1 , X t ) , s ∈ { 0 , 1 , ⋯   , T } f_\theta(z_s,s,X_{t-1},X_t),s\in\{0,1,\cdots,T\} fθ(zs,s,Xt1,Xt),s{0,1,,T}被训练为从 z s z_s zs预测 z 0 z_0 z0,并以相邻两帧图像为条件。相应的类别标签 ( C t − 1 , C t ) (C_{t-1},C_t) (Ct1,Ct)和关联置信度分数 S S S也同时被预测。如果 X t − 1 = X t X_{t-1}=X_t Xt1=Xt,则多目标跟踪任务退化为目标检测任务。
  主干使用YOLOX+FPN。
  扩散头将提案框用于从特征图中裁剪RoI特征,并将其输入不同块以获取边界框回归值、分类结果和关联置信度分数。此外,还为扩散头的每个块添加了一个时空融合模块(STF)和关联分数头。
  时空融合模块使边界框对能交换时间信息以保证数据关联的完整性。给定RoI特征 f r o i t − 1 , f r o i t ∈ R N × R × d f_{roi}^{t-1},f_{roi}^t\in\mathbb{R}^{N\times R\times d} froit1,froitRN×R×d和当前块的自注意力输出查询 q p r o t − 1 , q p r o t ∈ R N × d q_{pro}^{t-1},q_{pro}^t\in\mathbb{R}^{N\times d} qprot1,qprotRN×d,使用线性投影和批矩阵乘法获得物体查询 q t − 1 , q t ∈ R N × d q^{t-1},q^t\in\mathbb{R}^{N\times d} qt1,qtRN×d
[ P 1 i ; P 2 i ] = L i n e a r 1 ( q p r o i ) ,                             P 1 i , P 2 i ∈ R N × C d f e a t = [ f r o i i , f r o i 2 t − 1 − i ] ,                               f e a t ∈ R N × 2 R × d f e a t = B m m ( f e a t , P 1 i . v i e w ( N , d , C ) ) f e a t = B m m ( f e a t , P 2 i . v i e w ( N , C , d ) ) q i = L i n e a r 2 ( f e a t . f l a t t e n ( 1 ) ) ,        q i ∈ R N × d \begin{aligned}[P_1^i;P_2^i]&=\mathtt{Linear1}(q_{pro}^i),\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ P_1^i,P_2^i\in\mathbb{R}^{N\times Cd}\\\mathbf{feat}&=[f_{roi}^i,f_{roi}^{2t-1-i}],\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mathbf{feat}\in\mathbb{R}^{N\times 2R\times d}\\\mathbf{feat}&=\mathtt{Bmm}(\mathbf{feat},P^i_1.\mathtt{view}(N,d,C))\\\mathbf{feat}&=\mathtt{Bmm}(\mathbf{feat},P^i_2.\mathtt{view}(N,C,d))\\q_i&=\mathtt{Linear2}(\mathbf{feat}.\mathtt{flatten}(1)),\ \ \ \ \ \ q^i\in\mathbb{R}^{N\times d}\end{aligned} [P1i;P2i]featfeatfeatqi=Linear1(qproi),                           P1i,P2iRN×Cd=[froii,froi2t1i],                             featRN×2R×d=Bmm(feat,P1i.view(N,d,C))=Bmm(feat,P2i.view(N,C,d))=Linear2(feat.flatten(1)),      qiRN×d其中 [ ⋅ , ⋅ ] [\cdot,\cdot] [,]表示拼接, [ ⋅ ; ⋅ ] [\cdot;\cdot] [;]表示划分, i ∈ { t − 1 , t } i\in\{t-1,t\} i{t1,t}
  关联分数头将边界框对的融合特征输入线性层,用于获取数据关联的置信度分数。该分数用于在后续的NMS后处理环节中,确定输出的边界框对是否属于同一物体。

3.3 模型训练和推断

  训练时,随机从视频中采样两帧(帧间隔为5),并填充边界框使其数量为 N t r a i n N_{train} Ntrain。然后, α t \alpha_t αt使用单调递减余弦调度,并为真实边界框添加高斯噪声。最后,使用去噪过程从带噪声的边界框获取关联边界框对。此外,还设计了一个基准方案,即仅对当前帧添加噪声,并基于过去帧的边界框进行去噪,以证明同时对两帧进行破坏的必要性。
  损失函数:使用GIoU的扩展3D GIoU。对用匈牙利算法获取的匹配集 M M M中的匹配对 ( T d , T g t ) (T_d,T_{gt}) (Td,Tgt),记其分类分数、边界框和关联置信度分数为 ( C d t − 1 , C d t ) , ( B d t − 1 , B d t ) (C^{t-1}_d,C^t_d),(B^{t-1}_d,B^t_d) (Cdt1,Cdt),(Bdt1,Bdt) S d S_d Sd。损失函数如下: L c l s ( T d , T g t ) = ∑ i = t − 1 t L c l s ( C d i × S d , C g t i ) L r e g ( T d , T g t ) = ∑ i = t − 1 t L r e g ( B d i , B g t i ) L d e t = 1 N p o s ∑ ( T d , T g t ) ∈ M λ 1 L c l s ( T d , T g t ) + λ 2 L r e g ( T d , T g t ) + λ 3 ( 1 − G I o U 3 D ( T d , T g t ) ) \mathcal{L}_{cls}(T_d,T_{gt})=\sum_{i=t-1}^t\mathcal{L}_{cls}(\sqrt{C_d^i\times S_d},C_{gt}^i)\\\mathcal{L}_{reg}(T_d,T_{gt})=\sum_{i=t-1}^t\mathcal{L}_{reg}(B_d^i,B_{gt}^i)\\L_{det}=\frac{1}{N_{pos}}\sum_{(T_d,T_{gt})\in M}\lambda_1\mathcal{L}_{cls}(T_d,T_{gt})+\lambda_2\mathcal{L}_{reg}(T_d,T_{gt})+\lambda_3(1-\mathtt{GIoU}_{3D}(T_d,T_{gt})) Lcls(Td,Tgt)=i=t1tLcls(Cdi×Sd ,Cgti)Lreg(Td,Tgt)=i=t1tLreg(Bdi,Bgti)Ldet=Npos1(Td,Tgt)Mλ1Lcls(Td,Tgt)+λ2Lreg(Td,Tgt)+λ3(1GIoU3D(Td,Tgt))其中 T d T_d Td T g t T_{gt} Tgt分别包含相邻两帧内对同一目标的估计结果和真实边界框。 N p o s N_{pos} Npos为前景目标数。 L c l s \mathcal{L}_{cls} Lcls为focal损失, L r e g \mathcal{L}_{reg} Lreg为L1损失。
  如下图所示为推断过程。与检测不同,由于已知过去帧的估计结果,可由过去帧的边界框生成 N t e s t N_{test} Ntest个初始的带噪声边界框。基准方案中,重复已有边界框而非添加随机边界框,并只对当前帧添加噪声。得到关联结果以后,使用IoU衡量相似性并连接物体轨迹。为处理潜在的遮挡,使用卡尔曼滤波器重新关联丢失的物体。
在这里插入图片描述

4. 实验

4.1 设置

  实施细节:使用YOLOX检测器+DiffusionTrack。训练分为两阶段:首先以检测任务进行训练,然后以跟踪任务训练。

4.2 特性

  DiffusionTrack有动态边界框、逐步细化的特性以及对检测扰动的鲁棒性。
  动态边界框和逐步细化:一旦训练好模型,推断时,DiffusionTrack的边界框数量和采样步数均可修改。因此可以在不重新训练的情况下实现性能和精度的平衡。
  对检测扰动的鲁棒性:过去的所有方法几乎都对检测扰动敏感,这在自动驾驶中存在安全问题。实验表明DiffusionTrack几乎不受检测扰动的影响。

4.3 消融研究

  基于图3,本文研究各部分的影响。
  先验信息的比例:由于跟踪任务有前一帧物体的先验,可通过复制已有边界框的数量来控制先验信息的比例。实验表明合适的比例能提高性能。
  边界框填充策略:填充服从高斯分布的随机边界框的性能优于服从其余分布的随机边界框、图像大小的边界框和复制已有边界框。
  扰动调度:为处理复杂情况,需要调整 α t \alpha_t αt。例如,当物体非线性运动时,需要增大 α t \alpha_t αt。扰动调度可用 t t t建模,表示为 t = max ⁡ ( 999 , min ⁡ ( 0 , 1000 f ( x ) ) ) t=\max(999,\min(0,1000f(x))) t=max(999,min(0,1000f(x))),其中 x x x为跨越两帧物体的平均百分比, f f f为扰动调度函数。实验表明最优的调度为对数调度,即 f ( x ) = log ⁡ ( x + 1 ) log ⁡ 2 f(x)=\frac{\log(x+1)}{\log2} f(x)=log2log(x+1)
  效率比较:更多的细化步骤能提高性能,但也会降低速度。

4.4 与SotA比较

  本文的方法能在MOT17、MOT20和Dancetrack数据集上达到一阶段方法的SotA水平。
  基准方案在MOT17上的性能相似,但在其余数据集上下降严重。这是因为其只学习了给定 t − 1 t-1 t1时刻特征的情况下, B t − 1 B_{t-1} Bt1 B t B_t Bt之间的坐标回归,而不能处理非线性物体运动。本文猜测扩散过程属于一种特殊的数据增强方式,能使DiffusionTrack区分不同目标。

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

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

相关文章

【STM32基础 CubeMX】外部中断

文章目录 前言一、中断是什么二、使用CubeMX配置你的第一个中断三、代码分析CubeMX四、中断函数按键中断点灯示例代码总结 前言 当涉及到STM32基础的外部中断时,我们进入了一个引人入胜的领域,它允许微控制器与外部世界进行互动并实时响应各种事件。外部…

【论文阅读】通过3D和2D网络的交叉示教实现稀疏标注的3D医学图像分割(CVPR2023)

目录 前言方法标注3D-2D Cross Teaching伪标签选择Hard-Soft Confidence Threshold Consistent Prediction Fusion 结论 论文:3D Medical Image Segmentation with Sparse Annotation via Cross-Teaching between 3D and 2D Networks 代码:https://githu…

2023年中国艺术涂料市场发展历程及趋势分析:艺术涂料市场规模将进一步扩大[图]

艺术涂料是一种用于绘画和装饰,具有各种纹理或通过涂装手段后具有高装饰性的新型涂料。由于具有高度饱和的颜色、良好的遮盖力和可塑性,呈现立体装饰效果好、色彩搭配适当、风格独具特色的特点,而使得涂装出的饰面自然贴合、更加美观漂亮&…

Centos7环境下安装MySQL8详细教程

目录 一、Xftp7下载二、MySQL8安装包的下载三、将MySQL8安装包上传至服务器四、解压mysql8安装包五、rpm包的安装六、依次安装下列文件七、对MySQL进行初始化和授权八、查看数据库初始密码九、启动MySQL服务十、使用初始密码登录MySQL关于MySQL的卸载 一、Xftp7下载 关于Xftp7…

力扣 -- 718. 最长重复子数组

解题步骤&#xff1a; 参考代码&#xff1a; class Solution { public:int findLength(vector<int>& nums1, vector<int>& nums2) {int m nums1.size();int n nums2.size();//多开一行&#xff0c;多开一列vector<vector<int>> dp(m 1, ve…

华为云云耀云服务器L实例评测 | 搭建企业级 Registry 服务器 Harbor

文章目录 您需要了解Harbor介绍Harbor特性和优势系统设置关闭防火墙安装Docker安装Docker Compose配置镜像加速器 Habor安装传包并解压配置Harbor安装Horbor登录Harbor 测试创建项目推送镜像拉取镜像 您需要了解 本次搭建采用 华为云耀云服务器 &#xff0c;一键部署、快速搭建…

Visual Studio 代码显示空格等空白符

1.VS2010: 快捷键&#xff1a;CtrlR,W 2.VS2017、VS2019、VS2022&#xff1a; 工具 -> 选项 -> 文本编辑器 -> 显示 -> 勾选查看空白

RWA分析通过10个问题。不要让数字和视觉欺骗您!(文章很长,请仔细阅读)

已经有30个小伙伴加入我们的星球了&#xff0c;如果你不介意的话&#xff0c;可以加入 我的知识星球主要分享 1. 分享区块链各种有价值的内容 2. 一起攻读一些有用的书籍 3. 财富密码&#xff08;不敢保证&#xff09; 4. 一些自我的感悟 1.什么是现实世界资产&#xff08;RWA&…

【Flutter】Flutter Web 开发 如何从 URL 中获取参数值

【Flutter】Flutter Web 开发 如何从 URL 中获取参数值 文章目录 一、前言二、Flutter Web 中的 URL 处理三、如何从 URL 中获取参数四、实际业务中的用法五、完整示例六、总结 一、前言 大家好&#xff01;我是小雨青年&#xff0c;今天我想和大家分享一下在 Flutter Web 开发…

【C++历险记】国庆专辑---探索多态迷宫的代码之旅!

本篇目录 一、什么是多态&#xff1f;二、多态的定义及其实现2.1多态构成的条件2.2虚函数2.3虚函数的重写2.3.1析构函数的重写 2.4C11 override 和 final2.5重载、覆盖(重写)、隐藏(重定义)的对比2.6为什么不能是子类的指针或者引用呢&#xff1f;2.7为什么不能是父类对象呢&am…

【大家的项目】NFS FUSE: 为什么我们用Rust实现了自己的NFS服务器

乐观地看FUSE 我喜欢文件。每个计算机系统都理解文件。每个程序都知道如何读取和写入文件。这是一个真正通用的API。因此&#xff0c;我喜欢FUSE的想法。FUSE的名字来源于Filesystem in Userspace&#xff0c;也就是“用户态文件系统”&#xff0c;是一套允许用户模式程序定义文…

gwas数据根据eaf Z 和N 求beta和se

https://www.nature.com/articles/s41590-023-01588-w#Sec10

基于Java的汽车票网上预订系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

【计算机网络】应用层协议原理

文章目录 网络应用程序体系结构客户-服务器体系结构P2P体系结构 进程通信客户和服务器进程进程与计算机网络之间的接口进程寻址 可供应用程序使用的运输服务可靠数据传输吞吐量定时安全性 因特网提供的运输服务TCP服务面向连接的服务可靠数据传输服务TCP安全 UDP服务因特网运输…

Redis实现API访问频率限制

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

phpstudy_pro高效率建一个属于自己的网站

1.下载phpStudy_32 2.下载wordpress-6.3-zh_CN 安装好phpstudy后启动phpstudy中对应的服务&#xff0c;并在网站中配置好对一个的应用的路径 ps:根目录中的路径是你想要通过phpstudy部署应用的路径 这里以wordpress为例 将下载wordpress的压缩包解压后&#xff0c;需要修改…

Python海洋专题六之Cartopy画地形水深图

Python海洋专题六之Cartopy画地形水深图 海洋与大气科学 上期读取nc水深文件&#xff0c;并出图 但是存在一些不完美&#xff0c;本期修饰 本期内容 1&#xff1a;使用Cartopy画出范围图 导入函数包 import matplotlib.pyplot as plt import cartopy.crs as ccrs import c…

上机实验一 顺序表的基本操作和简单程序 西安石油大学数据结构

上机一 实验名称&#xff1a;顺序表的基本操作和简单程序 题目&#xff1a;设计一个有序顺序表&#xff0c;实现以下操作&#xff1a; 1.将元素x插入表中并保持有序&#xff1b; 2.查找值为x的元素&#xff0c;若找到则将其删除&#xff1b; 3.输出表中所有元素。 要求&a…

当面试被问到jvm(Java虚拟机)时,如何将面试官引入自己的节奏?

本文目录 前言快问快答抛砖引玉锦上添花好书推荐总结 前言 作为一名Java开发工程师&#xff0c;不管是校招还是社招jvm一定是必问必会的知识点。虽然说真正开发中用到的不多&#xff0c;甚至可以说用不到&#xff08;对于刚入行或者Java初级&#xff09;&#xff0c;但是当面试…

mathtype试用期后如何继续使用?

MathType7已经正式发布&#xff0c;作为一款强大的数学公式编辑器可以将编辑好的公式保存成多种图片格式或透明图片模式&#xff0c;可以很方便的添加或移除符号、表达式等模板&#xff08;只需要简单地用鼠标拖进拖出即可)&#xff0c;也可以很方便地修改模板&#xff0c;为理…