高质量的三维点云对于机器人导航、三维重建、视觉测量以及AR/VR等视觉应用具有非常重要的意义,但现有的3D传感技术对于高质量稠密点云的获取十分耗时耗力,从常规的低成本测量中恢复出高质量的点云上采样方法吸引了研究人员和产业界的注意。点云上采样方法通过算法对输入的稀疏低分辨率点云进行处理,来获取均匀稠密的高质量点云。 来自香港城市大学和南洋理工大学的研究人员们提出了一种基于几何变换的深度学习方法PUGeo-Net来学习每一个点的局域参数和法向量,通过二维参数域内的采样和学习出的三维变换实现点云的加密,并能在4x~16x的上采样率上实现精确高效的上采样结果。
PUGeoNet
现存的点云上采样方法主要包括优化方法和深度学习方法,其中优化方法主要用于局部几何特征并适用于光滑的特征较少目标的点云上采样,但他们却难以保留点云中的多尺度结构。近年来,出现了一系列深度学习的方法在点云上采样中取得了优异的结果,包括PU-Net,EC-Net以及MPU模型,其中PU-Net利用点云卷积抽取多尺度特征并将特征进行复制拓展、EC-Net则添加了对于边缘和曲面的学习能力提高了上采样的性能,同时MPU则从图像超分辨的思想来从多层次学习多尺度的细节。这些方法都基于点云片进行处理,使得高分辨率的点云上采样成为可能。
虽然在点云上采样中取得了良好的结果,但这些方法大多基于图像领域的技术,对于输入形状的几何特征考虑较少,这使得生成结果中会包含这多种人工痕迹。表面法向量作为重要的几何特征,目前的方法也没有在输出处理和输出结果中对法向量进行考虑。
在这篇论文中,研究人员基于输入点云形状的几何特征,深入分析了现有深度学习模型的局限,提出了一种针对每个点学习局域参数化法向量的点云加密方法。与现有基于特征空间来生成点云的方法不同,PUGeo-Net则通过纯粹的几何采样方法来实现点云加密。
它首先在二维参数空间中生成样本,而后利用学习出的线性变换将其转为到三维空间中,最终将切面上的上采样点映射回曲面上实现点云加密。下图显示了PUGeo-Net的主要流程,包括学习局域参数、二维参数空间中的点云扩增、以及三维坐标优化和法向量优化。
在考虑到几何特性以及参数化表面采样的启发下,PUGeo-Net主要分为三个步骤:首先将三维曲面表示为二维的参数空间中,随后从参数空间中进行采样,最后将扩增得到的2D参数采样重新映射到三维曲面上去。其中包含了特征抽取、重标定、参数化拓展和优化等模块。
众所周知,参数化技术十分依赖于曲面的拓扑结构,主要包括局域参数化和全局参数化。PUGeo-Net可以针对任意拓扑结构三维形状点云进行处理,但考虑到计算和学习全局参数消耗计算资源十分庞大,研究人员将点云上采样问题简化为了针对每一个点的局域参数化问题。下图展示了如何将二维参数空间中的样本映射到三维曲面上的过程。邻域内的点x可以通过雅可比矩阵J将参数域中的映射到的切平面上。
Φ表示将二维参数空间映射到三维空间中去的可差分映射,针对点,其对应参数平面上的点。那么对于参数空间中的点,可以利用一阶近似来得到:
其中为在参数空间中方向和方向上的偏微分,O为高阶项。由于偏微分方向在切平面内,可以得到点处的法向量:定义雅可比矩阵,此时在三维空间中切平面上的邻域点可由下式表示:随后定义强化雅可比矩阵:T = [Φu, Φv, Φu × Φv] 来计算xi点处的法向量和邻域点上面的数学公式表达了如何将二维参数空间中扩增采样点映射到三维空间原始点切平面的过程。那么PUGeo-Net模型的核心在于学习出在参数空间中采样,同时还在于学习出进行线性变换的增强雅可比矩阵T. 针对每一个点xi要学习出线性变换矩阵Ti。
PUGeo-Net需要以下步骤:首先需要在二维参数域中生成新的样本,随后计算出xi点处的法向量;接着将生成的二维参数域上的点(u_i,v_i)映射到xi点的切平面上,最后通过计算每个新生成点在法向上的位移将这些点投影到3D曲面上去,生成稠密点云。
层级特征学习和重标定
针对点云的处理,研究人员首先引入了类似STN的子网络结构来计算出全局的变换矩阵,并作用到所有的点上以解决旋转不变性的挑战。随后利用DGCNN来逐点的层级特征,将输入片元所包含的局域和全局的内蕴信息进行有效编码。
上图显示了层级特征学习模块由低到高抽取特征的过程,为了充分保持各层级的特征和细节,研究人员利用自门控单元来提升多层级特征的质量。输入的特征通过多层感知机计算出每一层级特征的权重,而后进行加权平均(图中的乘法操作)并最终衔接在一起得到增强后的特征输出。
基于参数化方法的点扩增
这一模块的主要目的在于将输入的稀疏点云扩增R倍,并通过多尺度特征回归粗略生成较为稠密的点云和法向量。扩增过程首先在二维参数空间上进行自适应采样,而后将采样点通过线性变换投影到三维切平面上。
针对每一个点xi,使用一个多层感知机f1(ci) 在参数平面上生成R个2D坐标:
由于局域特征ci中编码曲面的局域信息,在2D平面上将自适应地均匀化采样。值得一提的是这种扩增采样方法与先前的深度学习模型有显著的差异:像PU-Net和MPU等方法都是在特征空间中进行特征复制来实现扩增的,没有考虑生成点间的空间相关性。而PUGeo-Net则通过在2D参数空间中对点云进行拓展,而后将其转换到切平面中,这种方法更多地考虑了点云内部的几何关系。随后针对每个点需要基于特征ci通过另一个多层感知机f2 预测出线性变换矩阵Ti,通过这一矩阵的作用将生成的扩增点转换到切平面上,同时得到此处的法向量:
投影后的坐标如下所示:
法向量则可以通过下式计算得到:
法向量和坐标优化
为了进一步对先前得到的稠密点云和坐标进行优化,需要进行进一步优化。首先需要利用多层感知机f3 预测出每个位于切平面上的点在法向量方向相对于曲面的偏移量,而后利用这一偏移量修正生成稠密点的坐标:
坐标修正如下:
同时针对每个生成点位置处的法向量,也利用一个多层感知机f4来预测出修正的偏移量:
法向量修正如下:
通过进一步的修正是的最终得到的稠密点云不仅分布均匀,贴近真实曲面,同时也为每一点生成了对应的法向量,进一步提高了三维信息的丰富程度。
实验结果
研究人员从Sketchfab中选取了90个高分辨率的3D网格模型对PUGeo-Net进行训练,同时利用Chamfer、Hausdorff、点到曲面等距离和Jensen-Shannon散度等度量指标,将PUGeo-Net与EAR、PU-Net、MPU等模型进行了对比,实验表明,PUGeo-Net在4~16倍的上采样率上都比先前模型得到的结果要好,同时占用的模型空间也较小:
下图显示了重建的CAD模型和扫描数据的上采样结果:
可以看到PUGeo-Net可以更好地处理几何细节,在保持目标拓扑结构的基础上更多的保留了几何细节。生成结果的结果,稠密点分布更加均匀:
再来看一些更为复杂的重建结果: