点云分割的深度学习(点云配准的学习表示)

点云分割的深度学习(点云配准的学习表示)(1)

引用

Wang Y, Solomon J M. Deep closest point: Learning representations for point cloud registration[C]//Proceedings of the IEEE/CVF International Conference on Computer Vision. 2019: 3523-3532.

摘要

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

1.介绍

在点云配准最基本的实际应用中,配准涉及对刚性运动的预测,以将一种形状与另一种形状对齐,这可能会被噪声和偏向性混淆。

点云分割的深度学习(点云配准的学习表示)(2)

图 1 左:移动的吉他。右:旋转的人。所有方法都适用于小的转换。然而,只有我们的方法才能对具有尖锐特征和大变换的对象实现满意的对齐

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

2 相关工作

3 问题阐述

在本节中,我们阐述了刚性对齐问题并讨论了 ICP 算法,突出了 ICP 管道中的关键问题。我们用 X 和 Y 来表示两点云,其中 X={x1,x2,x3,…,xn}⊂R3, Y={y1,y2,y3,…,yn}⊂R3 为了便于记号,我们考虑最简单的情况,其中 M=N。我们在这里描述的方法很容易扩展到 M≠N,因为 DGCNN、Transformer 和 Softmax 将输入视为无序集。不要求 X 和 Y 具有相同的长度或双射匹配。

在刚性对齐问题中,我们假设 Y 是通过未知的刚性运动从 X 转换而来的。

我们用[Rxy,txy]表示刚性变换,其中 Rxy∊SO(3)并且 txy∊R3。我们想最小化均方误差 E(Rxy,txy),其中——如果 X 和 Y 的排序方式相同——可以写成

点云分割的深度学习(点云配准的学习表示)(3)

定义 X 和 Y 的质心

点云分割的深度学习(点云配准的学习表示)(4)

那么互协方差矩阵 H 由下式给出

点云分割的深度学习(点云配准的学习表示)(5)

我们可以使用奇异值分解(SVD)来分解 H=USV⊤。然后,对齐最小化 E(·,·)在(1)中以封闭形式给出

点云分割的深度学习(点云配准的学习表示)(6)

在这里,我们约定采用 U,V∈SO(3),这个经典的正交 Procrustes 问题假设点集彼此匹配。但是,如果对应关系未知,则目标函数 E 必须要修改来匹配:

点云分割的深度学习(点云配准的学习表示)(7)

这里,从 X 中的每个点到其对应点 Y 的映射 m 由下式给出

点云分割的深度学习(点云配准的学习表示)(8)

方程(5)和(6)形成了一个经典的鸡和蛋问题。如果我们知道最优刚性变换[RXY,tXY],那么映射 m 可以从(6)中得出;相反,给定最佳映射 m,可以通过公式(4)计算出变换。

ICP 迭代地逼近 (5)的一个驻点,包括映射 m(·)作为优化问题中的变量之一。它在两个步骤之间交替:基于先前的映射 mk-1 找到当前的最优变换,并使用(6)基于当前的变换查找最优的映射 mk,其中 k 表示当前迭代。当达到固定点或停顿标准时,算法终止。该过程易于实现且相对高效,但极易出现局部最优;一个遥远的初始对齐会产生一个糟糕的映射估计,迅速导致算法卡住的情况。我们的目标是使用学习嵌入来恢复更好的匹配 m(·) 并使用这种匹配来计算刚性变换。

4 深度最近点

在建立了关于刚性对齐问题的预备知识后,我们现在可以展示我们的 DeepClosest Point 架构,如图 2 所示。简而言之,我们使用 PointNet 或 DGCNN 将点云嵌入到高维空间中,使用基于注意力的模块编码上下文信息,并最终使用可微的 SVD 层估计对齐。

4.1 初始属性

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

在这两种网络架构中,我们使用在最后一个聚合函数之前生成的表示,注明 FX={xL1,xL2, ...,xLi, ...,xLN}andFY={yL1,yL2, ...,yLi, ...,yLN},假设总共有 L 层。

更详细地说,PointNet 取一组点,将每个点通过来自 R3 的非线性函数嵌入到更高维空间中,并在应用通道聚合函数 f(例如,max or ∑)后可选地输出整个点云的全局特征向量。设点在第 1 层的嵌入,设第 1 层的非线性函数由共享多层感知器 (MLP) 参数化。那么,前馈机制由 xil=hθl(xil-1)给出。

DGCNN 明确地将局部几何图形合并到其表示中。特别地,给定一组点 X,DGCNN 构造 k-NN 图 G,对边端点处的值应用非线性以获得边向值,并在每一层执行顶点方向聚合(max or ∑)。 DGCNN 的前馈机制如下所示:

点云分割的深度学习(点云配准的学习表示)(9)

其中 Ni 表示顶点 graphG 的邻居。虽然 PointNet 特征不包含局部邻域信息,但我们根据经验发现 DGCNN 的局部特征对于我们管道的后续步骤中的高质量匹配至关重要。

4.2 注意力

我们从 PointNet 过渡到 DGCNN 的动机是观察到刚性对齐最有用的特征是从局部和全局信息中联合学习的。我们还可以改进我们的匹配功能通过使它们特定于任务,即根据 X 和 Y 的特殊性一起改变特征,而不是独立地嵌入 X 和 Y。我们使用基于注意力的模型,设计了一个模块,通过捕获自我注意力和条件注意力来学习上下文信息。

以 FX 和 FY 为中模块生成的嵌入;这些嵌入是相互独立计算的。我们的注意力模型学习了一个函数 φ:RN×P×RN×P→RN×P,其中 Pi 是嵌入维度,它提供了点云的新嵌入

点云分割的深度学习(点云配准的学习表示)(10)

我们将 φ 视为残差项,根据其输入的顺序对 FX 和 FY 提供附加变化。这里的想法是映射 FX→ΦX 以一种了解 Y 结构的方式修改与 X 中的点相关联的特征; map FY→ΦY 起对称作用。我们选择 φ 作为由转换器给出的非对称函数。 Transformer 是一个解决序列到序列问题的框架,它由几个堆叠的编码器-解码器层组成。编码器采用一个序列/集合 (FX) 并通过使用自注意力层和共享多层感知器 (MLP) 将其编码到嵌入空间。解码器有两部分:第一部分采用另一个序列/集合(FY)并以与编码器相同的方式对其进行编码,第二部分使用共同注意关联两个嵌入的序列/集合。因此,输出嵌入(ΦX 和 ΦY)具有来自两个序列/集合(FXandFY)的上下文信息。

4.3 指针生成

ICP 最常见的故障模式发生在匹配估计远非最佳时。当这种情况发生时,随后使用(6)估计的刚性运动不会显着改善对齐,导致虚假的局部最优。作为替代方案,我们专门训练我们学习的嵌入,以使用下面解释的简单程序暴露匹配的点对。我们将这一步称呼这个 pointer generation。

为了避免选择不可微的硬分配,我们使用概率方法生成从一个点云到另一个点云的(单随机)“软映射”。

也就是说,每个 xi∈X 分配了一个关于元素 Y 的概率向量。

点云分割的深度学习(点云配准的学习表示)(11)

这里,ΦY∈RN×P 表示注意力模块生成的 Y 的嵌入,Φx 表示注意力模块中矩阵 ΦX 的第 i 行。我们可以将 m(xi,Y) 视为从每个 xi 到 Y 元素的软指针。

4.4 SVD 模型

我们架构中的最后一个模块计算的软匹配中提取刚性运动。我们使用软指针为 X 中的每个点在 Y 中生成匹配的平均点

点云分割的深度学习(点云配准的学习表示)(12)

这里,我们定义 Y∈RN×3 为包含 Y 中点的矩阵。然后,对所有的 i,基于配对 xi→ˆyi,使用(4)提取 RXY 和 tXY。

为了通过网络反向传播梯度,我们需要区分 SVD。 [29] 描述了计算这个导数的标准方法;此计算的版本包含在 PyTorch [30] 和 TensorFlow [1] 中。注意我们只需要解决 3×3 个特征问题,小到可以使用简单的算法甚至(原则上)封闭式公式来解决。

4.5 损失函数

结合起来,上面的模块从一对点云 X 和 Y 映射到一个刚性运动[RXY,tXY],使它们彼此对齐。初始特征模块和注意力模块都由一组神经网络权重参数化,必须在训练阶段学习。我们采用了一种相当简单的训练策略,测量合成生成的点云对 [RXY,tXY] 与地面实况的偏差。

我们使用以下损失函数来衡量我们的模型与真实刚性运动的一致性

点云分割的深度学习(点云配准的学习表示)(13)

在这里,g 表示真实情况。前两项定义了在 SE(3)上简单的距离。第三项表示 DCP 参数 θ 的 Tikhonov 正则化,这有助于降低网络的复杂性。

5 实验

我们将我们的模型与 ICP、Go-ICP、Fast Global Registration (FGR)和最近提出的 Point-NetLK 深度学习方法进行比较。我们的模型,包括没有注意力的 DCP-v1 和完整模型 DCP-v2。

点云分割的深度学习(点云配准的学习表示)(14)

图 3 左上:输入。右上:随机初始化 ICP 的结果。左下:DCP 提供的初始变换。右下:用 DCP 初始化的 ICP 结果。使用 DCP 提供的良好初始变换,ICP 收敛到全局最优。

DCP 的架构如图 2 所示。我们为 DCP-v1 和 DCP-v2 使用 5EdgeConv(表示为 DGCNN)层。每层的过滤器数量为[64,64,128,256,512]。在 Transformer 层中,multi-head attention 中的 head 数为 4,embedding dimension 为 1024。我们使用 LayerNorm。 Adam 用于优化网络参数,初始学习率为 0.001。我们在第 75、150 和 200 个时期将学习率除以 10,总共训练 250 个 episode。 DCP-v1 不使用 Transformer 模块而是使用恒等映射 ΦX=FX 和 ΦY=FY。

我们在 ModelNet40 数据集上进行了实验。其中,我们使用 9,843 个模型进行训练,2,468 个模型进行测试。我们遵循 PointNet 的实验设置,从每个模型的外表面均匀采样 1,024 个点。与之前的工作一样,点被居中并重新缩放以适应单位球体,并且输入中没有出现除 (x, y, z) 坐标以外的特征。

我们测量真实值和预测值之间的均方误差 (MSE)、均方根误差 (RMSE) 和平均绝对误差 (MAE)。我们结果中的所有角度测量都以度为单位。

点云分割的深度学习(点云配准的学习表示)(15)

表 1 ModelNet40:在看不见的点云上进行测试

点云分割的深度学习(点云配准的学习表示)(16)

表 2 ModelNet40:在看不见的类别上测试

5.1. ModelNet40:完整数据集训练和测试

在我们的第一个实验中,我们将 ModelNet40 数据集中的所有点云随机分为训练集和测试集,不知道类别标签;在训练和测试期间使用不同的点云。在训练期间,我们对点云 X 进行采样。沿着每个轴,我们随机绘制一个刚性变换;沿每个轴的旋转在 [0,45°] 中均匀采样,平移在 [-0.5,0.5] 中。X 和 X 由刚性运动的变换用作网络的输入。

表 1 评估了我们的方法及其同行在本实验中的性能(香草 ICP 几乎失败)。 DCP-v1 在所有性能指标下已经优于其他方法,而 DCP-v2 表现出更强大的性能。

5.2 ModelNe40:分类拆分

为了测试不同模型的泛化能力,我们将 ModelNet40 按类别平均分成训练集和测试集。如表 2 所示,在看不见的类别上,FGR 的表现比其他方法更强。 DCP-v1 的性能比 DCP-v2 差得多,支持我们使用注意力模块。 尽管学习到的表示依赖于任务,但 DCP-v2 的误差比除 FGR 之外的其他表示更小,包括基于学习的方法 PointNetLK

5.3. ModelNet40:抗噪能力

我们还尝试向输入点云的每个点添加噪声。表 3 显示了该实验的结果。 ICP 通常会收敛到远处的固定点,而 FGR 对噪声很敏感。然而,Go-ICP、PointNetLK 和 DCP 对噪声保持鲁棒性。

点云分割的深度学习(点云配准的学习表示)(17)

表 3 ModelNet40:测试具有高斯噪声的对象

点云分割的深度学习(点云配准的学习表示)(18)

表 4 推理时间(以秒为单位)

5.4 DCP 后接 ICP

由于我们的实验涉及初始姿态远未对齐的点云,ICP 几乎在我们迄今为止提出的所有实验中都失败了。在很大程度上,这种失败是由于缺乏良好的初始猜测。作为替代方案,我们可以通过使用 DCP 模型的刚性转换输出初始化 ICP,将 ICP 作为局部算法。图 3 显示了此两步程序的示例;当 ICP 在全局对齐任务中失败时,通过 DCP 提供更好的初始化,它收敛到全局最优。从某种意义上说,这个实验表明 ICP 可以成为一种有效的方式来“抛光”由 DCP 生成的对齐。

5.5 效率

我们在具有 Intel I7-7700 CPU、NvidiaGTX 1070 GPU 和 32G 内存的桌面计算机上分析了不同方法的推理时间。计算时间以秒为单位,通过平均 100 个结果来计算。如表 4 所示,在我们的比较点中,DCP-v1 是最快的方法,而 DCP-v2 仅比普通 ICP 慢。

6. 消融研究

在本节中进行多次消融实验,剖析 DCP 并用替代品替换每个部分,以了解我们构建的价值。

点云分割的深度学习(点云配准的学习表示)(19)

表 5 消融研究:PointNet 还是 DGCNN?

点云分割的深度学习(点云配准的学习表示)(20)

表 6 消融研究:MLP 还是 SVD?

6.1 PointNet 还是 DGCNN?

我们首先尝试回答 DGCNN 收集的局部特征是否比可以使用更简单的 PointNet 模型测量的较粗略的特征更有价值。PointNet 学习整个形状的全局描述符,而 DGCNN 通过构建 k-NN 图学习局部几何特征。表 5 表明使用 DGCNN 的模型始终比使用 PointNet 的模型表现更好。

6.2 MLP 还是 SVD?

虽然 MLP 原则上是一个通用逼近器,但我们的 SVD 层专门用于计算刚性运动。表 6 显示 DCP-v1 和 DCP-v2 在 SVD 层上的性能优于 MLP。这支持我们使用 SVD 计算刚性变换的动机。

6.3 .嵌入维度

嵌入维度是影响点云深度学习模型准确性的重要参数,达到临界阈值,之后差异不显着。为了验证我们对维度的选择,我们将模型与嵌入到不同维度空间的模型进行了比较。表 7 中的结果表明,将嵌入维度从 512 增加到 1024 确实对 DCP-v2 有轻微帮助,但对于 DCP-v1 存在小的退化。

点云分割的深度学习(点云配准的学习表示)(21)

表 7 消融研究:嵌入维度

7 结论

在某种意义上,我们的 Deep Closest Point 技术通过学习到的特征极大地促进了刚体对齐算法;通过结合 DGCNN 和注意力模块,我们的模型可靠地提取了找到对齐两个输入点云的刚性运动所需的对应关系。我们的端到端可训练模型足够可靠,可以在一次通过中提取高质量的对齐,这可以通过经典 ICP 的迭代或“抛光”来改进。

DCP 作为具有改进行为的 ICP 的直接替代品,可立即适用于刚性对准问题。除了直接使用之外,我们的实验还为未来的调查提供了多种途径。一个直接的扩展是查看我们学习的嵌入是否转移到其他任务,如分类和分割。我们还可以训练 DCP 以迭代(或递归)的方式应用来细化对齐,而不是尝试在一次通过中对齐;强化学习的洞察力可以帮助改进这个方向的方法,使用均方误差作为奖励来学习控制何时停止迭代的策略。

我们对场景测试也很感兴趣,场景测试通常高达 300,000 点。然而,目前的深度网络只能处理对象级点云(每个点云通常有 500 到 5,000 个点);这是最近点云学习方法的一个普遍局限。场景测试,无论是什么任务,都需要设计一个高效的场景级点云编码网络,这对于点云学习来说是一个很有前途但具有挑战性的方向。最后,我们希望我们的方法可以被纳入更大的管道中,以实现高精度的同时定位和映射 (SLAM) 或运动结构 (SFM)。

致谢

本文由南京大学软件学院 2021 级硕士洪华翻译转述。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页