PRIN: Pointwise Rotation-Invariant Network
一、论文摘要
近年来,随着深度传感器的发展,点云已经获得了相当大的研究兴趣。由于对象的不同布局,点云的方向在实际应用中常常是未知的。本文针对点云中的旋转问题,提出了一种新的点集学习框架——点云旋转不变网络( PRIN)。通过从稀疏点进行自适应采样来构造球形信号,并使用球卷积以及三线性插值来提取每个点的旋转不变特征。该网络可以应用于从物体分类、单个物体部分分割以及3D特征匹配和标签对齐等各种应用。PRIN在没有数据增强的情况下,在零件分割方面显示出与现有技术水平相当或更好的性能。
Github源码:https://github.com/qq456cvb/PRIN
二、模型概述
2.1 相关工作
以往对于点云的模型,往往都没有考虑点云的旋转不变性和尺度不变性。例如pointnet中,仅仅利用了一个T-net来学习点云的旋转特征,但是如果没有数据增强的话,仅仅是简单旋转物体,模型的效果还是会收到极大的影响。同时传统的点云网络都是基于普通的坐标系的,因此受限于点云的无序性,其很难捕捉点云的旋转特征。例如,pointnet++中若对点云进行一些旋转,分割效果就变得特别差
本文提出的PRIN网络的最大特点就是可以输入没有数据增强的点云信息,也能达到很好地分割或者分类效果。因此其称之为点云旋转不变网络( PRIN)
2.2 网络结构
从图中可以看到,PRIN以任意的稀疏点云作为网络的输入,在(a)部分通过一个球型体素化(spherical voxel grids),将点云转换成球型体素。然后球型体素会通过若干个球卷积(spherical convolution) 和 旋转卷积组(SO(3) group convolutions) (b, c, d, e, f 部分) 。最终在(h)部分通过最大池化得到全局特征用于做分类问题(i)部分;或者通过一个逐个体素之间的信息交互,完成part segmentation的任务(j和k)部分。
2.3 Rotation-Invariant Point Convolution
这个部分讲述了点云的旋转不变性卷积的方式。
2.3.1 定义
单位球 The Unit Sphere 被定义为一系列的三维点云的集合 并且范数归一化,即 。其可以通过一个二维的球面坐标来参数化,即 和 。
球信号 Spherical Signals 是球面上的图像或者卷积操作,可以将其看做一个映射
旋转 Rotation 被可以被三维参数化 , 和 。其在实现的时候一般是用一个3x3的矩阵来储存变换信息。
旋转算子 Rotation operator
被定义为:取一个球信号
,并通过合成旋转
和
来产生一个旋转函数
:
其中
可以被表示为
,g是一个
的函数。
直观地说,旋转算子根据旋转 将任意的信号 在单位球上转换到另外一个位置。为了实现 , 为3×1且范数为1的向量,并将其与 相乘, 为3×3矩阵。
2.3.2 点云的输入
对于输入信号,传统方法,如PointNet、PointNet++和PointCNN均使用不规则稀疏点云直接作为输入,而PRIN中将这种不规则的点云转换成规则的球形体素,这有助于网络接下来提取旋转不变的特征。
为了将这种稀疏的不规则点云转换成统一的体素形式,PRIN先将点云用标准的球体包括住,再将球体分成球型体素,因此,每个点云中的点都包含在它对应的体素中。用三维
来识别球形体素,其中
表示映射到单位球面上的坐标,
表示到球体中心的距离。这些球形体素可以看作是叠加在
维上的多球体信号。
(这里需要注意,一旦离散体素以某个分辨率在
中定义,每个点都将位于某个体素中,但不完全位于体素中心位置。因此,我们需要使用采样点重建
上的信号。)
PRIN首先将每个点 转换成其在单位球面上对应的球面坐标 ,然后计算其到球面中心的距离 。然后我们得到 的点位置 。为了计算每个离散体素位置处的信号 ,并在每个球体上的欧几里德空间中使用 方向性的滤波器(Isotropic box filter) 和 归一化因子 来重建输入信号 。其中归一化因子为:
重构的输入信号为:
其中
和
是提前定义的分辨率。
是
中第
个点的坐标。
是指示性函数,
和
是提前定义的滤波器宽度。
是因为球坐标不同于欧几里德空间(均匀的),其voxel的大小分布是不均匀的。从图中可以看出,在球坐标上,越接近两极的体素会越小;而右侧在欧式空间上所有的filter大小都相同。
2.3.3 旋转不变性的分析
本文通过一定的数学推导,证明了这样的编码点云的方式具有旋转不变性
2.4 网络实现
该网络的贡献点主要在与利用球卷积和三线性差值来提取点云特征,后面的卷积计算基本照搬S2CNN。最后的实验结果证明了该网络有旋转不变性的特点。
3.实验结果
可以看出虽然分割效果挺一般的,但是在数据集进行旋转的时候,具有较好的鲁棒性。分割结果不加也有可能是因为球卷积的精度不够而造成的。