《A Point Set Generation Network for 3D Object Reconstruction from a Single Image》论文笔记_2D图像生成3D点云

摘要

通过深度神经网络生成3D数据已在研究界引起了越来越多的关注。 现存的大多数作品都采用常规表示法,例如体积网格或图像收集; 但是,这些表示法掩盖了3D形状在几何变换下的自然不变性,并且还遭受许多其他问题的困扰。 在本文中,我们解决了从单个图像进行3D重建的问题,生成了输出的直接形式–点云座标。 伴随这个问题出现了一个独特而有趣的问题,即输入图像的ground-truth可能是模棱两可的。 在这种非常规的输出形式以及groundtruth固有的歧义的驱动下,我们设计了新颖有效的体系结构,损失函数和学习范式。 我们的最终解决方案是条件形状采样器,它能够根据输入图像预测多个可能的3D点云。 在实验中,我们的系统不仅可以在基於单个图像的3d重建基准上胜过最新技术; 但它在3D形状完成方面也表现出强大的性能,并且在做出多个合理的预测中具有有前途的能力。

1.简介
   在本文中,我们解决了基於单个对象的3D几何图形生成对象的问题。 我们探索基于点云表示的3D几何生成网络。 与使用几何图元甚至是简单网格的CAD模型相比,点云表示可能无法有效地表示底层连续3D几何图形,但就我们的目的而言,它具有许多优势:点云是一种简单,统一的结构, 更容易学习,因为它不必编码多个原语或组合连接模式。此外,当涉及几何变换和变形时,由于不必更新连接性,因此点云允许简单的操作。 我们的pipeline会推断3D帧中的点位置,该位置由输入图像和推断的视点位置确定。
   我们面临的挑战之一是如何在训练期间测量loss,因为相同的几何形状可能以相同的近似度接受不同的点云表示。 与通常的L2类型损失不同,我们使用Earth Mover’s distance(EMD)的运输问题解决方案,有效地解决分配问题。 我们利用EMD的近似值来提供速度并确保端到端训练的差异性。
   在这些情况下,一个2D图像会有多个同样良好的3D重建,这使我们的问题与经典回归/分类设置大为不同,在经典回归/分类设置中,每个训练样本都具有唯一的groudtruth注释。 在这种情况下,正确的loss定义对于获得最有意义的结果至关重要。

我们的最终算法是条件采样器,它在给定输入图像的情况下,从估计的groundtruth空间中采样合理的3D点云。 在合成数据和真实数据上进行的实验证明了我们方法的有效性。 我们的贡献可总结如下:

•第一个通过深度学习研究点集生成问题;  

•在从单个图像进行3D重建的任务上应用了点集生成网络,并且性能明显优于现有技术。

 •系统地探索点生成网络的体系结构和损失函数设计中的问题;  

•提出了一种原则性的提法和解决方案,以解决从单个图像任务进行3D重建时存在的groundtruth模糊性问题。

2.相关工作

Deep learning for geometric object synthesis

作者写到此篇文章之前没有

3D reconstruction from single images

尽管大多数研究都集中在多视图几何(例如SFM和SLAM [11,10])上,但理想的情况是,人们希望可以从大量的单视图图像中重建3D。

但是,在这种情况下,该问题是不适当的,必须有先验。 诸如ShapeFromX [13,1]之类的早期工作对形状或环境光照条件做出了强有力的假设。  [12,21]率先将基于学习的方法用于简单的几何结构。 图像集合中的粗略对应关系也可以用于粗略的3D形状估计[15,3]。 随着商品3D传感器的普及,RGBD数据库已经建立并用于训练基于学习的系统[7,9]。 尽管已经取得了长足的进步,但是这些方法仍然不能从单个图像中稳健地重建完整和高质量的形状。 缺少更强的形状先验。
   最近,已经引入了3D CAD模型的大型存储库,例如ShapeNet [4]。 它们具有3D重建任务的巨大潜力。 例如,[22,14]提出将现有形状变形并重新组装成一个新模型以拟合观察到的图像。 这些系统依赖于高质量的图像形状对应,这本身就是一个挑战性和不适定的问题。
   与我们的工作更相关的是[5]。 给定单个图像,他们使用神经网络将底层3D对象预测为3D体积。 我们的工作与[5]之间有两个主要区别:首先,[5]中的预测对象是3D体积; 而我们的是点云。点集为神经网络形成了一个更好的形状空间,因此预测的形状趋向于更加完整和自然。 其次,我们允许针对单个输入图像的多个重建候选对象。 这种设计反映了一个事实,即单个图像无法完全确定3D形状的重建。


3.本文方法

网络结构如下:

我们的目标是从单个2D图像(RGB或RGB-D)重建对象的完整3D形状。 我们以无序点集的形式表示3D形状,其中N是预定义常数。 我们观察到,对于大多数使用N = 1024的对象而言,足以保留主要结构。
点集的一个优点来自其无序性。 与基于2D的表示法(例如深度图)不同,所表示的没有拓扑约束

与3D网格相比,该点集通过仅对曲面上的点进行编码而享有更高的效率。
此外,在旋转或缩放对象时,座标值(xi,yi,zi)会经过简单的线性变换,这与体积表示中的情况相反。
为了对问题的不确定性建模,我们将groundtruth定义为以输入I为条件的形状上的概率分布。在训练中,我们可以从每个图像I的P(·| I)中获取一个样本。
我们从P(·| I)训练神经网络G作为条件采样器:

其中Θ表示网络参数,r〜N(0,I)是扰动输入的随机变量。 在测试期间,可以使用r的多个样本来生成不同的预测。

点集之间的距离度量

一个关键的挑战是设计一个好的损失函数来比较预测的点云和groundtruth。
   要插入神经网络,合适的距离必须至少满足三个条件:1)关于点位置可区分;  2)计算效率高,因为数据将被多次转发和反向传播;  3)对集中的少量异常点具有鲁棒性(例如    Hausdorff距离将失败)。

我们在R 3中寻找子集之间的距离d,以使损失函数L的形式为

EMD距离解决了优化问题,即分配问题。 对于点集对的除零度量子集以外的所有子集,最优双射φ在点的无穷小运动下是唯一且不变的。 因此EMD几乎在任何地方都是有区别的。 在实践中,即使是在图形硬件上,EMD的精确计算对于深度学习而言也过于昂贵。 因此,我们实现了[2]给出的近似方案。 我们为每个实例分配固定的时间量,并逐步调整允许的错误率以确保终止。 对于典型输入,该算法可提供高度准确的结果(近似误差为1%)。 该算法可在GPU上轻松并行化。

形状空间尽管在深层中嵌入了非凡的表达能力,但神经网络在预测对象的精确几何形状时不可避免地会遇到不确定性。 这种不确定性可能是由于有限的网络容量,对输入分辨率的充分利用或由于3D-2D投影中的信息丢失而引起的groundtruth的含糊不清。 面对固有的无法精确解析形状的问题,神经网络倾向于预测平均空间不确定性的“平均”形状。 平均形状带有距离本身的特征。
 

 

为了更好地对不确定性或固有歧义性进行建模(例如,单个视图中看不见的部分),我们使系统能够生成分布输出。 我们希望将随机变量r传递给G(参见等式(1))将类似于条件GAN(CGAN)[17]来帮助探索groundtruth分布。 但是,将等式(1)中的G插入loss(2)中以预测是行不通的,因为loss最小化会使随机性无效。 还不清楚如何使CGAN在我们的方案中工作,因为建立直接消耗点集的鉴别器本身是一个未解决的问题。

该问题可以通过更复杂的框架(例如VAE)解决,我们可以在其中合并辅助输入通道(例如,另一个视图)。 但是,我们实际上发现了一种简单有效的不确定性建模方法:MoN损失。 我们通过最小化损失函数来训练我们的网络,如下所示:

将此损失命名为N最小损失(MoN),因为它来自n个距离中的最小值。 可以将图2中的任何点集回归网络插入包含MoN损失的图4中的元网络中。 实际上,我们发现设置n = 2已经使我们的方法能够很好地探索groundtruth空间。 

实验  

与当时的SOTA方法3D-R2N2比较  

距离量度的分析损失函数的不同选择对网络的预测模式有不同的影响。 图15例示了相应地由CD和EMD训练的两个网络之间的差异。 由CD训练的网络倾向于在不确定区域(例如门后)散布一些点,但能够更好地保留手柄的详细形状。 相比之下,由EMD训练的网络可产生更紧凑的结果,但有时会过度缩小局部结构。 这符合合成数据的实验

尽管是作为应用论文介绍的,但我们遇到了两个基本问题:首先,如何生成无序的实体集。 为了构建用于更复杂的组合数据结构(例如图形)的生成模型,了解如何生成集合可能是一个很好的起点。 第二,如何在回归问题中捕捉groundtruth的模糊性。 除了3D重建之外,许多回归问题都可能具有这种固有的模糊性。 我们通过包装现有损失函数构造MoN损失的方法可以推广到这些问题。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章