article:http://arxiv.org/abs/2011.12100( CVPR 2021 (oral))
code:https://github.com/giraffe-fsharp/Giraffe
writer:Michael Niemeyer,Andreas Geiger
1 摘要
深度生成模型可以在高分辨率下进行逼真的图像合成。但对于许多应用来说,这还不够:内容创作还需要做到可控。GRAF加入了形状编码和外观编码,实现对场景中物体的编辑。GiRAFFE的关键假设是,**将组合式三维场景表示纳入生成模型,可以使图像合成更加可控。**将场景表示为生成性神经特征场,使得能够从背景中分离出一个或多个物体,以及单个物体的形状和外观,同时无需任何额外的监督就能从非结构化和非posed的图像集中学习。将这种场景表示与神经渲染管道结合起来,可以产生一个快速而真实的图像合成模型。实验证明,GIRAFFE能够分解单个物体,并允许在场景中平移和旋转它们,以及改变摄像机的姿势。
2 模型框架
2.1 Overview
overview. 首先在高斯分布上采样不同的物体以及背景的形状和外观的信息,在不同模型上生成不同的目标车辆和背景,然后通过目标姿态信息变换目标的姿态(仿射变换),然后根据相机姿态和体渲染,生成隐式的三维场景,再通过2D的CNN网络解码成2D图片。
2.2 与2D-based 方法对比
通过上图可明显看出,基于2D的方法在对球体进行移动时,两个球体的形状都发生了改变,而GIRAFFE可以很好地完成移动物体的操作。同时,GIRAFFE还能完成更复杂的任务,比如循环平移以及往场景中添加物体。
2.3 整体框架
首先,将单个对象建模为神经特征场,然后,利用来自多个不同物体的特征场的附加属性来合成场景,对于渲染部分,GIRAFFE研究了如何将体积渲染和神经渲染有效组合起来。其中橙色表示可学习,蓝色表示不可学习的操作。C是composition operator(组合算子)
输入:
- 相机pose(外参矩阵 ξ ∼ p ξ \xi \sim p_{\xi} ξ∼pξ, p ξ p_{\xi} pξ和 p T p_T pT是依赖于数据集的相机仰角和有效对象变换的均匀分布,做出这种选择的理由是,在大多数现实世界场景中,对象是任意旋转的,但不会因重力而倾斜,相比之下,相机保持位置不变时可以自由改变其仰角);
- 形状和外观代码( z s , z a ∼ N ( 0 , 1 ) z_s,z_a \sim N(0,1) zs,za∼N(0,1)服从标准正太分布)
- 仿射变换 T i T_i Ti( T = { s , t , R } T = \{s, t, R\} T