背景
早期的点云网络,如PointNet、PointNet++、DGCNN等经典网络,尽管对于点云数据的识别具有很好的能力,但是其实验条件较于理想。在这些网络中,尽管在训练过程中会引入一定的数据增强技术(如随机扰动、平移等),但是有限的增强无法表征现实场景中的所有情况。以空间旋转(SO3)为例,对于一般的点云网络,其送入网络学习特征的数据样本是固定视角的,然而在实际中,物体的任意旋转是时常发生的,尤其对于小物体而言;如图1所示,如果把任意旋转后的点云数据送入这些一般的分类网络中进行测试,可以看到性能出现大幅下降。于是,我们可以认为这些网络是对旋转敏感的。
解决方法
对于此类问题的发生,可以宏观地概括为点云的绝对坐标直接参与卷积计算导致的。可以想象,物体发生旋转前后的坐标发生了改变,假设物体中由点云表示,其中,而空间中的旋转可以通过旋转矩阵表征,则旋转后的点云。那么,旋转后的点云坐标送入PointNet等网络中会学习到不一致的特征。另一方面,如果网络是旋转不变的,则满足,其中表示网络模型。
为此,需要改变输入的特征,即不直接输入绝对坐标到网络中,并且使网络学习到的特征不论如何旋转都是一致的。目前大致有两种技术方案可以实现旋转不变:(1)构造相对的几何特征,由于旋转不会改变点之间的相对位置关系,那么可以先利用点的绝对坐标提取各点隐式具备的几何特征,例如两点间的相对距离、邻近点之间的夹角,这些几何信息是不受旋转影响的;(2)将点云映射到新的坐标系,通过PCA(主成分分析)或者SVD(奇异值分解)算法可以得到由3个正交基构成的正规(canonical)坐标系,再与原始点云相乘即可得到正规姿态(canonical poses),而正规姿态具有旋转不变性。
这两种方法都有各自的优劣:对于前者,几何特征需要手工构造,并且存在信息丢失的问题,但是从实验结果以及技术发展来看,这种方法都好于后者;相反,通过PCA或者SVD得到正规姿态的方法所损失的信息少于前者,但是存在姿态模糊的问题,需要设置约束条件消除这些模糊,且消除模糊的方法没有确定的结论。综上,构造手工几何特征的方法是目前实现旋转不变性的主流方法。
需要指出的是,实现旋转鲁棒的另一种方法是旋转等变(rotation-equivariance),与旋转不变不同的是,该方法满足,即特征会跟着旋转,但保持一种确定的映射关系。这种方法最大的不足在于不稳定,无法保证“不变”。
相关工作
构造手工几何特征的思想最早可以追溯到2010年的一篇论文,其作者提出的点对特征(point-pair features,PPF)首次考虑了点间的几何关系。后面随着基于深度学习的点云网络的发展,这种思想带入到了点云旋转不变性的研究中。 RIConv [1]、RI-Framework [2]、LGR-Net [3]、RIConv++ [4]、PaRI-Conv [5]等工作均提出了精心设计的几何特征。尽管构造这些特征会损失一部分原始信息,但是最新的工作所达到的性能已经超越了一些经典的点云网络,而任意旋转均能获得一致的性能表现使得这些网络具有显著的旋转鲁棒性。另外,也有一些工作(Li et al. [6]、LGR-Net)使用PCA或SVD得到的正规姿态实现了旋转不变,CRIN[7]提出了一种新的全局坐标系,使得点在该坐标系下具有旋转不变性。最后也有一些工作同时考虑了这两种方法,如LGR-Net。
为更进一步的探讨旋转不变性的发展,下面选取了具有代表性的几篇论文,从技术方案上分析其特点和创新。具体细节可参考原文。
(1)RIConv(3DV 2019)代码(TensorFlow)
这篇工作是最早研究使用手工几何特征实现点云旋转不变性的,其构造的点对特征较为简单,仅由4个几何特征组成,因此信息损失较多,在下游任务的表现也较差。但是这篇工作证明了使用这些旋转不变的几何特征作为输入能够使得网络具有旋转不变性,为后续的工作提供了理论基础。
(2)RI-Framework(TVCG 2021)代码(TensorFlow)
这篇工作同时考虑了一个查询球(query ball)内的局部和全局特征。需要指出的是,此处所构造的全局几何特征并不是真正意义上的全局特征,只是相较于局部特征具有更大的感受野,其本质还是在邻域内构造特征。但是这篇工作的亮点不仅在于考虑了非局部的几何关系,而且较为系统地阐述了旋转不变性的定义和理论,可以作为入门读物。
(3)LGR-Net (PR 2022)代码
这篇工作提出了双分支网络,并行处理局部和全局的特征,即同时运用了上述的两种实现旋转不变性的技术方案。但是同样地,这篇工作在全局特征的学习上存在与RI-Framework相似的问题,即全局特征仍局限于局部的感受野,原因在于全局分支中使用的EdgeConv只会在邻域的图内计算特征,而不会考虑更远距离的点与其的相关性。
(4)RIConv++(IJCV 2022)代码
这篇工作是RIConv的改进版,作者分析了原先RIConv模型的缺陷,并提出了改进后的旋转不变网络。其改进点主要包括两点,一是手工几何特征的构造,二是提出了对噪声更稳定的局部参考系(Local Reference Frame, LRF)。对于前者,作者此次考虑了邻近点的贡献,并进一步地提取点之间的几何关系;对于后者,作者提出了LRA(Local Reference Axis),其可以看作是LRF的一种特殊情况,使得网络对于噪声具有更好的鲁棒性。
(5)PaRI-Conv(CVPR 2022)代码
这篇工作考虑了姿态对于旋转不变性的影响,并且在几何特征构造上也是考虑了邻近点的贡献。从下游任务的实验结果可以看出,PaRI-Conv和RIConv++这两篇取得最好性能的最新工作都是考虑各点与其邻近点之间的几何关系,并且也考虑了法线的信息,说明这种构造几何特征的思路更能表征原始坐标中的局部关系。
(6)CRIN(AAAI 2023)无代码
这篇工作主要是从全局特征的角度考虑旋转不变性。具体地,作者提出了一个离心坐标系(Centrifugal Reference Frame,CRF),并将点从原始坐标系转换到CRF下,使得每个点都隐式地表示了一个离散的旋转角度,且保证旋转前后任意一点在CRF下的坐标值不变。进一步地,作者将这些离散的旋转角度扩展到连续分布的旋转。
小结
目前的旋转不变性的实现多为模块改动,即设计实现旋转不变性的模块,再修改backbone中的对应模块即可;而backbone的选择一般为经典网络,如PointNet++和DGCNN。
主要相关文献链接
[1] RIConv [2] RI-Framework [3] LGR-Net [4] RIConv++ [5] PaRI-Conv [6] Li et al. [7] CRIN