【3D计算机视觉】PRIN——基于点云的旋转不变性网络

一、论文摘要

近年来,随着深度传感器的发展,点云已经获得了相当大的研究兴趣。由于对象的不同布局,点云的方向在实际应用中常常是未知的。本文针对点云中的旋转问题,提出了一种新的点集学习框架——点云旋转不变网络( PRIN)。通过从稀疏点进行自适应采样来构造球形信号,并使用球卷积以及三线性插值来提取每个点的旋转不变特征。该网络可以应用于从物体分类、单个物体部分分割以及3D特征匹配和标签对齐等各种应用。PRIN在没有数据增强的情况下,在零件分割方面显示出与现有技术水平相当或更好的性能。

Github源码:https://github.com/qq456cvb/PRIN

二、模型概述

2.1 相关工作

以往对于点云的模型,往往都没有考虑点云的旋转不变性和尺度不变性。例如pointnet中,仅仅利用了一个T-net来学习点云的旋转特征,但是如果没有数据增强的话,仅仅是简单旋转物体,模型的效果还是会收到极大的影响。同时传统的点云网络都是基于普通的坐标系的,因此受限于点云的无序性,其很难捕捉点云的旋转特征。例如,pointnet++中若对点云进行一些旋转,分割效果就变得特别差
point++中若对点云进行一些旋转,分割效果就变得特别差
本文提出的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 S 2 S^2 被定义为一系列的三维点云的集合 x R 3 x \in R^3 并且范数归一化,即 n o r m = 1 norm=1 。其可以通过一个二维的球面坐标来参数化,即 α [ 0 , 2 π ] \alpha \in [0,2 \pi] β [ 0 , π ] \beta \in [0, \pi]

球信号 Spherical Signals 是球面上的图像或者卷积操作,可以将其看做一个映射 g : S 2 R g: S^2 \rightarrow R

旋转 Rotation R R 被可以被三维参数化 α [ 0 , 2 π ] \alpha \in [0,2 \pi] β [ 0 , π ] \beta \in [0, \pi] γ [ 0 , 2 π ] \gamma \in [0,2 \pi] 。其在实现的时候一般是用一个3x3的矩阵来储存变换信息。

旋转算子 Rotation operator L R L_R 被定义为:取一个球信号 g g ,并通过合成旋转 R 1 R^{-1} g g 来产生一个旋转函数 L R g L_Rg
[ L R g ] ( x ) = g ( R 1 x ) [L_R g](x) = g(R^{−1} x)
其中 x S 2 x \in S^2 可以被表示为 ( α , β ) (\alpha,\beta) ,g是一个 S 2 R S^2 \rightarrow R 的函数。

直观地说,旋转算子根据旋转 R R 将任意的信号 g g 在单位球上转换到另外一个位置。为了实现 R 1 x R^{-1}x x x 为3×1且范数为1的向量,并将其与 R 1 R^{-1} 相乘, R 1 R^{-1} 为3×3矩阵。

2.3.2 点云的输入

对于输入信号,传统方法,如PointNet、PointNet++和PointCNN均使用不规则稀疏点云直接作为输入,而PRIN中将这种不规则的点云转换成规则的球形体素,这有助于网络接下来提取旋转不变的特征。

为了将这种稀疏的不规则点云转换成统一的体素形式,PRIN先将点云用标准的球体包括住,再将球体分成球型体素,因此,每个点云中的点都包含在它对应的体素中。用三维 S 2 × H S2×H 来识别球形体素,其中 S 2 S2 表示映射到单位球面上的坐标, H H 表示到球体中心的距离。这些球形体素可以看作是叠加在 H H 维上的多球体信号。
(这里需要注意,一旦离散体素以某个分辨率在 S 2 × H S2×H 中定义,每个点都将位于某个体素中,但不完全位于体素中心位置。因此,我们需要使用采样点重建 S 2 × H S2×H 上的信号。)

PRIN首先将每个点 ( x , y , z ) (x,y,z) 转换成其在单位球面上对应的球面坐标 ( α , β ) (α, β) ,然后计算其到球面中心的距离 h h 。然后我们得到 S 2 × H S2×H中 的点位置 ( α , β , h ) (α,β,h ) 。为了计算每个离散体素位置处的信号 φ ( α [ i ] , β [ j ] , h [ k ] ) φ(α[i],β[j],h[k ]) ,并在每个球体上的欧几里德空间中使用 方向性的滤波器(Isotropic box filter)归一化因子 w n w_n 来重建输入信号 φ φ 。其中归一化因子为:

w n ( i , j , k ) = 1 ( α [ i ] δ α n α [ i ] + δ ) 1 ( β [ j ] ζ β n β [ j ] + ζ ) 1 ( h [ k ] h n < ϵ ) w_n (i,j,k) =1(α[i] − δ ≤ α n ≤ α[i] + δ)\\ · 1(β[j] − ζ ≤ β n ≤ β[j] + ζ) · 1(|h[k] − h n | < \epsilon) 重构的输入信号为:
φ ( α [ i ] , β [ j ] , h [ k ] ) = n N w n ( i , j , k ) ( ϵ h [ k ] h n ) n N w n ( i , j , k ) φ(α[i],β[j],h[k]) = \frac {\sum_{n}^{N} w_n (i,j,k) · (\epsilon − |h[k] − h_n |)}{\sum_{n}^{N} w_n (i,j,k)}

其中 i = 0 , 1 , I , j = 0 , 1 , J , k = 0 , 1 , K i = 0,1,···I, j = 0,1,···J, k = 0,1,···K I , J , K I,J,K 是提前定义的分辨率。 ( α n , β n , h n ) (α_n ,β_n ,h_n ) S 2 × H S_2 × H 中第 n n 个点的坐标。 1 1 是指示性函数, ϵ \epsilon ζ ζ 是提前定义的滤波器宽度。 δ = ζ s i n ( β ) δ =\frac{ζ}{sin(β)} 是因为球坐标不同于欧几里德空间(均匀的),其voxel的大小分布是不均匀的。从图中可以看出,在球坐标上,越接近两极的体素会越小;而右侧在欧式空间上所有的filter大小都相同。
在这里插入图片描述

2.3.3 旋转不变性的分析

本文通过一定的数学推导,证明了这样的编码点云的方式具有旋转不变性

2.4 网络实现

该网络的贡献点主要在与利用球卷积三线性差值来提取点云特征,后面的卷积计算基本照搬S2CNN。最后的实验结果证明了该网络有旋转不变性的特点。

3.实验结果

可以看出虽然分割效果挺一般的,但是在数据集进行旋转的时候,具有较好的鲁棒性。分割结果不加也有可能是因为球卷积的精度不够而造成的。
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_39373480/article/details/85222308