论文笔记:PRIN: Pointwise Rotation-Invariant Networks

PRIN: Pointwise Rotation-Invariant Networks

1、四个问题

  1. 要解决什么问题?
    • 使用特殊结构的神经网络来提取具有旋转不变性的点云特征。
  2. 用了什么方法解决?
    • 提出了一套新的网络结构:Pointwise Rotation-Invariant Network(PRIN),所提取的特征具有旋转不变性。
    • 预处理阶段,使用密度感知自适应采样(Density-Aware Adaptive Sampling,DAAS)从稀疏点云上采样球形信号(spherical signals)。
    • 随后采用Spherical Voxel Convolution(SVC)从点云提取旋转不变特征。
  3. 效果如何?
    • 在目标分类、部件分割等任务上,可以不进行额外的数据增强,就能有效地处理旋转变化,并取得了SOTA(state-of-the-art)的效果。
  4. 还存在什么问题?
    • 关于旋转不变性的部分基本上是照搬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结构的数据上,无法直接用来处理不规则的点云数据。所以还需要对点云进行预处理,即将点云转换为欧式结构的球形体素。
  • 作者认为直接对点云进行均匀采样是不合理的,因为在两极附近的点相对稀疏,而在赤道附近的点则更加稠密。我们应该将这个点云分布的不均匀性也考虑进去,根据分布的稠密程度自适应地对点进行采样,构建球形体素。
  • 一些定义如下:
    • 单位球:
      • 单位球 S 2 S^2 S2上的任意点为 p ∈ R 3 p \in \mathbb{R}^{3} pR3,点的模长为1。这是一个二维流型,我们使用球面坐标 ( α , β ) (\alpha, \beta) (α,β)来定义。 α ∈ [ 0 , 2 π ] \alpha \in[0,2 \pi] α[0,2π]指的是XY平面上的方位角。 β ∈ [ 0 , π ] \beta \in[0, \pi] β[0,π]指的是到正Z轴的极距角。
    • 球形体素空间:
      • 一个球形体素定义为 S 2 × H S^2 \times H S2×H,其中 ( α , β ) ∈ S 2 (\alpha, \beta) \in S^{2} (α,β)S2表示点被投影到单位球上的坐标,而 h ∈ H h \in H hH表示点到球体中心的距离。
  • 给定了一个离散球形体素的位置 ( α [ i ] , β [ j ] , h [ k ] ) (\alpha[i], \beta[j], h[k]) (α[i],β[j],h[k]),我们要计算信号 f : S 2 × H → R f : S^{2} \times H \rightarrow \mathbb{R} f:S2×HR,其中 i ∈ { 0 , 1 , … , I } i \in\{0,1, \ldots, I\} i{0,1,,I} j ∈ { 0 , 1 , … , J } j \in\{0,1, \ldots, J\} j{0,1,,J} K ∈ { 0 , 1 , … , K } K \in \{0,1, \ldots, K\} K{0,1,,K},并且 I I I J J J K K K都是预先定义好的分辨率。在 S 2 × H S^{2} \times H S2×H上的第 n n n个点的坐标为 ( α n , β n , h n ) \left(\alpha_{n}, \beta_{n}, h_{n}\right) (αn,βn,hn),且总共有 N N N个点。采样函数 f f f的计算公式如下:
    • f ( α [ i ] , β [ j ] , h [ k ] ) = ∑ n = 1 N w n ⋅ ( δ − ∥ h [ k ] − h n ∥ ) ∑ n = 1 N w n f(\alpha[i], \beta[j], h[k])=\frac{\sum_{n=1}^{N} w_{n} \cdot\left(\delta-\left\|h[k]-h_{n}\right\|\right)}{\sum_{n=1}^{N} w_{n}} f(α[i],β[j],h[k])=n=1Nwnn=1Nwn(δh[k]hn)
    • 其中: w n = 1 ( ∥ α [ i ] − α n ∥ &lt; δ ) ⋅ 1 ( ∥ β [ j ] − β n ∥ &lt; η δ ) ⋅ 1 ( ∥ h [ k ] − h n ∥ &lt; δ ) \begin{aligned} w_{n}=&amp; \mathbf{1}\left(\left\|\alpha[i]-\alpha_{n}\right\|&lt;\delta\right) \\ &amp; \cdot \mathbf{1}\left(\left\|\beta[j]-\beta_{n}\right\|&lt;\eta \delta\right) \\ &amp; \cdot \mathbf{1}\left(\left\|h[k]-h_{n}\right\|&lt;\delta\right) \end{aligned} wn=1(α[i]αn<δ)1(β[j]βn<ηδ)1(h[k]hn<δ)
    • δ \delta δ是预先定义好的滤波器宽度。
    • 每个球形体素的信号都是 ( δ − ∥ h [ k ] − h n ∥ ) ∈ [ 0 , δ ] \left(\delta-\left\|h[k]-h_{n}\right\|\right) \in[0, \delta] (δh[k]hn)[0,δ],表示沿着 H H H轴的信息,与 S 2 S^2 S2正交,同时对于旋转变换是不变的。
  • 密度感知系数:
    • η = sin ⁡ ( β ) \eta=\sin (\beta) η=sin(β)用来控制 f f f自适应地对非均匀密度下的点集进行采样。示意图间图4。

在这里插入图片描述

2.4、球形体素卷积(SVC)

  • 旋转:
    • 旋转群 S O ( 3 ) SO(3) SO(3),也被叫作特殊正交群,是一个三维流型,可以参数化为ZYZ欧拉角 ( α , β , γ ) (\alpha, \beta, \gamma) (α,β,γ),其中 α ∈ [ 0 , 2 π ] \alpha \in[0,2 \pi] α[0,2π] β ∈ [ 0 , π ] \beta \in[0, \pi] β[0,π] γ ∈ [ 0 , 2 π ] \gamma \in[0,2 \pi] γ[0,2π]
  • 球形体素信号的旋转:
    • 定义球形体素信号的旋转操作子 L R L_R LR
    • [ L R f ] ( x , h ) = f ( R − 1 x , h ) \left[L_{R} f\right](x, h)=f\left(R^{-1} x, h\right) [LRf](x,h)=f(R1x,h)
    • 其中, R ∈ S O ( 3 ) R \in S O(3) RSO(3) x ∈ S 2 x \in S^{2} xS2 h ∈ H h \in H hH并且 f : S 2 × H → R f : S^{2} \times H \rightarrow \mathbb{R} f:S2×HR
    • 这里的旋转只会影响球面坐标,而不会对 H H H域有影响。
  • 球形体素卷积(spherical voxel convolution):
    • 两个球面信号相互卷积的计算公式如下:
      • [ ψ ⋆ f ] ( p ) = ⟨ L p ~ ψ , f ⟩ = ∫ h ∫ x ψ ( p ~ − 1 x , h ) f ( x , h ) d x d h \begin{aligned}[\psi \star f](p) &amp;=\left\langle L_{\tilde{p}} \psi, f\right\rangle \\ &amp;=\int_{h} \int_{x} \psi\left(\tilde{p}^{-1} x, h\right) f(x, h) d x d h \end{aligned} [ψf](p)=Lp~ψ,f=hxψ(p~1x,h)f(x,h)dxdh
      • 其中 p ∈ S 2 × H p \in S^{2} \times H pS2×H p ~ ∈ S O ( 3 ) \tilde{p} \in S O(3) p~SO(3) x ∈ S 2 x \in S^{2} xS2 h ∈ H h \in H hH,还有 ψ , f : S 2 × H → R \psi, f : S^{2} \times H \rightarrow \mathbb{R} ψ,f:S2×HR
    • 具体实现部分请参考Spherical CNN。
  • 等变性:
    • [ ψ ⋆ [ L R f ] ] ( p ) = [ L R [ ψ ⋆ f ] ] ( p ) \left[\psi \star\left[L_{R} f\right]\right](p)=\left[L_{R}[\psi \star f]\right](p) [ψ[LRf]](p)=[LR[ψf]](p)
    • 上式对于任意的 R ∈ S O ( 3 ) R \in S O(3) RSO(3)都成立。
  • 旋转不变KL散度损失:
    • 对于每个点 p p p的损失函数定义为: Loss ⁡ ( p ) = K L ( [ ψ ⋆ f ] ( p ) , y ( p ) ) \operatorname{Loss}(p)=K L([\psi \star f](p), y(p)) Loss(p)=KL([ψf](p),y(p))
      • f f f是输入信号, ψ \psi ψ是要学习的卷积核, y y y是ground truth的one-hot标签。
    • 旋转不变性证明:
      • 假设点 p p p旋转了 R R R,得到: f ′ = L R f f^{\prime} = L_R f f=LRf p ′ = R p p^{\prime} = R p p=Rp
      • 拿过来前面定义的几个公式:
        • 等变性公式: [ ψ ⋆ [ L R f ] ] ( p ) = [ L R [ ψ ⋆ f ] ] ( p )  (Equation  5 ) \left[\psi \star\left[L_{R} f\right]\right](p)=\left[L_{R}[\psi \star f]\right](p) \text { (Equation } 5 ) [ψ[LRf]](p)=[LR[ψf]](p) (Equation 5)
        • 球形信号旋转公式: [ L R f ] ( x , h ) = f ( R − 1 x , h )  (Equation  3 ) \left[L_{R} f\right](x, h)=f\left(R^{-1} x, h\right) \text { (Equation } 3 ) [LRf](x,h)=f(R1x,h) (Equation 3)
      • 代入前面两个公式:
        • Loss ⁡ ( p ′ ) = Loss ⁡ ( R p ) = K L ( [ ψ ⋆ f ′ ] ( R p ) , y ( p ′ ) ) = K L ( [ ψ ⋆ [ L R f ] ] ( R p ) , y ( p ′ ) ) = K L ( [ L R [ ψ ⋆ f ] ] ( R p ) , y ( p ′ ) )  (Equation  5 ) = K L ( [ L R − 1 L R [ ψ ⋆ f ] ] ( p ) , y ( p ′ ) )  (Equation 3)  = K L ( [ ψ ⋆ f ] ( p ) , y ( p ′ ) ) = K L ( [ ψ ⋆ f ] ( p ) , y ( p ) )  (label stays the same)  = Loss ⁡ ( p ) \begin{aligned} \operatorname{Loss}\left(p^{\prime}\right) &amp;=\operatorname{Loss}(R p) \\ &amp;=K L\left(\left[\psi \star f^{\prime}\right](R p), y\left(p^{\prime}\right)\right) \\ &amp;=K L\left(\left[\psi \star\left[L_{R} f\right]\right](R p), y\left(p^{\prime}\right)\right) \\ &amp;=K L\left(\left[L_{R}[\psi \star f]\right](R p), y\left(p^{\prime}\right)\right) \quad \text { (Equation } 5 ) \\ &amp;=K L\left(\left[L_{R^{-1}} L_{R}[\psi \star f]\right](p), y\left(p^{\prime}\right)\right) \quad \text { (Equation 3) } \\ &amp;=K L\left([\psi \star f](p), y\left(p^{\prime}\right)\right) \\ &amp;=K L([\psi \star f](p), y(p)) \quad \text { (label stays the same) } \\ &amp;=\operatorname{Loss}(p) \end{aligned} Loss(p)=Loss(Rp)=KL([ψf](Rp),y(p))=KL([ψ[LRf]](Rp),y(p))=KL([LR[ψf]](Rp),y(p)) (Equation 5)=KL([LR1LR[ψ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,参考资料

  1. PRIN: Pointwise Rotation-Invariant Network
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值