Spherical CNN

1、四个问题

  1. 要解决什么问题?
    • 3D场景下旋转不变性特征的提取。
  2. 用了什么方法解决?
    • 提出了球形卷积操作,也叫作球形互相关(spherical cross-correlation)。球形卷积具有旋转不变性。
    • 为了增强计算效率,使用FFT(Fast Fourier Transform)来计算球形卷积。
  3. 效果如何?
    • 在3D模型识别上效果还不错,与其他深度神经网络的模型相比准确率差一些,但是对旋转变化的鲁棒性更强。
  4. 还存在什么问题?
    • 由于在球形卷积中使用了FFT和IFFT,在转换过程中会损失一部分信息。
    • 球形卷积仅针对的理想的3D物体做到了旋转不变性,不存在背景或者其他噪声的干扰,如果在存在多个3D物体的自然场景下,必须要先分割出3D物体再提取旋转不变特征,流程过于繁琐。

2、论文概述

1、简介

论文笔记:Spherical CNN

  • 一种比较常见的思路是,将球形曲面展开为一个2D平面,如图1所示。从一个球面的信号到平面的映射过程中存在不规则的畸变。当图1的左图旋转到右图中的情况时,第一行表示球面上的情况,其实相当于在球面上平移;第二行表示从球面投影到平面的情况,不仅存在平移变化,还存在投影畸变。
  • 上面这个简单的例子说明了:球形曲面上的信号,不适合使用卷积(convolution)或互相关(cross-correlation)这类操作提取特征。尽管卷积这类操作具有平移不变性,但是球形曲面上还存在不规则的投影畸变。从不同旋转状态下的同一目标使用卷积提取到的特征不具备等效性(equivalence)
  • 因此作者想要提出一个网络来解决这个问题,也就是本文中的Spherical CNN(S2S^2-CNN)。三维空间下的旋转矩阵RR可以用一个特殊正交群SO(3)SO(3)来表示。Spherical CNN的目的是做到在SO(3)SO(3)下的等效性。
  • SO(3)SO(3)互相关满足傅里叶理论,即SO(3)SO(3)傅里叶变换。因此使用广义FFT算法来能高效地实现SO(3)SO(3)傅里叶变换和S2S^2傅里叶变换。

2、贡献

  • 球面CNN理论。
  • 提出了对于球面S2S^2和三维特殊正交群SO(3)SO(3)的广义傅里叶变换。
  • 实验验证球面CNN对旋转不变性的适用性。

3、球面和旋转群的互相关

  • 首先类比经典的平面互相关(xZ2x \in \mathbb{Z}^2),随后再引出S2S^2SO(3)SO(3)互相关。
  • 平面互相关(planar correlation)的理解:
    • 输出的特征图是按xx平移时(xZ2x \in \mathbb{Z}^2)输入的特征图与滤波器的内积计算得到的结果。
  • 类似的,球面互相关(spherical correlation)可以理解为:
    • 输出的特征图是按RR旋转时(RSO(3)R \in SO(3))输入的特征图与滤波器的内积计算得到的结果。

4、球面CNN

  • 球面单元:
    • S2S^2可以定义为一组单位球面上的点的几何xR3x \in \mathbb{R}^3,是一个三维流型,可以用球面坐标系来表示:α[0,2π]\alpha \in [0, 2\pi]β[0,π]\beta \in [0, \pi]
  • 球面信号:
    • 使用连续函数f:S2RKf: S^2 \rightarrow \mathbb{R}^K对球面图像和滤波器进行建模,其中KK是通道数。
  • 旋转:
    • 在三维空间中一组旋转称为SO(3)SO(3),也叫作“特殊正交群”,用一个3×33 \times 3的矩阵表示旋转。这个旋转矩阵具有以下性质:Rx=x\|Rx \| = \| x \|det(R)=+1det(R) = +1
    • 如果用三维向量xx来表示球面上的点,那么可以使用矩阵向量乘法RxRx来表示旋转。
    • 旋转群SO(3)SO(3)是一个三维流型,它也可以用ZYZZYZ欧拉角进行参数化表示:α[0,2π]\alpha \in [0, 2\pi]β[0,π]\beta \in [0, \pi]γ[0,2π]\gamma \in [0, 2\pi]
  • 球面信号的旋转:
    • 为了定义球面互相关,引入旋转算子LRL_R,结合函数ff,可以得到旋转函数LRfL_R f[LRf](x)=f(R1x)[L_R f](x) = f(R^{-1} x)
    • 我的理解是:LRfL_R f是一个旋转了RR的特征图,在其上xx位置对应的特征是[LRf](x)[L_R f](x),换算回旋转前的函数ff的特征图上,对应于R1xR^{-1} x位置的特征。
    • 旋转算子在RR上是可逆的,即有:LRR=LRLRL_{R R^\prime} = L_{R} L_{R^\prime}
  • 内积:
    • 在球面信号矢量空间上的内积定义为:
    • ψ,f=S2k=1Kψk(x)fk(x)dx\langle\psi, f\rangle=\int_{S^{2}} \sum_{k=1}^{K} \psi_{k}(x) f_{k}(x) d x
    • 积分测度dxdx表示球面上的标准旋转不变积分测度,可以由球面坐标dαsin(β)dβ/4πd \alpha \sin (\beta) d \beta / 4 \pi表示。
    • 由于球面高度图的体积不随转动变化,所以,可以具有对于任意的旋转RSO(3)R \in \mathrm{SO}(3)的不变性:S2f(Rx)dx=S2f(x)dx\int_{S^{2}} f(R x) d x=\int_{S^{2}} f(x) d x
    • 注意到,LR1L_{R^{-1}}LRL_R伴随,那么LRL_R是幺正(unary)的:
    • LRψ,f=S2k=1Kψk(R1x)fk(x)dx=S2k=1Kψk(x)fk(Rx)dx=ψ,LR1f\begin{aligned}\left\langle L_{R} \psi, f\right\rangle &=\int_{S^{2}} \sum_{k=1}^{K} \psi_{k}\left(R^{-1} x\right) f_{k}(x) d x \\ &=\int_{S^{2}} \sum_{k=1}^{K} \psi_{k}(x) f_{k}(R x) d x \\ &=\left\langle\psi, L_{R^{-1}} f\right\rangle \end{aligned}
  • 球面相关性(spherical correlation):
    • 对球形信号ffψ\psi,定义相关性为:
    • [ψf](R)=LRψ,f=S2k=1Kψk(R1x)fk(x)dx[\psi \star f](R)=\left\langle L_{R} \psi, f\right\rangle=\int_{S^{2}} \sum_{k=1}^{K} \psi_{k}\left(R^{-1} x\right) f_{k}(x) d x
    • 输入是SO(3)SO(3)上的一个旋转矩阵,ff为输入信号,ψ\psi为滤波器,这个函数就是计算输入信号与滤波器在旋转为RR时的相关性。
  • SO(3)SO(3)上信号的旋转:
    • 对旋转算子进行推广,以便能对SO(3)SO(3)上的信号起作用。
    • 对于f:SO(3)RKf : \mathrm{SO}(3) \rightarrow \mathbb{R}^{K}R,QSO(3)R, Q \in \mathrm{SO}(3)[LRf](Q)=f(R1Q)\left[L_{R} f\right](Q)=f\left(R^{-1} Q\right)
  • 旋转群相关:
    • 与前面类似,定义旋转群上两个信号f,ψ:SO(3)RKf, \psi : \mathrm{SO}(3) \rightarrow \mathbb{R}^{K}的相关性:
    • [ψf](R)=LRψ,f=SO(3)k=1Kψk(R1Q)fk(Q)dQ[\psi \star f](R)=\left\langle L_{R} \psi, f\right\rangle=\int_{\mathrm{SO}(3)} \sum_{k=1}^{K} \psi_{k}\left(R^{-1} Q\right) f_{k}(Q) d Q
    • 这里的dQdQSO(3)SO(3)上的不变测度,可以用ZYZZYZ欧拉角来表示:dαsin(β)dβdγ/(8π2)d \alpha \sin (\beta) d \beta d \gamma /\left(8 \pi^{2}\right)
  • 等变性:
    • 等变性指的是,对于一些算子TRT_R,如果ΦLR=TRΦ\Phi \circ L_{R}=T_{R} \circ \Phi,那么Φ\Phi就是等变的。
    • [ψ[LQf]](R)=LRψ,LQf=LQ1Rψ,f=[ψf](Q1R)=[LQ[ψf]](R)\left[\psi \star\left[L_{Q} f\right]\right](R)=\left\langle L_{R} \psi, L_{Q} f\right\rangle=\left\langle L_{Q^{-1} R} \psi, f\right\rangle=[\psi \star f]\left(Q^{-1} R\right)=\left[L_{Q}[\psi \star f]\right](R)
    • 球面相关性和群相关性都是等变的。

5、使用G-FFT进行快速卷积

  • 总所周知,快速傅里叶变换(FFT)可以高效地计算相关性和卷积。
  • 由傅里叶定理给出:fψ^=f^ψ^\widehat{f * \psi}=\hat{f} \cdot \hat{\psi}
  • FFT的时间复杂度为O(nlogn)O(n \log n),而乘法算子具有线性复杂度,因此使用FFT实现的相关性比原始的相关性计算时间复杂度O(n2)O(n^2)快的多。
  • 对于球面和旋转群上的函数,有一个类似的变换,把它称作广义傅里叶变换(GFT)和其对应的快速算法(GFFT)。论文中没有做详细描述,这里也不展开描述,详细可以参考这篇文档:SOFT: SO(3) Fourier Transforms。这篇论文中也是直接使用了他们推导好的数学公式。
  • XX表示S2S^2SO(3)SO(3),再用UlU^l表示相应的基函数,在函数f:XRf : X \rightarrow \mathbb{R},GFT可以写为:
    • f^l=Xf(x)Ul(x)dx\hat{f}^{l}=\int_{X} f(x) \overline{U^{l}(x)} d x
    • 实际应用中使用GFFT可有效计算这个积分。
  • SO(3)SO(3)的逆变换定义为:
    • f(R)=l=0b(2l+1)m=lln=llf^mnlDmnl(R)f(R)=\sum_{l=0}^{b}(2 l+1) \sum_{m=-l}^{l} \sum_{n=-l}^{l} \hat{f}_{m n}^{l} D_{m n}^{l}(R)
    • S2S^2下的逆变换也依次类推。
    • 最大频率bb是带宽,与网格的分辨率相关。
  • 在频域内实现球面互相关:
  • 论文笔记:Spherical CNN
  • 信号ff与滤波器ψ\psi经过傅里叶变换得到球形频域上旋转等变的频谱,相乘随后对各通道求和,最终做傅里叶逆变换转换回空域。由于滤波器是局部的,所以使用矩阵乘法(DFT)会比FFT更快。

6、实验

论文笔记:Spherical CNN

论文笔记:Spherical CNN

3、参考资料

  1. Spherical CNNs(全文翻译)
  2. 从群等变卷积网络到球面卷积网络
  3. https://www.jiqizhixin.com/articles/spherical-cnns
  4. SOFT: SO(3) Fourier Transforms
  5. Spherical CNNs

相关文章: