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

感谢阅读腾讯 AI Lab 微信号第38篇文章,ECCV大会正在德国举办,我们每天深度解读一篇入选论文,今天是第3篇。


ECCV 2018(European Conference on Computer Vision,计算机视觉欧洲大会)与CVPR、ICCV共称为计算机视觉领域三大顶级学术会议,从今天到14日正在德国慕尼黑举办。


腾讯AI Lab 是第二次参加,入选了19篇文章,位居国内企业前列。会议期间,我们选取四篇入选论文做深度解读,主题依次为图像到图像转换方法SCAN、视频再定位、单帧RGB生成三维网络模型和跨年龄人脸识别算法。以下是第3篇。


在这篇论文中,作者提出了一种端对端的深度学习框架,可从单张彩色图片直接生成三维网格(3d mesh),以下为论文详细解读。


论文链接:https://arxiv.org/pdf/1804.01654.pdf

Code: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格子,受分辨率和表达能力限制,这种表示方法通常缺乏细节;pointcloud是一种不规则的数据结构,由于点之间没有局部连结关系,点云往往缺乏物体的表面信息;3D Mesh同样是一种不规则的数据结构,由点、边和面组成,由于其轻量、形状细节丰富等特性,在虚拟现实、动画游戏、生产制造等实际产业中应用越来越广泛,本文研究如何从单张RGB图重建出对应的3D mesh模型。

640?wx_fmt=png

Figure 1: Pixel2Mesh的架构


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

 

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


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

640?wx_fmt=png

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


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

640?wx_fmt=png

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

 

损失函数


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

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

640?wx_fmt=png

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

640?wx_fmt=png

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

640?wx_fmt=png

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

640?wx_fmt=png

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


640?wx_fmt=png

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.

 

实验结果


1.  F-score(%)

640?wx_fmt=png

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


2.CD和EMD

640?wx_fmt=png

对于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


640?wx_fmt=jpeg

猜你喜欢

转载自blog.csdn.net/y80gDg1/article/details/82598507
今日推荐