The website uses cookies. By using this site, you agree to our use of cookies as described in the Privacy Policy.
I Agree
blank_error__heading
blank_error__body
Text direction?

spherical CNNs 论文解读(三)

先想清楚自己想要什么吧

本文是《spherical CNNs 论文解读》的第三部分,对作者T.S. Cohen的ICLR2018论文Spherical CNNs 进行解读。
下面拟分成三部分进行展开:文章的出发点及要解决的问题、文章的具体思路、实验部分、文章的贡献总结。
文章的出发点及要解决的问题
这篇文章在上一篇文章的基础上进一步扩展,要解决的问题从神经网络对旋转图像的信息提取扩展到对球面图像的信息提取。三维目标识别包括无人机、机器人和自动驾驶汽车的全方位视觉,分子回归问题以及全球气候和气候建模等。如果直接将球面图像投影到平面上去会导致变形,再用传统的神经网络对变形了的平面图像进行处理必然会带来巨大的误差。
作者在这篇文献中依旧采用群论的知识来解决。首先在上一篇文献中,作者证明了图像在二维空间的旋转和平移等变换跟二维平面的变换是同构的,于是通过扩充核的方式解决旋转图像的信息提取的问题并取得了较好的结果。而对于球面图像,作者证明了球在三维空间的旋转跟三维旋转群SO(3)同构而并非跟球面S^2群同构。这是因为单位球面可理解成R3空间中所有范数为1的点的集合,属于二维流形,而三维旋转群才是三维的流形。

文章的具体思路
直接分析球面CNN还有两个挑战,一个是像素方格是离散的对称变换,但是对于球面并没有完美的可以表示的对称方格。SO(3)是连续且非可换群。另一个是由于SO(3)是三维的,其计算复杂度将是O(n^6)。
于是,作者引入了非可换调和分析,采用广义的快速傅里叶算法解决。对于S^2,采用球坐标 进行参数化,其中 。对于SO(3),采用ZYZ欧拉角进行参数化,其中 。在文献的附录中,作者证明了S^2群其实就是SO(3)群中γ参数为常量的特例。接下来,作者还给出了考虑核球面变换和核的三维旋转的互相关公式,也就是传统卷积公式的新版本,最后证明了先对图像进行三维旋转再进行互相关操作跟先进行互相关操作再三维旋转是相等的。这也就证明了等变性。
在这里简单提一下傅里叶变换。狭义的傅里叶变换是指将满足条件的函数表示成一系列正弦函数的线性组合的形式。而广义的则不限制一定是正弦函数。可以证明,经傅里叶变换后的SO(3)和S^2在进行互相关,也就是原来的卷积扩展到核也做变换的情况,同样满足傅里叶定理。于是作者引入了量子力学中的Wigner D-函数对SO(3)群采用广义的傅里叶展开,得到一系列矩阵。这是因为Wigner D-函数是正交并且完备的,满足条件的函数可以表示成Wigner D-函数的线性组合的形式。作者进一步证明球谐函数是Wigner D-函数中γ参数为0的特例,于是引用球谐函数对S^2进行傅里叶展开。对于SO(3)和S^2的快速傅里叶变换,输入分别是对三维旋转的空间信号进行离散网格采样后的矩阵和向量。对于SO(3),先在α和γ轴进行标准的二维平移的快速傅里叶变换,然后从Wigner-d(小d)函数中预先计算出的样本数组来实现的轴的线性收缩。对于S^2,仅在α轴进行快速傅里叶变换,然后用预先计算的勒让德函数线性收缩β轴。
针对SO(3)计算复杂度达O(n^6),作者引入了傅里叶中心切片定理进行简化。对于平面图像,傅里叶切片定理是指图像在特定角度下的一维傅里叶变换结果跟二维傅里叶变换下同样角度的切片结果一样。因此,对图像在各个角度下进行一维傅里叶变换,就可以得到二维傅里叶变换后的完整的图像。对于这个定理的理解,可以参考这个讲解视频:【17数模国赛知识点】傅里叶中心切片定理-ASTRA Toolbox。应用到球面图,也就是对图像先进行多个通道的二维S^2傅里叶变换,得到的汇总结果再进行三维的SO(3)傅里叶逆变换就可以重构得到原来的图像进行SO(3)傅里叶变换后的图。用S^2傅里叶变换和SO(3)傅里叶逆变换来避免直接运用SO(3)傅里叶变换带来的计算复杂度,从而提高计算效率。

作者给出了SO(3)傅里叶逆变换的表达式:

这里的b称为最大频率,实际上就是进行离散采样时的带宽。其对应重构图像的分辨率,也可能引入等变误差。因为文章对等变性的证明均基于连续的S^2和SO(3)变换,并不确定离散之后结论是否依然成立,因此有必要进行探究。文章选取不同的带宽和层数进行实验并证明等变误差是由于图像的旋转造成的,而非神经网络层的采样。虽然误差会随着分辨率和层数增加,但是在我们关注的分辨率区域内是可控的。具体验证结果如下:

实验部分
简单描述一下实验的流程。首先是对每个目标输入一张统一对齐的和一张任意角度旋转的3d扫描图,然后将3维的网格投影到封闭球面上,对球面上每个点向球中心发射一条射线并记录线的长度以及表面角的cos/sin,同时结合球的北极发射射线的信息,一共得到6个通道。选取合适的带宽进行离散化,然后对特征图进行S^2的快速傅里叶变换,由于这里的核是一个系数矩阵,所以采用离散傅里叶变换取代快速傅里叶变换,之后两者进行卷积,再把这6个通道处理后的结果加和并进行SO(3)的逆傅里叶变换,完成图像的重建,重建后的模型用于后续的识别。

作者对球面上旋转的MNIST进行了三组实验。(1)训练和测试均输入无旋转的图像(2)训练和测试均输入旋转了的图像(3)训练时输入无旋转的图像,测试时输入旋转了的图像。

结果显示,在第一组实验中,传统的平面CNN比球形CNN高0.2%,但是在第二组实验中,传统CNN的准确率降到了0.23%,在最后一组中甚至降到0.11%,这跟乱猜基本没有区别。但是球形CNN在后两组实验中准确率仅有轻微的下降,依然有0.95%和0.94%。作者还进行了3D图的识别实验:

在SHREC17比赛的官方5个不同评分指标中,球形CNN均取得前三的成绩。对于没有取得第一,作者认为这是由于每个评分指标下的模型针对对应的评分指标进行特定的设计,而球形CNN不用特殊调整就可以在5个评分指标下均有前三的表现,这已经很好地证明了这个网络的有效性。文献还针对化学中的分子能量回归问题进行实验,效果也很好,但是基于笔者学习精力有限,对于化学领域的专业知识并不十分了解,此处不做展开。

文章的贡献总结
总结这篇文献,贡献在于(1)提出了球形CNN这个理论,为球面图像的识别提供了新的思路;(2)首次对于S^2和SO(3)的广义傅里叶变换提出了自动可微的计算方式;(3)对球形CNNs在旋转不变学习问题上应用的首次实证支持。对于后续的改进,作者提出可以尝试引入SE(3)群,SE(3)群是在SO(3)群的三维旋转变换的基础上加入了平移变换,作者认为SE(3)可以描述更多的变换,也更加适用于现实情况。
总的来说,作者这两篇文章的思路就是借助同构对称群的思想,将输入的旋转了的图看成是对原来图进行了对应的操作,并通过对核也进行对应的操作来达到和输入原图,用原核处理一样的效果,实现等变性,以便于神经网络的深层处理以及权重共享,这两点正是神经网络视觉识别能力的两大基础。而这两种操作对应的两个对称群由于同构,分析任意一个得到的性质也适用于另一个。只是对不同变换的图,对应核也有不同操作,对应到不同的群。在球面图处理的时候,作者发现沿用平面旋转图的做法直接讨论三维旋转群将带来巨大的计算复杂度,于是又引入傅里叶切片定理把对SO(3)的傅里叶处理转换成先做S^2傅里叶变换再做SO(3)逆傅里叶变换。由于旋转群不再是离散群,于是先下采样离散化再引入广义傅里叶变换,并在S^2和SO(3)的广义傅里叶变换中,引入了Winger-D函数和球谐函数。然后补做实验证明了一开始先进行下采样离散化带来的等变误差可接受。最后进行实验,获得的结果也十分理想,于是便验证了这个想法的可行性。

以上解读均基于本人的理解,如发现任何错漏,欢迎及时指出,共同讨论。感谢您的支持。

Measure
Measure
Related Notes
Get a free MyMarkup account to save this article and view it later on any device.
Create account

End User License Agreement

Summary | 2 Annotations
球在三维空间的旋转跟三维旋转群SO(3)同构而并非跟球面S^2群同构
2021/01/09 10:48
三维旋转群才是三维的流形
2021/01/09 10:48