文章目录[隐藏]
一、前言
目前主流的空间点云检测主要有两种。一种是直接以三维点云作为输入,直接送入卷积网络或者转化为体素送入。另一种是将3D点云映射到2D,主要为鸟瞰图或者前视图。一般来说第一种方法目标的检测信息比较丰富,但相应的计算量也大;第二种处理得当的话计算量相对较小,但会导致信息的丢失。
MV-3D论文采用的是第二种方法,但考虑到信息的丢失,还采用前视图和图片进行融合矫正。
论文: https://arxiv.org/abs/1611.07759
二、整体思路
如下图所示:
区域提案网络(PPN)已经成为高精度目标检测的重要组成部分。MV-3D也是基于RPN进行架构,可以看出整个主要分为两个主要部分:3D Proposal Network 和 Rregion-based Fusion Network。网络的输入有三种:俯视图(BV)、前视图(FV)和图像(RGB),经卷积网络输出后和3D Proposal进行 ROI pooling融合,再精选出3D边界框。
三、算法分析
1、3D Proposal Network
网络的输入有三种:俯视图(BV)、前视图(FV)和图像(RGB)。主要思路为:
- 论文中的卷积层采用的是VGG-16,去掉了最后一层池层,因此卷积的部分进行了8次下采样。
- 3D提案是由俯视图产生的,因为投影到鸟瞰图可以更多的保持物体的尺寸,而且垂直方向上的差异较小可以更精准的获取3D边界框。
- 另外为了处理超小的对象,我们使用特征近似来获得高分辨率的特征图。特别地,我们在输入最后一个卷积特征之前插入了一个2倍的双线性上采样层映射到3D提案网络。类似地,我们在BV/FV/RGB分支的ROI池化层之前插入了一个4x/4x/2x的上采样层。
- 将生成的3D Proposal投影到各个视图中和卷积后的网络一起进中ROI pooling。由于来自不同视图/模态的特征通常具有不同的分辨率,因此对每个视图使用ROI池化来获得相同长度的特征向量。
鸟瞰图表示
鸟瞰图的表示是由高度、强度和密度编码的,将投影的点云离散为分辨率为0.1m的二维网格。
- 对于每个网格单元,高度特征被计算为单元中点的最大高度,为了对更详细的高度信息进行编码,点云被等分为m个切片,计算出每片的高度图,得到m个高度图。
- 强度特征是每个单元中具有最大高度的点的反射值,作用于整个点云。
- 点云密度表示每个单元中的点的数量,也是作用于整个点云。
总的来说鸟瞰图被编码为(m+2)个通道特征。
前视图表示
前视图表示为鸟瞰图表示提供补充信息。由于激光雷达点云非常稀疏,将其投影到图像平面会产生稀疏的二维点地图。相反,我们将其投影到一个柱面,以生成一个密集的前视图地图。
令点云中一个点的坐标为 P = (x,y,z),在前视图的相应坐标为
p
f
v
=
(
r
,
c
)
p_{fv} = (r,c)
pfv=(r,c)。两者之间的相互转化关系为:
- C =
[
arctan
(
y
,
x
)
Δ
θ
]
[ \frac{\arctan(y,x)}{\Delta \theta }]
- r =
[
arctan
(
z
,
x
2
+
y
2
)
Δ
ϕ
]
[ \frac{\arctan(z,\sqrt{x^2+y^2} )}{\Delta\phi }]
其中其中,
Δ
θ
\Delta \theta
Δθ和
D
e
l
t
a
ϕ
Delta\phi
Deltaϕ分别为激光束的水平和垂直分辨率。
效果图如下:
2、Rregion-based Fusion Network
设计了一个基于区域的融合网络,有效地结合多个视角的特征,共同对目标建议进行分类和进行面向方向的三维边框回归。
为了结合来自不同特征的信息,采用了深度融合方法,融合多视图特征。另外论文还将深度融合网络和早期/晚期融合网络的架构比较。
对于具有L层的网络,早期融合结合了来自输入阶段的多个视图的特征
f
v
{fv}
fv:
H
l
,
l
=
1
,
⋅
⋅
⋅
,
L
{H_{l},l=1,···,L}
Hl,l=1,⋅⋅⋅,L是特征变换函数,而⊕是一个连接操作(例如,连接、求和)。
相比之下,后期融合使用独立的子网来独立地学习特征转换,并在预测阶段结合它们的输出:
论文中设计的深度融合过程如下:
M代表元素级均值来进行深度融合的连接操作,因为它与跳跃训练结合时更灵活。
3、3D边界框回归
考虑到多视图网络的融合特性,我们从三维提案回归到定向的三维边界框。特别是,回归目标是3D边界框的8个角:
t
=
(
∆
x
0
,
⋅
⋅
⋅
,
∆
x
7
,
∆
y
0
,
⋅
⋅
⋅
,
∆
y
7
,
∆
z
0
,
⋅
⋅
⋅
,
∆
z
7
)
t=(∆x_0,···,∆x_7,∆y_0, · · · , ∆y_7, ∆z_0, · · · , ∆z_7)
t=(∆x0,⋅⋅⋅,∆x7,∆y0,⋅⋅⋅,∆y7,∆z0,⋅⋅⋅,∆z7).它们被编码为由建议框的对角线长度归一化的拐角偏移量。尽管有这样的24d向量表示是多余的,但发现这种编码方法比中心和尺寸编码方法效果更好。
另外论文中提及在模型中,物体的方向可以从预测的三维框角中计算出来。(这个没有给出计算的过程)
使用多任务损失来联合预测对象类别和面向三维盒子。在生成提案网络中,类别损失使用交叉熵,而3D box损失使用平滑的L1_loss。
在训练期间,正/负roi是基于鸟瞰图的IoU重叠来确定的。如果鸟瞰图的IoU重叠度大于0.5,则3D提案被认为是正的。在推理过程中,在三维边界box回归后的三维box上应用NMS。我们将3D盒子投射到鸟瞰图中,以计算它们的IoU重叠。我们使用IoU阈值为0.05为了删除多余的box,以确保物体在鸟瞰视图中不能占据相同的空间。
4、网络正则化
对比于二维网络,正则化可以有效避免网络的过拟合,使整个网络有效的进行下去。论文中我们采用两种方法来正则化基于区域的融合网络:drop-path training和auxiliary losses。
对于每次迭代,我们随机选择做全局下降路径或局部下降路径它的概率为50%。如果选择全局下降路径,我们从三个视图中选择单个视图。如果选择了局部下降路径,则每个连接节点的路径是随机的下降的概率为50%。我们确保对于每个连接节点,至少保留一个输入路径。(这个是翻译过来的,总感觉不太准确)
为了进一步加强每个视图的表示能力,论文在网络中添加了辅助路径和损耗。
在训练过程中,增加底部的三条路径和损耗,使网络正则化。辅助层与主网络中相应的层共享权重。
注意: 在检验过程中,这些辅助路径会被删除。
结果
参考:
自动驾驶|3D目标检测:MV3D-Net(一)
【论文解读】MV3D-Net 用于自动驾驶的多视图3D目标检测网络
版权声明:本文为CSDN博主「城市黎明的烟火」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qingliange/article/details/122909703
暂无评论