Spherical CNN
1、四个问题
- 要解决什么问题?
- 3D场景下旋转不变性特征的提取。
- 用了什么方法解决?
- 提出了球形卷积操作,也叫作球形互相关(spherical cross-correlation)。球形卷积具有旋转不变性。
- 为了增强计算效率,使用FFT(Fast Fourier Transform)来计算球形卷积。
- 效果如何?
- 在3D模型识别上效果还不错,与其他深度神经网络的模型相比准确率差一些,但是对旋转变化的鲁棒性更强。
- 还存在什么问题?
- 由于在球形卷积中使用了FFT和IFFT,在转换过程中会损失一部分信息。
- 球形卷积仅针对的理想的3D物体做到了旋转不变性,不存在背景或者其他噪声的干扰,如果在存在多个3D物体的自然场景下,必须要先分割出3D物体再提取旋转不变特征,流程过于繁琐。
2、论文概述
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 x∈Z2),随后再引出 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 x∈Z2)输入的特征图与滤波器的内积计算得到的结果。
- 类似的,球面互相关(spherical correlation)可以理解为:
- 输出的特征图是按 R R R旋转时( R ∈ S O ( 3 ) R \in SO(3) R∈SO(3))输入的特征图与滤波器的内积计算得到的结果。
4、球面CNN
- 球面单元:
- S 2 S^2 S2可以定义为一组单位球面上的点的几何 x ∈ R 3 x \in \mathbb{R}^3 x∈R3,是一个三维流型,可以用球面坐标系来表示: α ∈ [ 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:S2→RK对球面图像和滤波器进行建模,其中 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(R−1x)。
- 我的理解是: 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 R−1x位置的特征。
- 旋转算子在 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=1∑Kψ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) R∈SO(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}} LR−1与 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=1∑Kψk(R−1x)fk(x)dx=∫S2k=1∑Kψk(x)fk(Rx)dx=⟨ψ,LR−1f⟩
- 球面相关性(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⟩=∫S2∑k=1Kψk(R−1x)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,Q∈SO(3): [ L R f ] ( Q ) = f ( R − 1 Q ) \left[L_{R} f\right](Q)=f\left(R^{-1} Q\right) [LRf](Q)=f(R−1Q)。
- 旋转群相关:
- 与前面类似,定义旋转群上两个信号 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=1∑Kψk(R−1Q)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⟩=⟨LQ−1Rψ,f⟩=[ψ⋆f](Q−1R)=[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:X→R,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=0∑b(2l+1)m=−l∑ln=−l∑lf^mnlDmnl(R)
- S 2 S^2 S2下的逆变换也依次类推。
- 最大频率 b b b是带宽,与网格的分辨率相关。
- 在频域内实现球面互相关:
- 信号 f f f与滤波器 ψ \psi ψ经过傅里叶变换得到球形频域上旋转等变的频谱,相乘随后对各通道求和,最终做傅里叶逆变换转换回空域。由于滤波器是局部的,所以使用矩阵乘法(DFT)会比FFT更快。