[ECCV 2020] DeepGMR: Learning Latent Gaussian Mixture Models for Registration

零、概要

0.0 摘要

点云配准是3D计算机视觉、图形学和机器人学中的一个基本问题。在过去的几十年里,现有的配准算法在遇到具有较大的初始变换、噪声和时间限制的情况下一直很困难。本文提出了深度高斯混合配准(Deep Gaussian Mixture Registration, DeepGMR),它将配准定义成求两个高斯混合模型的概率分布的KL散度的最小值问题,它是第一个显式利用概率机制(paradigm)的基于学习的配准方法。论文中设计了一个神经网络用于提取原始点云和高斯混合模型(GMM)参数之间的位置不变的对应关系(correspondences),并设计了两个可微计算块,从匹配的GMM参数中恢复最优的变换。这种结构允许网络学习一个SE(3)不变的特征空间,从而产生一种实时、通用的、抗噪声的全局配准方法。在合成数据和真实数据中,与最新的基于几何和基于学习的配准方法相比,DeepGMR方法表现出了良好的性能。

一、论文的出发点和贡献

将原始点云数据同化为一个连贯的世界模型在视觉、图形和机器人技术的应用中至关重要。创建世界模型的关键步骤是点云配准,即找到将输入点云对齐到公共坐标系的转换。

基于局部特征匹配的方法,如果没有良好的初始化,它们在遇到较大的变换时会匹配失败;全局匹配的方法存在速度慢或对法向量估计要求高等问题。全局配准失败的主要困难在于数据关联。现有的配准方法提供了集中执行数据关联的策略,如Fig.2所示,但是每一种方法都证明了在噪声点云上进行全局匹配是有问题的。

  • point-to-point(Fig2. a),DCP中的算法,现实世界中的点对应关系并不总是存在的
  • feature-to-feature(Fig2. b),FGR中算法,依赖于高质量的特征,而且现实世界中特征点不总是存在对应关系
  • distribution-distribution(Fig2. c),HGMR(CVPR 2018)中的算法,不同视角下的分布参数不一定是一致的

[ECCV 2020] DeepGMR: Learning Latent Gaussian Mixture Models for Registration

作者在DeepGMR中提出了point-to-distribution(Fig2. d)中的方法,分布的参数是由神经网络预测得到。DeepGMR具有以下优点:

  • 全局匹配: 无需初始化,可以在任意位姿下对齐
  • 高效
  • 鲁棒:由于包含概率算法,DeepGMR能够容忍噪声和不同大小的输入点云,并且在没有精确的点对对应(point-pair correspondences)的情况下,也能够恢复正确的变换,适用于实际情况。
  • 可微分

二、论文的方法

论文中存在很多的数学公式和证明,很是复杂。看了论文的开源代码,其实基于PyTorch实现的代码还是很容易看懂的。

这里以介绍DeepGMR的pipeline为主,简单介绍模块背后的思想。

混合高斯模型是一个生成模型,设其为J个高斯模型的加权和:

p ( x ∣ Θ ) = Σ j = 1 J π j N ( x ∣ μ j , Σ j ) , x ∈ R 3 p(x|\Theta) = \Sigma_{j=1}^J\pi_jN(x|\mu_j, \Sigma_j), x \in \mathbb R^3 p(xΘ)=Σj=1JπjN(xμj,Σj),xR3

其中 Σ j π j = 1 \Sigma_j \pi_j = 1 Σjπj=1,GMM的参数 Θ \Theta Θ包括 J J J个三元组 ( π j , μ j , Σ j ) (\pi_j, \mu_j, \Sigma_j) (πj,μj,Σj) π j \pi_j πj是一个权重标量, μ j \mu_j μj是一个 3 x 1 的均值向量, Σ j \Sigma_j Σj是一个3 x 3的协方差矩阵。

给定点云 P ^ , P \hat P, P P^,P和GMM的参数空间 X X X,可以把 P ^ − > P \hat P -> P P^>P的点云配准问题表示为一个两阶段的优化问题:

Fitting : Θ ∗ = arg ⁡ max ⁡ Θ ∈ X p ( P ∣ Θ ) \text{Fitting}: \Theta^* = \arg \max_{\Theta \in X}p(P|\Theta) Fitting:Θ=argΘXmaxp(PΘ)

Registration : T ∗ = arg ⁡ max ⁡ T ∈ S E ( 3 ) p ( T ( P ^ ) ∣ Θ ∗ ) \text{Registration}: T^* = \arg \max_{T \in SE(3)} p(T(\hat P) | \Theta^*) Registration:T=argTSE(3)maxp(T(P^)Θ)

Fitting步骤使用 Θ \Theta Θ拟合目标点云 P P P,Registration步骤求解最优的T使其作用于 P ^ \hat P P^ Θ ∗ \Theta^* Θ的情况下其概率最大。

接下来看看DeepGMR是如何求解上述问题的。

2.1 网络的架构

DeepGMR的网络结构如Fig.3所示,它的输入是两个待配准的点云 P ^ ∈ R N × 3 \hat P \in \mathbb R^{N \times 3} P^RN×3 P ∈ R N × 3 P \in \mathbb R^{N \times 3} PRN×3,和 P ^ − > P \hat P -> P P^>P的变换 T ∈ S E ( 3 ) T \in SE(3) TSE(3) P − > P ^ P -> \hat P P>P^的变换 T ^ ∈ S E ( 3 ) \hat T \in SE(3) T^SE(3)

DeepGMR主要包括3个模块: 一个可学习的排列-不变(permutation-invariant)的网络 f ψ f_\psi fψ,用于估计point-to-component的对应关系 Γ \Gamma Γ;两个可微分的计算模块 M Θ M_\Theta MΘ M T M_T MT,用于计算GMM的参数 Θ \Theta Θ和变换 T T T

[ECCV 2020] DeepGMR: Learning Latent Gaussian Mixture Models for Registration

  • Correspondence网络 f ψ f_\psi fψ

    Correspondence网络的输入是一个点云 P ∈ R N × 3 P \in \mathbb R^{N \times 3} PRN×3或者点云特征(如经过RRI(rigorously rotation-invariant)模块的) F ∈ R N × C F \in \mathbb R^{N \times C} FRN×C,[作者的Ablation研究表明,RRI确实有帮助,但对DeepGMR不是必须的]。Correspondence网络的输出是一个 N × J N \times J N×J的矩阵 Γ = [ γ i j ] \Gamma = [\gamma_{ij}] Γ=[γij],其中 Σ j = 1 J γ i j = 1 , ∀ i \Sigma_{j=1}^J\gamma_{ij} = 1, \forall i Σj=1Jγij=1,i。每一个 γ i j \gamma_{ij} γij表示点 p i p_i pi和GMM的成分 j j j之间的隐对应概率。

    Correspondence网络采用了PointNet的架构:MLP(3, 64, 128, 256, 1024) -> Concat -> MLP(2048, 512, 256, 128, J=16) -> Softmax。最后一个全连接层没有BN和ReLU。

  • M Θ M_\Theta MΘ计算模块

π j ∗ = 1 N Σ i = 1 N γ i j , N π j ∗ μ j ∗ = Σ i = 1 N γ i j p i \pi_j^* = \frac{1}{N}\Sigma_{i=1}^N\gamma_{ij}, N\pi_j^*\mu_j^* = \Sigma_{i=1}^N \gamma_{ij}p_i πj=N1Σi=1Nγij,Nπjμj=Σi=1Nγijpi

N π i ∗ Σ j ∗ = Σ i = 1 N γ i j ( p i − μ j ∗ ) ( p i − μ j ∗ ) T N\pi_i^*\Sigma_j^* = \Sigma_{i=1}^N\gamma_{ij}(p_i - \mu_j^*)(p_i - \mu_j^*)^T NπiΣj=Σi=1Nγij(piμj)(piμj)T

通过Correspondence网络模块,可以获得 γ i j ( i = 1 , . . . , N , j = 1 , . . . , N ) \gamma_{ij}(i=1,...,N, j=1,...,N) γij(i=1,...,N,j=1,...,N);因此可以通过上述三个等式求解GMM模型的参数 ( π j , μ j , Σ j ) , j = 1 , . . . , J (\pi_j, \mu_j, \Sigma_j), j=1,..., J (πj,μj,Σj),j=1,...,J。需要注意的是,论文中选择的协方差是各向同性的,也就是 Σ j = diag ( [ σ j 2 , σ j 2 , σ j 2 ] ) \Sigma_j=\text{diag}([\sigma_j^2, \sigma_j^2, \sigma_j^2]) Σj=diag([σj2,σj2,σj2])。求解 Σ j \Sigma_j Σj的等式需要做如下改变:

N π i ∗ σ j ∗ = Σ i = 1 N γ i j ( p i − μ j ∗ ) T ( p i − μ j ∗ ) N\pi_i^*\sigma_j^* = \Sigma_{i=1}^N\gamma_{ij}(p_i - \mu_j^*)^T(p_i - \mu_j^*) Nπiσj=Σi=1Nγij(piμj)T(piμj)

这个模块是无参的,基于 ( Γ , P ) (\Gamma, P) (Γ,P)求解 Θ \Theta Θ

  • M T M_T MT计算模块

这一模块证明的式子很多,最终是为了得到:

T ∗ = arg ⁡ min ⁡ T Σ j = 1 J π ^ j σ j 2 ∣ ∣ T ( μ ^ j ) − μ j ∣ ∣ 2 T^* = \arg \min_T \Sigma_{j=1}^J\frac{\hat \pi_j}{\sigma_j^2}||T(\hat \mu_j) - \mu_j||^2 T=argTminΣj=1Jσj2π^jT(μ^j)μj2

上式具有ICP问题的格式,可以通过SVD求解出 T ∗ T^* T的闭式解。至此求解了 P ^ − > P \hat P -> P P^>P的变换 T T T P − > P ^ P -> \hat P P>P^ T ^ \hat T T^

2.2 损失函数

L = ∣ ∣ T T gt − 1 − I ∣ ∣ 2 + ∣ ∣ T ^ T gt − I ∣ ∣ 2 L = ||TT_{\text{gt}}^{-1} - I||^2 + ||\hat TT_{\text{gt}} - I||^2 L=TTgt1I2+T^TgtI2

T T T是 4 x 4的变换矩阵,包括旋转矩阵和平移向量, I I I是单位矩阵。

这里的loss有些奇怪,正常来说旋转矩阵R是正交阵(RR^T = I),但loss里直接把 T T T当做正交矩阵来处理的。

三、论文的实验

3.1 评估指标

  • 均方根误差
    E R M S E = 1 n Σ i = 1 n ∣ ∣ T ( p i ) − T ∗ ( p i ) ∣ ∣ 2 E_{RMSE} = \frac{1}{n} \sqrt {\Sigma_{i=1}^n||T(p_i) - T^*(p_i)||^2} ERMSE=n1Σi=1nT(pi)T(pi)2
  • Recall: RSME小于阈值的实例所占 τ \tau τ的百分比

3.2 数据集

  • ModelNet40

    ModelNet40包括9843个训练/验证集和2468个测试集。这里产生了3个ModelNet40的变种: ModelNet Clean, ModelNet Noisy, ModelNet Unseen。

    ModelNet Clean就是原始的ModelNet40数据集,首先均匀采样1024个点,接着使用两个随机的变换来产生源点云和目标点云。ModelNet Noisy在源点云和目标点云数据上增加噪声。ModelNet Unseen在20类数据上进行训练,在其余20类数据上进行测试。

  • Augmented ICL-NUIM

    739个样本增强到1478个样本,1278个样本用于训练/验证,200个样本用于测试。

3.3 实验结果

实验结果如Table1所示,DeepGMR在各种具有挑战性的场景中,包括噪声、没有见过的形状和真实世界的数据,始终保持良好的性能。在合成数据上,唯一能与DeepGMR相媲美的baseline TEASER++,速度比DeepGMR慢1000多倍(13.3s vs 11ms)。

[ECCV 2020] DeepGMR: Learning Latent Gaussian Mixture Models for Registration

配准结果的可视化如Fig.4所示,前三行是ModelNet40数据,后两行是ICL-NUIM数据。第一行的数据是具有重复结构和对称性的,最后一行的数据是几乎对称的;第二行的数据具有稀疏结构(杯子的把手);第三行和第四行的数据具有不规则的结构。DeepGMR在这些困难样例上均表现较好。

[ECCV 2020] DeepGMR: Learning Latent Gaussian Mixture Models for Registration

论文中在ModelNet40数据集上统计了匹配的平均时间,结果如Table 2所示,其中RANSAC10M+ICP和TEASER++这两个baseline由于在1000个点时的配准时间已超过10s,没有在Table 2中列出。从Table 2中可以看出,DeepGMR是最快的方法之一。

[ECCV 2020] DeepGMR: Learning Latent Gaussian Mixture Models for Registration

四、对论文的想法

  • 优点
    • 论文中融入了混合高斯模型(GMM),这一点与其它的基于深度学习的算法有很大不同。
    • 模型简单,可学习的参数只在PointNet网络中
  • 缺点
    • 论文没有明确的考虑局部重叠点云(partial overlap)的匹配问题。这个也是作者在补充材料中提到的。