Joint 3D Proposal Generation and Object Detection from View Aggregation论文学习

Joint 3D Proposal Generation and Object Detection from View Aggregation(利用视角聚合进行3Dproposal生成和3D目标检测的联合执行)
作者:Jason Ku, Melissa Mozifian, Jungwook Lee, Ali Harakeh, and Steven L. Waslander
1 Abstract
我们介绍AVOD,一种用于自动驾驶场景的聚合视图对象检测网络。 所提出的神经网络架构使用LIDAR点云和RGB图像来生成由两个子网共享的特征:区域提议网络(RPN)和第二级检测器网络。 所提出的RPN使用能够在高分辨率特征图上执行多模态特征融合的新颖架构,以为道路场景中的多个对象类生成可靠的3D对象提议。 使用这些提议,第二阶段检测网络执行精确定向的3D边界框回归和类别分类,以预测3D空间中对象的空间范围,方向和分类。 我们提出的架构显示了在KITTI 3D物体检测基准[1]上产生最先进的结果,同时实时运行且内存占用少,使其成为在自动驾驶车辆上部署的合适候选者。
2 Introduction
深度神经网络近年来在二维物体检测任务上取得的显着进步并没有很好地转移到三维物体的检测中。 两者之间的差距在标准基准测试中仍然很大,例如KITTI物体检测基准测试[1],其中2D汽车探测器已达到超过90%的平均精度(AP),而同一数据上的最高得分3D汽车探测器仅达到70%AP。 产生这种差距的原因在于,通过在估计问题中增加第三维度,3D输入数据的低分辨率以及作为距离函数的质量劣化而引起的困难。 此外,与2D对象检测不同,3D对象检测任务需要估计定向边界框(图1)。
Joint 3D Proposal Generation and Object Detection from View Aggregation论文学习
与2D目标检测任务类似,用于3D目标探测的方法中大多数最先进的深度模型,都依赖于3DRPN生成步骤以减少3D搜索空间。 使用区域提议网络允许在其后的检测阶段通过更复杂和计算上耗时的处理方式来生成高质量检测结果。 但是,在提案生成阶段的任何被漏检的实例在其后阶段都无法被检测到。 因此,在区域建议生成阶段(RPN)实现high recall对于良好的检测结果至关重要。
区域建议网络(RPN)是在Faster-RCNN [2]中被提出的,并且已经成为2D目标探测器中的主流proposal generators。 RPN 可被视为弱结构的检测器,提供高recall和低精度的proposal。 这些深层架构很有吸引力,因为它们能够与其他检测阶段共享计算代价高昂的卷积特征提取器。 但是,将这些RPN扩展到3D是一项非常重要的任务。 Faster R-CNN中的RPN架构专为密集的高分辨率图像输入而定制, 在考虑稀疏和低分辨率输入(如前视图[3]或鸟瞰视图(BEV)[4]点云投影)时,此方法无法保证有足够的信息来生成区域提议,尤其是对于小对象。
在本文中,我们旨在通过提出AVOD(一种用于自动驾驶的聚合视图对象检测架构)来解决这些困难(图2)。受语义分割模型的启发[5],所提出的神经网络体系结构使用了一种新颖的特征提取器,可以从LIDAR点云和RGB图像生成高分辨率特征图。这些特征图由两个子网共享:区域提议网络(RPN)和第二级检测器网络。特征提取器与RPN耦合,该RPN能够使用来自多个输入模式的高分辨率全尺寸特征裁剪用于proposal生成任务,从而允许进行更高recall的对较小对象类别的检测。使用这些建议,第二阶段检测网络执行精确定向的3D边界框回归,预测3D中对象的范围,方向和类别分类。我们在具有挑战性的KITTI 3D物体检测基准上评估建议生成,3D检测和鸟瞰图(BEV)检测任务的建议架构。我们展示了我们的网络在所有类别上提供最先进的结果,同时以小内存占用空间实时运行。我们将网络集成到我们的自动驾驶堆栈中,并在更极端的天气和照明条件下展示新场景和检测,使其成为在自动驾驶车辆上部署的合适候选者。
Joint 3D Proposal Generation and Object Detection from View Aggregation论文学习
3 related work
用于提议生成的人工制作特征:在3D区域提案网络(RPN)[2]出现之前,3D提案生成算法通常使用人为制作的特征来生成一小组候选框,用于检索3D空间中的大多数对象。 3DOP [6]和Mono3D [7]使用各种手工制作的几何特征,包括立体点云和单眼图像,在能量最小化框架中获得3D滑动窗口。 选择前K个评分窗口作为区域提议,然后由修改的Fast-RCNN [8]使用,以生成最终的3D检测。 我们使用区域建议网络来学习BEV和图像空间的特征,以便以有效的方式生成更高质量的建议。
无proposal的single shot探测器:one shot目标探测器也被提议作为3D物体探测任务的无RPN架构。 VeloFCN [3]将LIDAR点云投射到前视图,该视图用作完全卷积神经网络的输入,以直接生成密集的3D边界框。 3D-FCN [9]通过在由LIDAR点云构造的3D体素网格上应用3D卷积来扩展这一概念,以生成更好的3D边界框。 我们的两阶段架构使用RPN来检索道路场景中的大多数对象实例,与这两种单镜头方法相比,可以提供更好的结果。 VoxelNet [10]通过使用逐点特征而不是占用值编码体素来进一步扩展3D-FCN。 然而,即使使用稀疏3D卷积操作,VoxelNet的计算速度仍然比我们提出的架构慢3倍,这为汽车和步行类提供了更好的结果。
基于单目相机的proposal生成:现有技术中的另一个方向是使用成熟的2D物体检测器在2D中生成提案,然后通过模式范围回归将其扩张到3D。 这种趋势始于[11],用于室内物体检测,它启发了基于Frustum的PointNets(F-PointNet)[12],使用PointNet [13]的逐点特征代替点直方图进行范围回归。 虽然这些方法适用于室内场景和明亮的室外场景,但预计它们在更极端的室外场景中表现不佳。 任何错过的2D检测都将导致错过3D检测,因此,在这种极端条件下这些方法的泛化能力尚未得到证实。 LIDAR 数据的变化远小于图像数据,我们在第IV节中表明,AVOD 对于嘈杂的LIDAR数据和光照变化具有鲁棒性,因为它在雪景和低光条件下进行了测试。
基于单目的3D物体检测器:利用成熟的2D物体检测器的另一种方式是使用先验知识仅从单眼图像执行3D物体检测。 深层MANTA [14]提出了一种基于单眼图像的多任务车辆分析方法,可同时优化区域建议,检测,2D盒回归,零件定位,零件可视性和3D模板预测。 该体系结构需要与几种类型的车辆相对应的3D模型的数据库,使得所提出的方法难以概括为不存在这种模型的类。 Deep3DBox [15]提出通过利用3D边界框的透视投影应紧密地适合其2D检测窗口这一事实,将2D对象探测器扩展到3D。 但是,在第IV节中,与使用点云数据的方法相比,这些方法在3D检测任务上表现不佳。
3D区域proposal网络:以前在[16]中提出了用于从RGBD图像进行3D目标检测的3D RPN。然而,根据我们的了解,MV3D [4]是唯一提出针对自动驾驶场景的3D RPN的架构。 MV3D通过将BEV特征图中的每个像素对应多个先前的3D锚点,将基于图像的faster R-CNN [2]中的RPN扩展到3D。然后将这些锚点馈送到RPN以生成3D proposal,用于从BEV创建视图特定的特征裁剪,[3]的前视图和图像视图特征映射。深度融合方案用于组合来自这些特征作物的信息以产生最终检测输出。但是,此RPN体系结构不适用于BEV中的小目标实例。当通过卷积特征提取器进行下采样时,小实例将占据最终特征映射中的一小部分像素,导致数据不足以提取信息特征。我们的RPN架构旨在融合图像中的全分辨率特征裁剪和BEV特征图作为RPN的输入,从而为较小的类生成高recall的建议proposal。此外,我们的特征提取器提供了全分辨率的特征映射,这些特征映射在检测框架的第二阶段显示出极大地帮助小目标的定位准确性。
4 The AVOD architecture
本文提出的方法,如图2所示,使用特征提取器从BEV图和RGB图像生成特征图。 然后,RPN使用这两个特征图来生成非定向区域proposal,这些proposal被传递到检测网络以进行维度细化,方向估计和类别分类。

  1. Generating Feature Maps from Point Clouds and Images
    我们按照[4]中描述的程序从0.1米分辨率的点云的体素网格表示生成六通道BEV图。 点云在[-40,40]×[0,70]米处裁剪,以包含摄像机视野内的点。 BEV图的前5个通道使用每个网格单元中的最大点高度进行编码,从沿Z轴的[0,2.5]米之间的5个相等切片生成。第六个BEV channel包含了每个cell中的点密度信息:
    (1.0,log(N+1)log16)(1.0,\frac{log(N+1)}{log16})
  2. The Feature Extractor
    proposal的体系结构使用两个相同的特征提取器体系结构,每个输入一个图(RGB或BEV)。全分辨率特征提取器如图3所示,包括两个部分:编码器和解码器。编码器在VGG-16 [17]之后建模,进行了一些修改,主要是将通道数减少一半,并在conv-4层切断网络。因此编码器将M×N×D图像或BEV图作为输入,并产生M8×N8×D\frac{M}{8}×\frac{N}{8}×D^*特征图F. F具有高代表能力,但与输入相比分辨率低8倍。在BEV中,KITTI数据集中的平均行人占0.8×0.6米。这转换为BEV图中的8×6像素区域,分辨率为0.1米。下采样8倍导致这些小类在输出特征图中占据不到一个像素,这没有考虑由卷积引起的感受场的增加。受特征金字塔网络(FPN)[18]的启发,我们创建了一个自下而上的解码器,学习将特征映射上采样回原始输入大小,同时保持运行时速度。解码器将编码器的输出F作为输入,并产生新的M×N×D^M×N×\hat{D}特征图。图3示出了由解码器执行的操作,其包括通过转换 - 转置操作对输入进行上采样,来自编码器的对应特征图的级联,以及最后通过3×3卷积操作来融合两者。最终的特征图具有高分辨率和代表性功率,并且由RPN和第二级检测网络共享。
    Joint 3D Proposal Generation and Object Detection from View Aggregation论文学习
  3. Multimodal Fusion Region Proposal Network
    类似于2D两级探测器,所提出的RPN回归了一组先前3D框与地面实况之间的差异。 这些先前的框被称为锚,并且使用图4中所示的轴对齐的边界框编码来编码。锚框通过质心txtytz(t_x,t_y,t_z)和轴对齐尺寸txtytz(t_x,t_y,t_z)来参数化。 为了生成3D锚网格,在BEV中以0.5米的间隔对txty(t_x,t_y)对进行采样,而tzt_z基于传感器在地平面上方的高度来确定。 通过聚类每个类的训练样本来确定锚的维度。通过完整的图像, 没有BEV中3D点的锚点被有效地移除,最终生成每帧80-100K个非空锚点。
    Joint 3D Proposal Generation and Object Detection from View Aggregation论文学习
    通过多视图裁剪提取特征裁剪并调整操作大小(Extracting Feature Crops Via Multiview Crop And Resize Operations):要从视图特定特征映射中提取每个锚点的特征裁剪,我们使用裁剪和调整大小操作[19]。 给定3D中的锚点,通过将锚点投影到BEV和图像特征图上来获得两个感兴趣区域。 然后使用相应的区域从每个视图中获得裁剪结果,然后将其双线性地调整为3×3以获得等长特征向量。(为什么是3×3?)
    通过1×1卷积层降低维度(Dimensionality Reduction Via 1 × 1 Convolutional Layers:):在某些情况下,区域提议网络需要在GPU内存中保存100K锚点的特征裁剪。 尝试直接从高维特征映射中提取特征裁剪会使每个输入视图产生大量内存开销。 例如,从256维特征映射中提取100K锚点的7×7特征裁剪需要大约5千兆字节的内存,假设32位浮点表示。 此外,利用RPN处理这种高维特征作物极大地增加了其计算要求。
    受[20]中使用的启发,我们建议应用1×1 输出特征上的卷积核到每个图像输出的特征图上,作为一种有效的降维机制。 1×1卷积根据以下内容作用于每个特征图中的每个像素位置:
    fout=σ(i=0D^ωifi+b)f_{out}=\sigma{(\sum^{\hat{D}}_{i=0}{\omega_{i}f_i}+b)}
    其中fif_i是特征的在每个D^\hat{D}通道的像素值,wiw_i是学习的权重,b是学习的偏见项。 这些1×1卷积可以被认为是滤波器空间中严格的线性坐标相关变换,接着是非线性**函数σ。 通过学习这些转换,RPN减少了其输入特征图的维度,同时保留了对生成的proposal的有用的信息。 从计算的角度来看,1×1卷积是跨越特征图深度的点积,并且可以在GPU上有效地计算。 结果是一种特征选择机制,可以减少用于计算锚点特定特征的开销D^×\hat{D}×,从而允许RPN仅使用几兆字节的额外内存来处理数万个锚点的融合特征.
    3D提案生成(Explicit Orientation Vector Regression):裁剪和调整大小操作的输出是来自两个视图的大小相同的特征裁剪,它们通过逐元素平均操作进行融合。大小为256的完全连接的层的两个任务特定分支[2]使用融合特征裁剪来回归轴对齐的对象提议框并输出对象/背景“对象性”分数。通过计算(Δtx,Δty,Δtz,Δdx,Δdy,Δdz)(Δt_x,Δt_y,Δt_z,Δd_x,Δd_y,Δd_z),锚点和groundTruth边界框之间的质心和尺寸的差异来执行3D框回归。平滑L1损失用于3D盒回归,而交叉熵损失用于“对象性”。与[2]类似,在计算回归损失时忽略背景锚。通过计算锚和地面实况边界框之间的BEV中的2D IoU来确定背景锚。对于汽车类,IoU小于0.3的锚被认为是背景锚,而IoU大于0.5的锚被认为是对象锚。对于步行者和骑自行车者类,对象锚IoU阈值减少到0.45。为了删除冗余proposal,BEV中IoU阈值为0.8的2D非极大抑制(NMS)用于在训练期间保留前1024个proposal。在推理时,300个提案被用于汽车类,而1024个提案被保留给行人和骑自行车者。
  4. Bounding Box Encoding
    3D边界框编码:在[4]中,陈等人声称8角盒编码提供了比[16]中先前提出的传统轴对齐编码更好的结果。但是,8角编码没有考虑3D边界框的物理约束,因为边界框的顶角*与底部的顶角对齐。为了减少冗余并保持这些物理约束,我们建议使用四个角和两个高度值对边界框进行编码,这两个高度值表示从传感器高度确定的地平面的顶部和底部拐角偏移。因此,我们的回归目标是Δx1...Δx4Δy1...Δy4Δh1Δh2(Δx_1...Δx_4,Δy_1...Δy_4,Δh_1,Δh_2),proposal与groundTruth框之间的地平面的拐角和高度偏移。为了确定拐角偏移,我们将proposal的最近角对应于BEV中地面实况框的最近角。所提出的编码将框表示从过度参数化的24维向量减少到10维向量.
    显式方向向量回归:为了确定来自3D边界框的方向,MV3D [4]依赖于估计的边界框的范围,其中方向向量被假定为在框的较长边的方向上。这种方法存在两个问题。首先,对于不总是遵守上述规则的检测对象,例如行人,该方法失败。其次,所得到的取向仅在±π弧度的附加常数下才知道。由于角落顺序未在最接近的角落到角落匹配中保留,因此定向信息会丢失。图1给出了相同矩形边界框如何包含具有相反方向矢量的对象的两个实例的示例。我们的架构通过计算(xor,yor)=(cos(θ),sin(θ))来解决这个问题。该定向矢量表示隐含地处理角度包装,因为每个θ∈[-π,π]可以由BEV空间中的唯一单位矢量表示。我们使用回归的方向向量来解决从采用的四角表示中的边界框方向估计的模糊性,因为这实验上发现比直接使用回归方向更准确。具体来说,我们提取边界框的四个可能的方向,然后选择最接近显式回归方向向量的方向.
    生成最终检测:与RPN类似,多视图检测网络的输入是通过将提议投影到两个输入视图中而生成的特征作物。由于提议的数量比锚的数量低一个数量级,因此使用深度为D = 32的原始特征图来生成这些特征作物。来自两个输入视图的裁剪调整为7×7,然后与逐元素平均操作融合。一组三个完全连接的大小为2048的图层处理融合特征作物,以输出每个提案的框回归,方向估计和类别分类。与RPN类似,我们采用多任务损失,将边界框和方向向量回归任务的两个平滑L1损失与分类任务的交叉熵损失相结合。如果他们在BEV中至少有0.65或0.55 2D IoU与汽车和步行/自行车运动员类别的地面实况框,则仅在评估回归损失时考虑建议。要删除重叠检测,NMS的使用阈值为0.01。