论文:《PCRNet: Point Cloud Registration Network using PointNet Encoding》
Code:https://github.com/vinits5/learning3d (541 star)
这篇文章整体架构设计简洁明了,一句话描述就是简单粗暴,上手比较容易。
摘要:
-
解决问题:将深度学习的相关工具用于解决点云配准问题,存在两个难点:
-
如何有效的建立针对点云的表示形式,以适应网络学习?
2019年前后的配准工作,主要是基于PointNet对点云编码来解决。由于PointNet利用池化技术,有效的提取了点云的全局特征。基于这种全局特征,点云能够被表示为一个与点顺序无关的向量形式。这个过程相当于对点云进行了一次无序编码,使得编码后的特征向量继承了点云的全局特征与语义信息。
-
如何建立有效的迭代优化方法,使得配准过程能够利用深度学习强大的特征分析能力?
之前的工作还是使用传统的优化方法,如牛顿法,ICP,梯度下降,LK算法等,针对编码后的特征向量实现姿态对齐。主要缺点就是没有利用深度学习来实现对变换矩阵的求解,整个计算过程的效率比较低。
-
-
提出了PCRNet,尝试使用一个基于全连接层的深度网络结构,直接输出基于7个参数表示的变换矩阵。因为没有使用传统的姿态优化,而是直接利用全连接层求解变换矩阵,其优点在于计算效率高,有效的学习了大规模样本的配准规律,且对噪声的鲁棒性具备一定优势。
网络架构:
整体分为两个部分:
-
第一部分基本等同于PointNet全局特征提取结构,分别由几个MLP组成,数据维度分别变换为(64,64,64,128,1024),之后做最大池化,每一维取最大值,那么就从一个n×3的点云变成1×1024的特征向量。配准的输入是两个点云,因此就会得到两个1024维的向量PS和PT(可以粗略的认为这两个特征向量代表了各自的位置信息),将二者结合,就变成了一个2048维的向量,至此,基于PointNet的编码过程完成。
全局特征向量包含关于点云的几何形状和方向的信息,因此可以通过比较特征向量来获得两个点云之间的变换。换句话说,我们计算刚体变换T,它使φ(PS)和φ(PT)之间的差最小化。
-
比较关键的是第二部分,即PCRNet基于编码的变换矩阵求解过程。这里,PCRNet基于全连接层结构设计了一个神经网络,将配准问题建模为一个简单的回归问题,直接求解变换矩阵。网络结构如下:
该结构包含五个隐藏层,维度变换为(1024,1024,512,512,256,7)。最后的输出是一个7维的特征矩阵T,表示变换矩阵相关的7个参数,前三个用于表示平移,后四个用于表示角度。基于该结构,PCRNet通过训练能够直接输出变换矩阵。
改进为迭代版本:
类似于PointNetLK中的LK算法以及ICP,对于变换矩阵的求解过程,是一个迭代的过程。经过每一轮求解得到的变换矩阵T(i),将源点云按照变换矩阵进行变换,然后重新输入PointNet提取全局特征,然后继续求解新的变换矩阵。经过一系列的迭代,直到收敛。下图展示了变换矩阵的求解过程。(对于迭代版本的实现,全连接层只用了三个隐藏层和一个输出层)
损失函数:
用于训练配准网络的损失函数的目的应该是最小化源和模板点云中对应点之间的距离。本文使用EMD距离计算(对于点云配准来说,该loss并不常用,了解即可),其公式表示如下:
其中,P_T是模板点云特征向量,P_S_est是由源点云经变换矩阵T预测出来的特征向量。该公式求一个双射函数 ψ,使得基于该函数的点对距离和取最小。
EMD(Earth Mover’s Distance)函数是一种用于衡量两个分布之间距离的函数。在点云分类和分割任务中,我们可以将预测点云和真实点云视为两个分布,并计算它们之间的EMD距离来衡量它们之间的相似度。通过最小化EMD函数,我们可以使模型输出更加接近真实标签,从而提高模型的性能和泛化能力。它可以比其它常见的距离度量方式更好地处理不同形状和大小的点云数据。
但需要注意的是,EMD函数的计算复杂度较高,通常需要使用最大流算法或动态规划等高效的算法来计算。同时,我们还需要使用一个权重参数来平衡不同部分之间的距离,以便更好地适应不同的任务和数据集。
总结:
PCRNet针对变换矩阵的求解还是有一些新意的。脱离传统的ICP,NDT以及LK算法的帮助,利用全连接层直接对变换矩阵求解,不得不说是一个大胆的尝试。然而,在实际使用中,该算法的泛化性较差。我认为其原因在于,PCRNet并没有解决变换矩阵的求解问题。
基于一个大的样本库,并且包含各种各样的姿态,利用深度学习获得一个全局最优的结果,听上去是一个可行的方案。但我们不能保证训练数据能够很好的覆盖各种姿态,各种位置。一旦实际数据的分布不满足训练数据的样本特性,或者训练数据的变换本来就存在较大的偏见,其实际性能就会打折。