High Fidelity Semantic Shape Completion for Point Clouds using Latent Optimization

题目:利用潜在优化方法完成点云的高保真语义的形状补全

摘要

在3D计算机视觉中语义形状补全是一个具有挑战性的问题,这个任务是使用一个部分3D形状作为输入产生一个完整的3D形状。作者提出了一个基于学习的方法通过生成模型和潜在的流形优化来补全不完整的3D形状。作者的算法工作直接作用与点云上。作者使用一个自编码器和一个GAN网络来学习对象类点云的嵌入分布。首先将缺失区域的输入点云编码为特征向量,然后使用组合优化,通过GAN所学习到的表示用于在流形中寻找最好的潜在向量,该优化可以在流形中可用的向量中找到与原始输入最相近的表示(不仅仅是在特征空间,也是在解码器的输出空间)。实验表明我们的算法能够以很高的保真度成功重建缺失区域大的点云,而不用依赖于基于示例的数据检索。

简介

随着低成本RGB-D扫描仪的可用性不断提高,机器人技术和视觉社区对可用性和随之而来的处理3D数据的需求日益引起关注。3D数据的体素化表示已经在学习社区中非常流行。但是,大多数3D数据,无论是通过像Kinect这样的RGB-D扫描仪获取数据,还是通过从Motion(SFM)和立体摄像机的获得的结构获得数据,都是点云的形式。再加上点云在保留精细的表面细节的同时具有很高的存储效率,因此非常需要将深度学习的方法扩展到点云。由于点的组织不规则,因此将点云加入到深度学习结构中比意义中的更难,即他们不是规则的结构并且不能直接用于一些输入规律化用于共享权重的网络架构。针对点云提出的网络应该能够处理任意大小的输入和排列不变性。

重建3D场景常见的挑战是生成的结构点云可能有较大的缺失区域,使用SFM重建的结果由于缺少特征点来跟踪对象会有点稀疏。类似地,由距离扫描仪生成的点云可能会由于遮挡、有限的视角而产生间隙,并且可能会受到传感器分辨率的限制。

通过诸如Motion或者RGB-D扫描仪的结构之类的技术进行3D重建通常会分别由于缺少特征点和遮挡而导致形状不完整

在本文中,作者的目标是使用深度学习的方法解决这个挑战。作者所提出一个框架能够将任意破坏的点云作为输入,例如大的孔洞、整个缺失区域(比如由于遮挡/视角)和低分辨率/点数少(也可能在SFM期间由无纹理的表面造成,或者由于RGB-D传感器分辨率的限制);并且输出密集的完整的点云。请注意作者方法的新颖指出在于我们实际不需要在包含这些损坏的数据集上训练,而在测试时设法处理他们。

作者这篇文章的主要贡献如下:

1.第一个直接作用在点云上的形状补全网络,并且即使在完整的点云上进行训练,也能够在测试的时候处理所有诸如大孔,多个较小的缺失区域和低密度等所有类型的点;

2.一种新颖的算法能够通过生成模型学习到的潜在流形进行优化来执行形状完成,并使用损失函数的组合来确保一个有效对象的重建,同时可以拟合可用数据。

3.在合成和真实(SFM)数据上作者对他们所提出的方法进行定量和定性的评估。作者证明了他们的方法是能够在对合成训练的同时推广到真实的数据,这是简单的方法不能够解决的。

模型

1 点云生成模型

我们基于Achlioptas等人最近所提出的点云生成模型为基础。他们扩展学习点云的自编码器。编码器由多层一维卷积组成,然后是对称池化层(在我们项目中是最大池化),结果为整个点云生成了单个全局特征向量化(GFV)。解码器由堆叠的完全连接层组成。解码器最后一层的输出是一个N*3维的向量,该向量对应于点云的N个点。EMD距离是一种置换不变性的指标,被用作损失函数。EMD是基于两个点云之间的S1,S2:

                                          EMD损失函数

其中\phi是S1到S2的双映射。最佳的双映射点在点的无穷小运动下是唯一且不变的。自编码器使用原始完整点云作为数据集进行训练。然后经过训练的编码器(E)用于提取训练集中每个点云的全局特征向量编码。然后作者使用GAN训练所提取到的全局特征向量。使用生成器(G)生成的新的特征向量可以用过解码器(H)生成点云。GAN的优势在于它是可区分的网络,可以从输出到输入分布空间进行梯度计算,这是作者潜在空间优化算法的关键。

对抗生成网络(GAN):GAN是生成模型的比较流行的一类,最近研究证明该模型可以在图像生成中产生最先进的结果。GAN使用函数近似器(如神经网络-生成器)学习从简单的样本分布(如单位正态分布)到数据生成分布的映射。生成器(G)是在博弈论的设置中训练的,生成器的目的是生成与原始数据(另外一个网络,鉴别器)看起来无法区分的样本。鉴别器(D)通过训练来区分真实数据和G生成的样本。在这篇文章中,作者引入了第三个网络,即初始化编码器(IE),该网络学习从生成器的输出到潜在空间Z的映射。但是传统的GAN训练方式是不稳定的。GAN的最新研究进展尝试通过修改损失或训练过程本身来解决这个问题。作者使用文献中提出的损失修正来进行更稳定的训练。作者使用编码器产生的全局特征向量训练GAN,本文使用全连接层用于网络的生成器和鉴别器。算法1给出了训练AE和GAN网络的过程,下面介绍了依靠IE训练GAN网络的损失函数:

其中,Pz是以原点为中心的单位正态分布,Pdata是GFVs的分布,z和x为从这些分布得到的样本,s是最原始的样本。

                                                                                                        算法1

算法1:使用LDO训练一个生成器模型

所需要的:无噪声且完整的点云S训练集

1.训练一个自编码器、包括编码器E和解码器H,在训练集S中使用EMD作为损失度量。对于本文实验,使用《Representation learning and adversarial generation of 3D point clouds》的实现方法,但是这个方法可以应用与其他的实验。

2.使用训练好的编码器,为训练集中的所有数据提取全局特征向量。

3.训练GAN网络拟合从训练集中所提取到的GFVs。

2 使用LDO进行点云补全

考虑测试时的不完整点云,例如通过SFM生成的点云点云可能有噪声并且不均匀。如果这个点云通过使用编码器E,则会获得“有噪声”的点云,即不依赖于自编码器所学习到的流形的表示。我们通过优化过程对补全点云的任务进行建模,以获取与噪声点云相对应的无噪声的GFV。然后无噪声的GFV可以通过解码器(H)获得完整的点云。

因此,任务减少到将噪声GFV映射到无噪声的GFV流形上。这不是容易的事情,因为作者提出没有解析表达式来表示无噪声的GFV流形。因此,作者使用GAN表示无噪声的GFV流形。如上一节所描述的,GAN是从完整点云的训练集中提取的无噪声的GFV进行训练的,将一个有噪声的数据点云映射到无噪声的GFV流形上,可简化为寻找与有噪声GFV最接近的GFV,该GFV也被鉴别器归为真的。然而,直接优化GFV空间会产生对抗性示例。因此作者选择在生成器的潜在空间中执行优化过程,通过潜在向量z表示。首先作者通过将有噪声的GFV通过初始化编码器进行编码,从初始化数据,z被优化,以便通过生成器产生无噪声的GFV,G(z)。具体来说,本文潜在降噪优化算法的目标可以分解为三个部分:

    鉴别器损失:这个损失为了确保生成的GFV来自于数据流形。作者进行优化以最大程度地提高鉴别器对生成的GFV的评分:

 

    潜在最小二乘损失:该属于可确保生成器生成的GFV,G(z)是接近于与有噪声的GFV,wi是在优化期间,与输入的点云保持语义相似。有噪声的GFV通过使用编码器E获得,作者通过最小化生成器生成GFV和有噪声GFV之间的L2距离:

                                                                                   潜在最小二乘损失

     解码器EMD距离损失:该属于可确保生成的GFV映射到一个点云,该点云接近于所存在的输入的点云。作者通过最小化输入点云和通过生成器生成的GFV进行解码的点云之间的EMD距离:

                                                                                        EMD距离损失

    本文最终的损失函数为以上三个损失函数的权重和:

                                                                                           本文损失函数

本文使用ADAM优化器进行优化,作者还使用指数衰减来减小\lambda\beta的值,两个参数的初始值都是0.001。目的是为了在优化的初始阶段,获得语义一致且看起来真实的点云,而在后期阶段,重点是对点云精细细节的重构。一旦鉴别器损失的值增加,优化就会停止。这样可以确保优化过程不会导致“不真实”的点云,以此获得正确的细节。值得注意的是,作何仅仅最小化与z(生成器的输入)有关的损失,在执行此优化的时候,本文不更新生成器或鉴别器参数,在优化的最后,获得最优的潜在向量_{Z*}。本文只需要将其传递给生成器获得无噪声的GFV,然后将其传递给解码器获得完整的点云H(G(z))。完整的潜在降噪优化算法如算法2所示,并在图2中显示。在本文所有实验中,超参数均保持不变,因此,对于特征的实验不需要调整。

                                                                                                算法2

 

算法2:使用LDO算法补全点云

1.使用编码器E获得部分点云Si的GFV。

2.使用初始化编码器初始化潜在向量Zi。

3.设置鉴别器损失,\lambda\beta.

4.对于k=1,2,...N,计算z向量整体的损失函数;使用优化器ADAM更新zi;更新\lambda;更新\beta;如果损失函数大于之前的鉴别器损失,则终止(上文中所提到的终止条件);更新之前的鉴别器损失值。

通过将无噪声的GFV输入到提前训练好的自编码器的解码器D中获得语义完整的点云H(G(zi))

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值