文章目录
一、神经渲染的亮相
在Generative Query Network(GQN)《Neural scene representation and rendering(2018)》中,首次提出了神经渲染的概念。该网络依靠一个现实复刻的3D隐式模型,并且生成这个场景的多张图片作为输入,经过网络训练后,输出任意视角的渲染结果。基于此,有很多后续的研究者提出了大量的方法,使得模型更加显式等等·。
二、神经渲染与图形管线的比较
- 传统图形管线的渲染效果依赖于物理的正确。
- 神经渲染的效果依赖于网络的设计与训练数据的质量。
显式的模型重建有着一些难以避免的瑕疵,最终给渲染带来了无可避免的伪影。
基于图像的渲染试图解决这些问题,但是对于复杂的场景,渲染结果仍然会存在着接缝和重影。
为此,提出了神经渲染,通过学习捕获的真实图像到新视图复杂的映射关系,来解决重建与渲染出现的问题。
三、神经渲染的定义
通过深度的图像或视频生成方法,实现对一些场景资产(光照,相机参数,姿势,几何,外观,语义结构)的显示或隐式控制。
四、本文范围
本篇论文讨论了传统渲染管线的那个部分可以由神经渲染改造以及如何改造,训练数据是什么样的。
另外,本文主要针对于利用机器学习生成可控制的照片级渲染结果。
四、图形学基础
1.基于物理的图像合成
一个基于物理的图像渲染结果需要依靠于:光源,场景几何,材料特性,光的传输情况,光学以及传感器(相机)
而渲染方法可以分为两种:一种是光栅化,另外一种是光线追踪。
2.逆渲染与神经渲染
逆渲染作为cv与cg领域的综合,与神经渲染有着很强的关联。但缺点在于提供的物理模型
五、重要的神经渲染方法
按照以下五个标签对神经渲染方法进行分类:
1.处理信号方式
神经渲染目标为在用户可自定义的情况下渲染高质量的场景,而这里面的研究比如:
- 新视图合成
- 新光照条件下的重光照
- 脸部或身体动画
- 新姿态合成
区分的一个关键点就是对用于神经网络训练的信号控制方式的不同。常见的分类为:
- 直接使用场景参数或网络中间层
- 将场景参数平铺到输入图像的所有像素上或将场景参数连接到网络的激活层
- 利用图像的空域信息和一个图像-图像的转换网络实现从参考图到输出图的映射
2、图形模块
神经渲染的一个新兴趋势是将图形学知识结合在网络设计中,因此,有必要针对所使用的图形模块进行划分。另外,与神经网络结合的图形模块必须是可微分的,这样才能用于渲染以及神经网络的训练。【KGT18,LXZ19,FTZ19,MBPY18】
例如场景的深度图,法线图,漫反射图等等信息都是可以用于训练的,这也可以理解为一个图像-图像的转换问题。
这样的可微的图形模块的结合常见的应用有:
- 图形渲染 【LSS*19,SZW19】
- 3D变换【STH19,NPLBY18,NLT19】
- 全局光照【SYH*17】
3.显示控制还是隐式控制
显示控制:用户可以对场景参数进行手动控制,比如:
- 对相机视点的控制【XBS∗19, TZT∗20, NLT∗19, ERB∗18, HPP∗18,AUL19, MGK∗19, NPLBY18, SZW19, STH∗19】
- 对场景光照进行控制[ZHSJ19, XSHR18, PGZ∗19, MHP∗19, SBT∗19]
- 面部姿态和表情控制 [LSSS18, TZN19, WSS∗19, KGT∗18, GSZ∗18]
隐式控制:使用参考图像/视频,复制其场景参数,不能手动控制,应用:
- 从视频中学习人物头部姿态[ZSBL19]
- 人物动作的重定向[ASL*19,CGZE18]
方法比较:
显示控制 | 隐式控制 |
---|---|
需要3D代理 | 不需要3D代理 |
灵活控制 | 不能手动控制 |
更多的训练数据 | 更少的训练数据 |
两种方法各有优劣,要看应用场景而定。例如,在进行面部表情照片的训练的时候,隐式控制利用视频[ZSBL19]就可以达到和显示控制的效果[KGT*18,TZN19]。 |
4.多结果合成
有些时候,用户需要多个的输出,以便选择自己更想要的效果。为了实现多个彼此不同的结果的输出,在网络中处理信号的方式必须有着特性转换或结构的变化以便生成不同的结果。
例如:
- 变分的自动编码器模块[KW13, LSLW16]可以用于生成这些变化,用于多结果合成[WDGH16, XWBF16, ZZP∗17]。
- 通过用户接口来合并该可变性:给同样的语义映射,产生不同的结果[PLWZ19b]
5、普适性
和其他的深度学习工作一样,在神经渲染中,其他同样类型的对象渲染出来的模型,能够适用时,就称这种神经渲染方法具有普适性;[XBS∗19, SZW19, NPLBY18,NLT∗19, HPP∗18, ERB∗18, BSP∗19a, PLWZ19b, ZKSE16,
BLRW17, ZSBL19, IZZE17, KAEE16, CK17, WLZ∗18b]
而其他相同类型的对象训练出来的模型不能在对应的对象上使用,那么这种方法不具有普适性。[CGZE18, LXZ∗19, LSSS18,WSS∗19, ASL∗19, STH∗19,LSS∗19, KGT∗18, FTZ∗19, TZT∗20, AUL19, MGK∗19, SZW19]
六、神经渲染的应用领域
- 语义照片处理与控制
- 对象或场景的新视图合成
- 自由视点视频的控制
- 可学习的重光照
- 脸部姿态控制
领域-方法 一览表:
七、对象或场景的新视图合成
1.引言
(1) 概念
对象或场景的新视图合成可以利用多幅图片合成一个基于任意视角下的渲染结果。是对于相机视角下的图片或视频数据的处理,关键的挑战在于如何通过少量的观察推断出物体或场景的三维结构。
v.
(2)IBR
在传统的cv领域中,基于图像的渲染方法可以用于新视图合成,具体的实现原理为多视图立体化方法来重建对应的模型并对模型进行变换得到新视图。[DYB98,CDSHD13] ,这种方法的缺陷在于如果观察数据少的话,在进行新视图合成时会带来一些伪影从而影响真实性。
(3)N-IBR
而基于图像的神经渲染正是为了解决这一问题,它将基于图像的渲染中手动控制的管线用基于学习的方法来替代。[HPP∗18,MGK∗19]
(4)可微渲染
另外,还可以通过一个端到端的可微渲染器来实现重现对象的目的。
(5)总结
这些神经场景再现方法包含了:
- 定义重建和渲染的结构[ERB*18]
- 再现其三维结构,例如体素网格[SZW19,NLT*19]
- 显式分离三维物体的体素纹理[ZZZ∗18],点云[MGK∗19],多平面图像信息[XBS∗19, FBD∗19]
- 隐式学习对象的图像或几何信息[SHN∗19, SZW19]
而近些年的成效有:
- 自由视点方向[TZT∗20, XBS∗19]
- 从少量数据再现外观和几何[SZW19, XBS∗19]
神经渲染相比传统的方法有着更好的效果,但是在受限于特定的用例和训练数据。
特别的,对于自由视点下的光照处理仍是个挑战。
2.N-IBR
(1)概念
N-IBR是传统的基于图像的渲染和深度神经网络的结合。它将IBR中的的合成方法替换为可学习的变换和修正方法。
(2)例如:
- DeepBlendinhg :估计输入的各个视角的图片的权重对应于目标视角结果的合成方法[HPP*18]
- EffectsNet:预测新视角的视图[TZT∗20]
3、神经渲染
(1)概念
神经渲染将3D重建和渲染与深度学习相结合,产生更加真实的结果。
(2)神经渲染与可学习的基于图像的渲染(N-IBR)比较
神经渲染在运行时没有利用输入的图片,而是利用深度学习的方法来推断出具体的细节,例如:
4、利用多视角图像的新视图合成
(1)概念
利用多个不同的视角的图像可以进行新视图的合成
(2)例如:
- 包含高光,阴影等的新视图合成 [XBS∗19]
- 对新视图光场的可视化[FBD∗19]
- 利用可学习的梯度下降域学习不同的视角图片用于合成[ZTF∗18]
4、神经场景再现与渲染
对于室内场景的再现,过去一直倾向于利用网格,多视角图像,点云数据。而对于其几何和外观信息的再现,没有非常适用的解决方案,直到GQN的出现[ERB∗18]
5、基于体素的新视图合成
在新视图的合成过程中,常常忽略其对应的几何结构。得益于针对几何的深度学习点进展[KHM17, CXG∗16,JREM∗16, HMR19], a,催生了一系列的3D结构渲染方法。
- RenderNet :利用一个显示控制的3D代理实现一个可微渲染器。可以用于新视图合成,纹理编辑,重光照,重阴影[NPLBY18]
- DeepVoxels :联合重建场景的几何和外观,没有显示控制[STH∗19]
- Visual Object Networks:利用一个解耦的3D网络模型合成一个对象的外观,其模型可以划分为视点部分,形状部分,纹理部分,用户可以独立地对其进行手动控制(VONs) [ZZZ∗18]
- HoloGAN :在RenderNet的基础上进行的优化,允许对视点进行显式变换[NLT∗19]
6、基于隐式控制的方法
在利用多视角图像进行新视点图像合成时,受图像质量与图像数量的关系,对于渲染大的场景以及几何仍然存在问题,而最近的研究也着手解决这些问题:
- 对于对象几何深度的学习[PFS∗19, MON∗19]
- 对于对象颜色信息的学习[SHN∗19]
- 利用图像与相机参数来合成彩色物体模型[SZW19]