JDE:Towards Real-Time Multi-Object Tracking 迈向实时多目标跟踪

背景:

传统的两个分离模型(检测模型、外观嵌入模型)效率低

现有的实时多目标本质属于实时关联

分离模型:

目标检测:只解决了位置定位

跟踪任务:外观嵌入模型提供每个目标的身份信息

引言:

检测与re-ID任务共享同一组低级特征

定义:

采用单个网络来同时输出检测结果和检测到的框的相应外观嵌入

对比:

SDE 模型

步骤:首先使用检测器来检测目标,然后将检测到的目标传递给嵌入模型进行外观特征的提取。

特点:重复计算特征,导致计算效率低;在目标数量较多时,整体推理时间是两个步骤的和。

Two-stage 模型

类似于 Faster R-CNN 的两阶段检测方法

步骤:第一阶段是区域提议网络(RPN),用于生成候选框;第二阶段将候选框传递给嵌入模型进行外观特征提取。

 特点:两阶段的设计,速度慢,无法达到实时处理的要求。

JDE 模型

目标检测和外观嵌入是在一个单一的网络中同时进行的,在一次前向传递中同时输出检测结果和相应的外观嵌入。

特点:提高计算效率,避免重复计算,保持较高的跟踪准确性,接近实时的处理速度

关键:

创新点:

联合学习框架:JDE是一个单次检测框架,用于联合检测和嵌入学习

实时性能:能够在接近实时的速度下运行,

准确性:追求实时性能的同时其跟踪准确性与单独检测和嵌入学习(SDE)相当

简化的数据关联:JDE提出了一个简单快速的关联方法

重点:

效率与准确性的平衡:在保持高准确性的同时提高MOT系统的运行效率

网络架构:采用FPN作为基础架构,有助于在不同尺度上捕捉目标特征。

多任务学习:JDE将检测、框回归和嵌入学习建模为一个多任务学习问题,并使用任务依赖的不确定性来动态加权不同的损失。

JDE:

目标:

在一次前向传递中同时输出目标的位置和外观嵌入

假设:

训练集:

\left \{ I,B,y \right \}_{i=1}^{N}

I:图像帧,I\in \mathbb{R}^{c*h*w}

B:目标的边界框标注(k个目标),B\in \mathbb{R}^{k*4}

y:身份标签(目标的),y\in \mathbb{Z}^{k}

JDE输出:

\hat{B}:预测边界框,\hat{B}\in \mathbb{R}^{\hat{k}*4}

\hat{F}:外观嵌入,\hat{F}\in \mathbb{R}^{\hat{k}*D},D为嵌入维度

满足条件:

①预测的边界框B^{*}应该尽可能接近真实的边界框B

②相同身份的id在不同时间保持一致,不同身份的保持不同;同一身份目标在不同时间的外观嵌入d小于不同身份目标之间的d,d可以代表欧几里得距离或余弦距离

架构概览

FPN:

FPN通过自底向上和自顶向下两个路径来构建特征金字塔。自底向上路径逐渐降低空间分辨率,增加通道数,捕获图像的语义信息;自顶向下路径逐渐增加空间分辨率,减少通道数,保留更多的位置信息。分别采用\frac{1}{8}\frac{1}{16}\frac{1}{32}的上/下采样率,通过跳跃连接进行特征融合。

FPN在每个尺度的特征图上添加预测头,用于输出该尺度的目标检测结果。

预测头:

每个预测头输出(6A+D)*H*W

类别得分:2A*H*W

四个边界框回归坐标:4A*H*W

D维嵌入向量:D*H*W

检测任务:
检测头与RPN的区别:

①锚框设置1:3的纵横比

②当IOU>0.5时,设置为前景

损失函数:

L_{\alpha }:分类损失,使用交叉熵损失函数

L_{\beta }:边界框回归损失,使用smooth-L1损失

外观嵌入任务

三元组损失:

L_{triplet}=max(0,f^{T}f^{-}-,f^{T}f^{+})

f^{T}:锚框实例

f^{+}:相对于 f^{T}的正样本

f^{-}:相对于 f^{T}的负样本

三元组损失:

L_{triplet}=\sum_{i}^{}max(0,f^{T}f^{-}_{i}-,f^{T}f^{+})

缺点:训练不稳定,收敛慢

平滑上界:

L_{upper}=log(1+\sum _{i}exp(f^{T}f^{-}-,f^{T}f^{+}))

 换一种表达形式就类似于交叉熵损失:

L_{CE}=-log\frac{exp(f^{T}g^{+})}{exp(f^{T}g^{+})+\sum_{i}^{}exp(f^{T}g_{i}^{-})}

作用:

①采用可学习的类权重

②所有负类都参与到损失计算

自动损失平衡

总损失函数:

L_{total}=\sum_{i}^{M}\sum _{j=\alpha ,\beta ,\gamma }w_{i}^{j}L_{i}^{j}

w_{i}^{j}:第i个预测头的第j个任务的损失权重

L_{i}^{j}:第i个预测头的第j个任务的损失

M:预测头的数量 

采用不确定性的损失权重自动学习方案:

 L_{total}=\sum_{i}^{M}\sum _{j=\alpha ,\beta ,\gamma }\frac{1}{2}(\frac{1}{e^{s_{j}^{i}}}L_{i}^{j}+s_{i}^{j})

s_{i}^{j}:第i个预测头数量的第j个人物的不确定性,s_{i}^{j}越大,\frac{1}{e^{s_{j}^{i}}}越小,不确定性较高的任务会有较小的损失权重

在线关联

Tracklet Pool(轨迹片段池):维护一个轨迹片段池,包含所有可能与观测结果相关联的参考轨迹片段。

Motion Affinity Matrix A_{m}​(运动亲和矩阵):对于每一帧新输入的图像,计算所有观测结果与轨迹片段池中的轨迹片段之间的成对运动亲和度矩阵 A_{m}使用马氏距离计算,考虑观测之间的运动一致性。

Appearance Affinity Matrix A_{e}(外观亲和矩阵):同时计算外观亲和矩阵A_{e},衡量观测结果与轨迹片段在外观上的相似度,使用余弦相似度来计算,考虑观测之间的视觉相似性。

Linear Assignment Problem(线性分配问题):使用匈牙利算法解决线性分配问题,以找到观测结果与轨迹片段之间的最佳匹配。

Cost Matrix C(成本矩阵) :成本矩阵 C由外观亲和度和运动亲和度的加权和构成即:

C=\lambda A_{e}+(1-\lambda )A_{m}

其中\lambda是一个权重参数,用于平衡外观和运动亲和度。

Kalman Filter(卡尔曼滤波器):使用卡尔曼滤波器更新其运动状态m_{i}

Appearance State Update(外观状态更新):更新匹配轨迹片段的外观状态 e_{i}^{t},使用公式 :

e_{i}^{t}=\alpha e_{i}^{t-1}+(1-\alpha )f_{i}^{t}

其中\alpha是一个权重参数,用于平衡历史外观信息和当前观测的外观信息。

采用的关联算法非常优秀 

实验(Experiments):

构建了一个大规模训练集,并使用了多个公开数据集进行评估

使用DarkNet-53作为骨干网络,采用随即旋转、随机缩放和颜色抖动

输入分辨率为1088*608

展示了JDE在不同数据集上的性能,并与现有的SDE方法和最先进的MOT系统进行了比较

结论(Conclusion):

这篇论文在MOT领域提供了一个新视角,通过联合学习框架JDE,实现了接近实时的多目标跟踪性能,同时保持了较高的跟踪准确性。这对于需要实时处理视频流的应用场景,如自动驾驶和智能视频监控,具有重要意义。 

论文总结了JDE的主要贡献,并指出了未来工作的方向,包括进一步探索时间-准确性权衡问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值