[译]Enhancing photorealism enhancement

930 阅读38分钟

原文:

isl-org.github.io/Photorealis…

摘要: 本文介绍一种合成图像真实感增强的方法。通过卷积网络对图像进行增强,输入加入了传统渲染管线生产的中间产物。该网络以新的对抗目标来训练,在多个感知层提供强力的监督约束。对照实验证实我们的贡献是有益的,另外我们发布了一篇报告,阐述了与近期行业内image-to-image 迁移方法、以及大量其他的基线数据对比的结论,本文介绍的方法在稳定性、真实感增强方面均有大量的提升。

1.introduction(简介)

半个世纪以来,图片真实感是计算机图形学的重要目标。1977年,Newell和Blinn已经针对这个领域调研了十年。之后的40年,因为基于物理的光传输模拟、材质表面的表达法则以及摄影度量学建模,这个领域取得了大量更深入的突破。这些技术及其近似方法被集成到实时渲染管线中,极大的提高了游戏的真实感。然而,即使是看下最复杂的实时游戏也会发现,游戏模拟出来的效果和真实世界仍然有难以言喻的差异。

最近几年,在计算机视觉和机器学习之间有些互补的技术被提出来,基于深度学习、卷积网络和对抗训练,绕过了几何布局的物理建模、材质外观和光传输。取而代之的是,通过大数据集训练卷积网络,再用网络模型合成图像。这类技术曾用于特定领域的图像合成,将语义标签图转换成照片图像,并试图弥合合成图像与真实图像之间的差异。这些合成的图片可以表达照片的各种细节,即使是最先进的游戏也无法达到同样的水准。不好的一面是,合成的方法与渲染管道基本没关系,所以难以控制,并且可能会产生不和谐的伪影,这些在媒体生产中难以接受。

在这篇paper中,我们向前做了点突破,融合了上述两条互补的技术路线。我们试图基于现代游戏开发流程,通过深度学习对结果进行图片真实感增强。第一步,先通过游戏引擎产出中间buffer(G-buffers),这些buffer提供详细的几何、材质、光照等信息。将G-buffers作为输入训练卷积网络,以增强图片真实感。我们设计了新的网络组件,集成G-buffers到图像真实感增强的工作流中,从这些buffer中抽取信息,用以变换从渲染管线出来的图片。

我们还尝试消除伪影,这在先前的深度学习方法中经常出现。最后,我们分析了经常用于照片真实感增强的数据集,分析表明,这些数据集中场景布局的差异可以解释伪影的产生【译者注:场景布局指一张图片中物体的位置、方向】。为了更好的对齐数据集,减少伪影,我们提出了一个新的采样策略--采样图片中的一块【译者注:以前的训练方法是,整张图片作为输入输出】。更进一步,我们设计了一个新的对抗训练目标,在保证图像增强的前提下,保证其几何、语义与原始输入图像一致。

搞定这一切,我们的方法大大增强了渲染图像的真实感(Fig.1),增加了汽车光泽、绿色干燥的山、重建了道路。用不同的真实数据集,输出的图片会产生对应的视觉风格。

Fig.1. 我们用传统渲染引擎产出的中间G-buffer训练卷积网络,以增强渲染图片的真实感. 左边:现代游戏产出的帧(GTA V). 右边:通过模仿CitySpcapes的风格增强的效果。我们的增强效果是语义一致的,而且比较明显。举例,我们的方法增加了汽车辉光、树林块,以模仿German climate。中间的小插图放大了标记的区域。

Fig.1. 我们用传统渲染引擎产出的中间G-buffer训练卷积网络,以增强渲染图片的真实感. 左边:现代游戏产出的帧(GTA V). 右边:通过模仿CitySpcapes的风格增强的效果。我们的增强效果是语义一致的,而且比较明显。举例,我们的方法增加了汽车辉光、树林块,以模仿German climate。中间的小插图放大了标记的区域。

2. Related Work(相关工作)

通过模拟所有的物理过程,可以合成比较真实的照片。但是模拟的计算成本比较高,达不到实时交互的速度,而且很难实现准确的物理模型、材质和光照。最终,作为妥协,研究者提出一些折中的方法,降低物理准确性,但是又具备一定的真实感

传统的图片合成方法从数据中学习图片处理过程,比如从语义图生成图片。这样的方式约束都不足。因为几何结构由语义图中的物体轮廓提供,有大量的歧义,导致存在可见的伪影和时域的不一致性。此外,语义图需要大量的真实数据标记,这也是大量的人力成本。我们的方法不是直接合成图像,而是增强已经渲染好的图像,联合场景信息生成几何、语义一致性的图片,也不需要额外的真实数据标记。

基于图像的渲染技术,循环使用真实图像可以生产真假难辨的结果。但是得按目标图片特点挑选好数据集,而且之后很难处理这些图片。还有一点,新的图片包含的视野、场景要非常接近录制相机的轨迹,以避免伪影。

另一种有前景的方向是结合传统渲染和数据驱动的方法。Johnson et al. 建议通过从相似结构照片中转移最临近图块的方式,提升渲染图像的真实感。Liao等人在学习特征空间中缩影最临近图块[46],Reinhard等人将原图的颜色分布匹配到目标图像,有很好的增强效果。之后的工作引入了越来越复杂照片风格迁移技术。虽然早期的基于神经网络的方法要求昂贵的单图优化,特征归一化的改进减少了计算量,使得风格迁移可行,而且增加了语义一致性。近期的研究方向主要集中在encoder/decoder结构,混合了原图、目标图的内容和风格。所有的风格迁移和基于样本的方法都有个共同点,很依赖有利的参考图像。

渲染图像和参考图像的内容、布局差异会影响图像增强的质量,对动态图像的增强问题会更明显。我们的方法只是通过对抗训练学习图像集的风格,但并不参考图像进行增强。

Fig.2. 目标不同的真实数据集。训练模型以增强GTA图像(左上),分别以KITTI、Cityspace、和Vistas作为目标数据集。我们的方法可以重复生产有特定风格的图片并同时保留原始GTA图像的场景结构,并(例如,KITTI中的传感器噪声,城市景观中的饱和度,精细的Vistas中的纹理)。小插图展示了对应目标数据集的样本。

Fig.2. 目标不同的真实数据集。训练模型以增强GTA图像(左上),分别以KITTI、Cityspace、和Vistas作为目标数据集。我们的方法可以重复生产有特定风格的图片并同时保留原始GTA图像的场景结构,并(例如,KITTI中的传感器噪声,城市景观中的饱和度,精细的Vistas中的纹理)。小插图展示了对应目标数据集的样本。

我们的方法是非配对的image-to-image变换,即学习一个图片集到另一个图像集的映射关系。通过大量数据的训练,不需要刻意去挑选有利的图片,就能很好的学习到数据集的风格。然后,由于图片之间没有特殊的映射关系(成对),该方法是隐式的习得合适的对应关系。这种方法很有挑战,生成的图片楞一瞅比较真实,但会产生和输入图像结构不一致的伪影。提高输入、输出的一致性有很多相关研究,核心思路是对"定义模糊的问题"增加额外的约束。显著的改善来自下面这些方法,循环一致性、自定义注意力模型、时域规则化、传感器噪音建模、平面几何约束、深度图约束以及对比损失。

很多图像合成或变换方法采用了对抗目标,涉及到判别网络,用以评估生成图像的真实感程度。判别器网络通常随着生成网络一起训练。这么做的目的是让判别器学习高级别的语义,以提供高质量的监督。然而,对简单的二元分类目标,判别器可能聚焦在低水平的纹理和图块上,因为已经有了判别特征。为了将注意力放到高水平的语义内容上,业内提出了一些改进方法。比如,二元real vs fake决策配合分类目标使用;额外的语义分割映射增加到输入端,并投影到高维的特征空间,或者通过单独的网络来处理。这些工作用到了真值标注以引导判别器。使用真值语义信息限制了图像数据集的可选范围,因为必须要与合成图的语义标签映射关系兼容。

我们的研究中,用到了一个稳定的语义分割网络,以提供与合成图、真图相近的语义标签映射。早前,Hoffman等人用到了一个分割网络,以实现合成图转换成真图。与之对比,我们既不训练分割网络也不会将其用于增强的图像。原因有二,其一,在合成数据上训练分割网络容易造成过拟合,语义分割模型可能会产生语义不一致,进而误导生成器的训练。其二,在训练过程中包含分割网络虽然更容易解析,但不一定会产生更好的真实感。

对判别器提供额外的语义信息,能适应不同的语义分类。将语义信息纳入到学习目标中是一种更强的监督方式,因为不同物体之前的区别可以显示的习得。但是通常用于合成图->真实图转换的数据集仅限于各自的分类,特别是都市驾驶场景,高容量网络模型可能会过度适应数据集中的伪影,造成效果下降。先前的研究通过正则化或者规则化来解决过拟合的问题。我们从Li和Wand的神经块判别器得到启发,基于一个预训练的VGG网络,训练我们自己的特征图,与之前的单图风格迁移对比,我们从VGG网络不同的层提取多个特征图,并且针对每个特征图训练判别器。

早先的研究假设,场景布局的差异可能是造成图片变换效果下降的关键因素,主要通过正则化、语义一致性损失以及匹配源图和目标图的方式解决。类似Li等人的工作,我们通过基于语义的采样,来解决场景分布不匹配的问题。然而,Li等人训练了一个专用网络模型,用以在数据集之间做整张图的匹配,这样就大大减少了可用的图片样本,进而减少了数据源的多样性。我们设计了更简单的策略,基于图片块级别的操作,且不需要训练,这样就有更充足的、多样化的训练样本。

混合方法以更结构化的方式集成了传统渲染管线,渲染过程中的场景信息之后可以用于基于学习的方法,我们的方法就是受此思路启发。Nalbach等人展示了卷积神经网络可以学会对传统渲染管线生成的G-buffers进行着色。AlHaija等人结合对抗网络可以提升渲染图像的真实感。我们引入了一个不同的网络结构,可以更好的集成G-buffers、一个新的判别器和训练目标,能做出更好的效果。

Bi 等人研发了一套管线,可以增强低质量室内场景图像的真实感。他们的方法依赖同一场景成对的低质量、高质量图像集,在不同的合成阶段设置不同的损失率,该方法仅能生成有限场景的数据结果。我们的研究有多个不同点。我们从现代游戏获得高质量的输入图像。我们并不依赖不同质量的渲染图像,但是会用到辅助的buffers。我们的方法在网络结构、训练目标和应用领域也不相同。我们展示了更好的结果,在时域一致性、可测量的真实感等方面更优于高成本制作的商业游戏。

3.Method

3.1 概览

Fig.3. 我们的方法围绕图像增强网络设计,实现渲染图像变换。除了图片,这个网络还摄入不同比例的G-buffer特征张量。该张量表示传统图像管线的渲染信息,并通过G-buffer encoder网络编码。两个网络通过LPIPS loss(以获得渲染图像的结构)和感知判别器(最大化增强图像的真实感)联合训练
译者注:Learned Perceptual Image Patch Similarity, LPIPS,也称为“感知损失”(perceptual loss),用于度量两张图像之间的差别

Fig.3. 我们的方法围绕图像增强网络设计,实现渲染图像变换。除了图片,这个网络还摄入不同比例的G-buffer特征张量。该张量表示传统图像管线的渲染信息,并通过G-buffer encoder网络编码。两个网络通过LPIPS loss(以获得渲染图像的结构)和感知判别器(最大化增强图像的真实感)联合训练 译者注:Learned Perceptual Image Patch Similarity, LPIPS,也称为“感知损失”(perceptual loss),用于度量两张图像之间的差别

Fig.3 概述了我们提出的方法,包含一个图像增强网络,输入一张渲染图像输出一张增强的图像,增加了额外的输入以优化增强效果,主要包含从图形管线抽出的中间渲染缓冲(G-buffers),G-buffers包含几何信息、材质和场景光照。G-buffers,G-buffers通过g-buffer encoder网络处理,输出多个尺度的G-buffer特征,3.2部分有详细描述这部分。G-buffer特征作为图像增强网络的输入,用于对图像特征建模。

图像增强网络基于HRNetV2,它在各种密集预测任务重都表现出强大的性能(see Fig. 4)。HRNet 在多个分支以不同的分辨率处理同一张图像。注意要点,有一个特征流保留比较高的分辨率(输入分辨率的1/4),以保留图像的结构特征。我们修改了HRNet结构,首先,用正常的卷积替换掉初始的跨步卷积,以保留更好的细节,其次,在每个分支的残差块中,我们用基于渲染的反正则化(RAD)模型替换掉批正则化层,在3.2部分有详述。修改后的模块基于从G-buffers中抽取的特征流信息建模。

图像增强网络有两个训练目标。其一,一个感知损失惩罚输入、输出图像的结构上的明显差异。其次,一个感知判别器评估输出图像的真实程度。3.3部分阐述了判别器的原理,其训练的目标是区分增强后的图像和目标数据集的图像。训练中,有个特殊的采样策略用来对真实图像块、合成图像块采样,以大幅降低伪影,这在之前的研究中普遍出现过,这部分工作在3.4中描述。

Fig.4. 图像增强网络。用基于渲染的反正则化(RAD)替换了HRNet中的批正则化层。形成了RAD块(RB),每个HRNet分支以一个相匹配的尺度接收一个G-buffer特征张量(不同的尺度用不同颜色编码)。原始的特征流以灰色表示。为了表述更清晰,我们省略了初始的主干卷积层、迁移层及融合层。

Fig.4. 图像增强网络。用基于渲染的反正则化(RAD)替换了HRNet中的批正则化层。形成了RAD块(RB),每个HRNet分支以一个相匹配的尺度接收一个G-buffer特征张量(不同的尺度用不同颜色编码)。原始的特征流以灰色表示。为了表述更清晰,我们省略了初始的主干卷积层、迁移层及融合层。

Fig.5. 左边是渲染图像,G-buffers指集合信息(比如:法线、深度)、材质(比如、反照率、辉光)、光照(比如环境光照)。语义分割(可以从G-buffers得到)可以提供场景中更多的高级信息。

Fig.5. 左边是渲染图像,G-buffers指集合信息(比如:法线、深度)、材质(比如、反照率、辉光)、光照(比如环境光照)。语义分割(可以从G-buffers得到)可以提供场景中更多的高级信息。

3.2 利用卷积渲染管线

很多实时渲染的方法将渲染过程分解成多道pass。其中非常流行的一种方法是延迟着色或者叫延迟光照,延迟着色通过缓存中间渲染结果分解了可见性、着色计算,缓存为图片尺寸的G-buffers。虽然G-buffers通常不包含显示的语义信息,但与语义是一致的。因为G-buffers捕获了几何、材质属性,作为辅助信息输入,可以影响合成-->真图变换的几何、材质、场景光照的特征

抽取G-buffers. 我们的工作基于流行的游戏侠盗车手V。从游戏获取G-buffer参考最近的一些抽取资源的方法[27]、[85]、[91]。具体的说,我们抽取的G-buffers包含几何结构(表面发现、深度)、材质(shader IDS,反照率、镜面反射强度、辉光、透明度),还有光照(近似辐照度、自发光、天空、泛光),部分内容在Fig.5中有说明。更进一步,我们从G-buffers推导出额外的两个量,以强化G-buffers集。首先,对每个像素根据观察向量和表面法向量计算反射向量,其次,计算法向量和反射向量的点积。【译者注:此处没理解,为什么需要计算反射向量的点积,用观察向量不是一样的么?】

对场景提取大量的G-buffers信息,输入到生成网络以获取最佳结果,4.4部分的实验证实,即使只提供部分buffers,也有非常明显的增强效果。

G-buffer encoder. 我们抽取的的G-buffers混合了one-hot编码,包含材质信息、稠密连续的法线、深度、颜色,以及稀疏连续的泛光、天空buffers。【译者注:天空有很多种表达方式,比如天空盒,IBL等】。图片的部分区域对应的G-buffers值是0,比如天空区域没有几何、材质信息,只有很少的物体有透明和高亮信息。

Fig.6. G-buffer encoder. G-buffer encoder考虑了不同的数据类型和不同的空间密度【译者注:指兼容了数据的参数类型、参数个数,支持可变的输入】,通过多个流处理(0-c),并按照one-hot-encoded 物体IDs格式融合成一个表达呈现。这些特征进一步通过残差网络变换(see Fig.7),其中橙色块对张量降采样。特征张量的输出比例以红色标注。通道宽度以蓝色标注,这些尺寸与图像增强网络的各个分支匹配。

Fig.6. G-buffer encoder. G-buffer encoder考虑了不同的数据类型和不同的空间密度【译者注:指兼容了数据的参数类型、参数个数,支持可变的输入】,通过多个流处理(0-c),并按照one-hot-encoded 物体IDs格式融合成一个表达呈现。这些特征进一步通过残差网络变换(see Fig.7),其中橙色块对张量降采样。特征张量的输出比例以红色标注。通道宽度以蓝色标注,这些尺寸与图像增强网络的各个分支匹配。

为考虑G-buffers的不同类型,通过一个G-buffer encoder(Fig.6)来处理G-buffer。G-buffer encoder包含多个网络流,处理同一个G-buffers集。每个流包含两个残差块,见图Fig.7

左边的表示流式目标-物体分类c的特征张量,表示物体的分类的遮罩。通过求张量积。

Fig.7. 残差块。我们在G-buffer编码和RAD模型中使用残差模块。残差块包含卷积层(核size 为3)、谱归一化和ReLUs【sigmoid函数的优化版本,输出二值】。通道宽度或者降采样在Conv1 和Conv P层执行。如果通道宽和分辨率是常量,则通过Conv p的投影被忽略。

Fig.7. 残差块。我们在G-buffer编码和RAD模型中使用残差模块。残差块包含卷积层(核size 为3)、谱归一化和ReLUs【sigmoid函数的优化版本,输出二值】。通道宽度或者降采样在Conv1 和Conv P层执行。如果通道宽和分辨率是常量,则通过Conv p的投影被忽略。

Fig.8. 基于渲染的反正则化将卷积渲染管线输出的数据反正则化,这些数据包含编码后的几何、材质、光照、语义信息等。图像特征通过group normalization方式正则化,然后逐元素按权重缩放、偏移。权重通过训练获取,与G-buffer 特征匹配。为了更好的适配权重,我们通过三个残差块变换G-buffer特征,其中每个残差块跟随一个RAD模型。

Fig.8. 基于渲染的反正则化将卷积渲染管线输出的数据反正则化,这些数据包含编码后的几何、材质、光照、语义信息等。图像特征通过group normalization方式正则化,然后逐元素按权重、缩放、偏移。权重通过训练获取,与G-buffer 特征匹配。为了更好的适配权重,我们通过三个残差块变换G-buffer特征,其中每个残差块跟随一个RAD模型。

Fig.9. 感知判别器。图像增强的效果通过感知判别器打分。该网络模型包含一个预训练的、稳定的语义分割(MSeg[72])和一个感知网络(VGG[93]),通过语义标签和感知特征张量表达高级别的语义信息。图和张量输入到判别器网络,之后生成真实感得分图。为了清晰起见,此处仅展示单个判别器网络,用虚线框表示。

Fig.9. 感知判别器。图像增强的效果通过感知判别器打分。该网络模型包含一个预训练的、稳定的语义分割(MSeg[72])和一个感知网络(VGG[93]),通过语义标签和感知特征张量表达高级别的语义信息。图和张量输入到判别器网络,之后生成真实感得分图。为了清晰起见,此处仅展示单个判别器网络,用虚线框表示。

物体IDs按照语义分割图对多个分类标签分组(如,所有的机动车分到同一个ID,以减少分割网络流的数量)。如此,流对不同的物体类型做不同的映射处理。融合后的特征张量进一步进入残差模块处理。在降采样残差模块之前抽取特征张量以获取多个不同的缩放张量。特征张量通过RAD模型输入到图像增强网络。

基于渲染的反正则化(RAD)。基于渲染的饭正则化模型启发于最近的基于额外信息的特征张量建模。先前的研究工作以语义分类、风格特征、光流、噪音为条件,我们的模型从综合的场景表达中学习权重。确切的说,我们的模型通过两个残差模块(Fig.7)对g-buffer encoder模型输出的特征张量进行变换。变换特征用于逐元素的权重缩放 γ 和偏移 β。权重表示归一化图像特征的仿射变换参数(Fig.8)

Sec.4.4部分的控制实现说明,对基于G-buffer的图像增强网络,RAD模型的效果要优于SPADE。

3.3 感知判别器

图像增强网络的训练中,增强图像的真实感通过感知判别器打分。判别器包含一个稳定的寓意分割网络,一个感知特征提取网络,和多个判别器网络(Fig.9)。我们用MSeg提取语义,用VGG-16提取感知特征。所有的网络是预训练的,不会在增强模型训练中进一步优化。我们对真图数据集和渲染图像都采用该分割模型【我们的工作流程中,渲染图实际上是通过游戏引擎输出的,这不一定是好事!!可能会破坏增强模型】,这样可以保证真图和合成图的语义信息保持良好的一致性。也可以避免对训练数据集做额外的真值标注。实际上,我们对所有数据集图片做一次语义分割,然后将结果缓存下来。

早前的研究工作会针对合成图像训练一个分割网络,并在训练中使用以确保语义一致性。我们没有这么做,因为基于合成图像的分割网络对真图的泛化效果不好。这样的分割网络在处理原始图和增强图时,结果的差异就很大。我们也没有使用反向梯度的方式,因为这可能导致图像容易分割但结果不真实。 【译者注:此处没太理解,为什么要对处理完的图进行语义分割呢?,可能是cycle gan的原理,需要反向验证,增加约束】

对真图和增强图应用VGG特征提取网络,可以得到不同层级的感知特征的抽象。从vgg的relu层提取特征张量,并为每一层悬链判别器网络。这样,每个网络可以专注处理各自的感知层。

每个判别器网络(Fig.9)包含5个Convolution-GroupNorm-LeakyReLU(CGL)层,生成256维度的特征张量y,和一个Convolution-LeakyReLU-Convolution (CLC) 层,将特征张量降到单通道的图z,特征张量y进一步与embedding 张量e做内积。对应每个像素,embedding 张量包含256维,从上文讨论的语义标签图习得。embeddings。内积在先前的研究工作中也有用到[8][15][70]。

更多关于判别器网络的架构细姐在补充材料中提供。

3.4 分布差异造成伪影

在对抗设置,如我们使用的那样,训练判别器以用于分类图像,对每张图片或像素赋real 或者 fake值。训练中,判别器会拾取那些容易判别真伪的特征。比如,如果传感器噪点出现在真图中,但是不存在于合成图中,那么判别器会迅速学会正确的将有噪点的块标记为real。从判别器到生成器对梯度进行反向传播,可以促进生成器对合成图像增加噪点,以逼近真图。

靠虚假特征来区分真图假图会产生新的问题。比如看Fig.10中的概率密度图,相比Cityscapes,在GTAV图像的顶部更容易看到天空。相反,在相同的位子在Cityscapes更容易出现树。因此,训练一个分类器,对两个数据集均匀采样,可以很容易通过图像的顶部的数据区分真假。即,如果顶部包含了类似树的纹理,更有可能是真图。将判别器放在对抗网络环境中会导致生成器在天空中生成树

Fig.10.GTA(top) 和Cityscapes(底部)的场景布局是不同的,这将影响在特定的位置出现某些类的概率。比如,GTA更有可能在图像的顶部出现天空,Cityscapes中更有可能在顶部出现树、在汽车引擎盖上出现星标(译者注:可能指奔驰标志)。Fig.11 描述了图像增强中的结构不匹配的影响。

Fig.10.GTA(top) 和Cityscapes(底部)的场景布局是不同的,这将影响在特定的位置出现某些类的概率。比如,GTA更有可能在图像的顶部出现天空,Cityscapes中更有可能在顶部出现树、在汽车引擎盖上出现星标(译者注:可能指奔驰标志)。Fig.11 描述了图像增强中的结构不匹配的影响。

最近的一些方法提供了一些证据,证实了这个猜想,它们使用GANs将GTAV迁移到Cityscapes风格,实际结果会在图像顶部产生树,在底部产生汽车的星标,如Fig.11所示

采样块匹配。 我们的分析表明:可以预计,从GTA和Cityscapes随机采样的图像,在布局上是有差异的,虽然它们可能包含同样的类型和同样的物体数量。这表明,标准的策略--尽可能大的采样大图块,对真实感增强是次优的,我们建议一个不同的采样策略。

首先,我们收缩采样面积到原图的7%,先前的做法是采样30%~50%作为单独块。Sec.4.4中的实验证实:这个简单的修改已经大大优化了结果。

其次,我们在数据集之间做采样块匹配,以平衡物体的分布。确切的说,我们用一个基于ImageNet预训练的VGG网络处理合成图像块,最后在relu层提取特征张量。我们裁剪出196像素宽度的块,对应VGG可接受的参数大小,这样可以对每层获取1 * 1 * 512维度的特征。φ(pi) 表示从pi块计算的特征向量。我们认为,两个块的cosin相似度超过0.5时,则它们配对成功:

其中,是从真图中抽取的块集。

考虑效率,我们归一化 φ(pi),用FAISS库计算L2距离。在GTA和Cityscapes之间匹配块的案例在Fig.12中展示

Fig.11. 将GTA图像(左边)转换到Cityscapes风格,GANs通常会在天空中产生树的幻影,或在底部产生星标的幻影(注意柱状、高亮部分)

Fig.11. 将GTA图像(左边)转换到Cityscapes风格,GANs通常会在天空中产生树的幻影,或在底部产生星标的幻影(注意柱状、高亮部分)

Fig.12. 在数据集之间匹配块。我们展示了GTA顶部采样块,与Cityscapes底部块对应

Fig.12. 在数据集之间匹配块。我们展示了GTA顶部采样块,与Cityscapes底部块对应

Fig.13. 语义维度,采样对应的块以计算sKVD度量

Fig.13. 语义维度,采样对应的块以计算sKVD度量

3.5 实现与训练细节

我们用损失函数训练生成器和判别器。生成器进一步用感知损失正则化(λ = 5)我们用Adam训练所有网络(β1 = 0.9,β2 = 0.999, weight decay 0.0001).学习率设置为0.0001,每100k次折半。对所有网络裁剪梯度量级超过1000。在真实数据上,所有判别器梯度损失(γ = 0.06)都进行正则化。我们训练批次设置为1,迭代1M次(对比实验600K次)。

如果判别器变的太强大并停止对生成器提供有意义的梯度,对抗训练会变的不稳定。此外,我们遇到了因为使用多个判别器造成的训练困难。比如,我们观察到,处理低级别VGG特征的判别器趋于学的更快,会倾向于控制训练并导致过拟合。为了稳定训练,并组织单个判别器网络的过拟合,我们通过一定的随机概率跳过反向传播节点,以限制每个每个判别器的训练速度,这个概率由当前判别器的性能决定。直观的理解,判别器判断真实感的效果越好,它就越接近过拟合,那么它更新的频率就越低。这个策略让所有判别器大致保持在同一个训练的水平。在ABC-GAN中也有相似的机制,以平衡生成器和判别器。我们计算跳过反向传播节点的概率受增强网络启发--by Karras等人[74]。(与Karras等人的研究的不同之处在于,在启发式的计算更新值时,我们同时考虑了真假样本)。

4 计算

4.1 度量

行业内已经有些一些计算生成图片真实感的度量方法。最常见的方法有Inception Score (IS) [99], the Frechet Inception Distance 、(FID) [100], 以及Kernel Inception Distance (KID) [101].其中 KID 效果最好,所以我们也采用KID。

然而,在3.4部分中,我们对数据之间结构化的偏移表明,由于场景布局的不匹配,使用KID的质量评价可能会具有误导性。KID比较从初始网络pool3层提取的特征,该特征对应高级别的语义概念。可以粗略的理解为,KID测量语义结构的差距,但不一定是感知到的真实感的差异。这就有问题了,因为图像增强的目的是保留场景结构和原图片的语义内容,而不是偏移内容以使其更接近真实图像的场景结构。换句话说,我们可以通过重新生成一张真实照片小幅度的减小KID,同时忽略渲染图像。如此,对KID设置一个较低的边界,低于这个边界,KID应该不变。总之,KID目标与更广泛的图像真实感增强目标是有偏差的,是一个有问题的度量方法。

我们提出一个不同的度量集,以缓解这个问题。我们的度量方法基于KID,但是包含了一些关键的变化,为了更好的评估几个感知层的图像之间的差异,我们用VGG不同层提取的特征替换了初始的网络特征。为解决原图和目标图的场景不匹配问题,我们对齐了块的分布。确切的说,我们提取了源和目标数据集语义标签的1/8的平方的块。按16*16下采样以获得256维度的向量。这种方式获取的向量对i一会那个块的真值语义描述。从合成数据集的每个向量中,我们找到真图数据集中与之最邻近的块。我们保存相似度超过50%的向量对。这样,我们从两个数据集中获取了一组语义上成对的块。(Fig.13)

更正式的描述,σ表示块的向量编码,[·] 表示艾佛森括号,我们对采样临近块通过:

其中k表示在向量编码中迭代。

译者注:以Kenneth E. Iverson命名的“艾佛森括号”,是一种用方括号记号,如果方括号内的条件满足则为1,不满足则为0

根据KID结构,我们定义度量为对应块的VGG-16特征的最大均方差的平方(MMD)。基于不同的特征提取图,不同的VGG特征表示引出一些列的度量。我们在relu1-2, relu2-2, relu3-3, relu4-3, relu5-3层提取特征,并将语义对齐的核VGG距离命名为对应的度量,下标表示对应的VGG relu层。

4.2 与先前的工作对比

为了与先前的工作对比,我们挑选了了一些可以用于图像真实感增强的方法作为基线。其中需要语义分割标签作为输入的方法,我们用MSeg提取合成图、真图的标签图,这和我们在判别器中使用的是同一个库。在表1中我们发布了所有的结果,在Fig.14 和补充文件中展示了案例。

Fig.14. 对比我们的处理方法和基线的方法。我们的结果和输入图像在结构上是一致的,ColorTransfer没有修改纹理。WCT2强依赖有利的参考图像。SPADE因为场景布局的差异变换失败了。MUNIT产生了树的幻影,Cycada和CUT产生了星标的幻影。其他的基线结果在补充文件中。

Fig.14. 对比我们的处理方法和基线的方法。我们的结果和输入图像在结构上是一致的,ColorTransfer没有修改纹理。WCT2强依赖有利的参考图像。SPADE因为场景布局的差异变换失败了。MUNIT产生了树的幻影,Cycada和CUT产生了星标的幻影。其他的基线结果在补充文件中。

  1. 为计算MMD,我们使用了 Binkowski [101]等人提出的多核模型。

Color transfer. 我们对比了经典的color transer,即我们评估了Reinhard等人开创性的工作(Color Transfer),以及Pitie等人提出的color distribution transfer(CDT)。这些方法的变换被限制在单个像素的颜色的修改,这种方法阻止了纹理的增强,相比更激进的基于学习的方法,它也阻止了伪影的引入,结果使得生成的图像更接近于原始输入(Fig.14)。因此,可以在低级别特征中可以观察到最大的优化s (sKVD1−2 and sKVD2−2),其增益与最近的深度学习方法相近。

Photo style transfer.我们比较了快速摄影风格变换(photoWCT)的闭合形式方法与最先进的基于小波变换的方法(WCT2). 两种照片风格迁移方法均需要一张风格化的图片,还需要原图和风格图的语义分割图。

color transfer 方法对单个像素颜色应用变换,照片风格迁移方法基于语义分割在高级特征空间执行变换,所以后者改动的能力更强大。然而照片风格迁移方法需要目标图片和输入的合成图相匹配。当输入图片改变时,图片风格迁移可能产生不真实的颜色偏移或时域上的不稳定性。这在合成环境下,动态改变图片可以观察到。

Conditional image synthesis. 我们对比了一个有代表性的传统图像合成方案 SPADE,它在这类方法中非常突出。我们用了作者提供的预训练的模型来合成都市街道场景。(这个模型使用Cityscapes的分割图来训练,cityscapes 和GTA是兼容的)。不出意外,SPADE比其他的方法都差,这可以从两个角度来解释,第一,从语义合成一张照片难度远大于修改一张照片,第二,因为SPADE基于Cityscapes数据集训练(做的不错),Cityscapes和GTA的场景分布的差异超出了模型在训练数据的差异。

Image-to-image translation. 我们比较了Cycada,它的设计宗旨是使合成图像向真实照片适配,它使用了特征级别的循环一致性和语义一致性来增强普遍被使用的像素级别的循环一致性,它利用对应的语义标签去保留合成图像的内容。因为Cycada最开始基于GTAV和Cityscapes训练,我们使用了作者提供的图片,我们更进一步比较了MUNIT、CUT和TSIT。MUNIT继承了CycleGAN架构和多模态变换,并增加了域不变性感知损失。CUT和TSIT丢弃了循环一致性约束,CUT基于对比学习,TSIT采用范例风格的图片做风格特征迁移。

我们发现,在各类基线中,image-to-image迁移方法效果租好,其中Cycada 的效果又最好。虽然Cycada用到了最显示的语义信息,其它方法用感知损失,它依然会产生了不相关的幻影(see Fig.11). 一个可能的原因是他的分割网络,基于未修改的合成图片训练,训练过程中也不更新。这样,Cycada隐式的假设合成图与真图之间的差异会被限制,并且分割网络会持续稳定的工作。另一个可能的原因是它是基于大图块训练的(查看 Sec.3.4,有相关的讨论).

4.3 感知实验

此外,与大规模众包感知实验做了对比。感知实验的设置遵循之前的研究工作,也是基于成对的实验,且没有时间限制。我们从GTA采样了500张图片,将我们的增强方法同基线对比。对每张图片,我们的方法都会与基线对比。每对图片分发给众包员工,每对展示10次(在员工之间),一共有50000个比较结果。每个员工的任务、图片呈现的顺序、每对中的左右顺序都是随机的。我们引入了哨兵任务过滤掉不可信的员工。结果在Fig.15中,我们发现,我们的方法增强的图片一致性最好,并且最真实,结果对所有方法有统计学意义(误差条表示95%的置信区间)。

4.4 对照实验

为评估方法中特定想法的效果,我们设计了一系列的对照实验,我们评估了采样策略、G-buffers的重要性、G-buffers输入的策略以及不同的对抗损失设置。结果在表2中。第一列表示实验问题,第二行列出了基线条件。第一行提供了未修改GTA图片的参考度量,最后一行提供了我们的方法的度量。

如何采样?为了评估块采样策略对图像真实感增强的影响,我们对比了不同的块尺寸的均匀采样(196, 256, 400)和块对匹配(我们的方法)。结果与我们的假设一直,更小的块采样减少了源数据和目标数据的不匹配。我们观察到,更大的块尺寸会导致更强烈的伪影(Fig.16中,2、3列)。采样更小的块能明显减少sKVD。采样匹配块更多的减少中高级抽象层的sKVD,在最低的层有轻微增加sKVD(表2,如何采样?).这可以通过多样性的优势来解释,当均匀的采样块时,这个优势会被更高层的分布不匹配抵消。

G-buffers有帮助吗?G-buffers的生成依赖游戏的渲染管线和捕获G-buffers的方法。比如按视频帧率录制且缺少游戏引擎的深度集成,就会限制VIPER数据集的G-buffers(该G-buffers 包含法线、反射、深度、法线*视角方向,及语义分割)。为了调研G-buffers对图像真实感增强的影响,我们对比了三个条件:不使用G-buffers,有限的buffers,以及我们完整的G-buffers集。 对图像真实感增强的影响,我们对比了三个条件:不使用G-buffers,有限的buffers,以及我们完整的G-buffers集。

我们发现,不带任何G-buffers,图像最不真实。不带任何辅助信息,网络似乎更多的聚焦在低级的特征上。增加VIPER提供的buffers提升了各个层级的真实感,中低级增强最明显。使用我们的全集,最高,表明网络用更多的空间去增强中高级特征,所以sKVD降低了

如何输入G-buffers?我们调研了几个输入策略。第一,简单的添加到渲染图像中(连接起来)。这对应AlHaija等人的方法,这个辩题并不会特别的对待G-buffers,也不需要RAD模型,我们使用实例归一化。这个条件下,使用一个标准的HRNet架构来处理图像增强(没有RAD模型或者RAD块)。第二个条件下,我们用SPADE模型替换RAD模型。第三个条件下,是我们完整的方法,使用我们自己的RAD模型(表二的最后一行)。

结果表明,简单的连接比SPADE模型产生更好的结果。结从真实的图像到满是伪影和颜色偏移的失败(Fig.17.中间列)。与之对比,我们的方法使用RAD模型有很好的一致性(Fig.17, 右边列)。参看表2。

用哪一个判别器?我们我们现在评估感知判别器特定的属性。PatchGAN判别器是标准的image-to-image迁移,我们选择它作为基线。确切的说,PatchGAN使用了4个判别器网络,每一个输入不同尺寸的图片。除了分割投影,网络主干和我们的判别器网络的架构是一样的,分割投影也不属于PatchGAN架构的一部分。下一个条件中,我们一处了稳定的分割网络。第三个条件中,训练过程中,我们对不同的判别器网络没有增加自适应阈值,如果3.5段中所述。(没有自适应的反向传播)。第四个条件是我们的完整步骤(表2的最后一行)。

如表2中所述,使用PatchGAN判别器导致的结果非常不真实,见Fig.18。投影层和自适应反向传播都有正向作用,不过在不同的感知层生效。移除自适应反向传播增加更高层级的sKVD。投影层的影响参看Fig.19。当考虑所有层级时,联合投影层和自适应反向传播有正向影响。

5. 总结

我们的方法明显增强了渲染图像的真实感。这是通过对比很高的基线水平综合评测得出的结论。直观上看,对真实数据中,物体和场景有明确的对应关系时,我们的方法获得了最强大、一致性最好的结果,我们的方法擅长处理道路纹理、汽车、植被。真实场景中不太常见的物体(例如,特写的行人)变换的就不太真实。总之,我们的方法产生了高质量的增强,在保证匹配目标数据集风格的前提下,有很好的几何、语义一致性。(额外的针对Mapillary Vistas的数据在Fig.20 及补充材料中展示)

我们的方法集成了基于学习的方法和传统的实时渲染管线,我们期望该方法继续去增强图形管线的发展,并能与实时光线追踪兼容。在Geforce RTX 3090GPU上,用我们的方法,在不优化的情况下半秒出一张图。因为G-buffers作为输入是在本地GPU上生产,我们的方法可以被深度集成到游戏引擎中以提升效率,更长远的,可能提升真实感水平。

额外的结果在补充材料视频中展示。我们的方法产生的图像与输入场景结构是一致的,这样可以促进真值标注的使用。为了支持更远的研究,我们将会发布GTAV和VIPER数据集的增强图片。