Pixel2Mesh:从单帧RGB图像生成三维网格模型

腾讯 AI Lab 与复旦大学、普林斯顿大学、Intel Labs 合作提出一种端对端的深度学习框架,可从单张彩色图片直接生成三维网格(3d mesh)。该研究论文被顶级会议 ECCV 2018 收录,以下是技术详细解读。

ECCV(European Conference on Computer Vision计算机视觉欧洲大会)将于 9 月 8 日-14 日在德国慕尼黑举办,该会议与 CVPR、ICCV 共称为计算机视觉领域三大顶级学术会议,每年录用论文约 300 篇。腾讯 AI Lab 是第二次参与该会议,录取文章数高达 19 篇,位居国内前列。在刚结束的计算机视觉领域另外两大会议 CVPR,ICCV 中也收获颇丰,分别录取 21 篇和 7 篇论文。

■ 论文 | Pixel2Mesh: Generating 3D Mesh Models from Single RGB Images

■ 链接 | https://www.paperweekly.site/papers/2283

■ 源码 | https://github.com/nywang16/Pixel2Mesh

该论文由复旦大学、普林斯顿大学、Intel Labs 和腾讯 AI Lab 合作完成。文章提出了一种端到端的深度学习框架,可从单张彩色图片直接生成三维网格(3D Mesh)。

深度神经网络特性的限制,以前的方法通常用 volume 或者 point cloud 表示三维形状,将它们转换为更易于使用的 mesh 并非易事。与现有方法不同,本文使用图卷积神经网络表示 3D mesh,利用从输入图像中提取的特征逐步对椭球进行变形从而产生正确的几何形状。本文使用由粗到精的模式进行生成,使得整个变形过程更加稳定。

此外,本文还定义了几种与 mesh 相关的损失函数捕捉不同级别的特性,以保证视觉上有吸引力并且物理上高重建精度。大量实验表明,本文的方法不仅定性上可以生成细节更加充分的 mesh 模型,而且与当前最好的方法相比也实现了更高的重建精度。 

三维数据有多种表示形式,包括 volume、point cloud、mesh 等。volume 是一种规则的数据结构,即将物体表示为的 N3 格子,受分辨率和表达能力限制,这种表示方法通常缺乏细节。

point cloud 是一种不规则的数据结构,由于点之间没有局部连结关系,点云往往缺乏物体的表面信息;3D Mesh 同样是一种不规则的数据结构,由点、边和面组成,由于其轻量、形状细节丰富等特性,在虚拟现实、动画游戏、生产制造等实际产业中应用越来越广泛,本文研究如何从单张 RGB 图重建出对应的 3D mesh 模型。

模型架构

▲ Figure 1: Pixel2Mesh的架构

Pixel2Mesh 的架构如图 1 所示。对于输入图像,设计一个多层的卷积神经网络,用于提取图片不同层次的特征。对于输出三维网格,设计了 3 个级联的变形模块,由图神经网络构成。Perceptual feature pooling 层可根据网格顶点坐标得到投影的图片特征,然后根据此特征不断对初始的椭球进行变形,以逼近真实形状。Graph unpooling 层用于增加三维网格节点和边的数量。

本文的目的在于提出一种生成结果光滑、重建精度高的利用单张彩色图生成物体三维网格模型的方法。本文没有直接采用生成 3D Mesh 的方法,而是采用将一个固定的椭球依据图像特征逐渐形变成目标形状的策略。本文针对两个三维网格重建难点给出了解决方案:

1. 3D Mesh 的表示问题—引入图卷积神经网络3D mesh 一般使用非规则数据形式—图(Graph)来表示,而同时整个网络还需要对其输入的规则的图像数据进行特征抽取。本文使用图卷积网络(GCN)来处理三维网格,使用类似于 VGG-16 的网络来提取二维图像特征。为了将两者联系在一起,设计了一个投影层使得网格中的每个节点能对应获取相应的二维图像的特征。

上图(a)中 P 是从输入图片得来的特征,是顶点的位置,两者组合可得到相应的投影特征,再与 GCN 的特征简单合并送入网格形变模块(Mesh Deformation Block)中。整个网络包含若干该模块。上图(b)是依据相机参数进行投影的示意图。

2. 如何有效地更新网格的形状—引入图的上池化层。实验发现,直接训练网络使其预测 mesh 的效果并不好。一个原因是如果直接预测较大数量的点的网格,顶点的感受野会有受限,即 mesh 的顶点无法有效地检索邻近顶点的特征。为了解决这个问题,本文设计了一个图的上池化层(Graph unpooling layer),使得点的数量逐渐由少到多,相应的网格形状由粗到细,既保留了全局信息,又具有细节的表达。

上图是图的上池化过程。(a)中的黑色顶点即为新增的顶点,连接的虚线即为新增的边。这是 Edge-based 的方式,还有一种 Face-based 的方式,即在每个三角形中心添加一个顶点,但这样会造成网格顶点不均衡的问题,如(b)所示。在实际操作中,每个新增的点位于旧三角形的边的中点位置,特征的值取相邻两顶点的均值。

损失函数

本文定义了四种不同的损失函数来促使网格更好地形变。

1. Chamfer 损失函数其作用是限制网格顶点的具体位置;

2. Normal 损失函数其作用是增强网格表面法向的一致性(增加表面光滑度);

3. Laplacian 正则化其作用是在形变时维持临近顶点的相对位置;

4. Edge length 正则化其作用是防止个别异常顶点的出现。

本方法对输入图像进行的三维网格建模的结果:

▲ Qualitative results. (a) Input image; (b) Volume from 3D-R2N2 [1], converted using Marching Cube [4]; (c) Point cloud from PSG [2], converted using ball pivoting [5]; (d) N3MR[3]; (e) Ours; (f) Ground truth.

实验结果

F-score (%)

本文提出的方法在 ShapeNet 测试数据集上的表现,除了当阈值为时在 watercraft 类低于 PSG,其他指标均达到了最好水平。 

CD 和 EMD

对于 CD 和 EMD,在 ShapeNet 测试集上,本文的方法在多数情况下都达到了最好水平。

参考文献

[1]. Choy, C.B., Xu, D., Gwak, J., Chen, K., Savarese, S.: 3d-r2n2: A unified approach for single and multi-view 3d object reconstruction. In: ECCV. (2016) 

[2]. Fan, H., Su, H., Guibas, L.J.: A point set generation network for 3d object reconstruction from a single image. In: CVPR. (2017) 

[3]. Kato, H., Ushiku, Y., Harada, T.: Neural 3d mesh renderer. In: CVPR. (2018) 

[4]. Lorensen, W.E., Cline, H.E.: Marching cubes: A high resolution 3d surface construction algorithm. In: SIGGRAPH. (1987) 

[5]. Bernardini, F., Mittleman, J., Rushmeier, H.E., Silva, C.T., Taubin, G.: The ball-pivoting algorithm for surface reconstruction. IEEE Trans. Vis. Comput. Graph. 5(4) (1999) 349–359

PaperWeekly
PaperWeekly

推荐、解读、讨论和报道人工智能前沿论文成果的学术平台。

理论Pixel2Mesh
6
相关数据
英特尔机构

英特尔是计算创新领域的全球领先厂商,致力于拓展科技疆界,让最精彩体验成为可能。英特尔创始于1968年,已拥有近半个世纪产品创新和引领市场的经验。英特尔1971年推出了世界上第一个微处理器,后来又促进了计算机和互联网的革命,改变了整个世界的进程。如今,英特尔正转型成为一家数据公司,制定了清晰的数据战略,凭借云和数据中心、物联网、存储、FPGA以及5G构成的增长良性循环,提供独到价值,驱动日益发展的智能互联世界。英特尔专注于技术创新,同时也积极支持中国的自主创新,与产业伙伴携手推动智能互联的发展。基于明确的数据战略和智能互联全栈实力,英特尔瞄准人工智能、无人驾驶、5G、精准医疗、体育等关键领域,与中国深度合作。面向未来,英特尔致力于做中国高价值合作伙伴,在新科技、新经济、新消费三个方面,着力驱动产业协同创新,为实体经济增值,促进消费升级。

https://www.intel.com/content/www/us/en/company-overview/company-overview.html
相关技术
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

池化技术

池化(Pooling)是卷积神经网络中的一个重要的概念,它实际上是一种形式的降采样。有多种不同形式的非线性池化函数,而其中“最大池化(Max pooling)”是最为常见的。它是将输入的图像划分为若干个矩形区域,对每个子区域输出最大值。直觉上,这种机制能够有效的原因在于,在发现一个特征之后,它的精确位置远不及它和其他特征的相对位置的关系重要。池化层会不断地减小数据的空间大小,因此参数的数量和计算量也会下降,这在一定程度上也控制了过拟合。通常来说,CNN的卷积层之间都会周期性地插入池化层。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

虚拟现实技术

虚拟现实,简称虚拟技术,也称虚拟环境,是利用电脑模拟产生一个三维空间的虚拟世界,提供用户关于视觉等感官的模拟,让用户感觉仿佛身历其境,可以及时、没有限制地观察三维空间内的事物。用户进行位置移动时,电脑可以立即进行复杂的运算,将精确的三维世界视频传回产生临场感。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

卷积神经网络技术

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

正则化技术

当模型的复杂度增大时,训练误差会逐渐减小并趋向于0;而测试误差会先减小,达到最小值后又增大。当选择的模型复杂度过大时,过拟合现象就会发生。这样,在学习时就要防止过拟合。进行最优模型的选择,即选择复杂度适当的模型,以达到使测试误差最小的学习目的。

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

推荐文章
暂无评论
暂无评论~