论文标题:Temporal Enhanced Training of Multi-view 3D Object Detector via Historical Object Prediction
论文链接:https://arxiv.org/abs/2304.00967
论文代码:https://github.com/Sense-X/HoP
摘要
作者观察到,使用历史时空信息可以学到更准确的BEV特征。基于此,本文作者提出了一种新的3D检测范式HoP
,它可以在多视图3D检测中更有效地利用时间信息。
首先,作者精心设计了长短期时间解码器,它可以在不需要t-k时刻相机图像的情况下生成该时刻的伪BEV特征。短期时间解码器处理t-k时刻的相邻帧,提供目标的空间语义;长期时间解码器处理多个帧,提供对短期解码器空间定位能力的补充。
然后,利用生成的伪BEV特征,使用目标解码器预测目标。
HoP
是只在训练阶段使用的基于时间的辅助任务,推理的时候不会引入额外的开销,它是对流行的时间建模方法的补充,且有显著的收益。
本文贡献:
- 提出了一种新的时间增强训练方案
HoP
,可以学习更准确的BEV特征 - 设计了一个由短期解码器和长期解码器组成的时间解码器,提供可靠的空间定位和准确的目标运动估计
架构
如图所示,HoP
可以很容易的合并到很多多视图3D目标检测器中(BEVFormer
,BEVDet
等)。将历史帧的外参转换成当前坐标系下,做时间对齐(同BEVDet
)。
HoP
Pipeline
HoP由时间解码器
T
\mathcal{T}
T和目标解码器
D
^
\hat{\mathcal{D}}
D^组成。给定N个历史帧和1个当前帧组成的BEV特征序列
{
B
t
−
N
,
.
.
.
,
B
t
}
\{B_{t-N},...,B_t\}
{Bt−N,...,Bt}和对应的ground truth
{
G
t
−
N
,
.
.
.
,
G
T
}
\{G_{t-N},...,G_T\}
{Gt−N,...,GT}。丢弃t-k时刻的BEV特征,时间解码器
T
\mathcal{T}
T利用剩下的
B
r
e
m
=
{
B
t
−
N
,
.
.
.
,
B
t
}
−
B
t
−
k
B^{rem} = \{B_{t-N},...,B_t\} - {B_{t-k}}
Brem={Bt−N,...,Bt}−Bt−k重建t-k时刻的BEV特征,目标解码器
D
^
\hat{\mathcal{D}}
D^利用伪BEV特征生成预测结果。
P
^
t
−
k
=
D
^
(
T
(
{
B
t
−
N
,
.
.
.
,
B
t
}
−
{
B
t
−
k
}
)
)
\hat{P}_{t-k} = \hat{\mathcal{D}}(\mathcal{T}(\{B_{t-N},...,B_t\} - \{B_{t-k}\}))
P^t−k=D^(T({Bt−N,...,Bt}−{Bt−k}))
将 G t − k G_{t-k} Gt−k转换到当前帧的坐标系中,记为 G ^ t − k \hat{G}_{t-k} G^t−k。最终的训练目标是最小化 P ^ t − k \hat{P}_{t-k} P^t−k和 G ^ t − k \hat{G}_{t-k} G^t−k之间的差异。
时间解码器的输入由两部分组成:1)短期BEV特征 { B t − k − 1 , B t − k + 1 } \{B_{t-k-1}, B_{t-k+1}\} {Bt−k−1,Bt−k+1}和2)长期BEV特征 { B t − N , . . . , B t } − { B t − k } \{B_{t-N},...,B_t\} - \{B_{t-k}\} {Bt−N,...,Bt}−{Bt−k}。
Short-term temporal decoder
由于相邻帧之间的高度时间相关性,短期时间解码器只需要操作相邻的BEV特征集 B a d j = { B t − k − 1 , B t − k + 1 } B^{adj} = \{B_{t-k-1}, B_{t-k+1}\} Badj={Bt−k−1,Bt−k+1}就可以构建详细的空间表示。首先,定义网格状可学习短期BEV queries Q t − k s h o r t ∈ R H × W × C Q_{t-k}^{short} \in \mathbb{R}^{H\times W\times C} Qt−kshort∈RH×W×C,其中H,W代表BEV平面的空间形状。短期BEV queries通过短期时间注意力从 B a d j B^{adj} Badj中聚合空间信息并对短期运动建模。
B
^
t
−
k
s
h
o
r
t
=
∑
V
∈
B
a
d
j
D
e
f
o
r
m
A
t
t
n
(
Q
t
−
k
,
p
s
h
o
r
t
,
p
,
V
)
\hat{B}_{t-k}^{short} = \sum_{V\in B^{adj}}DeformAttn(Q_{t-k,p}^{short}, p, V)
B^t−kshort=V∈Badj∑DeformAttn(Qt−k,pshort,p,V)
然而,仅有相邻两帧不足以精确构建
B
t
−
k
B_{t-k}
Bt−k和其他BEV特征相同对象间的时间关系。
Long-term temporal decoder
长期时间解码器处理 B r e m B^{rem} Brem集合,感知历史的运动线索,提升定位潜力,有助于更准确的定位。对于大多数具有BEV特征的3D对象检测器,高度信息被编码进BEV平面特征中。因此对 B r e m B^{rem} Brem集合使用通道缩减,对高度信息进行删除,从而获得更好的训练效率。
B
^
t
−
k
l
o
n
g
=
∑
V
∈
B
r
e
m
D
e
f
o
r
m
A
t
t
n
(
Q
t
−
k
,
p
l
o
n
g
,
p
,
V
W
r
)
\hat{B}_{t-k}^{long} = \sum_{V\in B^{rem}}DeformAttn(Q_{t-k,p}^{long}, p, VW^r)
B^t−klong=V∈Brem∑DeformAttn(Qt−k,plong,p,VWr)
最后,将短期和长期的BEV特征连接起来,并通过3X3卷积进行特征融合。
Object decoder
目标解码器使用伪BEV特征生成3D预测 P ^ t − k \hat{P}_{t-k} P^t−k,对齐 G t − k G_{t-k} Gt−k和 P ^ t − k \hat{P}_{t-k} P^t−k。
为了清晰起见,将t帧的车坐标定义为e(t)。首先将以前帧的外参转换到当前帧的坐标系下,因此不同时刻的BEV特征和预测具有相同的e(t)。为了简化学习目标,需要将 G t − k G_{t-k} Gt−k的坐标转换为e(t)。
G
^
t
−
k
=
T
e
(
t
−
k
)
e
(
t
)
G
t
−
k
\hat{G}_{t-k} = T_{e(t-k)}^{e(t)}G_{t-k}
G^t−k=Te(t−k)e(t)Gt−k
T
e
(
t
−
k
)
e
(
t
)
T_{e(t-k)}^{e(t)}
Te(t−k)e(t):e(t-k)转换到e(t)的转换矩阵
HQ Fusion
除了利用BEV特征级时间信息的HoP
方法外,作者还研究了query级的时间建模,将历史的object queries融入的当前时刻的object queries,为当前时刻提供历史感知。
BEV特征序列
{
B
t
−
N
,
.
.
.
,
B
t
}
\{B_{t-N},...,B_t\}
{Bt−N,...,Bt}按时间顺序进行推理。对于时刻t-k,使用预定义的object queries来执行检测。
O
‾
t
−
k
=
D
(
B
t
−
k
,
O
)
\overline{O}_{t-k} = \mathcal{D}(B_{t-k}, O)
Ot−k=D(Bt−k,O)
D
\mathcal{D}
D:BEV解码器
每个object query关注BEV平面的特定区域,其输出的object queries包含这些区域丰富的语义信息。当对当前帧进行检测时,我们使用历史object queries代替预定义的queries,让学习过程更加容易。例如,如果一个object query在最后一帧中检测到一个静止对象,其历史object query可以帮助它快速定位该对象,而无需再次搜索其在BEV平面中的区域。另一方面,移动物体的历史信息也有助于定位和检测其速度。
为了推理t-k时刻的BEV特征 B t − k B_{t-k} Bt−k,首先获取历史object queries O t − k h i s O_{t-k}^{his} Ot−khis。作者仅使用了最后一帧的历史object queries,因为作者认为更久远的历史与当前可见的对象几乎没有信息重叠。
O
t
−
k
h
i
s
=
M
L
P
(
O
‾
t
−
k
)
O_{t-k}^{his} = MLP(\overline{O}_{t-k})
Ot−khis=MLP(Ot−k)
最后,与预定义的object queries合并。
O
‾
t
−
k
=
D
(
B
t
−
k
,
O
+
O
t
−
k
h
i
s
)
\overline{O}_{t-k} = \mathcal{D}(B_{t-k}, O + O_{t-k}^{his})
Ot−k=D(Bt−k,O+Ot−khis)
实验
HoP-BEVFormer
比BEVDepth
(+GBGS)在NDS上增长2%,mAP增长3.6%HoP-BEVFormer
与其他的基于query的方法相比性能最好
HoP
扩展性很强,可用于其他的模型。用于BEVDet4D-Depth
,在测试集上获得NDS 68.5%,mAP 62.4%
BEVFormer-opt
引入HoP,NDS+1.8%,mAP+1.4%BEVDet4D-Depth
引入HoP,NDS+1.6%,mAP+1.4%BEVFormer-opt
引入HQ Fusion,NDS+1.2%,mAP+1.1%BEVFormer-opt
引入HoP且不丢弃BEV编码器最后两层梯度的情况下,达到NDS 53.9%
- Dropout设置为0,显著提高性能
- Look forward twice是提高mAP的重要因素
- Decoupled BEV encoder提升性能很高
- 长短期时间解码器都可以提升性能,一起使用提升最大
- BEV空间中3D目标显式监督对HoP很重要
- k=1时,在准确性和训练成本之间取得了最好的平衡
- HoP在训练过程中引入了额外的时间解码器和目标解码器,不可避免的增加了训练时间
- 获得历史queries的三种方法都能提升性能,且相差不大
- HoP成功的检测到了小物体或被遮挡的物体
- 短期解码器可以检测到对象的尺寸,如高度和长度,但不能精确地定位(第一行图片)
- 短期解码器由于详细的空间语义,有助于检测更多的前景对象(第二行图片)
- 长期解码器能够精确定位位置,但难以检测物体的尺寸,如高度
- 结合长短期解码器,效果达到最好
结论
本文作者提出了一种新的范式HoP
,可用于多视图3D检测以更有效地利用时间信息。作为一种即插即用的方法,HoP
可以很容易的集成到最先进的BEV检测框架中,包括BEVFormer
和BEVDet
系列。
在nuScenes
数据集上的大量实验验证了HoP
的有效性。
HoP
在nuScenes
测试集上达到了68.5%的NDS和62.4%的mAP,显著领先于排行榜上所有的3D目标检测器。
补充
Multi-view 3D Object Detection
现在多视图3D目标检测方法主要分为两个分支:基于LSS的和基于query的方法。
基于LSS的代表性方法是BEVDet
。BEVDet
首先明确的估计每个图像像素的深度,然后,根据深度将2D特征提升到3D体素上,然后将3D特征压扁成到BEV特征,然后用它进行目标检测。BEVDepth
进一步改进了视图转换器模块。
基于query的方法通常使用可学习queries,通过注意力机制聚合2D图像特征。DETR3D
利用object queries预测3D位置,并将它们投影回2D坐标,以获得相应的特征。Graph-DETR3D
和Sparse4D
分别通过可学习的3D图和稀疏4D采样增强它。PETR
将3D位置编码进图片特征,因此可以直接查询全局2D特征。BEVFormer
利用网格BEV queries通过可变性注意力与2D特征交互,在此基础上,BEVFormerv2
引入了透视监督。此外,PolarFormer
和Ego3RT
提出用极坐标建模BEV queries,以适应真实场景。
Temporal Modeling for Multi-view 3D Object Detection
BEVFormer
提出时间自注意力机制,通过deformable attention以RNN方法动态融合历史BEV特征。BEVDet4D
引入时间建模,将BEVDet
提升到时空4D空间。PETRv2
使用时间对齐扩展了PETR
中的3D位置编码。BEVStereo
和STS
都利用时间视图,通过一种有效地时间立体方法构建多视图立体。SOLOFusion
充分利用了长短期时间信息的协同作用。BEVFormerv2
使用双向时间编码器来利用历史和未来的BEV特性。
e attention以RNN方法动态融合历史BEV特征。BEVDet4D
引入时间建模,将BEVDet
提升到时空4D空间。PETRv2
使用时间对齐扩展了PETR
中的3D位置编码。BEVStereo
和STS
都利用时间视图,通过一种有效地时间立体方法构建多视图立体。SOLOFusion
充分利用了长短期时间信息的协同作用。BEVFormerv2
使用双向时间编码器来利用历史和未来的BEV特性。