点云规则化处理(一)

本系列是按照bilibili上刘永成博士的分享课的论文笔记,主要针对点云的规则化处理。对于一些有新颖的方法会讲得详细一些。
经典的一些针对点云的规则化处理的方法。包括:VoxelNet、SPLATNet和PointCNN


点云是无序且不规则的数据,无法用现有的卷积神经网络进行计算和训练。所以自然就出现将规则化处理和卷积相结合,前面部分用规则化处理,后面部分接上一般的神经网络进行端对端的学习和训练。

VoxelNet

2017年苹果公司基于点云的3D物体检测论文“VoxelNet: End-to-End Learning for Point Cloud Based 3D Object Detection”

具体思想

将三维点云划分为一定数量的Voxel,经过点的随机采样(使得较多点的网格采样后点变少,加快运行速度)以及归一化后(减少平移差异),对每一个非空Voxel使用若干个VFE(Voxel Feature Encoding)层进行局部特征提取,得到Voxel-wise Feature,然后经过3D Convolutional Middle Layers进一步抽象特征(增大感受野并学习几何空间表示),最后使用RPN(Region Proposal Network)对物体进行分类检测与位置回归。VoxelNet整个pipeline如下图所示。

20200206131924.png

核心部分

Voxel feature encoding layer

对点云划分后基本上是按照pointNet的方式进行特征提取,彩色的表示point feature(也即local feature),灰色的表示这个划分中的global feature,concatenate之后再进行一个全连接层提取这个划分的总体特征。如图所示:
20200206133013.png

点云的高效查询

此外,由于点云具有高度的稀疏性以及密度不均匀性,作者利用哈希表查询的方式,可以做到快速找到每一个Voxel中的点在三维点云中的具体位置,如图所示:
20200206133908.png

SPLATNet

lattice映射到晶格网络+bilateral convolution双边卷积+hash index
(SPLATNet, CVPR 2018)

SplatNet 网络处理点云的主要motivation:

  • 通过控制点云相应的lattice特征的尺度,利用双边卷积层实现不同分辨率下的点云特征提取,类似经典CNN中的层级特征提。
  • 利用splat 和 slice操作,实现特征(或信号)在2D(图像空间),3D空间(lattice空间)的嵌入转换,从而直观地融合2D图像特征和3D点云特征,进行multi-task 学习。

SplatNet 与 PointNet/PointNet++ 处理点云的不同:

  • Pointnet/Pointnet++,需要设计对称函数(如max-pooling)来处理点云的无序性。SplatNet则不需要,它采用的主要模块BCLBCLBCL中的splat,convolve, slice都直接用到了点云的空间坐标(即相当于保持了一个统一的空间结构关系,具体地,即使采用不同的点云顺序,也会splat到permutohedral lattice空间的相同lattice点点集上)。因此SplatNet可以直接处理无序点云。

博客参考:https://blog.csdn.net/csuwoshikunge/article/details/100829567

PointCNN

NIPS 2018 论文《PointCNN: Convolution On x-Transformed Points》

具体思想

利用一个KxK的x-Transform矩阵来解决点的无序性,参照卷积的思想对点云进行最远点采样确定中心点,再通过K近邻的方式来近似卷积的特征提取,也可以进行分层次的特征提取,以实现类似卷积的多个size的特征融合。

具体操作

分层卷积

20200209153201.png

如图所示上面部分是正常卷积操作,下面部分是点云卷积操作。进行类比,浅层feature map的宽度大而深度小,深层feature map的宽度小而深度大,拥有更丰富的语义信息。具体确定采样多少个点由最远点采样设置而定,K值也是超参数点需要人为设定,类似于卷积kernel的size。

X-Conv操作

20200209153619.png

如图所示,K代表Conv的卷积核,$p$代表采样中心点,P是采样中心点的K个最近邻点集,F是输入的点的特征。

  • 第一步:去中心化,移除平移对局部的影响
  • 第二步:提取逐点的特征
  • 第三步:Concatenate操作
  • 第四步:计算KxK的X-transformation矩阵,类似现在用得多的attention矩阵,计算K个点之间的权重。
  • 第五步:相乘
  • 第六步:卷积,可以用可分离卷积、可形变卷积、dialted conv等,提取特征。

PointCNN Architectures

20200209154319.png

思考

  • 是否考虑在进入x-conv之前采用类似pointNet的T-Net操作消除一部分平移和旋转的影响。
  • 在x-conv的计算过程中多加入类似resnet和densenet的多个size的连接,因为K近邻的方式进行特征提取,势必会有损失,在原始点云中进行多轮不同中心点和K值定义的采样能减少信息损失。
  • 对于点云分布不均匀的方式,KNN的方式不太适用,文中也说这种情况K个点的随机采样要更加优先。
#

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×