Pixel2Mesh:从单一RGB图片生成3D网格模型

摘要

我们提出了一种端到端的深度学习框架,它可以从单一色彩图像生成一个三角形网格的三维模型。受限于深度神经网络特性的限制,以前的方法通常是使用体积或点云的形式来表示三维形状,将他们转换为更加易于使用的网格模型并非易事。不同于现有方法,我们的网络在基于图形的卷积神经网络中表示3D网格,并通过利用输入图像中提取的感知特征使椭圆体逐渐变形来产生正确的集合形状。我们采用从粗到精的策略来使整个变形过程稳定,并定义了各种与网络相关的损失函数,以捕获不同级别的属性,用来保证3D几何形状在视觉上的吸引和物理上的精确。大量的实验表明,与现有技术相比,我们的方法不仅可以定性的生成具有更好细节的网格模型,而且可以实现更高的三维形态的估计精度。

介绍

从单一角度推断3D形状是人类视觉的基本功能,但对计算机视觉而言却极具挑战性,最近,在使用深度学习技术从单色图像生成3d形状方面取得了巨大的成功。利用规则网格上的卷积层或多层感知,把估计出的3D模型表示为体积(volume)或者点云作为神经网络的输出。但是,两种表述都失去了重要的表面细节,这对于重建一个曲面模型是非常重要的(如图1),许多真的应用更加需要网格细节,因为它是轻量级的,能够更加细节重建模型,容易变形动画等。
Pixel2Mesh:从单一RGB图片生成3D网格模型

在本文中,我们沿着单色图像重建的方向发展,并提出了一种从单色图像中提取3D三角形网格的算法。我们的模型不是直接合成,而是学习将网格从平均形状变形为目标几何形状。这从多个方面使我们受益。首先,深度网络更擅长预测残差,例如 空间变形而不是结构化输出,例如 图;其次,可以将一系列变形加在一起,从而使形状逐渐细化,它还可以控制深度学习模型的复杂性和结果质量之间的权衡;最后,它提供了将任何先验知识编码到初始网格的机会,例如 拓扑。作为一项开拓性的研究,在这项工作中,我们专门研究可以通过变形一个固定尺寸的椭球体来进行3D网格近似。实际上,我们发现在这种情况下,大多数常见类别都可以很好地处理,例如 汽车,飞机,桌子等。要实现这一目标,存在一些固有的挑战。
第一个挑战是如何在神经网络中表示本质上是不规则图形的网格模型,并且能够有效地从2D规则网格表示的给定彩色图像中提取形状细节。它需要整合从两种数据模式中学习到的知识。在3D几何体方面,我们直接构建基于全卷积网络的图(GCN),其中网格中的顶点和边直接表示为图中的节点和连接。(关于图卷积https://mp.weixin.qq.com/s/WW-URKk-fNct9sC4bJ22eg)3D形状的网络要素编码信息保存在每个顶点上。通过前向传播,卷积层可以在相邻节点之间交换特征,并最终使每个顶点的3D位置回归。在2D图像方面,我们已使用VGG-16之类的架构来提取功能,因为事实证明该功能可成功完成许多任务。为了连接这两者,我们设计了一个感知特征池化层,该层允许GCN中的每个节点将其在图像上的二维投影的图像特征进行池化,假设已知的摄像机内固有矩阵即可轻松获得这些特征。使用更新的3D位置在多次卷积后启用感知特征池,因此来自正确位置的图像特征可以有效地与3D形状集成。

给定图表示,下一个挑战是如何有效地向真实信息方向(ground truth)更新顶点位置。在实践中,我们观察到,被训练成直接预测具有大量顶点的网格的网络很可能在开始时出错,之后很难修复。一个原因是,一个顶点不能有效地从其他有许多边的顶点检索特征,即有限的接受域。为了解决这个问题,我们设计了一个图解池层,它允许网络以较少的顶点开始,并在正向传播期间增加。在开始阶段使用较少的顶点,网络将学习将顶点分布到最具代表性的位置,然后随着顶点数量的增加而增加局部细节。除了图解池层之外,我们还使用了一个由快捷连接增强的深度GCN作为架构的主干,它支持全局上下文的大接受域和更多动作步骤。以图形表示形状也有利于学习过程。已知的连通性使我们能够定义相邻节点之间的高阶损耗函数,这对于规范3D形状很重要。具体来说,我们定义表面法向损耗(surface normal loss)以使表面光滑。 边缘损失(edge loss),以鼓励网格顶点的均匀分布,以提高召回率; 和拉普拉斯损失(laplacian loss),以防止网格面彼此相交。所有这些损失对于生成高质量的吸引人的网格模型都是必不可少的,没有图表示,它们都不能被简单地定义。
本文的贡献主要体现在三个方面。首先,我们提出了一种新的端到端的神经网络架构,它可以从单一的RGB图像生成三维网格模型。其次,我们设计了一个投影层,将感知图像特征融入到由GCN表示的三维几何中。第三,我们的网络以粗糙到精细的方式预测三维几何,更可靠,更容易学习。

相关工作

文献中对基于多视图几何的三维重建进行了深入的研究。主要的研究方向包括用于大规模高质量重建的运动结构(SfM)和用于导航的同步定位和地图绘制(SLAM)。尽管它们在这些情况下非常成功,但受到以下方面的限制
1)多个视图可以提供的覆盖范围;
2)要重建的对象的外观。
前者的限制意味着MVG无法重构对象不可见的部分,因此通常需要很长时间才能获得足够的视图来进行良好的重构;后一种限制意味着MVG不能重构非兰伯对象(如反射对象或透明对象)或无文本对象。这些限制导致了求助于基于学习的方法的趋势。
基于学习的方法通常只考虑单个或少量图像,因为它很大程度上依赖于可以从数据中学习的形状先验。早期作品可以追溯到Hoiem
和Saxena等人。最近,随着深度学习架构的成功以及诸如ShapeNet之类的大规模3D形状数据集的发布,基于学习的方法取得了长足的进步。Huang等[15] Su等[29] 从大型数据集中检索形状分量,将它们组合在一起并使变形的形状变形以适合观察的图像。然而,从图像中提取形状本身是一个难以解决的问题。为避免此问题,Kar为每个对象类别学习了3D变形模型,并捕获了不同图像中的形状变化。但是,这种重构方法局限于常用的分类,其重构结果往往缺乏细节。另一研究领域是从单个图像直接学习3D形状。受流行的基于网格的深度学习架构的限制,大多数作品输出3D体素,由于现代GPU上的内存限制,这些3D体素通常具有较低的分辨率。最近,Tatarchenko提出了一种八叉树表示,可以在有限的内存预算下重建更高分辨率的输出。但是,3D体素仍不是游戏和电影行业中流行的形状表示。为了避免体素表示的缺点,Fan建议从单个图像生成点云。点云的表示没有点之间的局部连接,因此点的位置有很大的*度。因此,生成的点云通常不接近曲面,不能直接用于恢复三维网格。除了这些典型的三维表现,还有一个有趣的作品,用所谓的“几何图像”来表现一个三维的形状。因此,他们的网络是一个二维卷积神经网络,进行图像到图像的映射。我们的作品与最近的两部作品Neural 3d mesh renderer和Image2mesh: A learning framework for single image 3d reconstruction有关。但前者采用简单的轮廓监控,对汽车、灯等复杂对象效果不佳;后者需要一个大型的模型存储库来生成组合模型。
我们的基础网络是一个图形神经网络;这种结构被用于形状分析。同时,也有基于制图的方法,直接在曲面流形上应用卷积进行形状分析。据我们所知,虽然图形和表面流形是网格对象的自然表征,但这些结构从未被用于单一图像的三维重建。

方法

实验

总结