前言
1. 为什么要做这个研究?
以往的3D检测应用LiDAR数据或是投影到某个视角,或是对3D体素手工提取特征,而PointNet++无法处理大规模点云数据。作者希望能够构建一个端到端的3D检测网络,并且可以高效运行。
2. 实验方法是什么样的?
- 体素化划分,将整个点云区域按照固定分辨率划分成立体网格;
- 随机采样,每个体素随机选取t个点( t ≤ T t \leq T t≤T),由于点云的稀疏,这些体素90%为空;
- VFE层级结构,对每个体素进行编码,得到输入特征集 V i n V_{in} Vin,对体素内每个点进行全连接(FCN)操作获得逐点特征 f i f_i fi;然后对所有点特征进行MaxPooling操作获取局部聚合特征 f ~ \widetilde{f} f ;逐点拼接 f i f_i fi和 f ~ \widetilde{f} f ,得到 f o u t = [ f i T , f ~ T ] T f_{out}=[f_i^T, \widetilde{f}^T]^T fout=[fiT,f T]T;
- 每个体素经过多层VFE得到 n × C n×C n×C的特征向量,再经过FCN和element-wise Maxpool,提取出1×C维的voxel-wise Feature;
- 所有体素的voxel-wise Feature可放在一个稀疏的4D特征张量中,方便并行处理节约计算成本(这里打一个问号,就是把没有点的网格在4D张量中置0,但是也要参与计算);
- 4D特征张量作为输入,采用3D卷积来提取特征;
- 通过RPN网络进行预测和回归。
3. 得到了什么结果?
VoxelNet是第一个不采用手工设计的特征表达处理体素网格的端到端3D目标检测网络,网络在KITTI汽车、行人和自行车检测上都取得了很不错的效果。这篇文章可以帮助我们了解如何处理体素化后的点云数据。
摘要
VoxelNet是一种将特征提取和边界盒预测统一为一个单阶段、端到端可训练的3D检测网络。具体而言,VoxelNet将点云划分为等距的3D体素,采用VFE(voxel feature encoding)网络对每个体素内的点进行编码,然后将其连接到3D-RPN检测。该方法在KITTI car detection上取得了SOTA的效果。
1. 介绍
3D检测的应用及其重要性 广泛用于自主导航、家政机器人以及AR/VR。LIDAR提供可靠的深度信息用于准确定位目标并表征其形状。
现有方法 将LIDAR投影到某个视角作为输入;采用3D体素,手工提取体素特征;PointNet和Pointnet++无法处理大规模点云数据。让网络能够处理大规模点云数据实现3D目标检测是本文的主要挑战。
Region proposal network(RPN) 是一种高度优化的高效目标检测算法。该方法要求数据是密集的,并且以张量结构(图像、视频),而原始点云是无序的、稀疏的。在本文中,作者是缩小了3D检测任务的点云特征学习和RPN之间的差距。
VFE 结合点尺度特征和局部聚合特征,实现体素内的点间交互。通过层叠的VFE层将体素编码,然后3D卷积进一步聚合局部体素特征,将点云转化为高维体积表示。最后,通过RPN产生检测结果。
1.1 相关工作 现有的一些3D检测的方法包括:
- 手工制作特征,但是无法适应更复杂的形状和场景,也无法从数据中学习。
- 从2D图像中推断出3D边界框,但是精准度被深度估计限制。
- 对每个体素网格进行表示,先encode再处理。
- 多模态融合方法,将图像和LiDAR结合。
1.2 贡献
- 提出了一种基于点云的端到端可训练的3D检测架构,VoxelNet。
- 提出了VoxelNet的快速实现的方法,受益于稀疏点结构能在体素网格上有效并行处理。
- SOTA效果。
2. VoxelNet
2.1 VoxelNet架构
VoxelNet由三个功能块组成:特征学习网络、卷积中间层和区域候选网络。
2.1.1 Feature Learning Network
Voxel Partition 将3D空间细分为同样间隔的体素。假设点云包含的范围D, H, W是沿Z,Y,X轴的3D空间。作者定义了每个体素的大小为 v D , v H , v W v_D, v_H, v_W vD,vH,vW,则得到的3D体素网格的size为 D ′ = D / v D , H ′ = H / v H , W ′ = W / v W D^{'}=D/v_D, H^{'}=H/v_H, W^{'}=W/v_W D′=D/vD,H′=H/vH,W′=W/vW。这里作者假设D,H,W是体素网格的整数倍。
Grouping 由于点云在空间中分布不均匀,因此不同体素之间的点数量差别很大。
Random Samping 针对包含超过T个点的体素,随机抽取保留T个点,一是为了节省计算量,二是为了减少体素之间点的不平衡性,减少采样偏差,增加训练的多样性。
Stacked Voxel Feature Encoding 作者表明最大的创新就在于VFE层级结构,图3显示了VFE第1层的体系结构。
假设一个体素中包含 t ≤ T t \leq T t≤T个点,每个点由其XYZ坐标以及反射率表示,体素 V = { p i = [ x i , y i , z i , r i ] T ∈ R 4 } i = 1... t V = \{p_i=[x_i, y_i, z_i, r_i]^T \in \mathbb{R^4}\}_{i=1...t} V={
p