CVPR 2020 论文阅读笔记(三维点云/三维重建)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CVPR 2020 论文阅读笔记(三维点云/三维重建)相关的知识,希望对你有一定的参考价值。
参考技术A 论文地址: https://arxiv.org/abs/2003.00410
前置文章:10/16、10/17、10/18
本文提出了Point Fractal Network(PF-Net),旨在从不完整的点云数据中恢复点云,克服了之前方法修改现有数据点、引入噪声和产生几何损失的缺点。
由前置文章可知,之前的点云修复方法是输入不完整的点云,输出完整的点云,但这样会导致原有信息的缺失。这篇文章提出PF-Net,主要特点有三个:
网络的整体结构如下:
网络详细推理步骤如下:
损失函数使用完整性损失和对抗损失的加权平均,完整性损失使用L-GAN中提出的CD距离:
对抗损失使用GAN中常见的损失函数
感觉这篇文章对多尺度的运用非常极致,在编码器、解码器和CMLP中都应用了这种思想,最后的效果也非常不错,很值得借鉴。
论文地址: https://arxiv.org/abs/1612.00593
PointNet提出一种基础的网络结构,可以用于点云分类、部分分割和语义分割等多种任务。在这篇文章之前,点云数据的处理方式是将点云数据转换为多个二维的视图或三维的体素形式,然后应用2D/3D CNN进行处理,但这样引入了多余的体积,效率不高。本文是第一个直接使用点云数据的神经网络。(其实可以这样类比,在二维图像处理中,假设图像是二值化的,传统方法是将这个图像直接丢到CNN里面,但如果背景特别多会比较浪费资源。直接使用点云数据相当于直接将前景像素的坐标输入到神经网络里面,对稀疏数据会有比较好的性能,但因为以下三个问题导致直接使用坐标信息比较困难)
由于点云的排列是无序的(可以想象,点云中任意一点排在前面对点云的表达都是相同的)、点云之间是有相互作用的(相邻的点云才能构成形状)、点云在某些变换下具有不变性(比如旋转不会改变点云的类别)这些特性,要求神经网络既能处理无序的数据,又能捕捉全局的结构特征,同时对刚性变换不敏感。基于这些条件,作者提出了如下的网络结构:
可以简要分析一下网络的工作流程,以点云分类问题为例:
感觉网络的结构虽然简单,但是却很好地满足了点云数据自身特性对神经网络的要求。而且我觉得在图像处理中,也有时候必须用到坐标信息或者一些标量特征,这篇文章的方法对于怎样将这些特征融合进CNN里面也有一定的启发意义。
论文地址: http://proceedings.mlr.press/v80/achlioptas18a.html
这篇文章的主要工作是:
首先来看衡量两个点云相似程度的指标部分,作者首先给出了两个距离,EMD和CD:
在计算上,CD更为简便,而且EMD是不可导的。
基于这两种距离,作者引入了三种衡量两个点云相似程度的指标:JSD、Coverage和MMD:
定义了指标后,就可以实现自动编码器和生成模型了。作者提到了四种结构,分别是:
作者同时验证了AE的一些其他功能,比如如果给AE的编码器输入不完整的点云数据,即可训练得到点云复原的模型。使用SVM对低维表示进行分类,即可进行点云分类的任务,证明AE在点云数据形式中的潜在应用较为广泛。
论文地址: http://papers.nips.cc/paper/7095-pointnet-deep-hierarchical-feature-learning-on-point-se
PointNet++针对PointNet提取局部信息能力不强的弊端,提出了一种层次神经网络,可以更好地提取局部信息。其中心思想是将整个点云分割成若干个小部分来提取信息,然后将每个小部分整合成较大的部分,提取更高层次的信息。类似于CNN中卷积和下采样的思想。首先来看网络结构图:
网络大概可以分为两个部分,左边是层次的点云特征提取网络,右边是针对不同任务的解码网络。
特征提取分为若干个set abstraction模块,每个模块又分为采样层、分组层和特征提取层。
得到了较高层次的特征后,对不同的任务需要不同的解码网络。对分类网络来说比较简单,使用全连接即可。对分割网络来说,由于对每个点都需要输出数值,则需要类似上采样的操作。具体的实现作者使用了插值的方法,将较少的点插值到较多的点上去。首先找到插值的目标坐标,然后寻找K个距离最近的已知点,以距离的倒数作为权重,将K个点的特征做加权平均,作为这个点的特征。然后使用之前特征提取中得到的该点的特征与当前特征做一个拼接,即可得到最终特征(类似U-Net的skip connection)。公式如下:
感觉这篇文章和PF-Net的思想差不多,都是希望提取多尺度的特征。但是思路不一样,都值得借鉴。
CVPR2020:训练多视图三维点云配准
CVPR2020:训练多视图三维点云配准
Learning Multiview 3D Point Cloud Registration
源代码和预训练模型:https://github.com/zgojcic/3D_multiview_reg
论文地址:
摘要
提出了一种新的、端到端可学习的多视点三维点云配准算法。多个扫描的配准通常遵循两个阶段的流程:初始成对对齐和全局一致优化。前者由于相邻点云重叠程度低、对称性强、场景部分重复等原因,往往具有模糊性。因此,后一种全局求精旨在建立跨多个扫描的循环一致性,并有助于解决不明确的情况。在本文中,我们提出了第一个端到端的算法来联合学习这两个阶段的问题。对已被广泛接受的基准数据集进行的实验评估表明,我们的方法在可训练性和计算成本方面显著优于最新水平。此外,我们提出了详细的分析和消融研究,验证了我们的方法的新组成部分。
1.介绍
三维计算机视觉中的下游任务,如语义分割和目标检测,通常需要场景的整体表示。因此,将单个点云碎片(仅覆盖环境的一小部分)对齐和融合为全球一致的整体表示的能力至关重要,在增强现实和机器人技术中有多个用例。相邻片段的成对配准是一个研究得很好的问题,基于几何约束的传统方法[51,66,56]和手工设计的特征描述子[37,27,54,59]在一定程度上取得了成功的结果。然而,近年来,对于三维点云成对配准的局部描述符的研究主要集中在深度学习方法[67、38、21、64、19、28]上,这些方法成功地捕获和编码了隐藏在手工设计的描述符中的证据。此外,最近提出了一种新的端到端点云配准方法[62,42]。虽然在许多任务中表现出良好的性能,但场景的个别视图的成对配准在概念上有一些缺点:(i)相邻点云的低重叠会导致不准确或错误的匹配,(ii)点云配准必须依赖非常局部的证据,如果3D场景结构稀少或重复,这可能是有害的,(iii)需要单独的后处理来将所有成对匹配组合成全局表示。与成对方法相比,无组织点云碎片的全局一致多视图对齐尚未完全受益于深度学习方法的最新进展。最先进的方法通常仍然依赖于成对映射的良好初始化,它们试图在随后的分离步骤中全局重新定义成对映射[30、61、2、3、5、4、43、11]。这种分层过程的一个普遍缺点是,在姿势图的所有节点上的全局噪声分布最终远离随机,即由于高度相关的初始成对映射,显著的偏差持续存在。在本文中,我们提出了第一种端到端数据驱动的多视点云配准算法。我们的方法以一组可能重叠的点云作为输入,并为每个输入扫描输出一个全局/绝对变换矩阵(c.f.图1)。我们脱离了传统的两阶段方法,即各个阶段彼此分离,直接学习以全局一致的方式配准场景的所有视图。我们工作的主要贡献是:
•我们在端到端神经网络中提出了传统的两阶段方法,该方法在前向过程中解决了两个可微优化问题:(i)估计成对变换参数的Procrustes问题和(ii)变换同步的谱松弛问题。
•我们提出了一个置信度估计块,该块使用新的重叠池层来预测估计的成对变换参数的置信度。
•我们将mutliview三维点云配准问题转化为迭代加权最小二乘(IRLS)问题,并迭代重新确定成对和绝对变换估计。
基于上述贡献,提出的多视点配准算法(i)计算效率非常高,(ii)由于残差以迭代的方式反馈到成对网络,所以实现了更精确的扫描对准,(iii)在成对和多视点云上优于当前技术水平配准。
2.相关工作
成对配准传统的成对配准管道包括两个阶段:粗对齐阶段,它提供了相对变换参数的初始估计和在刚性变换假设下通过最小化3D配准误差迭代地重新确定变换参数的增强阶段。前者传统上是通过使用手工制作的[54、59、58]或学习的[67、38、21、20、64、28、16]3D局部特征描述符与RANSAC类稳健估计器[26、52、40]或几何散列[24、8、32]结合来建立逐点候选对应。平行的工作流[1,57,44]依赖于使用4点同余集建立对应关系。在增强阶段,粗变换参数通常使用迭代最接近点(ICP)算法的变体进行微调[6]。类ICP算法[41,63]通过交替假设对应集和估计新的变换参数集来执行优化。众所周知,它们对异常值不具有鲁棒性,并且只有在良好的预处理开始时才会收敛到全局最优值[9]。ICP算法通常被扩展到使用额外的辐射、时间或里程限制[69]。与我们的工作同步,[62,42]提议将粗略和有限的成对配准阶段集成到端到端可学习算法中。利用一个深度网络,[31]将目标跟踪作为两点集的相对运动估计。
多视图配准多视图,全局点云配准方法旨在通过合并多个视图的提示来解决成对方法中出现的困难或模糊情况。第一类方法采用类似于多视图ICP的方案来优化相机姿势以及3D点对应关系[36、25、45、9]。其中大多数都受到通信估计复杂性增加的影响。为了缓解这种情况,一些方法只对运动进行优化,并使用扫描来评估配准错误[69,56,7]。更进一步,其他现代方法利用全局循环一致性,仅对从初始成对映射集开始的姿势进行优化。这种有效的方法称为同步[10,61,2,56,3,5,43,69,7,35]。运动的全局结构[17,70]旨在通过分解旋转、平移和缩放分量来同步观测到的相对运动。[23]提出了一种使用两个网络的全局点云配准方法,一个用于姿态估计,另一个通过估计全局坐标的占用状态来建模场景结构。与我们最相似的工作可能是[35],作者的目标是通过学习数据驱动的权重函数来调整变换同步层的边缘权重。我们方法的一个主要概念差异是,使用FPFH[54]结合FGR[69]来估计相对变换参数,因此,与我们的方法不同,不需要学习。此外,在每次迭代中[35]必须将点云转换为深度图像,因为权重函数由2D CNN近似。另一方面,我们的整个方法直接在点云上操作,是完全可微的,因此有助于以端到端的方式学习全局多视图点云配准。
3. 理论与实验测试
我们将提出的多视图三维配准算法作为依赖于数据的函数组合。然后,详细说明了用于近似这些功能的网络架构。我们首先提出了一种新的学习成对点云配准算法,该算法使用两个点云作为输入,并输出估计的变换参数。该方法通过使用一个易于反向传播的变换同步层扩展到多点云。该同步层的输入图连同相关变换参数一起,将这些成对映射(也使用新的神经网络估计)中的可信度作为边缘信息进行编码。最后,我们提出了一个IRLS方案,通过更新边缘权值和成对姿态来重新确定所有点云的全局配准。
烧蚀研究
为了获得更好的直觉,我们在ScanNet[18]数据集上进行了一项消融研究。特别地,我们分析了基于置信度估计块和柯西函数的边缘剪枝方案,以及相关变换参数迭代的影响。
消融研究的结果如图4所示。
按照3DMatch[67]的评估过程,我们用基于RANSAC的变换参数估计来补充所有基于描述符的方法。对于我们的方法,我们在成对配准网络(1-iter in Tab)之后报告结果。以及第四次迭代中Ψiter(·)的输出(表4-iter)。后者已经得到了全局信息的通知,主要用于验证随着迭代,我们对Transf Sync层的输入得到了改进。与3DMatch评估过程一致,我们在Tab1中报告每个场景的平均召回率以及整个数据集的平均召回率。
多视图配准算法实现为一个深度神经网络(图2)。如图2所示,网络的各个部分连接到端到端的多视图3D配准算法中。
图3显示,我们的方法可以在不接受合成数据训练的情况下获得比现有方法高≈4个百分点的召回率,从而证实了我们的方法具有良好的泛化能力。注意,虽然所有方法在场景中的平均精度都很低,但一些工作[14、38、22]表明,使用修剪可以很容易地提高精度,而不会在召回中造成任何损失。
分析结果,如表3所示。与基线相比,该方法在多视图配准任务上有较大的改进。与FGR[69]的方法相比,我们的方法不仅能更准确地估计初始的成对相对变换参数,而且在后续的迭代中,它们还可以得到进一步的改进。这显然证实了我们算法反馈回路的好处。此外,即使直接考虑到所有的输入边,我们的方法仍然被证明是占主导地位的,即使考虑到方案的结果对我们的竞争对手“有利”。多视图配准评估的更多定性结果(包括失败案例)可在补充材料中获得。
计算复杂度低的成对和多视图配准的计算成本对于各种领域,如增强现实或机器人,都是非常重要的。我们首先比较了我们的成对配准组件和RANSAC的计算时间。在制表符中。我们报告了配准3DMatch数据集的一个片段对和一个完整场景所需的平均时间。
受益于迭代响应,我们激励输入到传输同步层的变换参数的迭代响应,并认为权重和残差为其估计提供了额外的问题。图4的结果证实了这一假设。第4次迭代的输入相关参数比初始估计值高出约2个百分点。另一方面,图4示出在高度存在边缘修剪方案的情况下,有几种可能的方法来实现可假设的离群边缘的修剪。在我们的实验中,我们根据置信度估计块(w-conf.)的输出来修剪边缘。其他的选择是使用全局置信度来实现这一步骤,即(14)(w-Cau.)中定义的柯西权重,或者根本不执行(w/o)。图4清楚地显示了使用我们的置信度估计块的优势(增益超过20个百分点)。更重要的是,由于保留了大量的离群值,替代方法的性能甚至比成对配准差。
以上是关于CVPR 2020 论文阅读笔记(三维点云/三维重建)的主要内容,如果未能解决你的问题,请参考以下文章
论文阅读CVPR 2019| PointPillars: 基于点云的快速编码目标检测框架(Fast Encoders for Object Detection from Point Clouds)(代