摘要
在多目标跟踪(Multiple Object Tracking, MOT)中,目标物体常常表现出加速和减速的非线性运动,且方向变化不规则。基于检测的跟踪(Tracking-by-detection, TBD)方法结合卡尔曼滤波器(Kalman Filter, KF)运动预测在行人主导的场景中表现良好,但在多个目标同时进行非线性和多样化运动的复杂情况下则表现不佳。为了应对复杂的非线性运动,我们提出了一种基于扩散的实时多目标跟踪方法,名为DiffMOT。具体而言,对于运动预测器组件,我们提出了一种新颖的解耦扩散运动预测器(D2MPD^2MPD2MP)。它将数据中呈现的各种运动的整体分布建模为一个整体,并且还根据单个目标的历史运动信息来预测该目标的运动。此外,它通过减少采样步骤优化了扩散过程。作为多目标跟踪器,DiffMOT在RTX 3090机器上达到了22.7 FPS的实时速度,并且在DanceTrack[31]和SportsMOT[6]数据集上的HOTA指标分别达到了62.3%和76.2%,优于当前最先进的方法。据我们所知,DiffMOT是首个将扩散概率模型引入多目标跟踪以解决非线性运动预测问题的方法。
1. 引言
多目标跟踪(MOT)是计算机视觉中的一项基础任务,旨在持续跟踪视频序列中的目标物体。成功的MOT有助于下游研究,如动作检测与识别、姿态跟踪和视频理解。它也在各种应用中吸引了大量关注,包括以行人为主的智慧城市、自动驾驶和体育分析。
基于检测的跟踪(TBD)范式是MOT中一种流行的实现方式[3,4,11,32,40]。TBD需要一个鲁棒的检测器和准确的运动预测器来预测单个目标的运动。上述方法主要关注以行人为主的多目标跟踪数据集MOT17[23],该数据集中的目标物体以恒定速度和单一方向呈现线性运动模式。因此,卡尔曼滤波器(KF)因其线性预测和快速速度而成为自然选择。
在其他场景中,目标物体的运动更为非线性、无序且多变。它们的运动也往往不同步,这与行人主导的场景不同,在行人主导的场景中,人们的运动速度大致相同。通常存在具有(加/减)速和不规则运动方向的目标物体。一些典型的非线性运动示例包括舞台上全方位跳跃的舞者[31],或运动场上进行不同动作的运动员[6]。在这种情况下,基于恒定速度假设的运动预测器可能不再准确。如图1©所示,与MOT17/20中的线性KF相比,线性KF在非线性数据集上无法跟随检测的真实值。
一些研究[5, 34, 37]尝试使用神经网络来解决这种非线性运动预测问题,但尚未成功。这要么是因为网络结构过于刚性,无法获得良好的适应性,要么是因为计算量过大,不适合实际应用。例如,普通的神经网络方法(如多层感知机MLP和长短期记忆网络LSTM)[5]很难获得令人满意的性能,而基于光流和基于Transformer的方法[34, 37]的帧率(FPS)则要低得多。自然地,我们的动机是设计一种多目标跟踪器,以同时实现准确的非线性运动预测和实时速度。
在本文中,我们提出了一种具有强大非线性运动预测能力和实时速度的新型多目标跟踪器,名为DiffMOT。DiffMOT基于扩散概率模型,将边界框位置预测制定为基于先前边界框运动轨迹的去噪过程。与传统的单轮学习和预测的运动模型相比,它具有两个优势。具体而言,在学习阶段,多步扩散过程对输入数据中的运动表示进行了全面覆盖。在预测阶段,单个目标的历史运动被用作条件来引导去噪过程,以获得更好的结果。
此外,为了提高扩散概率模型的低效率[13],受文献工作[15]的启发,解耦扩散运动预测器(D2MPD^2MPD2MP)通过解耦扩散理论优化了扩散框架,同时实现了高效率和性能。与典型的扩散模型的标准千步采样相比,我们设计了一种单步采样过程,显著减少了推理时间。因此,DiffMOT在两个非线性数据集(DanceTrack[31]和SportsMOT[6])上取得了最佳性能,在RTX 3090机器上实现了22.7 FPS的实时速度。
如图1(b)所示,我们的带有YOLOX-X检测器的DiffMOT结合了快速速度和卓越性能,而使用其他运动预测器的方法要么帧率较低(MOTR[36]和TransTrack[30]),要么HOTA指标较低(FairMOT[39]、ByteTrack[40]和QDTrack[24])。此外,带有YOLOX-S检测器的DiffMOT可以实现更快的速度。
总之,我们的贡献有三方面:
我们提出了一种具有强大非线性运动预测能力和实时速度的新型多目标跟踪器DiffMOT。据我们所知,我们的工作是首个将扩散模型引入多目标跟踪以解决非线性运动预测问题的方法。
我们引入了一种解耦扩散运动预测器D2MPD^2MPD2MP,用于建模具有非线性运动的目标物体的运动分布。与之前的运动模型相比,D2MPD^2MPD2MP在拟合非线性运动和快速推理速度方面表现出色。
DiffMOT在非线性运动的主要公共数据集上优于当前最先进的方法。DiffMOT在DanceTrack和SportsMOT数据集上的HOTA指标分别达到了62.3%和76.2%。
2. 相关工作
MOT中的运动模型。MOT中的运动模型用于预测前一帧中目标物体在未来位置,可分为线性运动模型和非线性运动模型。最经典的线性运动模型是KF,它在许多文献中被使用,包括SORT[3]、DeepSORT[32]、FairMOT[39]、ByteTrack[40]、OC-SORT[4]等。KF假设物体在小时间间隔内的运动速度和方向保持不变。
对于非线性运动模型,某些文献提出了各种非线性方法。例如,基于光流的运动模型[37]计算相邻帧之间的像素位移以获得运动信息,基于长短期记忆网络(LSTM)的运动模型[5]在潜在空间中捕捉序列运动,基于Transformer的运动模型[34]捕捉长距离依赖关系以建模运动。然而,上述方法都无法同时实现准确的非线性运动预测和实时速度。在本文中,我们提出的D2MPD^2MPD2MP优化了典型的扩散框架,并结合了性能和速度的优势。
扩散概率模型。得益于强大的拟合能力,扩散概率模型(DPMs)在图像生成方面取得了显著性能,因此受到了广泛关注[8, 14, 17, 25, 41]。然而,传统的DPMs在推理过程中需要进行标准的千步采样,而最近的研究[9, 10, 15, 19, 28, 29]已经关注于少步采样的DPMs。DDM[15]将典型的扩散过程分为两个子过程,以实现少步采样。受DDM的启发,我们提出了一种特定的解耦扩散运动预测器来进行运动预测。DiffusionTrack[21]是一项并发工作,它利用扩散模型来构建配对边界框之间的关系。相比之下,我们专注于非线性运动建模,并旨在学习整个运动分布。
3. 方法
3.1. DiffMOT框架
在本节中,我们介绍DiffMOT,这是一种基于扩散的实时多目标跟踪(MOT)跟踪器,用于跟踪具有非线性运动模式的真实物体。如图2所示,DiffMOT遵循基于检测的跟踪框架,将当前帧的检测结果与前一帧的轨迹相关联。整体框架包括三个部分:检测、运动预测和关联。给定一组视频序列,DiffMOT首先使用检测器检测当前帧中物体的边界框。接下来,通过运动预测来预测前一帧中目标物体在未来帧的位置。运动预测是我们提出的解耦扩散运动预测器(D2MPD^2MPD2MP)的设计所在。具体而言,D2MPD^2MPD2MP是一种基于扩散的运动预测器,它利用前一帧作为条件,并从前一帧生成物体的未来运动。D2MPD^2MPD2MP的详细信息在3.2节中描述。因此,运动预测过程将输出前一帧中物体的预测边界框。最后,关联过程将检测到的边界框与预测的边界框进行匹配,从而更新轨迹。
检测:我们采用常用的YOLOX[12]作为我们的检测器。对于视频序列,检测器逐帧检测物体的边界框。
运动预测:首先,我们从轨迹中检索前一帧的信息作为D2MPD^2MPD2MP的条件。随后,我们使用D2MPD^2MPD2MP从正态分布中采样,获得每个物体的运动。最后,基于扩散的D2MPD^2MPD2MP生成运动,并最终确定当前帧的预测边界框。
关联:关联过程类似于ByteTrack[40]。首先,使用匈牙利算法[16]将预测结果与检测中的高置信度边界框进行匹配。匹配成本由重识别特征距离和交并比(IoU)定义。我们还结合了文献[22]中引入的动态外观和自适应加权技术。其次,使用IoU作为成本函数,通过匈牙利算法将未匹配的预测结果与检测中的低置信度边界框进行匹配。最后,我们使用匹配结果来更新轨迹。
3.2. 解耦扩散运动预测器(D2MPD^2MPD2MP)
解耦扩散运动预测器(D2MPD^2MPD2MP)旨在建模整个数据集的运动分布,并将运动预测视为生成任务。该算法根据历史运动信息从正态分布中生成未来运动。我们利用解耦扩散模型[15]来设计D2MPD^2MPD2MP。解耦扩散模型将典型的数据到噪声过程分为两个子过程:数据到零和零到噪声。前者逐渐将干净数据减少到零,而后者逐渐将零数据增加到正态噪声。两个子过程的和构成了数据到噪声过程。将解耦扩散过程纳入运动预测中,我们精心设计了正向/反向扩散过程、网络架构和训练损失。
D2MPD^2MPD2MP展示了一步采样的强大非线性拟合能力。D2MPD^2MPD2MP的整体架构如图3所示。3.2.1节描述了向运动数据添加噪声以使其服从正态分布的正向扩散过程。3.2.2节介绍了从纯噪声中根据历史运动信息生成运动的反向扩散过程。3.2.3节描述了用于参数化反向过程的神经网络。
3.2.1 正向过程
在MOT序列中,所有轨迹可以表示为Traj={T1,⋯ ,Tp,⋯ ,TP}\mathbf{Traj}=\{\mathbf{T}_{1},\cdots,\mathbf{T}_{p},\cdots,\mathbf{T}_{P}\}Traj={T1,⋯,Tp,⋯,TP},其中P表示轨迹的数量。忽略下标p,考虑一个物体轨迹T={B1,⋯ ,Bf,⋯ ,BN}\mathbf{T}=\{\mathbf{B}_{1},\cdots,\mathbf{B}_{f},\cdots,\mathbf{B}_{N}\}T={B1,⋯,Bf,⋯,BN},其中f是帧索引,N是总帧数,Bf=(xf,yf,wf,hf)\mathbf{B}_{f}=(x_{f},y_{f},w_{f},h_{f})Bf=(xf,yf,wf,hf)是物体的边界框,表示中心点的坐标和边界框的高度和宽度。我们将第f帧的物体运动定义为当前帧与前一帧的差异:
Mf=Bf−Bf−1=(Δxf,Δyf,Δwf,Δhf).\mathbf{M}_{f}=\mathbf{B}_{f}-\mathbf{B}_{f-1}=(\Delta x_{f},\Delta y_{f},\Delta w_{f},\Delta h_{f}).Mf=Bf−Bf−1=(Δxf,Δyf,Δwf,Δhf).
在本文中,我们将Mf\mathbf{M}_{f}Mf定义为扩散过程中的干净运动数据。
与仅具有数据到噪声映射的典型扩散模型[13]相比,我们遵循包含两个子过程的解耦扩散过程[15]:数据到零和零到噪声。为了制定正向过程,我们引入了一个额外的下标t,即使用Mf,0=Mf\mathbf{M}_{f,0}=\mathbf{M}_{f}Mf,0=Mf和Mf,t\mathbf{M}_{f,t}Mf,t来表示干净和带噪声的运动数据。考虑一个连续的时间轴t∈[0,1]t\in[0,1]t∈[0,1],我们同时对时间t进行数据到零和零到噪声过程,以将干净运动数据Mf,0\mathbf{M}_{f,0}Mf,0映射为纯噪声。具体而言,数据到零过程利用解析衰减函数将干净运动数据随时间减少为零数据。特别是,我们采用常数函数作为解析衰减函数,数据到零过程可以表示为:
Df,t=Mf,0+tc,\mathcal{D}_{f,t}=\mathbf{M}_{f,0}+t\mathbf{c},Df,t=Mf,0+tc,
其中c是常数函数,且c=−Mf,0\mathbf{c}=-\mathbf{M}_{f,0}c=−Mf,0,可以通过求解Mf,0+∫01cdt=0\begin{array}{r}{\mathbf{M}_{f,0}+\int_{0}^{1}\mathbf{c}\mathrm{d}t=\mathbf{0}}\end{array}Mf,0+∫01cdt=0得到,参考[15]。这样,干净运动数据随时间t逐渐衰减,并在t=1t=1t=1时变为零,即Df,1=0\mathcal{D}_{f,1}=\mathbf{0}Df,1=0。同时,零到噪声过程逐渐向零数据添加正态噪声,使其在t=1t=1t=1时变为纯正态噪声,这可以表示为:
Wf,t=0+tz,\mathbf{\mathcal{W}}_{f,t}=\mathbf{0}+\sqrt{t}\mathbf{z},Wf,t=0+tz,
其中z∼N(0,I)z\sim\mathcal{N}(\mathbf{0},\mathbf{I})z∼N(0,I)。结合两个子过程,我们可以通过正向过程获得带噪声的运动数据Mf,t\mathbf{M}_{f,t}Mf,t:
Mf,t=Df,t+Wf,t=Mf,0+tc+tz.\begin{aligned}{\mathbf{M}_{f,t}}&{{}=\mathcal{D}_{f,t}+\mathcal{W}_{f,t}}\\ {}&{{}=\mathbf{M}_{f,0}+t\mathbf{c}+\sqrt{t}\mathbf{z}.}\end{aligned}Mf,t=Df,t+Wf,t=Mf,0+tc+tz.
3.2.2 反向过程
反向过程利用条件概率q(Mf,t−Δt∣Mf,t,Mf,0)q(\mathbf{M}_{f,t-\Delta t}|\mathbf{M}_{f,t},\mathbf{M}_{f,0})q(Mf,t−Δt∣Mf,t,Mf,0)从纯噪声中恢复物体运动Mf,1\mathbf{M}_{f,1}Mf,1。重建的运动表示为M^f,0\hat{\mathbf{M}}_{f,0}M^f,0。遵循[15],反向条件概率q(Mf,t−Δt∣Mf,t,Mf,0)q(\mathbf{M}_{f,t-\Delta t}|\mathbf{M}_{f,t},\mathbf{M}_{f,0})q(Mf,t−Δt∣Mf,t,Mf,0)可以表示为:
q(Mf,t−Δt∣Mf,t,Mf,0)=N(Mf,t−Δt;μ,Σ)μ=Mf,t−Δtc−ΔttzΣ=Δt(t−Δt)tI,\begin{aligned}{q(\mathbf{M}_{f,t-\Delta t}|}&{{}\mathbf{M}_{f,t},\mathbf{M}_{f,0})=\mathcal{N}(\mathbf{M}_{f,t-\Delta t};\mathbf{\mu},\mathbf{\Sigma})}\\ {}&{{}\mathbf{\mu}=\mathbf{M}_{f,t}-\Delta t\mathbf{c}-\frac{\Delta t}{\sqrt{t}}\mathbf{z}}\\ {}&{{}\mathbf{\Sigma}=\frac{\Delta t(t-\Delta t)}{t}\mathbf{I},}\end{aligned}q(Mf,t−Δt∣Mf,t,Mf,0)=N(Mf,t−Δt;μ,Σ)μ=Mf,t−Δtc−tΔtzΣ=tΔt(t−Δt)I,
图3. D2MPD^2MPD2MP的整体架构。D2MPD^2MPD2MP由正向过程和反向过程组成。在正向过程中,数据到零和零到噪声过程包含在蓝色虚线框内。在反向过程中,HMINet包含在橙色虚线框内。pΘp_{\Theta}pΘ指的是在等式6中引入的操作,用于重建M^f,0\hat{\mathbf{M}}_{f,0}M^f,0。
其中N\mathcal{N}N表示正态分布,μ\muμ和Σ\SigmaΣ是q(Mf,t−Δt∣Mf,t,Mf,0)q(\mathbf{M}_{f,t-\Delta t}|\mathbf{M}_{f,t},\mathbf{M}_{f,0})q(Mf,t−Δt∣Mf,t,Mf,0)的均值和方差,I\mathbf{I}I是单位矩阵。不方便的是,q(Mf,t−Δt∣Mf,t,Mf,0)q(\mathbf{M}_{f,t-\Delta t}|\mathbf{M}_{f,t},\mathbf{M}_{f,0})q(Mf,t−Δt∣Mf,t,Mf,0)不能直接访问,因为μ\muμ包含未知项c和zzz。因此,我们需要使用参数化的pΘ(Mf,t−Δt∣Mf,t)p_{\Theta}(\mathbf{M}_{f,t-\Delta t}|\mathbf{M}_{f,t})pΘ(Mf,t−Δt∣Mf,t)来近似q(Mf,t−Δt∣Mf,t,Mf,0)q(\mathbf{M}_{f,t-\Delta t}|\mathbf{M}_{f,t},\mathbf{M}_{f,0})q(Mf,t−Δt∣Mf,t,Mf,0):
pΘ(Mf,t−Δt∣Mf,t)=N(Mf,t−Δt;μΘ,Σ)μΘ=Mf,t−ΔtcΘ(Mf,t,t,Cf)−ΔttzΘ(Mf,t,t,Cf)Σ=Δt(t−Δt)tI.\begin{aligned}{p_{\mathbf{\Theta}}(\mathbf{M}_{f,t-\Delta t}|}&{{}\mathbf{M}_{f,t})=\mathcal{N}(\mathbf{M}_{f,t-\Delta t};\mathbf{\mu}_{\mathbf{\Theta}},\mathbf{\Sigma})}\\ {\mathbf{\mu}_{\mathbf{\Theta}}=\mathbf{M}_{f,t}-\Delta t}&{{}\mathbf{c}_{\mathbf{\Theta}}(\mathbf{M}_{f,t},t,\mathbf{C}_{f})-\frac{\Delta t}{\sqrt{t}}z_{\mathbf{\Theta}}(\mathbf{M}_{f,t},t,\mathbf{C}_{f})}\\ {\mathbf{\Sigma}}&{{}=\frac{\Delta t(t-\Delta t)}{t}\mathbf{I}.}\\ \end{aligned}pΘ(Mf,t−Δt∣μΘ=Mf,t−ΔtΣMf,t)=N(Mf,t−Δt;μΘ,Σ)cΘ(Mf,t,t,Cf)−tΔtzΘ(Mf,t,t,Cf)=tΔt(t−Δt)I.
这里,cΘ(Mf,t,t,Cf)\mathbf{c}_{\mathbf{\Theta}}(\mathbf{M}_{f,t},t,\mathbf{C}_{f})cΘ(Mf,t,t,Cf)和zΘ(Mf,t,t,Cf)\boldsymbol{z}_{\mathbf{\Theta}}(\mathbf{M}_{f,t},t,\mathbf{C}_{f})zΘ(Mf,t,t,Cf)通过神经网络Θ\ThetaΘ进行参数化。此外,Cf\mathbf{C}_{f}Cf是条件历史信息,其细节将在3.2.3节中描述。为了简单起见,在后续论文中,我们将cΘ(Mf,t,t,Cf)\mathbf{c}_{\mathbf{\Theta}}(\mathbf{M}_{f,t},t,\mathbf{C}_{f})cΘ(Mf,t,t,Cf)和zΘ(Mf,t,t,Cf)\boldsymbol{z}_{\mathbf{\Theta}}(\mathbf{M}_{f,t},t,\mathbf{C}_{f})zΘ(Mf,t,t,Cf)替换为cΘ\mathbf{c}_{\Theta}cΘ和zΘz_{\Theta}zΘ。
原始的解耦扩散模型提出了一种双分支架构来同时参数化c和z,然而,这消耗了额外的计算成本,降低了其效率。为了加快过程,我们提出了一种特定的反向过程,该过程只需要参数化c并保持性能。从等式4中,我们可以用以下方式表示z:
z=1t(Mf,t−Mf,0−tc)=1t(Mf,t−(t−1)c).\begin{aligned}{\pmb{z}}&{{}=\frac{1}{\sqrt{t}}(\mathbf{M}_{f,t}-\mathbf{M}_{f,0}-t\mathbf{c})}\\ {}&{{}=\frac{1}{\sqrt{t}}(\mathbf{M}_{f,t}-(t-1)\mathbf{c}).}\end{aligned}z=t1(Mf,t−Mf,0−tc)=t1(Mf,t−(t−1)c).
以类似的方式,我们可以用Mf,t\mathbf{M}_{f,t}Mf,t和cΘ\mathbf{c}_{\Theta}cΘ表示zΘz_{\Theta}zΘ:
zΘ=1t(Mf,t−(t−1)cΘ).\mathbf{z}_{\mathbf{\Theta}}=\frac{1}{\sqrt{t}}(\mathbf{M}_{f,t}-(t-1)\mathbf{c}_{\mathbf{\Theta}}).zΘ=t1(Mf,t−(t−1)cΘ).
将等式8代入等式6中,我们有:
μΘ=t−ΔttMf,t−ΔttcΘ\mathbf{\mu}_{\mathbf{\Theta}}=\frac{t-\Delta t}{t}\mathbf{M}_{f,t}-\frac{\Delta t}{t}\mathbf{c}_{\mathbf{\Theta}}μΘ=tt−ΔtMf,t−tΔtcΘ
因此,我们只需要cΘ\mathbf{c}_{\Theta}cΘ来解决反向过程。一般来说,解决典型扩散模型[13]的反向过程需要通过数值积分进行数千步。不同的是,得益于解耦扩散过程[15]的解析性,所提出的反向过程能够实现一步采样,这进一步提高了推理速度,以实现实时性能。
3.2.3 历史记忆信息网络(HMINet)
在本节中,我们介绍了一种特定的历史记忆信息网络,用于参数化等式9中的cΘ\mathbf{c}_{\Theta}cΘ。HMINet首先利用多头自注意力层从条件输入Cf\mathbf{C}_{f}Cf中提取条件嵌入。然后,我们使用条件嵌入作为指导,并将其集成到带噪声的运动特征中。最后,我们使用一个多层感知机(MLP)层来获得最终预测cΘ\mathbf{c}_{\Theta}cΘ。
提取条件嵌入:如文献所示[27, 38],条件指导在提供生成最终结果的线索方面很重要。图3说明了细节。我们利用前n帧的运动信息作为条件输入Cf\mathbf{C}_{f}Cf。第f帧的运动信息定义为物体边界框和运动的组合:
If=(xf,yf,wf,hf,Δxf,Δyf,Δwf,Δhf).I_{f}=(x_{f},y_{f},w_{f},h_{f},\Delta x_{f},\Delta y_{f},\Delta w_{f},\Delta h_{f}).If=(xf,yf,wf,hf,Δxf,Δyf,Δwf,Δhf).
因此,条件输入表示为Cf=[If−1;If−2,...,If−n]\mathbf{C}_{f}=[\boldsymbol{I}_{f-1};\boldsymbol{I}_{f-2},...,\boldsymbol{I}_{f-n}]Cf=[If−1;If−2,...,If−n],Cf∈Rn×8\mathbf{C}_{f}\in\mathbb{R}^{n\times8}Cf∈Rn×8。我们的目标是捕捉Cf\mathbf{C}_{f}Cf中不同帧之间的长距离依赖关系,因此我们使用多头自注意力(MHSA)作为基础层。在实践中,我们将Cf\mathbf{C}_{f}Cf输入到6个MHSA层中以提取条件嵌入。我们将一个可学习的类别标记E∈R1×512\mathbf{E}\in\mathbb{R}^{1\times512}E∈R1×512与Cf\mathbf{C}_{f}Cf拼接,然后使用多头自注意力层将Cf\mathbf{C}_{f}Cf中包含的历史运动信息整合到类别标记中。这样,我们使用更新后的类别标记作为条件嵌入,记为E^ce∈R1×512\hat{\mathbf{E}}_{ce}\in\mathbb{R}^{1\times512}E^ce∈R1×512。
将Ece\mathbf{E}_{ce}Ece集成到带噪声的运动特征中:在获得条件嵌入Ece\mathbf{E}_{ce}Ece后,我们的目标是将它的信息集成到带噪声的运动数据中。具体而言,我们构建了一个运动融合层(MFL),将Ece\mathbf{E}_{ce}Ece和Mf,t\mathbf{M}_{f,t}Mf,t融合成一个统一运动特征M‾f,t\overline{\mathbf{M}}_{f,t}Mf,t。具体来说,MFL利用一个MLP层对Mf,t\mathbf{M}_{f,t}Mf,t进行编码,使Mf,t\mathbf{M}_{f,t}Mf,t的维度与Ece\mathbf{E}_{ce}Ece相同。同时,另外两个MLP层被应用于Ece\mathbf{E}_{ce}Ece,生成两个变量作为缩放和偏移系数。上述过程可以描述为:
M‾f,t=Sigmoid(MLP(Ece))⋅MLP(Mf,t)+MLP(Ece).\mathbf{\overline{M}}_{f,t}=\operatorname{Sigmoid}(\operatorname{MLP}(\mathbf{E}_{ce}))\cdot\operatorname{MLP}(\mathbf{M}_{f,t})+\operatorname{MLP}(\mathbf{E}_{ce}).Mf,t=Sigmoid(MLP(Ece))⋅MLP(Mf,t)+MLP(Ece).
之后,我们将Ece\mathbf{E}_{ce}Ece和M‾f,t\overline{\mathbf{M}}_{f,t}Mf,t拼接在一起,并将其输入到堆叠的MHSA和MFL层中,以进行进一步的特征融合。最后,将融合后的特征输入到一个MLP层中,以获得最终预测cΘ\mathbf{c}_{\Theta}cΘ。在获得cΘ\mathbf{c}_{\Theta}cΘ后,我们可以使用等式6来重建M^f,0\hat{\mathbf{M}}_{f,0}M^f,0。
3.2.4 训练损失
我们使用真实值c来监督网络以优化cΘ\mathbf{c}_{\Theta}cΘ。我们采用平滑的L1损失,最终的损失函数可以表示为:
L={0.5(cΘ−c)2∣cΘ−c∣<1∣cΘ−c∣−0.5otherwise.L=\left\{\begin{aligned}{0.5(\mathbf{c_{\Theta}}-\mathbf{c})^{2}}&{{}}&{|\mathbf{c_{\Theta}}-\mathbf{c}|<1}\\ {|\mathbf{c_{\Theta}}-\mathbf{c}|}&{{}-0.5}&{otherwise.}\end{aligned}\right.L={0.5(cΘ−c)2∣cΘ−c∣−0.5∣cΘ−c∣<1otherwise.
4. 实验
4.1. 数据集与评估指标
数据集:我们在DanceTrack[31]和SportsMOT[6]数据集上进行了主要实验,这些数据集中的物体具有非线性运动模式。DanceTrack是一个包含舞蹈视频的数据集,由40个训练序列、25个验证序列和35个测试序列组成。DanceTrack中的物体外观高度相似,且具有复杂的非线性运动模式,如不规则的方向变化。因此,DanceTrack的评估对跟踪器处理非线性运动的能力提出了很高的要求。SportsMOT引入了来自三种不同体育赛事(足球、篮球和排球)的视频序列。该数据集总共包含45个训练序列、45个验证序列和150个测试序列。它展示了大量的加速和减速运动,因此要求跟踪器在处理非线性运动时具有鲁棒性。MOT17[23]是MOT中一个传统的、常用的以行人为主的数据集。MOT17中物体的运动模式近似为线性。
评估指标:我们采用高阶指标[20](HOTA、AssA、DetA)、IDF1[26]和CLEAR指标[2](MOTA)作为评估指标。在各种指标中,HOTA是主要指标,它明确平衡了准确检测和关联的效果。IDF1和AssA用于评估关联性能。DetA和MOTA主要用于评估检测性能。此外,我们采用每秒帧数(FPS)指标来评估算法的速度。
实现细节:在训练阶段,我们将扩散过程的最小时间步长设置为0.001。我们选择前n=5n=5n=5帧的历史运动信息作为条件。对于优化,我们采用Adam优化器训练800个epoch。学习率设置为1e-4。批大小设置为2048。所有实验均在4块GeForce RTX 3090 GPU上进行训练。在实验中,除非有特别说明,否则我们使用YOLOX-X作为默认检测器,以便与近期工作[1,4]进行公平比较。对于去噪过程,我们采用D2MPD^2MPD2MP从标准正态分布中进行一步采样,以获得物体的运动。在关联阶段,与ByteTrack类似,我们对高置信度和低置信度的边界框分别进行匹配,高阈值τhigh=0.6\tau_{high}=0.6τhigh=0.6,低阈值τlow=0.4\tau_{low}=0.4τlow=0.4。此外,我们采用了与[1]相同的动态外观和自适应加权技术。
4.2. 基准评估
我们在具有非线性运动模式的DanceTrack和SportsMOT测试集上进行了实验,以证明我们模型的有效性。我们将使用相同YOLOX检测器结果的所有方法放在蓝色块中。我们还在“私有检测器”协议下的MOT17测试集上比较了跟踪性能,以证明我们的跟踪器即使在以行人为主的场景中也能取得令人满意的性能。
DanceTrack:我们在表1中报告了DiffMOT在DanceTrack上的性能。可以看出,DiffMOT在所有指标上都取得了最佳结果,HOTA为62.3%,IDF1为63.0%,AssA为47.2%,MOTA为92.8%,DetA为82.5%。与之前的SOTA跟踪器Deep OC-SORT相比,DiffMOT在HOTA上提高了1.0%。此外,我们想强调关联相关指标(如IDF1和AssA)的改进。DiffMOT在IDF1和AssA上分别比Deep OC-SORT高出1.5%和1.4%。结果表明,所提出的DiffMOT在处理丰富的非线性运动方面具有鲁棒性。需要注意的是,DiffusionTrack是一项与我们的工作类似的同时进行的工作,它将扩散模型引入MOT中。他们采用DDPM[13]来建模配对边界框之间关系的分布,而没有考虑物体的非线性运动。不同的是,我们在预测过程中对整个运动分布进行建模,并从正态分布中生成未来运动。与DiffusionTrack相比,我们充分利用了扩散模型的强大拟合能力,从表中可以看出,DiffMOT在HOTA上比DiffusionTrack高出8.1%。
此外,我们在Dancetrack测试集上使用不同的检测器进行了实验,如表4所示。我们观察到,更精细的改进带来了更多的性能提升,但FPS更低。我们观察到,较小的检测器可以实现更高的FPS。DiffMOT使用YOLOX-S检测器可以达到30.3 FPS。这表明DiffMOT可以灵活地为各种实际应用场景选择不同的检测器。
SportsMOT:为了进一步证明DiffMOT在其他非线性场景中的性能,我们在以大量(加/减)速物体运动为特征的SportsMOT基准数据集上进行了实验。遵循[6],我们在两种不同的检测器设置下进行了实验。如表2所示,带有*的方法表示其检测器在训练集和验证集上都进行了训练,而其他方法仅在训练集上进行了训练。DiffMOT在两种设置下都取得了SOTA结果。在仅训练集的设置下,DiffMOT获得了72.1%的HOTA、72.8%的IDF1、60.5%的AssA、94.5%的MOTA和86.0%的DetA,全面超越了之前的方法。在另一种设置下,DiffMOT也在所有指标上取得了最佳性能,并且在HOTA上比之前的SOTA跟踪器MixSort-OC高出2.1%,在IDF1上高出1.7%,在AssA上高出3.1%,在MOTA上高出0.6%,在DetA上高出0.8%,具体为76.2%的HOTA、76.1%的IDF1、65.1%的AssA、97.1%的MOTA和89.3%的DetA。结果进一步表明,DiffMOT在具有(加/减)速物体运动的场景中表现出很强的鲁棒性。
MOT17:我们还在传统的、常用的以行人为主的MOT17数据集上进行了实验。从表3中可以看出,DiffMOT在MOT17上取得了64.5%的HOTA、79.3%的IDF1、64.6%的AssA、79.8%的MOTA和64.7%的DetA。尽管所提出的DiffMOT是专门为非线性运动场景设计的,但它仍然可以在以行人为主的场景下取得与其他SOTA方法相当的性能。
4.3. 消融实验
我们在DanceTrack的验证集上进行了消融实验。需要注意的是,所有消融实验都集中在基于D2MPD^2MPD2MP的运动预测步骤上。我们在所有实验中都使用相同的YOLOX-X检测器。消融实验主要研究不同运动模型、D2MPD^2MPD2MP的不同架构、不同条件以及历史运动信息长度对所提出的DiffMOT的影响。
不同运动模型:为了将我们的方法与其他运动模型在非线性运动场景下的建模能力进行比较,我们进行了表5中的实验。我们比较的运动模型包括线性运动模型(KF)和非线性运动模型(基于LSTM和Transformer的运动模型)。我们还展示了仅使用IoU进行关联的结果,不使用任何运动模型作为参考。从表中可以看出,我们的运动模型在所有指标上都取得了最佳性能,HOTA为55.7%,IDF1为55.2%,AssA为39.5%,MOTA为89.3%,DetA为78.9%。这表明D2MPD^2MPD2MP可以确保更鲁棒的非线性运动预测,因为我们的基于扩散的运动模型直接学习了整个数据集中所有物体运动的分布,而不是单个物体的轨迹。
D2MPD^2MPD2MP的不同架构:我们在表6中比较了D2MPD^2MPD2MP不同架构的实验结果,这些架构在3.2.2节中提到。在表中,“D2MP−TBD^2MP-TBD2MP−TB”指的是双分支架构,它同时优化cΘ\mathbf{c}_{\Theta}cΘ和zΘ\mathbf{z}_{\Theta}zΘ。在反向过程中,D2MP−TBD^2MP-TBD2MP−TB使用等式6来近似q(Mf,t−Δt∣Mf,t,Mf,0)q(\mathbf{M}_{f,t-\Delta t}|\mathbf{M}_{f,t},\mathbf{M}_{f,0})q(Mf,t−Δt∣Mf,t,Mf,0)。另一方面,“D2MP−OBD^2MP-OBD2MP−OB”指的是我们在DiffMOT中使用的一分支架构。一分支架构只需要优化cΘ\mathbf{c}_{\Theta}cΘ,并且在反向过程中,D2MP−OBD^2MP-OBD2MP−OB使用等式8来近似q(Mf,t−Δt∣Mf,t,Mf,0)q(\mathbf{M}_{f,t-\Delta t}|\mathbf{M}_{f,t},\mathbf{M}_{f,0})q(Mf,t−Δt∣Mf,t,Mf,0)。从表中可以看出,在使用一步采样时,D2MP−OBD^2MP-OBD2MP−OB在HOTA上比D2MP−TBD^2MP-TBD2MP−TB高出11.2%。这归因于双分支网络中学习复杂性的增加。为了达到与D2MP−OBD^2MP-OBD2MP−OB相当的性能,D2MP−TBD^2MP-TBD2MP−TB需要多次采样步骤。经过20次采样步骤后,D2MP−TBD^2MP-TBD2MP−TB可以达到54.6%的HOTA、53.6%的IDF1和89.3%的MOTA。然而,此时的速度仅为7.5 FPS,难以实际应用。
不同条件:为了证明我们在HMINet中设计的条件优势,我们进行了如表7所示的消融实验。在表中,Bf−1\mathbf{B}_{f-1}Bf−1指的是使用前一帧的物体边界框作为条件,定义为Bf−1=(xf−1,yf−1,wf−1,hf−1)\mathbf{B}_{f-1}=(x_{f-1},y_{f-1},w_{f-1},h_{f-1})Bf−1=(xf−1,yf−1,wf−1,hf−1)。Mf−1\mathbf{M}_{f-1}Mf−1指的是物体运动,定义为等式1。If−1\mathbf{I}_{f-1}If−1指的是我们在DiffMOT中使用的运动信息,定义为等式10。从表中可以看出,利用If−1\mathbf{I}_{f-1}If−1作为条件取得了最佳结果。这是因为Mf−1\mathbf{M}_{f-1}Mf−1仅包含边界框的位置信息,使用它作为条件可能导致运动预测的偏差更大。另一方面,If−1\mathbf{I}_{f-1}If−1仅包含运动变化的信息,缺乏位置信息,从而增加了生成的难度。
历史运动信息长度:为了确定HMINet中用于控制运动预测的历史运动信息的最佳长度,我们在表8中进行了消融实验。从表中可以看出,当长度设置为n=5n=5n=5时,取得了最佳结果。随着n<5n<5n<5,结果逐渐改善;而当n>5n>5n>5时,结果逐渐恶化。我们认为这种现象是由于当历史运动信息长度过短时,无法有效指导运动预测;而当历史运动信息长度过长时,引入的信息过多,产生了干扰。
4.4. 可视化
图4展示了在DanceTrack测试集上使用KF或D2MPD^2MPD2MP作为运动模型的定性比较。上排表示KF预测的结果,而下排表示D2MPD^2MPD2MP预测的结果。显然,当物体在舞蹈中表现出非线性运动(如滚动、跳跃和蹲下)时,KF无法准确预测轨迹的位置,导致生成新的ID号。相比之下,D2MPD^2MPD2MP在处理这些非线性运动时表现出更强的鲁棒性,能够准确预测轨迹位置并保持轨迹。更多可视化结果请参考补充材料。
5. 结论
在本文中,我们提出了一种基于扩散的多目标跟踪器(MOT),名为DiffMOT。与之前专注于行人的跟踪器不同,DiffMOT旨在跟踪非线性运动中的物体。为了处理更复杂的非线性模式,我们精心设计了解耦扩散运动预测器。DiffMOT在两个非线性数据集(DanceTrack和SportsMOT)上超越了所有之前的跟踪器,并在一般的以行人为主的数据集(MOT17)上取得了与SOTA方法相当的性能。结果表明,DiffMOT在实际应用中具有巨大的潜力。
致谢:这项工作部分得到了中国国家自然科学基金(Grant 62372284)的支持。
DiffMOT: 一种基于扩散的实时多目标跟踪器,具备非线性预测能力——补充材料
A. 预备知识
扩散概率模型(DPM)[13]在建模非线性映射方面展现出了巨大潜力,然而,由于需要数千个采样步骤,其推理时间较长。DDM[15]尝试通过应用解耦扩散过程来加速推理过程。具体而言,解耦扩散的正向过程被拆分为解析图像衰减过程和正态噪声的增加过程:
q(xt∣x0)=N(x0+∫0tftdt,tI),q(\mathbf{x}_{t}|\mathbf{x}_{0})=\mathcal{N}(\mathbf{x}_{0}+\int_{0}^{t}\mathbf{f}_{t}\mathrm{d}t,t\mathbf{I}),q(xt∣x0)=N(x0+∫0tftdt,tI),
其中,x0\mathbf{x}_{0}x0和xt\mathbf{x}_{t}xt分别是干净信号和带噪声信号,ft\mathbf{f}_{t}ft表示x0\mathbf{x}_{0}x0随时间ttt(t∈[0,1]t\in[0,1]t∈[0,1])衰减速度的解析函数,I\mathbf{I}I是单位矩阵。在实践中,所提出的D2MPD^2MPD2MP使用了特定形式的常数函数:ft=c\mathbf{f}_{t}=\mathbf{c}ft=c。[15]已经证明,相应的反向过程支持以任意时间间隔Δt\Delta tΔt进行采样,并表示为:
q(xt−Δt∣xt,x0)=N(xt+∫tt−Δtftdt−Δttz,Δt(t−Δt)tI),\begin{aligned}{q(\mathbf{x}_{t-\Delta t}|\mathbf{x}_{t},\mathbf{x}_{0})}&{{}=\mathcal{N}(\mathbf{x}_{t}+\int_{t}^{t-\Delta t}\mathbf{f}_{t}\mathrm{d}t}\\ {}&{{}-\frac{\Delta t}{\sqrt{t}}\mathbf{z},\frac{\Delta t(t-\Delta t)}{t}\mathbf{I}),}\end{aligned}q(xt−Δt∣xt,x0)=N(xt+∫tt−Δtftdt−tΔtz,tΔt(t−Δt)I),
其中,z∼N(0,I)z\sim\mathcal{N}(\mathbf{0},\mathbf{I})z∼N(0,I)是添加在x0\mathbf{x}_{0}x0上的噪声。实际上,在反向过程中,zzz和ft\mathbf{f}_{t}ft是未知的,因此我们需要使用神经网络Θ\ThetaΘ来参数化ft\mathbf{f}_{t}ft和zzz。在训练阶段,解耦扩散模型同时使用zzz和ft\mathbf{f}_{t}ft来监督参数化的zΘz_{\Theta}zΘ和fΘ\mathbf{f}_{\Theta}fΘ:
minΘEq(x0)Eq(z)[∥fΘ−f∥2+∥zΘ−z∥2].\operatorname*{min}_{\mathbf{\Theta}}\mathbb{E}_{q(\mathbf{x}_{0})}\mathbb{E}_{q(\boldsymbol{z})}[\|\mathbf{f}_{\mathbf{\Theta}}-\mathbf{f}\|^{2}+\|\boldsymbol{z}_{\mathbf{\Theta}}-\boldsymbol{z}\|^{2}].ΘminEq(x0)Eq(z)[∥fΘ−f∥2+∥zΘ−z∥2].
反向过程旨在通过等式14从x1\mathbf{x}_{1}x1迭代生成x0\mathbf{x}_{0}x0。由于图像衰减过程的解析性,当Δt=t=1\Delta t=t=1Δt=t=1时,我们可以进行一步采样,从而消除了迭代生成的低速度问题。
B. DiffMOT的伪代码
DiffMOT的推理过程包括三个部分:检测、运动预测和关联,伪代码如算法1所示。对于给定视频序列的第fff帧,我们使用检测器来获取物体的边界框。根据置信度分数(det.conf)将检测结果分为两组。具体来说,我们设置了两个不同的阈值τhigh\tau_{high}τhigh和τlow\tau_{low}τlow,并根据以下规则对检测结果进行分组:
KaTeX parse error: Undefined control sequence: \textgreater at position 98: …d d e t.c o n f\̲t̲e̲x̲t̲g̲r̲e̲a̲t̲e̲r̲\tau_{h i g h}}…
另一方面,我们使用所提出的D2MPD^2MPD2MP来获取先前轨迹中物体的预测边界框。在关联阶段,由于检测结果被分为两组,因此我们将检测到的边界框和预测的边界框进行两次匹配。我们首先通过重识别特征和边界框的IoU相似度将DfirstD_{first}Dfirst与预测的边界框进行匹配。之后,通过IoU将DsecondD_{second}Dsecond与预测的边界框进行匹配。匹配的检测结果将更新轨迹。未匹配的轨迹将被删除。未匹配的检测结果将被初始化为新轨迹。
C. MOT20基准评估
MOT20[7]也是MOT中常用的以行人为主的数据集之一,其特点为密度更高,且运动更接近线性。我们在MOT20测试集上进行了实验,以进一步证明DiffMOT在以行人为主的场景中的性能。如表9所示,DiffMOT取得了61.7%的HOTA、74.9%的IDF1、60.5%的AssA、76.7%的MOTA和63.2%的DetA。结果表明,即使在以行人为主的场景中,专门为非线性运动场景设计的DiffMOT也能取得相当的性能。
图5. D2MP−TBD^2MP-TBD2MP−TB的架构。与D2MP−OBD^2MP-OBD2MP−OB的区别用红色虚线框标出。
D. D2MPD^2MPD2MP的泛化能力
为了证明我们D2MPD^2MPD2MP的泛化能力,我们直接使用在DanceTrack数据集上训练的模型来测试在其他数据集上的性能。结果如表10所示。从表中可以看出,在SportsMOT上,仅在DanceTrack上训练的模型在HOTA和IDF1上分别比仅在SportsMOT上训练的模型低0.6%和1.0%。在MOT17和MOT20上,仅在DanceTrack上训练的模型在HOTA和IDF1上分别比仅在MOT17/20上训练的模型低2.7%/0.5%和4.9%/1.1%。与表2、表3和表9相比,仅在DanceTrack上训练的模型已经取得了与最先进方法相当的性能。特别是在SportsMOT上,仅在DanceTrack上训练的模型已经取得了SOTA性能,在HOTA上比之前的SOTA MixSort-OC[6]高出1.4%,在IDF1上高出0.7%,在MOTA上高出0.6%。上述观察结果表明,D2MPD^2MPD2MP具有很强的泛化能力,因为它直接使用扩散模型学习所有物体运动的分布,而不是学习单个物体的轨迹。我们的模型可以无需重新训练即可应用于新场景,这展示了使用扩散模型进行运动预测的优势。
E. D2MP−TBD^2MP-TBD2MP−TB的架构
在消融实验中,我们对D2MPD^2MPD2MP的不同架构进行了实验。D2MP−OBD^2MP-OBD2MP−OB的架构可以在论文的图3中观察到。如图5所示,D2MP−TBD^2MP-TBD2MP−TB是一个双分支结构,分别预测zΘz_{\Theta}zΘ和cΘ\mathbf{c}_{\Theta}cΘ。与D2MP−OBD^2MP-OBD2MP−OB的区别用红色虚线框标出。
F. 更多可视化结果
F.1. DanceTrack上的定性比较
图6展示了DanceTrack测试集上的一些样本,其中使用KF的跟踪器存在轨迹不连续和ID切换频繁的问题,而使用D2MPD^2MPD2MP的DiffMOT在非线性运动场景中具有很强的鲁棒性。例如,使用KF的跟踪器在以下位置出现了问题:(a) ID1298→ID1315,和ID1282→ID1316;© ID212→ID213;(e) ID426丢失后切换到ID436;(g) ID1736→ID1766→ID1769。视觉比较表明,当物体在舞蹈场景中表现出非线性运动时,使用KF的跟踪器无法准确预测轨迹位置,导致大量的ID切换。相比之下,D2MPD^2MPD2MP在处理这些非线性运动时表现出更强的鲁棒性。
F.2. SportsMOT上的定性比较
图7展示了在SportsMOT测试集上使用KF和D2MPD^2MPD2MP作为运动模型的更多定性比较。我们从不同场景(包括足球、排球和篮球场景)中选取了样本。使用KF的跟踪器在以下位置出现了问题:(a) ID2854→ID2900;© ID8820→ID8834;(e) ID9724和ID9725之间的ID切换。图中的视觉比较突出表明,当物体在体育场景中表现出加速或减速等非线性运动时,KF往往难以提供准确的预测,而DiffMOT在此类场景中能够准确预测物体的位置。
F.3. MOT17/20上的可视化结果
图8和图9分别展示了我们的DiffMOT在MOT17和MOT20测试集上的几个跟踪结果。可以看出,尽管所提出的DiffMOT是专门为非线性运动场景设计的,但它仍然可以取得令人满意的结果。
G. 失败案例说明
我们在图10中展示了两个失败案例。在第一个案例中,当不同的物体相互穿过时,ID为"1""1""1"和"2""2""2"的物体以及ID为"4""4""4"和"5""5""5"的物体之间发生了身份交换。这是由于运动模型中缺少速度方向约束。我们认为,引入速度方向约束来限制预测边界框的生成可能有助于解决这个问题。