【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^2S2 被定义为一系列的三维点云的集合 x ∈ R 3 x \in R^3xR3 并且范数归一化,即n o r m = 1 norm=1norm=1。其可以通过一个二维的球面坐标来参数化,即α ∈ [ 0 , 2 π ] \alpha \in [0,2 \pi]α[0,2π]β ∈ [ 0 , π ] \beta \in [0, \pi]β[0,π]

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

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

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

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

2.3.2 点云的输入

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

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

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

w n ( i , j , k ) = 1 ( α [ i ] − δ ≤ α n ≤ α [ i ] + δ ) ⋅ 1 ( β [ j ] − ζ ≤ β n ≤ β [ j ] + ζ ) ⋅ 1 ( ∣ h [ k ] − h n ∣ &lt; ϵ ) w_n (i,j,k) =1(α[i] − δ ≤ α n ≤ α[i] + δ)\\ · 1(β[j] − ζ ≤ β n ≤ β[j] + ζ) · 1(|h[k] − h n | &lt; \epsilon)wn(i,j,k)=1(α[i]δαnα[i]+δ)1(β[j]ζβnβ[j]+ζ)1(h[k]hn<ϵ)重构的输入信号为:
φ ( α [ 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],β[j],h[k])=nNwn(i,j,k)nNwn(i,j,k)(ϵh[k]hn)

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

2.3.3 旋转不变性的分析

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

2.4 网络实现

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

3.实验结果

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


版权声明:本文为weixin_39373480原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。