当前位置:首页 > 资讯 > 正文

翻译和理解:Deep Closest Point: Learning Representations for Point Cloud Registration

翻译和理解:Deep Closest Point: Learning Representations for Point Cloud Registration

Title: Deep Closest Point: Learning Representations for Point Cloud Registration

Authors: Yue Wang Justin M. Solomon

原文链接:https://arxiv.org/abs/1905.03304

翻译: 夜晓岚渺渺

(理解的不够深刻,翻译有些出入,仅作为个人的笔记和交流学习)

参考:http://www.liuxiao.org/2019/08/%e8%ae%ba%e6%96%87%e7%ac%94%e8%ae%b0%ef%bc%9adeep-closest-point-learning-representations-for-point-cloud-registration/

点云配准是计算机视觉应用于机器人、医学成像和其他应用的一个关键问题。这个问题涉及到从一个点云到另一个点云的刚性转换,以使它们对齐。迭代最近点(ICP)及其变体为该任务提供了简单、易于实现的迭代方法,但这些算法会收敛到欺骗性的局部最优。为了解决ICP管道中的局部最优解和其他困难,我们提出了一种基于学习的方法,命名为Deep nearest Point (DCP),其受到计算机视觉和自然语言处理的最新技术启发。我们的模型包括三个部分:一个点云嵌入网络,一个与指针生成层相结合的基于注意力机制的模块,其用于近似组合匹配,和一个用于提取最终的刚性变换的可微的奇异值分解(SVD)层。我们在ModelNet40数据集上端到端地训练我们的模型,并在几个设置中显示它的性能优于ICP及其变体(例如Go-ICP、FGR)和最近提出的基于学习的方法PointNetLK。除了提供最先进的配准技术外,我们还评估将我们学到的特征转移到看不见的物体上的适用性。我们还提供了对我们所学模型的初步分析,以帮助理解特定领域和/或全局特性是否有助于刚体配准。

      几何配准是许多计算领域的关键任务,包括医学成像、机器人、自动驾驶和计算化学。在其最基本的表现形式中,配准涉及到对一个刚性运动的预测,以使一个形状与另一个形状对齐,这可能会被噪声和偏心混淆。

      许多建模和计算的挑战阻碍了一个稳定和有效的配准方法的设计。给定精确对应点对,奇异值分解得到全局最优对准;类似地,给定一些全局对齐信息,计算匹配就变得更容易了。考虑到这两个观察结果,大多数算法在这两个步骤之间交替进行,以获得更好的结果。然而,所得到的迭代优化算法容易出现局部最优。

      最流行的例子是迭代最近点(ICP),在基于固定对应估计的刚体运动估计和根据最接近的匹配更新对应之间进行选择。尽管ICP单调地降低了一定的目标函数测量对准度,但由于问题的非凸性,ICP经常陷入次优局部极值。许多方法[34,11,53]试图通过使用启发式来改进匹配或通过搜索更大的运动空间SE(3)来缓解这个问题。这些算法通常比ICP慢,但仍然不能提供可接受的输出。

       在这项工作中,我们从深度学习的角度重新审视ICP,使用现代机器学习、计算机视觉和自然语言处理工具解决ICP管道中每个部分的关键问题。我们将得到的算法称为深度最近点(Deep nearest Point, DCP),这是一种基于学习的方法,它采用两个点云,并对它们进行严格的对齐变换。

       我们的模型由三部分组成:(1)我们将输入点云映射到置换/刚性不变嵌入,以帮助识别匹配的点对, (2) 结合指针网络的注意模块预测点云之间的软匹配, (3) 一个可微的奇异值分解层预测刚性变换。我们在各种环境下,在ModelNet40[50]上端到端地训练和测试我们的模型,表明我们的模型不仅高效,而且性能优于ICP及其扩展,以及最近提出的PointNetLK方法[16]。我们学习的特征可扩展到不可见数据,表明我们的模型是学习了显著的几何特征。

 贡献:我们的贡献包括:

•我们确定了用于解决传统ICP管道中的困难的子网结构。

•我们提出了一个简单的架构来预测一个刚性的转换,匹配两个点云。

•我们几个设置下评估了效率和性能,并提供消融研究,以支持我们的构建细节。

•我们分析是否局部或全局特性对配准更有用。

•我们发布我们的code,以促进可重复性和未来的研究。

        传统点云配准方法: ICP[4]是解决刚性配准问题的最著名算法;该算法在寻找点云对应点和求解最小二乘问题之间交替进行对齐更新。

       图形和点集的学习: 几何数据的一类广泛的深度体系结构称为几何深度学习[6],包括最近的方法对图形[49,56,10]和点云[30,31,48,54]的学习。

       序列-序列学习和指针网络: 自然语言处理中的许多任务,包括机器翻译、语言建模和问题回答,都可以表示为序列到序列问题(seq2seq)。

       非局部的方法: 为了去噪图像,非局部意味着[7]利用了一个简单的观察结果,即可以通过对图像中所有像素进行非局部加权平均来去除高斯噪声。


        在本节中,我们阐述了刚性对准问题并讨论了ICP算法,强调了ICP通道中的关键问题。我们用  和  分别代表两个点云,其中  ,。 为了简便记,我们考虑最简单的情况; 当然,这里描述的方法也很容易扩展到情形。

       在刚性配准问题中,假设  是  通过某个刚性移动得到的形式。我们定义刚性变换为 , 其中  和。若 和 以相同的形式排序(意味着xi和yi是配对好的),则想要最小化均方误差 (配准的函数形式)为:

  和  的形心分别为

可以得到如下的协方差矩阵 

可以使用奇异值分解技术(SVD)分解 。那么,最小化(1)中的 得到的配准具有如下的解:

 关于SVD求解旋转矩阵R参见:https://blog.csdn.net/my_lord_/article/details/76043359

                                               https://blog.csdn.net/hongbin_xu/article/details/80537100

                                               https://blog.csdn.net/zhouyelihua/article/details/77807541

                                               https://blog.csdn.net/kfqcome/article/details/9358853

                                               https://blog.csdn.net/qq_30622145/article/details/90438598

                                               http://nghiaho.com/?page_id=671

本文约定  , 其中  是对角的,但可能有符号,这解释了H的方向反转选择。这个经典的正交 Procrustes 问题假设点集彼此已经匹配,即在最后的配准中,对所有的  而言, 应该是映射到  的。如果对应关系未知,则必须修改如下目标函数  以考虑匹配

这里, 中每个点到其在  中对应点的映射定义如下:

方程(5) 和(6) 形成了一个经典的鸡和蛋问题。如果我们知道了最优刚性变换 , 那么,映射  可以从 (6) 中恢复;反之给出最优映射 ,变换可以利用 (1)和 (4) 计算出来。

       ICP迭代逼近 (5) 中的一个E的驻点,其中映射  是优化问题中的一个变量。它的交替包括两个步骤:根据先前的映射  找到当前的最优变换,然后根据求得的变换利用 (6)找到新的最优映射 ,其中  表示当前的迭代。当达到不动点或稳定条件时,算法终止。此过程易于实现,且相对高效,但极容易出陷入局部最优;距离较远的初始对齐会使得映射  的估计较差,很快就会导致算法陷入困境。我们的目标是使用学习过的嵌入来恢复更好的匹配 ,并使用它来计算刚性转换。

       在建立了关于刚性对齐问题的基础知识之后,我们现在可以展示最接近深度的点架构了,如图2所示。简而言之,我们使用PointNet[30] 或者 DGCNN[48] 将点云嵌入到高维空间中, 使用基于注意力模块对上下文信息进行编码, 最后使用微分 SVD 层估计一个配准。

4.1. Initial Features

       我们的管道的第一阶段将未对齐的输入点云  和   嵌入到一个公共空间中,用于在两个云之间查找匹配的点对。我们的目标是找到一种嵌入方法,在对刚性匹配的相关特征保持敏感的同时,对刚性运动进行分割。我们评估了用于学习嵌入模块的两种可能选择, PointNet[30] 和 DGCNN[48]。

       由于我们使用两个输入点云的逐点嵌入来生成映射  并恢复刚性转换,所以我们在输入点云的每个点上寻找一个特征,而不是对每个云寻找一个特征。因此,在这两个网络体系结构中,我们在最后一个聚合函数之前使用这个生成的表达, 记为  和 , 假设总共有  层。

       更详细地说,PointNet采用一组点,通过  中的非线性函数将每个点嵌入到高维空间中,并可选地在应用通道聚合函数  后输出整个点云的全局特征向量 (例如: 或者 )。令   代表第  层中点  的嵌入, 并且  代表由共享的多层感知器参数化的第  层中的一个非线性函数。那么,前馈机制为 。

       虽然 PointNet 在很大程度上是根据点云中每个点的嵌入独立地提取信息,但是 DGCNN 明确地将局部几何信息合并到它的表达中。

其中  表示图 G 中顶点  的邻点。PointNet特性不包含局部邻域信息,我们从经验上发现 DGCNN 的局部特性对于我们管道的后续步骤中的高质量匹配是至关重要的。

       我们从PointNet过渡到DGCNN的动机是,观察到对于刚性对齐最有用的特征是从局部和全局信息共同学习的。此外,我们还可以通过使它们具有特定的任务来改进我们的特征匹配,也就是说,根据  和 的细节一起改变特征,而不是单独嵌入  和  。也就是说,刚性对齐的任务,例如,有机形状可能需要不同的功能,而不是那些对齐机械零件与锋利的边缘。受到 BERT[8]、非局部神经网络[47]和基于注意力模型的关系网络[35]等最近成功的启发,我们设计了一个模块,通过捕获自我注意和条件注意来学习协同上下文信息。

         和   为 4.1 节中模块生成的嵌入;这些嵌 入是独立计算的。我们的注意力模型要学习一个函数 , 这里  为嵌入维数,其为点云提供了新的嵌入

注意到我们把  看做一个残余项,  提供一个辅助项并根据其输入的顺序改变  和  。这里的思想是,映射  以了解Y结构的方式修改与X中的点相关的特征;映射  充当起到对称函数的作用。我们选择  作为一个 Transformer[43] 给出的不对称函数, 由于我们在刚性排列中遇到的匹配问题类似于序列到序列问题及其在其启发下发展的问题, 除了使用位置嵌入来描述单词是否在句子中。文献[43]中的Transformer网络如下:

注意力机制参考资料:https://blog.csdn.net/TG229dvt5I93mxaQ5A6U/article/details/78422216

                                    https://www.cnblogs.com/databingo/p/9769928.html

                                    https://blog.csdn.net/joshuaxx316/article/details/70665388

        ICP最常见的失效模式是匹配估计   远不是最优的。当这种情况发生时,随后使用 (6) 来估计刚体的运动并不会显著地提升对准,就会得到一个欺骗性的局部最优解。作为一种替代方法,我们学习的嵌入经过专门培训,可以使用下面介绍的简单过程公开匹配的点对。我们将此步骤指针生成称为步骤指针生成,再次受到4.2节中介绍的注意力文献中的术语的启发。

       为了避免选择不可微的硬分配,我们使用了一种概率方法,该方法生成一个从一个点云到另一个点云的(单随机的)“软映射”。也就是说,每个  被赋值一个概率向量指向  中元素,如下:

这里, 代表由注意模块生成的  的嵌入,并且   表示从注意力模块得到的矩阵  的第  行。我们可以认为 作为每个  指向  中的元素一个软指针。

参考资料 https://blog.csdn.net/qq_30219017/article/details/89043485

             https://blog.csdn.net/qq_20135597/article/details/83586694

             https://blog.csdn.net/qq_39006282/article/details/92691030

             https://blog.csdn.net/jiaojiaolou/article/details/90484955

             https://blog.csdn.net/qq_17827079/article/details/80171728

          我们架构中的最后一个模块从4.3节中计算的软匹配中提取刚体运动。我们使用软指针为  中的每个点生成匹配的  中的平均点:

这里,我们定义  为一个包括  中点的矩阵。那么, 和  可基于点对  (对所有的  而言) 由 (4) 提取。

       为了在网络中反向传播梯度,我们需要对 SVD 进行微分。[26] 描述了计算这个导数的标准方法; 该计算的版本包含在PyTorch[27] 和T ensorFlow[1] 中。注意到我们只需要解决一个 3×3 的特征值问题,小到可以用简单的算法甚至(原则上)一个封闭的公式来解决。

SVD求旋转参考资料:https://blog.csdn.net/zhouyelihua/article/details/77807541

                                    https://blog.csdn.net/kfqcome/article/details/9358853

                                    https://blog.csdn.net/qq_30622145/article/details/90438598

        结合起来,上述的模块从一对点云  和  映射到一个刚性运动 ,使它们彼此对齐。初始特征模和注意力模块都是由一组神经网络权值进行参数化的,其必须在训练阶段进行学习。我们采用一种相当直接的策略去训练,度量人工合成的点云对与真实值的  的误差。

        我们使用下面的损失函数来测量我们的模型对地真实刚性运动的一致性: