零、概要
- 论文: DeepGMR: Learning Latent Gaussian Mixture Models for Registration
- tag:
ECCV 2020
;Registration
- 代码: https://github.com/wentaoyuan/deepgmr
- 作者: Wentao Yuan, Ben Eckar, Kihwan Kim, Varun Jampani, Dieter Fox, Jan Kautz
- 机构: University of Washington, NVIDIA
- 笔者整理了一个最近几年150多篇点云的论文列表,欢迎大家一块学习交流。
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)中的算法,不同视角下的分布参数不一定是一致的
作者在DeepGMR中提出了point-to-distribution(Fig2. d)中的方法,分布的参数是由神经网络预测得到。DeepGMR具有以下优点:
- 全局匹配: 无需初始化,可以在任意位姿下对齐
- 高效
- 鲁棒:由于包含概率算法,DeepGMR能够容忍噪声和不同大小的输入点云,并且在没有精确的点对对应(point-pair correspondences)的情况下,也能够恢复正确的变换,适用于实际情况。
- 可微分
二、论文的方法
论文中存在很多的数学公式和证明,很是复杂。看了论文的开源代码,其实基于PyTorch实现的代码还是很容易看懂的。
这里以介绍DeepGMR的pipeline为主,简单介绍模块背后的思想。
混合高斯模型是一个生成模型,设其为J个高斯模型的加权和:
p(x∣Θ)=Σj=1JπjN(x∣μj,Σj),x∈R3p(x|\Theta) = \Sigma_{j=1}^J\pi_jN(x|\mu_j, \Sigma_j), x \in \mathbb R^3p(x∣Θ)=Σj=1J?πj?N(x∣μj?,Σj?),x∈R3
其中Σjπj=1\Sigma_j \pi_j = 1Σj?πj?=1,GMM的参数Θ\ThetaΘ包括JJJ个三元组(π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, PP^,P和GMM的参数空间XXX,可以把P^?>P\hat P -> PP^?>P的点云配准问题表示为一个两阶段的优化问题:
Fitting:Θ?=arg?max?Θ∈Xp(P∣Θ)\text{Fitting}: \Theta^* = \arg \max_{\Theta \in X}p(P|\Theta)Fitting:Θ?=argΘ∈Xmax?p(P∣Θ)
Registration:T?=arg?max?T∈SE(3)p(T(P^)∣Θ?)\text{Registration}: T^* = \arg \max_{T \in SE(3)} p(T(\hat P) | \Theta^*)Registration:T?=argT∈SE(3)max?p(T(P^)∣Θ?)
Fitting步骤使用Θ\ThetaΘ拟合目标点云PPP,Registration步骤求解最优的T使其作用于P^\hat PP^在Θ?\Theta^*Θ?的情况下其概率最大。
接下来看看DeepGMR是如何求解上述问题的。
2.1 网络的架构
DeepGMR的网络结构如Fig.3所示,它的输入是两个待配准的点云P^∈RN×3\hat P \in \mathbb R^{N \times 3}P^∈RN×3和P∈RN×3P \in \mathbb R^{N \times 3}P∈RN×3,和P^?>P\hat P -> PP^?>P的变换T∈SE(3)T \in SE(3)T∈SE(3)、P?>P^P -> \hat PP?>P^的变换T^∈SE(3)\hat T \in SE(3)T^∈SE(3)。
DeepGMR主要包括3个模块: 一个可学习的排列-不变(permutation-invariant)的网络fψf_\psifψ?,用于估计point-to-component的对应关系Γ\GammaΓ;两个可微分的计算模块MΘM_\ThetaMΘ?和MTM_TMT?,用于计算GMM的参数Θ\ThetaΘ和变换TTT。
-
Correspondence网络 fψf_\psifψ?
Correspondence网络的输入是一个点云P∈RN×3P \in \mathbb R^{N \times 3}P∈RN×3或者点云特征(如经过RRI(rigorously rotation-invariant)模块的)F∈RN×CF \in \mathbb R^{N \times C}F∈RN×C,[作者的Ablation研究表明,RRI确实有帮助,但对DeepGMR不是必须的]。Correspondence网络的输出是一个N×JN \times JN×J的矩阵Γ=[γij]\Gamma = [\gamma_{ij}]Γ=[γij?],其中Σj=1Jγij=1,?i\Sigma_{j=1}^J\gamma_{ij} = 1, \forall iΣj=1J?γij?=1,?i。每一个γij\gamma_{ij}γij?表示点pip_ipi?和GMM的成分jjj之间的隐对应概率。
Correspondence网络采用了PointNet的架构:MLP(3, 64, 128, 256, 1024) -> Concat -> MLP(2048, 512, 256, 128, J=16) -> Softmax。最后一个全连接层没有BN和ReLU。
-
MΘM_\ThetaMΘ?计算模块
πj?=1NΣi=1Nγij,Nπj?μj?=Σi=1Nγijpi\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?γij?pi?
Nπi?Σj?=Σi=1Nγij(pi?μj?)(pi?μj?)TN\pi_i^*\Sigma_j^* = \Sigma_{i=1}^N\gamma_{ij}(p_i - \mu_j^*)(p_i - \mu_j^*)^TNπi??Σj??=Σi=1N?γij?(pi??μj??)(pi??μj??)T
通过Correspondence网络模块,可以获得γij(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([σj2,σj2,σj2])\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=1Nγij(pi?μj?)T(pi?μ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Θ。
- MTM_TMT?计算模块
这一模块证明的式子很多,最终是为了得到:
T?=arg?min?TΣj=1Jπ^jσj2∣∣T(μ^j)?μj∣∣2T^* = \arg \min_T \Sigma_{j=1}^J\frac{\hat \pi_j}{\sigma_j^2}||T(\hat \mu_j) - \mu_j||^2T?=argTmin?Σj=1J?σj2?π^j??∣∣T(μ^?j?)?μj?∣∣2
上式具有ICP问题的格式,可以通过SVD求解出T?T^*T?的闭式解。至此求解了P^?>P\hat P -> PP^?>P的变换TTT和P?>P^P -> \hat PP?>P^的T^\hat TT^。
2.2 损失函数
L=∣∣TTgt?1?I∣∣2+∣∣T^Tgt?I∣∣2L = ||TT_{\text{gt}}^{-1} - I||^2 + ||\hat TT_{\text{gt}} - I||^2L=∣∣TTgt?1??I∣∣2+∣∣T^Tgt??I∣∣2
TTT是 4 x 4的变换矩阵,包括旋转矩阵和平移向量,III是单位矩阵。
这里的loss有些奇怪,正常来说旋转矩阵R是正交阵(RR^T = I),但loss里直接把TTT当做正交矩阵来处理的。
三、论文的实验
3.1 评估指标
- 均方根误差
ERMSE=1nΣi=1n∣∣T(pi)?T?(pi)∣∣2E_{RMSE} = \frac{1}{n} \sqrt {\Sigma_{i=1}^n||T(p_i) - T^*(p_i)||^2}ERMSE?=n1?Σi=1n?∣∣T(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)。
配准结果的可视化如Fig.4所示,前三行是ModelNet40数据,后两行是ICL-NUIM数据。第一行的数据是具有重复结构和对称性的,最后一行的数据是几乎对称的;第二行的数据具有稀疏结构(杯子的把手);第三行和第四行的数据具有不规则的结构。DeepGMR在这些困难样例上均表现较好。
论文中在ModelNet40数据集上统计了匹配的平均时间,结果如Table 2所示,其中RANSAC10M+ICP和TEASER++这两个baseline由于在1000个点时的配准时间已超过10s,没有在Table 2中列出。从Table 2中可以看出,DeepGMR是最快的方法之一。
四、对论文的想法
- 优点
- 论文中融入了混合高斯模型(GMM),这一点与其它的基于深度学习的算法有很大不同。
- 模型简单,可学习的参数只在PointNet网络中
- 缺点
- 论文没有明确的考虑局部重叠点云(partial overlap)的匹配问题。这个也是作者在补充材料中提到的。