选自arXiv
作者:Yilun Chen、Shu Liu、Xiaoyong Shen、Jiaya Jia
机器之心编译
参与:韩放、一鸣
本文提出了一个统一、高效且有效的,基于点云的三维目标检测框架。其两阶段方法采用体素表示和原始点云数据并充分利用了它们的优势。第一阶段的网络,以体素表示为输入,只包含轻量卷积运算,产生少量高质量的初始预测。初始预测中每个点的坐标和索引卷积特征与注意机制有效融合,既保留了准确的定位信息,又保留了上下文信息。第二阶段研究内部点及其融合特征,以进一步完善预测。该方法在 KITTI 数据集上进行了评估,包括 3D 和鸟瞰图(BEV)检测,以 15FPS 的检测速率达到了最先进的水平。
论文地址:https://arxiv.org/abs/1908.02990v1
引言
最近的一些三维目标检测方法利用了不同类型的数据,包括单目图像,立体图像和 RGB-D 图像。在自动驾驶中,激光雷达探测到的点云是更为通用和信息丰富的数据格式,有助于进行预测。
激光雷达点云是三维检测中必不可少的几何数据类型。然而,点云的稀疏性和不规则性使其难以被 CNN 处理。其中一种解决方案是通过分解将稀疏点云转化为紧凑形状的立体表示,称为体素化。这种特征能够通过 CNN 进行识别。
然而,体积表示在计算上仍然具有挑战性。一种解决方案是使用粗网格,另一种方法是直接处理点云进行三维目标识别 [26, 28, 19, 36],研究人员注意到,将这些方法应用于进行大规模点云处理的自动驾驶任务中,计算量仍然非常繁重。
对此,该文章利用体素表示和原始点云数据,提出了一种统一、快速、有效的两阶段三维目标检测框架。网络的第一阶段,使用 VoxelRPN,直接利用点云的体素表示。
在第二阶段,研究人员应用一个轻量级的 PointNet 来进一步细化预测。有了少量的初步预测,第二阶段的网络运行速度也非常快。从第一阶段开始,研究人员就设计了注意机制的模块,以有效地融合每个内部点的坐标和卷积特征。它使每个点都知道它的上下文信息。
由于该方法利用点云上每个区域的卷积特征,并且效率很高,研究人员将其命名为 Fast Point R-CNN。通过这种概念简单的结构,实现了高效率和良好的三维检测精度,并达到了最先进的结果。它甚至比以前的以 RGB 和点云为输入的方法更有效。
模型架构
该方法新颖地利用了混合体素和原始点云,而不依赖于 RGB 图像。两阶段首先将体素表示输入到 VoxelRPN 快速获取一组初始预测,进而 RefinerNet 融合原始点云和提取上下文特征以获得更好的定位精度。
图 1:两阶段框架概述。在第一阶段,对点云进行体素化,并将其送入 VoxelRPN,以生成少量的初始预测结构。然后通过融合体素的内点坐标和上下文特征,生成每个预测的边界框特征。边界框特征被送入 RefinerNet 以进一步微调。
VoxelRPN
VoxelRPN 接受三维体素输入并生成三维检测结果。它是一个单级目标检测器。
输入表示 :VoxelRPN 的输入是是体素化处理后的点云,它实际上是一个规则网格。网格中的每个体素都包含位于局部区域中的原始点的信息。具体地说,该方法将三维空间划分为空间排列的体素。
网络结构:针对三维检测,网络需要从(x,y,z)维度清楚地过滤信息。主干网由二维和三维卷积组成,实现了像 PIXOR[40] 一样的高效率,以及甚至比 VoxelNet[43] 更高的性能。
图 2:oxelRPN 网络结构。本图中 C 层的级联方式为:(kernel size)(channels) / (stride)。stride 默认为 1,除非以其它方式指定。
第一部分的网络包括六个三维卷积层,这些卷积层只有少量的滤波器来减少运算时间。之后是三个二维卷积块,用于进一步提取和扩大感受野。
与目前流行的二维图像多尺度目标检测器 [21] 不同,研究者认为 HyperNet[14] 结构更为合适。
具体来说,VoxelRPN 通过反卷积对 2、3 和 4 卷积块最后一层的特征图进行上采样,如图 2 所示。然后将它们连接起来,在较低的层中收集丰富的位置信息,在较高的层中收集更强的语义信息。然后,研究人员将预定义的特定比例和角度的 anchors[22] 用于融合的特征图上。最后,将分类和回归头分别运行在特征图上,对每个 anchor 进行分类,并对现有目标的位置进行回归运算。
RefinerNet
由于第一阶段体素化过程和第一个卷积块上的连续跨步卷积运算仍然会丢失大量的定位信息,研究人员通过直接处理原始点云进一步提高了预测质量。在 RefinerNet 中也可以通过进一步的特征增强来弥补这一点。
图 3:RefinerNet 网络结构
边界框特征:使用 VoxelRPN 每个边界框中的点预测来生成框特征。
对于每个来自 VoxelRPN 的预测边界框,首先将其投影到 BEV。然后,将 BEV 框区域中的所有点(1.4×框的大小以获得更多上下文信息)用作输入,如图 1 所示。研究者从 VoxelRPN 网络中获得最后级联的特征图,用于捕捉更全面的信息。
在将每个点的坐标输入到之后的网络之前,首先要对其进行规范化(canonizize),以保证平移和旋转不变性。提案框周围 0.3 米范围内的点的坐标通过旋转和平移提案框来进行裁剪和规范。如图 3 所示,将坐标特征定义为通过 MLP 层获得的高维(128D)表示。
图 4:边界框规范化。数字表示 RefinerNet 对每个角预测的顺序。
网络结构:网络需要使用卷积特征和定位特征这两种特征源,研究人员找到了一种有效融合它们的方法。研究人员设计了一个新的模块,这是一个可以生成综合特征的注意力机制。如图 3 所示,首先将高维坐标特征与卷积特征级联起来,然后将它与由卷积特征产生的注意力相乘。接下来输入一个轻量级的 PointNet,它由两个 MLP 层组成,最大池化将所有信息聚合到一个框中。
这个边界框的精调是通过最后两个 MLP 层实现的。模型可以基于提案的边界框预测所有边界框角点的精细位置。如图 4 所示,在计算回归目标时,通过提案框的旋转和平移来将真值框和点云规范化。此操作将真值边界框的角点按特定顺序组织,可以减少旋转引起的角顺序不确定性。
训练和数据
训练 Fast Point R-CNN 包括两个步骤。首先训练 VoxelRPN 直到收敛,然后根据提取的特征和推断的边界框对 Refiner- Net 进行训练。
数据集
KITTI 数据集提供 7481 张图像和点云用于训练,7518 张用于测试。根据规则,将训练数据分为一个训练集(3712 个图像和点云),其中约有 14000 个汽车标注和一个验证集(3769 个图像和点云)。
训练设置
模型在 8 个 NVIDIA P40 GPU 上进行训练,批量大小为 16,每个 GPU 可容纳 2 个点云。研究人员将初始学习率为 0.01 的 Adam[12] 优化器应用于 VoxelRPN 和 RefinerNet 的训练。VoxelRPN 进行了 70 个 epoch 的训练,在第 50 和 65 个 epoch 学习率下降了 10 倍。RefinerNet 持续训练 70 个 epoch,第 40、55、65 个 epoch 学习率下降 10 倍。
在每个参数层之后使用批处理归一化。两个网络都使用 0.0001 的权重衰减。由于 RefinerNet 的训练需要 VoxelRPN 的卷积特征,因此对每帧进行训练,而不是对一个目标进行训练,从而节省了大量的计算量。
实验结果
表 1:KITTI 测试集上的主要结果对比。此处 L 代表点云输入,I 代表 RGB 图像输入。
图 5:结果可视化
表 5:VoxelRPN 和论文方法附近和远距离目标的检测精确率对比。