Pixel2Mesh: Generating 3D Mesh Models from Single RGB Images
- ECCV2018 原文
- 3D shape generation; Graph convolutional neural network; Mesh reconstruction; Coarse-to-fine; End-to-end framework
- 阅读记录,非系统整理
summary
本文从一个使用GCN表示的ellipsoid开始,从single view image 中提取feature,然后attach到ellipsoid上的vertices上,ellipsoid经过迭代变形实现与image内容一致的3D mesh model的reconstruction。
本文的几个亮点:
- 提出了一个end-to-end的网络结构用来从single-view image生成3D mesh model
- 采用graph-based CNN来表示3D mesh
- 采用coarse to fine的优化策略来获得fine-grained detail,从一个ellipsoid渐进的变化得到3Dmesh
- 渐进的方法的benefits:
- Deep Network更擅长预测变形(residual);
- 变形可以相加;
- 平衡模型的复杂度和预测的质量
- 渐进的方法的benefits:
- 提取(关联) image features到3D mesh的vertices上
challenge:
- mesh model在neural network中的表达
- mesh model的本质是不规则graph,需要处理3D geometry和2D image两端的信息
- 在3D geometry端:
- 使用graph-based fully CNN(GCN)来表示3D mesh; mesh的vertices和edges就代表graph中的nodes和connections;
- 3D shape的network feature encoding information 存储在vetices中(vertex中的feature 称为
attached feature
) - 相邻nodes之间可以的feature交换;
- GCN用来更新vertices的位置信息。
- 2D 端,使用VGG-16 作为image的encoder 得到
feature map
- bridge 3D and 2D, 也就是如何将
feature map
上的feature关联到vertices上:perceptual feature pooling layer:投影graph的每一个node到2D plane上,提取投影点周围的feature作为该node的feature
- 在3D geometry端:
- 如何高效的更新vertex location
- coarse to fine的策略(graph unpooling layer),顶点会与其有边连接的顶点交换
attached feature
,可以看成BFS,这个BFS的深度不会很深,如果初始阶段顶点数量很多,顶点可以探测到的范围也就比较小(可以理解为可以探测的深度是一致的,顶点越多,边越短,范围越小),(点比较密集的话,一个顶点能抽取feature的其他点距离它都不会太远,类似receptive field 比较小。 - 初始阶段,graph的nodes数量比较少,这些顶点占据关键的位置,逐步增加点的个数来获得local detail
- coarse to fine的策略(graph unpooling layer),顶点会与其有边连接的顶点交换
2 related work
- graph neural network Geometric deep learning: going beyond Euclidean data
3 Method
3.1 Preliminary: Graph-based Convolution
- graph: M = ( V , ε , F ) \mathcal{M} = (\mathcal{V}, \mathcal{\varepsilon}, F) M=(V,ε,F)
- vertices: N个 v v v
- edges: E条 ε \varepsilon ε
- features: N个 f f f,一个vertex一个feature(`attached feature)
f p l f_p^{l}