标题:VoxelNet: End-to-End Learning for Point Cloud Based 3D Object Detection
作者:Yin Zhou, Oncel Tuzel
来源:CVPR 2018
- 摘要
准确检测 3D 点云中的物体是许多应用中的核心问题,例如自主导航,管家机器人和 AR/VR。为了将高度稀疏的LiDAR点云与区域提议网络(RPN)连接起来,大多数现有的工作都集中在手工特征表示上,例如鸟瞰视图投影。在本文中,作者提出了 VoxelNet,该方法不再需要 3D 点云的手动特征工程,而是一种通用的 3D 检测网络,可将特征提取和边界框预测统一到一个单阶段、端到端的可训练深度网络中。具体而言,VoxelNet 将点云划分为等间隔的3D体素(Voxel),并通过新引入的体素特征编码(VFE)层将每个体素内的一组点转换为单一特征表示。通过这种方式,点云被编码为具有描述性的体积表示,然后将其连接到 RPN 以生成检测结果。KITTI 数据集上车辆检测的实验表明,VoxelNet 优于当前最先进的基于LiDAR 的 3D 检测方法。此外,该网络学习到了具有各种几何形状的、能够有效区别物体的特征描述,从而在仅基于 LiDAR的行人和骑车者的3D检测中产生良好的结果。
- 主要贡献
1、提出了端到端、可训练的深度网络架构 VoxelNet,用于 3D 检测,可以直接处理稀疏的 3D 点云,避免了由人工设计的特征引入的信息瓶颈(information bottlenecks)。
2、提出了该网络的高效实现方法,主要得益于稀疏的点云结构和体素网格的高效并行处理。
3、在 KITTI 数据集上进行了实验,展示了 VoxelNet 的 state-of-the-art 性能。
- 算法流程
VoxelNet 三个组成模块:
1. 特征学习网络: 将点云划分为voxel形式,使用层级的VFE层提取特征,得到稀疏的voxel-wise特征张量。
2. 卷积中间层: 使用3D卷积,得到全局特征张量。
3. 区域提议网络(RPN): 特征整合,anchor提取,输出预测结果:概率预测图,回归图。
1. 特征学习网络
首先对点云空间进行体素划分,得到 3 维的网格(Voxel partition)。随后根据各个点所在的网格进行分组,将点云空间中的点划分到其位置对应的voxel中。由于点云的分布不均匀,每个voxel中点的个数不一定相等(Grouping)。再对每个体素内的点进行随机采样,最多采样 T 个点。对于每个voxel,若所含点数大于T,则随机采样T个。(Random Sampling 目的:节约开销。 降低各voxel之间点个数的不平衡。)这里随机采样是由于 LiDAR 产生的点云通常点的数目很大且分布不均,采样后可以减小计算量,并且在一定程度上平衡点的分布。
在划分完之后有一步很重要的操作是体素特征编码 (VFE, Voxel Feature Encoding),VFE层对每一个非空体素进行特征提取和编码。对体素内的每个点连接一个全连接网络(注:原文中以 FCN 代指全连接网络,但一般 FCN 指的是全卷积神经网络)提取逐点的特征,接着对这些特征进行元素级的池化形成局部聚合特征,最后将局部聚合特征串接到每个点的特征上,这就完成了一次特征提取,如下图所示。依次堆叠VFE层可以获得更高层次的特征。
要点分析:
-
点云的多层次学习
VoxelNet是对PointNet以及PointNet++这两项工作(会在后续文章中详细介绍)的拓展与改进,粗浅地说,是对点云划分后的Voxel使用"PointNet"。我们可以仔细看一下某一层VFE,如图二所示,一块Voxel中的三个点经过FCN抽象Point-wise feature,并使用MaxPool得到Locally Aggregated Feature(局部聚合特征),然后将这个局部特征concatenate到每一个Point-wise feature上。
这个过程与PointNet中的Segmentation Network非常相似,见图三淡黄色框中n x 1088这一类feature,它是由来自Classification Network中n x 64大小的Point-wise Feature以及global feature 组合构成。PointNet提取的global feature可以理解为每一个Voxel中的local feature。 -
点云的高效查询
此外,由于点云具有高度的稀疏性以及密度不均匀性,作者利用哈希表查询的方式,可以做到快速找到每一个Voxel中的点在三维点云中的具体位置。
2. 中间卷积层(convolutional middle layers)
使用3D卷积进行特征提取。此处特征已经变为了规则的张量表示,可以直接应用3D CNN,后接BN和RELU。随着卷积加深,逐渐感受野变大,获取全局信息。
但是从后文也可看到,这一层仍是整个网络最花时间的部分,3D CNN的时间开销不可忽视。
3. RPN层(Region Proposal Network)
这里RPN的设计和faster RCNN很像。
如图所示,该网络包含三个全卷积层块(Block),每个块的第一层通过步长为2的卷积将特征图采样为一半,之后是三个步长为1的卷积层,每个卷积层都包含BN层和ReLU操作。将每一个块的输出都上采样到一个固定的尺寸并串联构造高分辨率的特征图。最后,该特征图通过两种二维卷积被输出到期望的学习目标:
概率评分图(Probability Score Map )
回归图(Regression Map)
损失函数的设定也很faster cnn很像,只关注置信度高的正负预测,分别计算正负类的交叉熵损失,对于回归计算L1范数,三者加权组合得到最终的loss。