PRIN: Pointwise Rotation-Invariant Networks
1、四个问题
- 要解决什么问题?
- 使用特殊结构的神经网络来提取具有旋转不变性的点云特征。
- 用了什么方法解决?
- 提出了一套新的网络结构:Pointwise Rotation-Invariant Network(PRIN),所提取的特征具有旋转不变性。
- 预处理阶段,使用密度感知自适应采样(Density-Aware Adaptive Sampling,DAAS)从稀疏点云上采样球形信号(spherical signals)。
- 随后采用Spherical Voxel Convolution(SVC)从点云提取旋转不变特征。
- 效果如何?
- 在目标分类、部件分割等任务上,可以不进行额外的数据增强,就能有效地处理旋转变化,并取得了SOTA(state-of-the-art)的效果。
- 还存在什么问题?
- 关于旋转不变性的部分基本上是照搬Spherical CNN里的那一套东西,给人的感觉更像是把被人的东西用到了点云分类、点云部件分割等任务上,但是球形信号的采样方法还是比较有参考价值的。
2、论文概述
2.1、简介

- 尽管PointNet和PointNet++都在点云感知和形状分析相关的任务中取得了相当不错的效果,但是他们都只关注于理想的情况,即不考虑旋转变换,假定所有物体都是出于同一个固定视角下。然后实际中,往往还存在旋转变换,而PointNet这类的方法肯定就会失效,因为我们事先无法知道物体的方向以及旋转角度。示意图如图1所示,旋转变换会导致PointNet系的网络失效。
- 因此这篇论文就提出了一系列应对旋转变化的方法。
- 提出了一个具有旋转不变性的网络:PRIN(pointwise rotation-invariant network)。
- 使用密度感知自适应采样(density-aware adaptive sampling,DAAS)来采样球形信号。
- 使用球形体素卷积(spherical voxel convolution,SVC)来提取旋转不变特征。
2.2、准备知识
- 球形卷积。
- 球形卷积是在Spherical CNN中提出的,主要思想是实现等变性。如果输入信号旋转了,那么卷积后的输出也相应地旋转。接着再进行全局最大池化就可以得到全局旋转不变特征了。
- 如果有兴趣进一步了解,可以查看我之前的博客:论文笔记:Spherical CNN
- 示意图如图2所示。

2.3、密度感知自适应采样(DAAS)
- Spherical CNN中已经通过理论推导和实验证明了球形卷积具有旋转等变性,但是它是应用在mesh结构的数据上,无法直接用来处理不规则的点云数据。所以还需要对点云进行预处理,即将点云转换为欧式结构的球形体素。
- 作者认为直接对点云进行均匀采样是不合理的,因为在两极附近的点相对稀疏,而在赤道附近的点则更加稠密。我们应该将这个点云分布的不均匀性也考虑进去,根据分布的稠密程度自适应地对点进行采样,构建球形体素。
- 一些定义如下:
- 单位球:
- 单位球S2上的任意点为p∈R3,点的模长为1。这是一个二维流型,我们使用球面坐标(α,β)来定义。α∈[0,2π]指的是XY平面上的方位角。β∈[0,π]指的是到正Z轴的极距角。
- 球形体素空间:
- 一个球形体素定义为S2×H,其中(α,β)∈S2表示点被投影到单位球上的坐标,而h∈H表示点到球体中心的距离。
- 给定了一个离散球形体素的位置(α[i],β[j],h[k]),我们要计算信号f:S2×H→R,其中i∈{0,1,…,I},j∈{0,1,…,J},K∈{0,1,…,K},并且I,J,K都是预先定义好的分辨率。在S2×H上的第n个点的坐标为(αn,βn,hn),且总共有N个点。采样函数f的计算公式如下:
- f(α[i],β[j],h[k])=∑n=1Nwn∑n=1Nwn⋅(δ−∥h[k]−hn∥)
- 其中:wn=1(∥α[i]−αn∥<δ)⋅1(∥β[j]−βn∥<ηδ)⋅1(∥h[k]−hn∥<δ)
-
δ是预先定义好的滤波器宽度。
- 每个球形体素的信号都是(δ−∥h[k]−hn∥)∈[0,δ],表示沿着H轴的信息,与S2正交,同时对于旋转变换是不变的。
- 密度感知系数:
-
η=sin(β)用来控制f自适应地对非均匀密度下的点集进行采样。示意图间图4。

2.4、球形体素卷积(SVC)
- 旋转:
- 旋转群SO(3),也被叫作特殊正交群,是一个三维流型,可以参数化为ZYZ欧拉角(α,β,γ),其中α∈[0,2π],β∈[0,π],γ∈[0,2π]。
- 球形体素信号的旋转:
- 定义球形体素信号的旋转操作子LR。
- [LRf](x,h)=f(R−1x,h)
- 其中,R∈SO(3),x∈S2,h∈H并且f:S2×H→R。
- 这里的旋转只会影响球面坐标,而不会对H域有影响。
- 球形体素卷积(spherical voxel convolution):
- 两个球面信号相互卷积的计算公式如下:
- [ψ⋆f](p)=⟨Lp~ψ,f⟩=∫h∫xψ(p~−1x,h)f(x,h)dxdh
- 其中p∈S2×H,p~∈SO(3),x∈S2,h∈H,还有ψ,f:S2×H→R。
- 具体实现部分请参考Spherical CNN。
- 等变性:
- [ψ⋆[LRf]](p)=[LR[ψ⋆f]](p)
- 上式对于任意的R∈SO(3)都成立。
- 旋转不变KL散度损失:
- 对于每个点p的损失函数定义为:Loss(p)=KL([ψ⋆f](p),y(p))。
-
f是输入信号,ψ是要学习的卷积核,y是ground truth的one-hot标签。
- 旋转不变性证明:
- 假设点p旋转了R,得到:f′=LRf,p′=Rp。
- 拿过来前面定义的几个公式:
- 等变性公式:[ψ⋆[LRf]](p)=[LR[ψ⋆f]](p) (Equation 5)
- 球形信号旋转公式:[LRf](x,h)=f(R−1x,h) (Equation 3)
- 代入前面两个公式:
- Loss(p′)=Loss(Rp)=KL([ψ⋆f′](Rp),y(p′))=KL([ψ⋆[LRf]](Rp),y(p′))=KL([LR[ψ⋆f]](Rp),y(p′)) (Equation 5)=KL([LR−1LR[ψ⋆f]](p),y(p′)) (Equation 3) =KL([ψ⋆f](p),y(p′))=KL([ψ⋆f](p),y(p)) (label stays the same) =Loss(p)
- 实际实现时采用了FFT先将球形信号与滤波器信号都转换到频域,相乘后再做逆变换转换回原先的空域。主要目的是加速计算。
2.5、网络结构

- 上图是PRIN的分类网络和分割网络示意图。
- 分类网络比较简单,就是SVC提取旋转不变特征,然后接上一个全局最大池化,然后进行分类。
- 分割网络在SVC提取特征后,还需要重新上采样回原始点集,这里用到了三线性插值。每个点的特征是其最近邻的8个体素的加权平均和,权重是距离的倒数。
2.6、实验








3,参考资料
- PRIN: Pointwise Rotation-Invariant Network
相关文章: