论文笔记:Spherical CNN

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_第1张图片

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

2、贡献

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

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

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

4、球面CNN

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

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

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

6、实验

论文笔记:Spherical CNN_第3张图片

论文笔记:Spherical CNN_第4张图片

3、参考资料

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

你可能感兴趣的:(论文阅读,深度学习,论文笔记)