摘要
语义图像合成是神经渲染技术的重要分支。在生成对抗网络等深度学习方法基础上,语义图像合成近两年取得了许多令人印象深刻的进展,比如GauGAN等。本文简单介绍了神经渲染,着重分析了语义图像合成的一些最新应用。本文还分析了语义图像合成的最新算法实现结构、新型算子及计算特征。通过深入理解神经渲染相关技术,我们也期望能借鉴和吸收其中的创新思路,应用到物理仿真等AI融合科学计算领域。我们将持续关注这一领域的发展,并不定期分享我们的认识。
介绍
传统计算机图形学技术经过几十年的发展,主要技术路线已经相对稳定。随着深度学习技术的发展,新兴的神经渲染技术给计算机图形学带来了新的机遇,受到了学界和工业界的广泛关注。在近几年的计算机视觉和图形学顶会上,我们都可以看到各种令人耳目一新的神经渲染应用。业界领导者如Nvidia、Intel也都提出了融合神经渲染的新型渲染pipeline和专利创新。Nvidia已经将深度超分辨率方法(DLSS)加入了新一代的图形渲染引擎,而Intel也提出了面向神经渲染的计算机图形硬件架构[1]。
此外,计算机图形学和科学计算中的物理仿真有着天然的联系。我们也希望通过深入理解神经渲染的技术和算法,借鉴和吸收其创新思路,从而推动融合深度学习的物理仿真的进一步发展。
神经渲染及分类
神经渲染是深度网络合成图像的各类方法的总称。神经渲染通过数据驱动而非物理定律获得渲染函数,其函数一般用深度神经网络通过学习构建。结合新兴的可微渲染方法,神经渲染可以和传统渲染方法融合为完整的渲染流程。
2020年欧洲图形学大会的一篇综述[2]给出了一个较为完整的定义:
(神经渲染是) Deep image or video generation approaches that enable explicit or implicit control of scene properties such as illumination, camera parameters, pose, geometry, appearance, and semantic structure.
神经渲染的分类
报告[2]进一步将神经渲染的各种技术被归纳为照片语义合成、新视角图像合成、光照调整、自由视角视频以及面部和身体重演等几个应用领域。
此外,我们也可以从计算机图形的任务实现层次对神经渲染相关技术总结分类。计算机图形的任务可以简单理解为由内容产生真实感图像或视频。进一步细分,图形渲染的整个流水线可以大致分为两个环节:根据内容定义物体与场景的网格化和材质(3D建模);在模型上添加纹理、光照等形成真实感图像(渲染)。各类神经渲染的目标是实现其中全部或部分的功能。
图1 神经渲染技术的类型
根据上述理解,我们可以把现有神经渲染技术分为如下几种类型:语义图像合成(Semantic Image Synthesis)、场景和物体等图形建模(CG Modeling)、纹理与光线等图形渲染(CG Rendering)图像重渲染(Rerendering)。本文将侧重分析神经渲染中语义图像合成应用的发展,以及支撑这些应用的深度学习模型架构与计算特点。
语义图像合成
(Semantic Image Synthesis)
语义图像合成是当前进展较多的神经渲染领域。Semantic image synthesis可以简单理解为计算机图形的全流程实现,即由语义图直接产生真实感(photo-realistic)图像。
语义图用简单的几何形状表达场景内容。语义图可以来自于已有自然图像的语义分割,也可以手工合成或编辑而得。语义图像合成技术再根据给定的语义图产生新的真实感图像。本文重点介绍了三个最新的语义图像合成工作:GauGAN[3],Infinite Future[4]和GANcraft[5]。其中后两者利用了GauGAN的方法,并都收录于今年的ICCV2021。
图2 语义图像合成(来源:文献[3],图1)
1.GauGAN
语义图像合成方法中,GauGAN是影响较大的工作[3]。自2019年发布以来,GauGAN在学界引起很大反响,许多后续工作借鉴和利用了它的算法。
GauGAN方法整体上是一种生成对抗网络,用语义图和自然图像训练网络。训练中自然图像由 encoder生成隐空间变量,与语义图一起在生成器产生真实感图像,并在判别器比较。训练好的生成器可以根据输入的语义图产生真实感图像。
模型架构:
GauGAN的整体架构如下。
图3 GauGAN整体架构(来源:文献[3],图15)
其中Image Encode是一个卷积网络,包括6层stride-2卷积和两层线性层,输出为代表输入图像隐空间分布的均值和方差。
在对抗网络中, Generator由输入的语义和隐空间采样点生成真实感图像。Generator是一个包含了多层残差模块 SPADE ResBlk的卷积网络,也称为SPADE网络。SPADE模块集成了特殊定义的Batch Norm算子spatial adaptive normalization(SPADE) 。SPADE算子是GauGAN方法的重要创新点,因此SPADE也被用于指代GauGAN模型。我们会在后文详细分析SPADE模块。
对抗网络的判别器是基于patch的多层卷积模型,用于对比语义图和生成的真实感图像。判别器结构中卷积层激活的归一化采用了Instance Norm(IN),以避免一个batch中其它样本的影响。IN算子常常用于生成对抗网络中。
2.Infinite Nature视频合成
语义图像合成技术的一个有趣的进展是2020年底提出的“Infinite Nature”[4]。该方法利用了SPADE模型,可以从单张图像及对应的视差图产生视角连续变化的视频。连续视频通过如下的渲染-优化的两步迭代过程来实现。
首先在渲染阶段,该方法根据输入的自然图像和视差图,可微渲染器产生一组渲染图像,包括:另一视角的纹理映射图,新的视差图及视差mask。Infinite Nature中的可微渲染器是一个在可微框架上实现的传统三维网格渲染器[6]。
图4 渲染-优化流程(来源:文献[4],图3)
其次在优化步骤,将第一步生成的新纹理图、视差及mask作为输入,该方法用SPADE模型产生下一帧真实感图像及视差图。
上述过程反复迭代就可以产生视频序列。读者们可以在网站上看到更多的视频:
https://infinite-nature.github.io/
3.由像素到真实感图像:GANcraft
GANcraft是2021年上半年提出的一项有影响力的工作[5]。它以MineCraft风格的语义像素块作为输入,输出的不仅仅是对应的单张真实感图像,而是任意视角的真实感图像。
严格来讲,GANcraft是一种重渲染技术。神经重新渲染是将已经渲染的图像根据要求重新再渲染的技术。这类技术依靠深度神经网络来恢复渲染图像中丢失的细节。Nvidia已经集成到现有渲染流水的超分辨率模型DLSS可以看作是一个成功应用。GANcraft整合了神经渲染多个方向的最新进展,将神经重渲染推进了一大步。
图5 由MineCraft图到真实感图(来源:文献[5],图1)
除了对神经渲染最新技术的整合,GANcraft的一个创新点是构建伪真实图作为训练标签。由于是从MineCraft的虚拟图来产生真实感图像, GANcraft训练的一个问题是难以获得实际的ground truth。GANcraft 从minecraft图产生的分割蒙版作为语义图,再用预训练SPADE产生真实感图像作为伪ground truth。这样就解决了真实图的来源问题。也就是说,GANcraft将预训练的SPADE作为了真实图像的来源。
GANcraft的实现结构
GANcraft对输入的minecraft图像的每个块中都分配一个风格标签,例如土、草或水等,进而构建 3D 世界的容积函数,从任意给定角度渲染与方块世界场景一致的真实感图像。
整个方法实现框架如图6所示。其中,MLP用于从体素模型构建3D Neural radiance filed,根据视角参数产生二维feature map,由CNN渲染器产生任意视角真实感图像。而神经渲染的风格特征由SPADE生成伪真实图像后经由style encoder 和network产生的。
图6 GANcraft架构(来源:文献[5],图3)
三维容积信息构建
GANcraft模型的场景volume信息由MLP模型表征。通过训练该MLP构建了包含场景的神经辐射场(Neural radiance filed),用于场景投影图像产生。由于该容积场不能表现极远处的天空。因此 GANcraft单独训练了一个天空渲染的MLP模型。神经容积表征也是神经渲染的一个重要研究方向。篇幅所限,不再展开。
CNN渲染器
用于输出最终图像的渲染器是一个深度卷积网络。其输入是由MLP产生的图像feature map和风格编码器产生的风格特征。
风格Encoder
风格Encoder产生用于渲染器的图像风格特征。这是一个两步的网络。首先SPADE产生风格编码,即由分割map得到的隐空间统计特征值。该编码经过一个风格网络产生风格特征。
图7 风格网络(来源:文献[5],图9)
判别器
与GauGAN不同,GANcraft的判别器是基于多级语义特征的Unet结构模型。基于语义特征可实现minecraft和真实感图像间的对比。
图8 feature pyramid semantics-embedding (FPSE) 判别器(来源:文献[5],图11)
由上可见,GANcraft巧妙的利用了神经辐射场、SPADE和StyleGAN等最新神经渲染方法,最终取得令人印象深刻的效果。有兴趣的读者可在如下网站看到更多介绍:
https://nvlabs.github.io/GANcraft/
GauGAN的计算特点
SPADE算子
GauGAN的生成器采用了SPADE算子对卷积层激活做归一化。SPADE算子的提出是为了克服BN后语义信息丢失问题。SPADE算子中batch norm的控制参数与对应的语义图特征相关:
其中,m是语义图,i是网络层,h为输入feature,c,y,x为feature通道及二维坐标。由公式可知,归一化计算中控制变量γ和β是空间坐标和特征通道的函数,需要根据输入的语义图由卷积网络计算而得。
图9 SPADE算子(来源:文献[3],图2和图10)
将经典卷积残差模块中的BN用SPADE算子代替,则可以构建出SPADE Residual Block并用于GauGAN生成器网路。
图10 SPADE ResBlk(来源:文献[3],图11)
Spectral Norm
与许多GAN实现一样,GauGAN使用了对网络权重的Spectral Norm来保证收敛。具体来看,GauGAN方法对Generator和BatchNorm中的卷积算子都作了Spectral Norm处理。Spectral Norm操作将卷积核矩阵权重除以该矩阵最大奇异值来归一化。
矩阵奇异值一般需要通过矩阵奇异值分解获得。这是一个计算代价很大的过程。因为Spectral Norm仅需计算最大奇异值,我们可以通过幂迭代近似来计算,该操作通过多次矩阵乘迭代来逼近结果,减少了计算量。
小结
语义图像合成是神经渲染的重要技术领域,当前各种新的算法与应用层出不穷。语义图像合成的进步推动了神经渲染的应用发展,其技术在游戏、电影工业等领域已经得到了初步应用。
语义图像合成的发展也推动了深度学习技术的创新,比如生成对抗网络的Spectral Norm以及SPADE归一化算子等。相信通过借鉴神经渲染的新思路,AI的其它应用领域如融合深度学习的物理仿真等方向也会得到推动和促进。这些发展无疑会对深度学习软硬件实现提出更多需求,从而推动整个AI生态的发展与革新。
参考文献
[1] Labbre et al.,Graphics Architecture Including aNeural Network Pipeline, US20200051309。
[2] A. Tewari, et. al., State of the Art on NeuralRendering, EUROGRAPHICS 2020.
[3] T.Park et.al., Semantic Image Synthesis with Spatially-AdaptiveNormalization, arXiv:1903.07291v2
[4] A. Liu, Infinite Nature: Perpetual View Generation of Natural Scenes from a Single Image, arXiv:2012.09855v2
[5] Z. Hao, et.al., GANcraft: Unsupervised 3D NeuralRendering of Minecraft Worlds, arXiv:2104.07659
[6] Olano and Greer, "Triangle ScanConversion using 2D Homogeneous Coordinates," HWWS 1997.
关于壁仞科技研究院
壁仞科技研究院作为壁仞科技的前沿研究部门,旨在研究新型智能计算系统的关键技术,重点关注新型架构,先进编译技术和设计方法学,并将逐渐拓展研究方向,探索未来智能系统的各种可能。壁仞科技研究院秉持开放的原则,将积极投入各类产学研合作并参与开源社区的建设,为相关领域的技术进步做出自己的贡献。
扫码关注我们
继续阅读
阅读原文