本文针对自动驾驶场景中的高精度3D对象检测。我们提出了多视点三维网络(MV3D),这是一个以激光雷达点云和RGB图像为输入,预测定向三维边界框的传感器融合框架。我们用一个紧凑的多视图表示来编码稀疏的三维点云。该网络 由两个子网络组成: 一个用于三维物体建议生成,另一个用 于多视图特征融合。提案网络从三维点云的鸟瞰图表示中有效地生成三维候选框。我们设计了一个深度融合方案,将来自多个视图的区域特征结合起来,使不同路径的中间层之间能够相互作用。在具有挑战性的KITTI基准上的实验表明, 我们的方法在 3d 定位和 3d 检测任务上的表现优于最先进的 25% 和 30% 。此外,在二维检测方面,我们的方法 比基于激光雷达的方法在数据上获得的高出 14.9% 。
3D 物体检测在自动驾驶汽车的视觉感知系统中起着重要的 作用。现代自动驾驶汽车通常配备多个传感器,如激光雷达和 摄像头。激光扫描仪具有准确深度信息的优势,而相机则保留 了更多详细的语义信息。激光雷达点云和 RGB 图像的融合应该 能够为自动驾驶汽车提供更高的性能和安全性。
本文的研究重点是利用激光雷达和图像数据进行三维物体检测。我们的目标是高精度的 3d 定位和识别道路场景中的物体。最近基于激光雷达的方法将3D窗口放置在3D体素网格中,对点云进行评分[25,6] ,或者在密集框预测方案中对前视图点图应用卷积网络[16]。基于图像的方法[4,3] 通常首先生成3D框建议,然后使用 Fast R-CNN [9]中对前视图点图应用卷积网络。基于激光雷达点云的方法通常可以获得更精确的3D位置,而基于图像的方法在2D框评估方面具有更高的精度 [10,7]。通过采用早期或晚期融合方案将激光雷达和图像结合用于二维检测。然而,对于更具挑战性的三维物体检测任务,但是,对于更具挑战性的3D对象检测任务,需要设计良好的模型来利用多种模态的优势。
本文提出了一种多视图三维物体检测网络(MV3D) ,该网络将多模式数据作为输入并预测3D空间中对象的完整3D范围。利用多模态信息的主要思想是执行基于区域的特征融合。 我们首先提出了一个多视图编码方案,以获得一个紧凑和有 效的表示稀疏的三维点云。如图 1 所示,多视图三维检测网 络由两部分组成: 一个三维建议网络和一个基于区域的融合网络。3D 提案网络利用点云的鸟瞰图表示来生成高度准确的 3d 候选框。3D 物体提案的好处是它可以投影到 3d 空间 的任何视图。多视图融合网络通过从多个视图向特征地图投 影三维方案来提取区域特征。我们设计了一种深度融合方法, 从不同角度实现中间层的相互作用。Com 结合下降路径训 练[14]和辅助损失,我们的方法显示出优于早期/晚期融合方 案的性能。鉴于多视图特征表示,网络执行面向三维盒回归, 预测三维空间中物体的准确三维位置,大小和方向。
在具有挑战性的 KITTI [8]物体检测基准上,我们评估了 我们的三维建议生成、三维定位、三维检测和二维检测的方 法。实验表明,我们的三维建议显着优于最近的三维建议方 法 3dop [4]和 Mono3D [3]。特别是在只有 300 个提案的情 况下,在 Intersection-over-Union (IoU)阈值为 0.25 和 0.5 时,我们分别获得了 99.1% 和 91% 的三维召回率。激光雷达该方法在三维定位任务中提高了 25% 的精度,在三维物体 检测中提高了 30% 的平均精度。它还优于所有其他基于 lidar 的方法,在 KITTI 的硬测试集上进行 2d 检测的 AP 为 14.9% 。当与图像相结合时,基于激光雷达的结果会得到进 一步的改进。
我们简要回顾了现有的工作,从点云和图像的三维 物体检测,多模态融合方法和三维物体建议。
Point Cloud 中的三维目标检测 大多数现有的方法使用体素网格表示来编码三维点云 。 Sliding Shapes [21] 和 Vote3D [25]在几何特征编码的 3d 网格上应用 SVM 类 sifers。最近提出的一些方法[22,6,15]利用 3d 卷积改进了特征表示,但是这需要昂贵的计算。除了三维体素表示之外, VeloFCN [16]将点云投影到前视图,获得二维点地图。他们 在二维点图上应用全卷积网络,并从卷积特征图中密集预测三维盒子。[23,17,11]研究用于三维物体分类的点云的体积和多视图表示。在这项工作中,我们使用多视图特征映射对三维点云进行编码,从而实现基于区域的多模态融合表示。
图像中的三维目标检测 3DVP [27]引入了三维体素模式,并使 用一组 ACF 探测器来进行二维检测和三维姿态估计。3DOP [4] 侦察结构从立体图像的深度和使用一个能量最小化方法生成三维盒子建议,这是馈送到一个 R-CNN [9]管道的目标识别。虽 然 Mono3D [3]与 3dop 共享相同的管道,但它从单目图像生成 3d 建议。[30,31]介绍了使用三维线框模型的对象的详细几何表 示。为了合并时间信息,一些工作[5,20]结合运动和地面估计的 结构,将二维检测盒提升到三维包围盒。基于图像的方法通常依赖于精确的深度估计或地标检测。我们的工作展示了如何结合激光雷达点云来提高三维定位。
多模态融合在自主驾驶环境中利用多模态数据的工作只存在少数。[10]将图像,深度和光流结合起来,采用专家混合框 架进行二维行人检测。[7]在早期融合 RGB 和深度图像,并训练基于姿态的分类器进行二维检测。在本文中,我们设计 了一种受 Frac-talNet [14]和 deep-fused Net [26]启发的深度融合方法。在 FractalNet 中,基本模块迭代重复以构建具有指数增加路径的网络。同样,[26]通过结合浅层和深层子网络来构建深度融合的网络。我们的网络与它们不同,它们为每个列使用相同的基础网络,并为正则化添加辅助路径和损失。
3D 对象建议类似于 2d 对象建议[24,32,2] ,3D 对象建议方法生成一小组 3d 候选框,以覆盖 3d 空间中的大部分对象。 为此,3DOP[4]在立体点云中设计了一些深度特征,以得分 一大组3d可指定框。Mono3D [3]利用先前的地面平面,并利用一些分割特征从单个图像生成 3d 建议。3DOP 和 Mono3D 都使用手工装箱的功能。Deep Sliding Shapes [22] 利用更强大的深度学习功能。然而,它可以在 3d 体素网格 上运行,并使用昂贵的 3d 卷积。我们提出了一种更有效的 方法,通过引入点云的鸟瞰图表示,并使用 2d 卷积来生成精确的 3d 建议。
MV3D 网络采用 3d 点云和图像的多视图表示作为输 入。它首先从鸟瞰图中生成三维物体提案,然后通过基 于区域的表示深度融合多视图特征。融合特征用于类别分类和面向三维盒子回归。
现有的工作通常将 3d 激光雷达点云编码成 3d 网格[25,6] 或前视图[16]。虽然三维网格表示保留了点云的大部分原始 信息,但它通常需要更复杂的计算来进行后续的特征提取。 我们提出了一种更加紧凑的表示方法,通过将三维点云投影 到鸟瞰图和前视图。图2 显示了点云表示。
鸟瞰图 鸟眼视图表示是由高度、亮度 /灰度编码的。我们将投影的点云离散成一个 分辨率为 0.1 m 的二维网格,对于每个单元,高度特征被计 算为单元中点的最大高度。为了编码更详细的高度信息,点 云被平均分成 m 片。为每个片计算一个高度映射,因此我 们得到 m 高度映射。强度特征是在每个单元格中具有最大高度的点的反射值。点云密度指示每个单元格中的点数。为了规范化特性,将其计算为 min (1:0; log (n + 1)) ,其中 n是单元格中的点数。请注意,亮度/灰度特征是针对整个点云计算的,而高度特征是针对 m 片计算的,因此 鸟瞰图总体上被编码为(m + 2)通道特征。
前视图表示 前视图表示为鸟瞰图表示提供了补充信息。由于激光雷达点云非常稀疏,将其投影到图像平面会得到一个 稀疏的二维点图。相反,我们将其投影到圆柱面上,生成一个密集的前视图地图,如[16]所示。给定一个三维点 = (x; y; z) ,它在前视图中的坐标 pfv = (r; c)可以使用分别是激光束的水平分辨率和垂直分辨率。我们编码的前视图具有三个通道的特征,即高度,距离和亮度/ 灰度,如图 2 所示。
p_fv=(r,c):
c = [atan2(y,x)/∆θ]
r = [atan2(z,√(x2+y2 )/∆∅)]
其中∆θ和∆φ分别是激光束的水平和垂直分辨率。我们使用三通道特征(高度,距离和强度)对前视图地图进行编码,如图2所示。
受区域提案网络(RPN)的启发,我们首先设计了一个生成三维物体提案的网络。 RPN 已经成为最先进的二维物体检测器的关键组件。我们使用鸟瞰图作为输入。在三维物体检测中,鸟瞰图比前视图/图像平面有几个优点。首先,物体 在鸟瞰图中保持物理尺寸,因此尺寸方差很小,而在前视图 /图像平面中则不是这样。其次,鸟瞰图中的物体占据了不 同的空间,从而避免了遮挡问题。第三,在道路场景中,由 于物体通常位于地面,垂直位置方差较小,因此鸟瞰定位对 于获得精确的三维边界盒更为重要。因此,使用显式的鸟瞰 图作为输入,使得三维位置预测更加可行。
给你一张鸟瞰地图。网络从一组 3d 的先前的盒子中生成 3d 的盒子方案。每个 3d 盒子 是参数化的(x; y; z; l; w; h) ,这是中心和大小(米)的三维盒 子在激光雷达坐标系。对于每个三维先验框,可以通过离散 化(x; y; l; w)获得相应的鸟瞰锚点(xbv; ybv; lbv; wbv)。我们 通过对训练集中的地面真实对象大小进行聚类来设计 n 个 3d 先验盒。在汽车检测的情况下,(1; w)的先前框取值在 f (3:9; 1:6) ; (1:0; 0:6) g,高度 h 设置为 1.56 米,通过旋转鸟 瞰锚 90 度,我们得到N= 4 个先前的盒子。(x; y)是鸟瞰特征图中的变化位置,z 可 以根据摄像机高度和物体高度计算出来。我们在提案生成中 不做定向回归,而是将其留给下一个预测阶段。3D 盒子的 方向被限制在 f0; 90g,这接近大多数道路场景对象的实际 方向。这种简化使得建议回归的训练更加容易。
离散分辨率为 0.1 米,鸟瞰图中的物体框只占 5.40 像素。对 于深层网络来说,探测这样的超小物体仍然是一个难题。一个 可能的解决方案是使用更高的输入分辨率,然而,这将需要更 多的计算。我们选择特征映射上采样,如[1]所示。我们在建议 网络的最后一个卷积层之后使用 2 倍的双线性上采样。在我们 的实现中,前端卷积只进行三个池化操作,即 8 倍下采样。因 此,结合 2x 解卷积,输入到建议网络的特征映射是相对于鸟瞰 图输入的 4 倍下采样。
我们通过回归到 t== (x; y; z; l; w; h) ,类似于 RPN [18]。(x; y; z)是由锚大小, 还 有 ( l; w; h) (l; w; h) are computed as 计算结果为同时对物体/背景进行分类并进行 3d 盒回归的损失。特别是, 我们对“对象”损失使用类熵,对 3d 盒子回归损失使用
计算盒回归损失。在训练期间,我们计算锚点和地面 真相鸟瞰框之间的 IoU 重叠。如果一个锚点的重叠度 大于 0.7,那么它就被认为是正的; 如果重叠度小于 0.5,那么它就被认为是负的。之间有重叠的锚被忽略。
由于激光雷达点云是稀疏的,导致许多空锚,我们 删除所有空锚在训练和测试,以减少计算。这可以通 过在点占据图上计算一个完整的图像来实现。
对于最后一个卷积特征映射的每个位置的每个非空锚, 网络生成一个 3d 框。为了减少冗余,我们在鸟瞰图框上应 用了非最大压缩(NMS)。与[22]不同,我们没有使用 3d NMS,因为物体应该占据地面上不同的空间。我们对 NMS 使用 0.7 的 IoU 阈值。前 2000 个盒子是在训练期间保存的, 而在测试中,我们只使用了 300 个盒子。
我们设计了一个基于区域的融合网络,以有效地结合多 视图的特征,联合分类对象建议和进行面向三维盒子回归。
多视图 ROI 池 由于来自不同视图/模式的特征通常具有不 同的分辨率,我们对每个视图使用 ROI 池化[9]来获得相同 长度的特征向量。鉴于生成的 3d 建议,我们可以将它们投 影到 3d 空间中的任何视图。在我们的例子中,我们将它们 投影到三个视图中,即鸟瞰视图(BV)、前视图(FV)和图像平 面(RGB)。给定一个 3d 方案 p3D,我们通过以下方式获得 每个视图的投资回报率:
其中T3D→v表示从LIDAR坐标系到鸟瞰图,正视图和像平面的转换函数。给定每个视图前端网络的输入特征映射x,我们通过ROI池获得固定长度的特征f_v:
深度融合 为了结合来自不同特征的信息,先 前的工作通常使用早期融合[1]或晚期融合[22,12]。受[14,26] 的启发,我们采用深度融合方法,分层融合多视图特征。图 3 显示了我们的深度融合网络和早期/晚期融合网络的结构比 较。对于具有 l 层的网络,早期融合将输入阶段多个视图的 特征 ffvg 结合起来:{f_v}:
f_L= H_L (H_(L-1) (· · ·H_1 (f_BV⊕ f_FV⊕〖 f〗_RGB)))
{H_l,l = 1,···,l}是特征变换函数,而⊕是一个连接操作(如拼接、求和)。相反,后期融合使用单独的子网来独立学习特征转换,并在预测阶段组合其输出:
为了使不同视图的中间层的特征之间能够进行更多的交互,我们设计了以下的深度融合过程:
对于深度融合的join操作,我们使用了element-wise均值,因为它与drop-path训练[15]相结合时更加灵活。
定向3D框回归 考虑到多视图网络的融合特性,我们从3D建议回归到定向的3D框。特别地,回归目标是3D框的8个角:t =(∆x_0,···,∆x_7,∆y_0,···,∆y_7,∆z_0,···,∆z_7)。它们被编码为通过建议框的对角线长度归一化的角偏移量。尽管这样的24维矢量表示在表示定向3D框上是多余的,但我们发现这种编码方法比中心和尺寸编码方法更好。请注意,我们的3D框回归与[23]不同,后者回归到轴对齐的3D框。在我们的模型中,可以从预测的3D框角计算对象方向。我们使用多任务损失来共同预测对象类别和定向3D框。与建议网络一样,类别损失使用交叉熵,而3D框损失使用平滑l_1。在训练过程中,根据鸟瞰图框的IoU重叠来确定正/负ROI。如果鸟瞰图IoU重叠超过0.5,则认为3D建议是正面的,否则认为是负面的。在推论过程中,我们在3D边界框回归后将NMS应用于3D框。我们将3D框投影到鸟瞰图以计算它们的IoU重叠。我们使用0.05的IoU阈值删除多余的框,以确保物体在鸟瞰图中不会占据相同的空间。
网络正则化 我们采用两种方法来规范化基于区域的融合网络:下降路径训练[15]和辅助损失。对于每次迭代,我们随机选择以50%的概率执行全局drop-path或局部drop-path。如果选择全局下降路径,我们从三个视图中选择一个具有相同概率的视图。如果选择本地丢弃路径,则以50%的概率随机丢弃输入到每个连接节点的路径。我们确保每个连接节点至少保留一个输入路径。为了进一步增强每个视图的表示能力,我们向网络添加了辅助路径和损失。如图4所示,辅助路径与主网络的层数相同。辅助路径中的每一层与主网络中的相应层共享权重。我们使用相同的多任务损失,即分类损失加上3D框回归损失,来反向传播每个辅助路径。我们对包括辅助损失在内的所有损失进行平均加权。在推理过程中移除辅助路径。
网络体系结构。 在我们的多视图网络中,每个视图具有相同的体系结构。基本网络建立在16层VGG网络[20]上,并进行了以下修改:
我们通过对来自ImageNet上预训练的VGG-16网络的权重进行采样来初始化参数。尽管我们的网络具有三个分支,但参数数量约为VGG-16网络的75%。在GeForce Titan X GPU上,一幅图像的网络推断时间约为0.36s。
输入表示形式。 对于KITTI,它仅提供正视图(大约90°视场)中对象的注释,我们使用[0,70.4]×[-40,40]米范围内的点云。当投影到图像平面时,我们还将删除超出图像边界的点。对于鸟瞰图,离散化分辨率设置为0.1m,因此鸟瞰图输入的大小为704×800。由于KITTI使用64光束Velodyne激光扫描仪,因此我们可以获得前视点的64×512地图。RGB图像按比例放大,因此最短尺寸为500。
训练。 该网络以端到端的方式进行训练。对于每个小批量,我们使用1张图像并采样128个ROI,大致将25%的ROI保持为正。我们使用SGD对网络进行训练,其学习率为0.001,可进行10万次迭代。然后,我们将学习率降低至0.0001,然后再训练20K次迭代。
我们根据具有挑战性的KITTI对象检测基准[9]评估MV3D网络。数据集提供了7,481张图像进行训练和7,518张图像进行测试。由于测试服务器仅评估2D检测,因此我们按照[4]将训练数据分为训练集和验证集,每个训练集和验证集大约包含整个训练数据的一半。我们对验证集进行3D框评估。由于KITTI为基于深度网络的方法提供了足够的汽车实例,因此我们将实验重点放在汽车类别上。根据KITTI的设置,我们对三种难度机制进行评估:简单,中等和困难。
指标。 我们使用3D框召回率作为指标来评估3D对象建议。与2D框召回率[14]不同,我们计算了两个长方体的IoU重叠。注意,长方体不需要与坐标轴对齐,即它们可以是定向的3D框。在我们的评估中,我们将3D IoU阈值分别设置为0.25和0.5。对于最终的3D检测结果,我们使用两个指标来衡量3D定位和3D边界框检测的准确性。对于3D定位,我们将3D框投影到地平面(即鸟瞰图)以获得定向的鸟瞰图框。我们计算鸟瞰图框的平均精度(〖AP〗_loc)。对于3D边界框检测,我们还使用平均精度(〖AP〗_3D)度量标准来评估完整的3D边界框。请注意,鸟瞰视图框和3D框都是有方向的,因此在这两个度量中隐式地考虑了对象的方向。我们还通过将3D框投影到图像平面来评估2D检测的性能。平均精度(〖AP〗_2D)也用作度量指标。遵循KITTI约定,将2D框的IoU阈值设置为0.7。
基线。 由于这项工作是针对三维目标检测,我们主要比较了基于激光雷达的方法VeloFCN[17]、3D FCN[16]、Vote3Deep[7]和Vote3D[26]以及基于图像的方法3DOP[4]和Mono3D[3]。为了公平地比较,我们着眼于我们方法的两个变体,即纯粹基于LIDAR的变体,它使用鸟瞰图和前视图作为输入(BV + FV),而多模式变体则结合了LIDAR和RGB数据(BV + FV + RGB)。对于3D box的评估,我们与VeloFCN、3DOP和Mono3D进行了比较,因为它们在验证集上提供了结果。对于没有公开结果的3D FCN,Vote3Deep和Vote3D,我们仅对测试集上的2D检测进行比较。
3D建议召回。 3D框召回率如图5所示。我们使用300个建议将召回率绘制为IoU阈值的函数。在所有IoU阈值上,我们的方法明显优于3DOP [4]和Mono3D [3]。图5还显示了在IoU阈值为0.25和0.5的情况下,3D召回率作为建议数量的函数。仅使用300个建议,我们的方法在IoU阈值为0.25时获得99.1%的召回率,在IoU阈值为0.5时获得91%的召回率。相比之下,当使用IoU为0.5时,3DOP能达到的最大召回率仅为73.9%。这一巨大的优势表明,我们基于激光雷达的方法优于基于图像的方法。
3D定位。 我们将0.5和0.7的IoU阈值用于3D定位评估。表1显示了在KITTI验证集中的〖AP〗_loc。正如所料,所有基于lidar的方法都比基于stereo的方法3DOP[4]和单目方法Mono3D[3]表现更好。在基于LIDAR的方法中,我们的方法(BV + FV)在IoU阈值为0.5时比VeloFCN [17]高出约25%〖AP〗_loc。当使用IoU = 0.7作为标准时,我们的改进甚至更大,在简单,中等和困难的方案中,〖AP〗_loc均提高了约45%。通过与RGB图像相结合,我们的方法得到了进一步的改进。我们在图6中可视化了一些例子的定位结果。
3D目标检测。 对于3D重叠标准,对于基于LIDAR的方法,我们专注于0.5和0.7的3D IoU。由于这些IoU阈值对于基于图像的方法相当严格,因此我们也使用0.25的IoU进行评估。
如表2所示,当使用IoU为0.5时,我们的“BV+FV”方法获得比VeloFCN高30%的〖AP〗_3D,在中等设置下实现了87.65%的〖AP〗_3D。在IoU = 0.7的标准下,我们的多模式方法在简单数据上仍可达到71.29%的〖AP〗_3D。在中等设置下,使用IoU = 0.25的3DOP可以达到的最佳AP3D为68.82%,而我们使用IoU = 0.5的方法可以达到89.05%的〖AP〗_3D。图6中显示了一些3D检测结果。
消融研究。 我们首先将深度融合网络与早期/晚期融合方法进行比较。正如文献中常用的那样,连接操作在早期/晚期融合方案中是通过连接实例化的。如表3所示,早期和晚期融合方法具有非常相似的性能。在不使用辅助损耗的情况下,与早期和晚期融合方法相比,深度融合方法可实现约0.5%的改进。加入辅助损耗进一步提高深度融合网络约1%。
为了研究不同视角下特征的贡献,我们分别对鸟瞰图(BV)、前视图(FV)和RGB图像(RGB)进行了不同组合的实验。3D建议网络对于所有的变体都是一样的。表4显示了详细的比较。如果仅使用单个视图作为输入,则鸟瞰视图功能的效果最好,而前视图功能的效果最差。将任何两个视图组合起来总是可以改进单个视图。这证明了我们的假设,不同视图的特征是互补的。融合所有三个视图的特征时,可以获得最佳的整体性能。
2D对象检测。 我们最终在KITTI测试仪上评估2D检测性能。结果显示在表5中。在基于LIDAR的方法中,在困难环境下,我们的“ BV + FV”方法比最近提出的3D FCN [16]方法〖AP〗_2D要高10.31%。总体而言,在2D检测方面,基于图像的方法通常比基于LIDAR的方法表现更好。这是因为基于图像的方法直接优化2D框,而基于lidar的方法优化3D框。注意,尽管我们的方法优化了3D框,但与最先进的2D检测方法相比,它也获得了竞争性的结果。
定性结果。如图6所示,与基于立体的方法3DOP[4]和基于激光雷达的方法VeloFCN[17]相比,我们的方法获得了更精确的物体的3D位置、尺寸和方向。
我们提出了一种用于道路场景中3D对象检测的多视图传感器融合模型。我们的模型同时利用LIDAR点云和图像。我们通过生成3D建议,并将它们投射到多个视图中进行特征提取,从而对齐不同的模式。提出了一种基于区域的融合网络,对多视图信息进行深度融合,实现定向3D框回归。在KITTI基准[9]的3D定位和3D检测任务上,我们的方法明显优于现有的基于激光雷达和基于图像的方法。与最新的2D检测方法相比,从3D检测获得的2D框结果也显示出竞争优势。