摘要
本文针对自动驾驶场景中的高精度3D对象检测。我们提出了多视点三维网络(MV3D),这是一个以激光雷达点云和RGB图像为输入,预测定向三维边界框的传感器融合框架。我们使用紧凑的多视图表示对稀疏的3D点云进行编码。该网络由两个子网络组成:一个用于生成三维目标建议,另一个用于多视图特征融合。建议网络从三维点云的鸟瞰图中有效地生成三维候选框。我们设计了一种深度融合方案来结合来自多个视图的区域级特性,并支持不同路径的中间层之间的交互。在具有挑战性的KITTI基准上进行的实验表明,我们的方法在3D定位和3D检测任务上的性能比最先进的方法分别高出约25%和30%。此外,对于二维检测,我们的方法在基于lidar的hard数据上比目前的方法高出10.3%。
1.介绍
三维目标检测在自动驾驶汽车的视觉感知系统中起着重要的作用。现代的自动驾驶汽车通常配备多个传感器,如激光雷达和摄像头。激光扫描仪具有深度信息准确的优点,而照相机则能保存更详细的语义信息。激光雷达点云与RGB图像的融合应该能够达到更高的性能和对自动驾驶汽车的安全性。
本文的研究重点是利用激光雷达和图像数据进行三维目标检测。我们的目标是在道路场景中对物体进行高精度的三维定位和识别。最近基于lidar的方法将3D窗口放置在3D体素网格中,对点云进行评分[26,7],或者在密集框预测方案[17]中对前视图点图应用卷积网络。基于图像的方法[4,3]通常首先生成3D框建议,然后使用Fast RCNN [10]管道执行基于区域的识别。基于LIDAR点云的方法通常可以获得更精确的3D位置,而基于图像的方法在2D框评估方面具有更高的精度。[11,8]通过采用早期或晚期融合方案将LIDAR和图像进行2D检测。但是,对于更具挑战性的3D对象检测任务,需要设计良好的模型来利用多种模态的优势。在本文中,我们提出了一种多视图3D对象检测网络(MV3D),该网络将多模式数据作为输入并预测3D空间中对象的完整3D范围。利用多模式信息的主要思想是执行基于区域的特征融合。我们首先提出一种多视图编码方案,以获得稀疏3D点云的紧凑有效表示。如图 1所示,多视图3D检测网络由两部分组成:3D提议网络和基于区域的融合网络。3D建议网络利用点云的鸟瞰图表示来生成高度精确的3D候选框。3D对象建议的好处是可以将其投影到3D空间中的任何视图。多视图融合网络通过将3D建议从多个视图投影到特征图来提取区域特征。我们设计了一种深度融合方法,以实现来自不同视图的中间层的交互。结合下降路径训练[15]和辅助损失,我们的方法显示出优于早期/晚期融合方案的性能。在多视图特征表示的前提下,网络将执行定向3D框回归,该回归可预测3D空间中对象的精确3D位置,大小和方向。我们在具有挑战性的KITTI[9]目标检测基准上评估了我们的3D方案生成、3D定位、3D检测和2D检测任务的方法。实验表明,我们的3D建议明显优于最近的3D建议方法3DOP [4]和Mono3D [3]。特别地,在只有300个提案的情况下,我们在交并比(IoU)阈值为0.25和0.5的情况下分别获得了99.1%和91%的3D召回率。基于激光雷达的方法在三维定位任务中的精度提高了25%,在三维目标检测任务中的平均精度提高了30%。在KITTI的hard测试集上进行2D检测时,它的性能也比所有其他基于LIDAR的方法高出10.3%AP。当与图像结合时,将比基于LIDAR的结果获得进一步的改进。
2.相关工作
从点云和图像、多模态融合方法和3D目标建议三个方面简要回顾了3D目标检测的研究现状。
点云中的3D目标检测。 大多数现有方法都使用体素网格表示对3D点云进行编码。滑动形状[22]和Vote3D [26]在使用几何特征编码的3D网格上应用SVM分类器。一些最近提出的方法[23,7,16]通过3D卷积网络改进了特征表示,但是这需要昂贵的计算。除了3D体素表示之外,VeloFCN [17]将点云投影到正视图,从而获得2D点图。他们在2D点图上应用了完全卷积网络,并从卷积特征图中密集地预测了3D框。[24, 18, 12]研究点云的体积和多视图表示,用于三维对象分类。在这项工作中,我们使用多视图特征图对3D点云进行编码,从而实现基于区域的多模态融合表示。
图像中的3D对象检测。 3DVP [28]引入了3D体素模式,并采用了一组ACF检测器来进行2D检测和3D姿态估计。3DOP[4]从立体图像重建深度,并使用能量最小化的方法生成3D框建议,这些建议被输入到R-CNN[10]管道中进行对象识别。虽然Mono3D [3]与3DOP共享相同的管道,但它会从单目图像生成3D建议。 [31,32]介绍了使用3D线框模型的对象的详细几何图形表示。为了整合时间信息,一些工作[6,21]将运动和地面估计的结构结合起来,将2D检测框提升到3D边界框。基于图像的方法通常依赖于精确的深度估计或地标检测。我们的工作展示了如何整合LIDAR点云来改善3D定位。
多模态融合。 在自动驾驶的背景下,只有很少利用多种数据模式的研究。[11]使用专家混合物框架将图像,深度和光流进行组合,以进行2D行人检测。[8]在早期融合RGB和深度图像,并训练基于姿势的分类器进行2D检测。在本文中,我们设计了一种受FractalNet [15]和Deeply-Fused Net [27]启发的深度融合方法。在FractalNet中,一个基模块被迭代地重复来构建一个具有指数增长路径的网络。同样,[27]通过组合浅层和深层子网来构建深层融合网络。我们的网络与它们的区别在于,每列使用相同的基础网络,并添加辅助路径和损失以进行正则化。
3D对象建议。 类似于2D对象建议[25、33、2],3D对象建议方法会生成一小组3D候选框,以便覆盖3D空间中的大多数对象。为此,3DOP [4]在立体点云中设计了一些深度特征,以对大量3D候选框进行评分。Mono3D[3]利用地平面先验知识,利用一些分割特征,从单个图像中生成3D方案。3DOP和Mono3D都使用了手工制作的功能。深层滑动形状[23]利用了更强大的深层学习特性。然而,它在3D体素网格上运行,并使用计算昂贵的3D卷积。我们提出了一种更有效的方法,通过引入点云的鸟瞰视图表示,并使用2D卷积来生成准确的3D建议。
3.MV3D网络
MV3D网络采用3D点云和图像的多视图表示作为输入。它首先从鸟瞰图生成3D对象建议,然后通过基于区域的表示法将多视图特征深度融合。融合的特征用于类别分类和定向的3D框回归。
3.1 3D点云表示
现有工作通常将3D LIDAR点云编码为3D网格[26,7]或正视图[17]。虽然3D网格表示保留了点云的大部分原始信息,但后续的特征提取通常需要更复杂的计算。通过将3D点云投影到鸟瞰图和正视图,我们提出了一种更紧凑的表示形式。
鸟瞰图表示。 鸟瞰图的表示是由高度、强度和密度编码的。我们将投影点云离散化为分辨率为0.1m的2D网格。对于每个单元,高度特征计算为单元中点的最大高度。为了对更详细的高度信息进行编码,将点云平均分为M个切片。为每个切片计算一个高度图,因此我们获得M个高度图。强度特征是每个单元中具有最大高度的点的反射率值。点云密度表示每个单元中点的数量。为了规范化特征,将其计算为min(1.0,(log(N + 1))/(log(64))),其中N是单元中的点数。请注意,强度和密度特征是针对整个点云计算的,而高度特征是针对M个切片计算的,因此总的来说,鸟瞰图被编码为(M + 2)通道特征。
前视图表示。 前视图表示为鸟瞰视图表示提供补充信息。由于LIDAR点云非常稀疏,因此将其投影到图像平面中会生成稀疏的2D点图。相反,我们将它投影到一个柱面来生成一个密集的前视图映射,就像在[17]中一样。给定3D点p =(x,y,z),可以使用以下公式计算其在前视图中的坐标p_fv=(r,c):
c = ⌊atan2(y,x)/∆θ⌋
r = ⌊atan2(z,√(x2+y2 )/∆∅)⌋
其中∆θ和∆φ分别是激光束的水平和垂直分辨率。我们使用三通道特征(高度,距离和强度)对前视图地图进行编码,如图2所示。
3.2 3D建议网络
区域建议网络(RPN)已经成为最先进的二维物体探测器[19]的关键组件,受此启发,我们首先设计了一个网络来生成三维物体建议。我们使用鸟瞰图作为输入。在3D对象检测中,鸟瞰图与正视图/图像平面相比具有多个优势。首先,对象在投影到鸟瞰图时会保留物理尺寸,因此尺寸变化很小,而在前视图/图像平面中则不是这种情况。其次,鸟瞰图中的物体占据了不同的空间,从而避免了遮挡问题。第三,在道路场景中,由于对象通常位于地平面上并且垂直位置的变化很小,因此鸟瞰位置对于获取准确的3D边界框至关重要。
给出鸟瞰图。网络会从一组3D先验框生成3D框建议。每个3D框都由(x,y,z,l,w,h)参数化,它们是LIDAR坐标系中3D框的中心和大小(以米为单位)。对于每个3D先验框,可以通过离散化(x,y,l,w)来获得相应的鸟瞰锚点(x_bv,y_bv,l_bv,w_bv)。我们通过在训练集中聚类地面真实物体大小来设计N个3D先验框。在car detection情况下,先验box的(l,w)取{(3.9,1.6),(1.0,0.6)}的值,高度h设置为1.56m。通过将鸟瞰图锚点旋转90度,我们得到N = 4个先验框。(x, y)为鸟瞰图特征点的变化位置,可以根据相机高度和物体高度计算出z。在生成建议时,我们不做方向回归,而将其留到下一个预测阶段。3D框的方向限于{0◦,90◦},与大多数道路场景对象的实际方向接近。这种简化使得建议回归的训练更容易。
离散化分辨率为0.1m,鸟瞰图中的对象框仅占据5-40像素。对于深度网络而言,检测此类超小型物体仍然是一个难题。一种可能的解决方案是使用更高的输入分辨率,但是这将需要更多的计算。如[1]所示,我们选择了特征映射上采样。在建议网络的最后一个卷积层之后,我们使用2倍双线性上采样。在我们的实现中,前端卷积仅进行三个池化操作,即8x下采样。因此,结合2倍的反卷积,馈送至建议网络的特征图相对于鸟瞰输入降低了4倍的采样率。
我们通过回归到t =(∆x,∆y,∆z,∆l,∆w,∆h)进行3D 框回归,类似于RPN [19]。(Δx,Δy,Δz)是通过锚点尺寸归一化的中心偏移量,(Δl,Δw,Δh)由Δs= log s_GT/s_anchor ,s∈{l,w,h}计算。我们使用多任务损失同时分类对象/背景和做3D框回归。特别地,我们将类熵用于“对象”损失,将Smooth l_1 [10]用于3D框回归损失。计算框回归损失时,将忽略背景锚。在训练期间,我们计算锚点和地面真相鸟瞰图框之间的IoU重叠。如果锚点的重叠度大于0.7,则将其视为正值;如果重叠度小于0.5,则将其视为负值。锚点之间重叠的锚将被忽略。
由于LIDAR点云的稀疏性,导致许多空锚,因此在训练和测试过程中,我们会移除所有空锚,以减少计算量。这可以通过计算点占用图上的积分图像来实现。
对于最后一个卷积特征图每个位置上的每个非空锚,网络会生成一个3D框。为了减少冗余,我们在鸟瞰框上应用了非最大抑制(NMS)。与[23]不同的是,我们没有使用3D NMS,因为对象在地平面上应该占据不同的空间。对于NMS,我们将IoU阈值设置为0.7。在训练过程中保留了前2000个框,而在测试中,我们只使用了300个框。
3.3 基于区域的融合网络
我们设计了一个基于区域的融合网络,可以有效地结合来自多个视图的特征,共同对对象建议进行分类,并进行定向3D框回归。
多视图ROI池化。 由于来自不同视图/模式的特征通常具有不同的分辨率,因此我们对每个视图采用ROI池化[10]以获得相同长度的特征向量。给定生成的3D建议,我们可以将它们投影到3D空间中的任何视图。在我们的示例中,我们将它们投影到三个视图,即鸟瞰(BV),正视图(FV)和像平面(RGB)。给定一个3D 建议p_3D,我们通过以下方式获得每个视图的ROI:
其中T3D→v表示从LIDAR坐标系到鸟瞰图,正视图和像平面的转换函数。给定每个视图前端网络的输入特征映射x,我们通过ROI池获得固定长度的特征f_v:
深度融合。 为了结合来自不同特征的信息,以前的工作通常使用早期融合[1]或晚期融合[23,13]。受[15,27]的启发,我们采用了深度融合方法,该方法将多视图特征分层融合。图3显示了我们的深度融合网络和早期/晚期融合网络的架构比较。对于具有L层的网络,早期的融合在输入阶段结合了来自多个视图的特征{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框回归损失,来反向传播每个辅助路径。我们对包括辅助损失在内的所有损失进行平均加权。在推理过程中移除辅助路径。
3.4 实现
网络体系结构。 在我们的多视图网络中,每个视图具有相同的体系结构。基本网络建立在16层VGG网络[20]上,并进行了以下修改:
- 通道减少到原始网络的一半。
- 为了处理超小对象,我们使用特征逼近来获得高分辨率的特征图。特别地,在将最后一个卷积特征图送入3D Proposal网络之前,我们插入一个2x双线性上采样层。同样,我们在BV/FV/RGB分支的ROI池化层之前插入一个4x/4x/2x上采样层。
- 我们删除了原始VGG网络中的第4个池化操作,因此我们网络的卷积部分进行了8倍下采样。
- 在多视图融合网络中,除了原始的fc6和fc7层之外,我们还添加了一个额外的全连接层fc8。
我们通过对来自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次迭代。
4.实验
我们根据具有挑战性的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位置、尺寸和方向。
5.结论
我们提出了一种用于道路场景中3D对象检测的多视图传感器融合模型。我们的模型同时利用LIDAR点云和图像。我们通过生成3D建议,并将它们投射到多个视图中进行特征提取,从而对齐不同的模式。提出了一种基于区域的融合网络,对多视图信息进行深度融合,实现定向3D框回归。在KITTI基准[9]的3D定位和3D检测任务上,我们的方法明显优于现有的基于激光雷达和基于图像的方法。与最新的2D检测方法相比,从3D检测获得的2D框结果也显示出竞争优势。