原文链接:https://arxiv.org/abs/2303.17895
引言
目前的基于图像的BEV感知方法多使用LSS预测像素的深度分布,并根据深度估计将2D特征提升到3D空间。然而,实际场景中区域的深度差异较大(“深度跳变”),会导致不能准确估计边缘的深度。
为提高深度跳变区域深度估计的精度,本文提出边缘感知的深度融合(EADF)模块,为深度网络提供额外的边缘信息,以适应深度的快速变化。
此外,目前的方法不能充分利用来自点云的深度监督,本文提出细粒度深度(FGD)模块,包含上采样分支,用于匹配预测特征图和真实深度图的大小。该模块使深度估计网络更细粒度地感知深度分布,并尽可能多地保留原始深度信息。该模块仅用于训练,不会增加推断时间。
本文的方法称为边缘感知的LSS(EA-LSS),可适用于任何使用LSS的方法。
方法
细粒度深度模块
来自点云的深度图及其稀疏,存在大量零值。为保留精确的深度信息,本文提出细粒度深度(FGD)模块,使用上采样分支处理预测深度图,该上采样分支作为额外的深度估计网络用于监督。
该模块使用focal损失作为细粒度深度损失以关注前景物体。来自点云投影的多视图深度图
D
∈
R
N
v
×
H
×
W
D\in\mathbb R^{N_v\times H\times W}
D∈RNv×H×W作为真值(其中的非零值转化为独热向量),与上采样分支的输出
D
p
r
e
d
D^{pred}
Dpred计算FGD损失:
L
F
G
D
=
∑
i
=
1
n
∑
c
=
1
H
D
−
α
c
(
1
−
y
i
,
c
)
γ
log
(
y
^
i
,
c
)
L_{FGD}=\sum_{i=1}^n\sum_{c=1}^{H_D}-\alpha_c(1-y_{i,c})^\gamma\log(\hat y_{i,c})
LFGD=i=1∑nc=1∑HD−αc(1−yi,c)γlog(y^i,c)
其中 n n n为 D D D的非零像素数, H D H_D HD为预测深度图 D p r e d D^{pred} Dpred的类别数(深度区间数)。 y ^ i , c \hat y_{i,c} y^i,c为 D D D中第 i i i个非零像素的独热向量在第 c c c类的值。 y i , c y_{i,c} yi,c为预测深度图 D p r e d D^{pred} Dpred中的相应值。 α c \alpha_c αc为权重, γ \gamma γ为focal损失的超参数。
原文中该公式应该是错误的。按照变量的描述和多分类focal损失的表达式,损失函数应该为
L F G D = ∑ i = 1 n ∑ c = 1 H D − α c y ^ i , c ( 1 − y i , c ) γ log ( y i , c ) L_{FGD}=\sum_{i=1}^n\sum_{c=1}^{H_D}-\alpha_c\hat y_{i,c}(1-y_{i,c})^\gamma\log(y_{i,c}) LFGD=i=1∑nc=1∑HD−αcy^i,c(1−yi,c)γlog(yi,c)
边缘感知的深度融合模块
为减轻“深度跳变”问题,本文提出边缘感知的深度融合(EADF)模块。
首先将真实深度图 D D D分割为 k × k k\times k k×k的块,每块中的最大深度作为该块的深度。这样,得到密集深度图 D ′ D' D′。
接着,计算密集深度图沿 x x x和 y y y方向的梯度,提取边缘感知的3D几何信息。由于每个轴有两个方向,每个像素可求四个梯度值,从而得到4个梯度图。将梯度图记为 G ∈ R N v × H × W × 4 G\in\mathbb R^{N_v\times H\times W\times 4} G∈RNv×H×W×4,沿最后一维进行最大池化并归一化到 [ 0 , 1 ] [0,1] [0,1]后,得到多视图边缘图 G ′ ∈ R N v × H × W G'\in\mathbb R^{N_v\times H\times W} G′∈RNv×H×W,表示不同物体的边缘。
最后,将 D D D与 G G G拼接,得到EADF模块的输出 F E A D F = [ D , G ′ ] F^{EADF}=[D,G'] FEADF=[D,G′]。
本文以多视图密集深度图
D
′
D'
D′作为真值,多视图边缘图
G
′
G'
G′作为权重,以减轻深度跳变问题。EADF损失为:
L
E
A
D
F
=
∑
i
=
1
m
∑
c
=
1
H
D
−
α
c
(
1
−
p
i
,
c
)
γ
log
(
p
^
i
,
c
)
w
i
L_{EADF}=\sum_{i=1}^m\sum_{c=1}^{H_D}-\alpha_c(1-p_{i,c})^\gamma\log(\hat p_{i,c})w_i
LEADF=i=1∑mc=1∑HD−αc(1−pi,c)γlog(p^i,c)wi
其中 m m m为预测深度图 D p r e d D^{pred} Dpred的像素数, p ^ i , c \hat p_{i,c} p^i,c对应 D ′ D' D′中的值,而 w i w_i wi对应 G ′ G' G′中的值。
同样地,原文中的该损失也是错误的。
边缘感知的LSS框架
本文的EA-LSS框架由FGD模块和EADF模块组成,可估计细粒度的全局深度分布并关注深度跳变区域(物体边缘)。
为完全利用深度信息,EADF模块的输出被送入卷积层提取几何特征,与图像特征融合输入深度估计网络。为恢复可能失去的语义信息,又引入跳跃连接。
EA-LSS是即插即用的,可用于任意基于LSS的BEV感知任务。损失函数为任务损失、FGD损失与EADF损失之和。
实验
比较结果
实验表明,基于LSS的方法使用EA-LSS后,均有性能提升,且推断时间的增加可忽视。
使用测试时数据增广和模型集成后,本文方法能达到NuScenes测试集第一的水平。
消融研究
在LSS模型的基础上,添加FGD模块能带来微小性能提升;添加EADF模块,可以进一步提高性能。其中,EADF模块中使用 D D D与 G ′ G' G′的拼接,以及使用EADF损失,均能提高性能。
在密集深度图 k k k值的选取上,当 k k k过大会导致分辨率降低,过小会导致存在过多零值。
本文还进行了上界分析,即使用激光雷达点云的真实深度替换边缘处的预测深度,性能有极大提升。这说明“深度跳变”问题的重要性。