机器之心编辑部报道

涂鸦涂出摄影大片:英伟达「高更」GAN让简笔画秒变逼真图像

正在举办的 GTC 2019 上,英伟达展示了一款新的交互应用 GauGAN:利用生成对抗网络(GAN)将分割图转换为栩栩如生的图像。这是继 PGGAN、StyleGAN 之后,英伟达提出的又一强大方法,相关论文已被 CVPR 2019 接收为 oral 论文。


What? 这么美的照片竟然不是出自摄影师之手?!

英伟达新方法在 Flickr Landscapes 数据集上的语义图像合成结果,并不是真人拍摄的哦~

新手画家可能会在粗帆布上作画,借以创造出一种令人惊叹的日落景象——崎岖不平、白雪皑皑的山峰映在玻璃般的湖面上,但最后得到的却更像是一块多彩的墨迹。

而英伟达开发的新方法却能达到相反的效果:它可以轻松地将粗糙的涂鸦变成逼真的杰作,令人叹为观止。该方法利用生成对抗网络GAN)将分割图转换为栩栩如生的图像。而应用了该模型的交互应用被命名为 GauGAN,以致敬后印象派画家保罗·高更(Paul Gauguin)。

GauGAN 可以为建筑师、城市规划师、景观设计师和游戏开发者等提供一个创建虚拟世界的强大工具。有了一个能够理解真实世界面貌的 AI,这些专业人士就可以更好地将想法原型化,并对合成场景做出快速改变。

英伟达应用深度学习研究副总裁 Bryan Catanzaro 表示:「用简单的草图进行头脑风暴设计要容易得多,而这项技术能够将草图转换成高度逼真的图像。」

Catanzaro 将 GauGAN 背后的技术比作「智能画笔」,可以在粗略的分割图中填充细节,粗略的分割图是显示场景中物体位置的高级轮廓。

GauGAN 允许用户绘制自己的分割图并操纵场景,用沙、天空、海或雪等标签标注每个分割块。

经过上百万张图像的训练,这一模型能够以惊人的效果填充景观:在池塘里画画,附近的树木和岩石等元素都将在水中反射出来。将一个分割标签从「草」换成「雪」,整个画面就变成了冬天的景象,原来枝繁叶茂的树木也变得光秃秃的。

「这就像一本彩色画册,描述了树在哪里,太阳在哪里,天空在哪里。」Catanzaro 表示,「然后神经网络就能根据它对真实图像的了解,填充所有的细节和纹理,以及反射、阴影和颜色……该技术不仅可以整合其他图像或切割、粘合图像纹理,实际上还可以合成新的图像,这与画家的绘画方式非常相似。」

据介绍,GauGAN 主要使用了英伟达最新推出的 SPADE 技术,相关研究已被 CVPR 2019 接收为 oral 论文。

论文:Semantic Image Synthesis with Spatially-Adaptive Normalization

论文地址:https://arxiv.org/pdf/1903.07291.pdf

摘要:我们提出了一种空间自适应归一化方法,在给定输入语义布局的情况下,实现了一种简单有效的逼真图像合成层。以前的方法直接将语义布局作为输入提供给深度网络,然后通过卷积归一化和非线性层处理深度网络。我们的实验表明,这种方法并不是最优的,因为归一化层倾向于「洗去」语义信息。为了解决这个问题,我们提出使用输入布局,通过空间自适应的、学习的转换来调节归一化层中的激活函数。在几个具有挑战性的数据集上的实验表明,与现有方法相比,该方法在视觉保真度和与输入布局的对齐方面具有优势。最后,我们的模型允许用户控制合成图像的语义和风格。代码地址:https://github.com/NVlabs/SPADE

语义图像合成

空间自适应归一化(SPADE)

假设语义分割掩码 m ∈ L^(H×W),L 是一组表示语义标签的整数,H 和 W 分别是图像的高和宽,m 中的每个条目表示一个像素的语义标签。给定一个包含 N 个样本的 batch,h^i 表示深度卷积网络第 i 层的激活,C^i 表示该卷积层中的通道数,H^i 和 W^i 分别表示该层激活图的高和宽。与批归一化类似,SPADE 方法中的激活函数被逐通道归一化,然后用学习到的 scale 和偏置项进行调整。

当(n ∈ N, c ∈ C^i , y ∈ H^i , x ∈ W^i)时,激活值如下所示:

其中, 是归一化之前点的激活。 分别是通道 c 中激活值的均值和标准差:

下图右展示了 SPADE 方法的设计。

一些常见的归一化技术,比如批归一化(左图),往往在实际的归一化步骤之后应用学得的仿射层。而 SPADE 方法中的仿射层是从语义分割图中学习的。这与 Conditional Normalization 类似,不过 SPADE 中学得的仿射参数需要对空间自适应,也就是说对每个语义标签使用不同的 scaling 和偏置。使用这一简单的方法后,语义信号可以作用于所有层的输出,不受归一化过程的影响而丢失语义信息。此外,由于语义信息是由 SPADE 层提供的,因此随机 latent vector 可能作为网络的输入,来控制生成图像的风格。在 SPADE 中,掩码首先投射到一个嵌入空间,之后通过卷积运算生成调节参数(modulation parameter)γ 和 β。与已有的条件归一化方法不同,γ 和 β 不是向量,而是具有空间维度的张量。生成的 γ 和 β 经过乘法和加法后得到元素级的归一化激活值。

如下图所示,SPADE 使用最近邻下采样来调整语义分割图的大小,使之匹配对应特征图的分辨率。γ 和 β 函数通过一个简单的两层卷积网络来实现。

SPADE 生成器

使用 SPADE 则不需要将分割图馈入生成器的第一层,其原因是获得的调制参数已经编码了关于标签布局的足够信息。所以,研究人员舍弃了生成器的编码部分。这种简化使网络更轻便。此外,与现有的分类条件生成器相似,这一新生成器可以输入随机向量,提供一种简单自然的多模式合成方法。

图 4 阐明了生成器架构,其采用了具有上采样层的几个 ResNet 块。所有归一化层的调制参数通过 SPADE 获得。由于每个残差块在不同的尺度下运作,SPADE 对语义掩码进行下采样以匹配空间分辨率。

图 4:在 SPADE 生成器中,每个归一化层都使用语义掩码来调节层激活函数。(左图)具有 SPADE 的一个残差块结构。(右图)该生成器包含一系列带上采样的 SPADE 残差块。该架构通过去除领先的图像到图像转换网络(pix2pixHD)的下采样层,用更少的参数实现了更好的性能。

SPADE 为什么效果这么好?

简单回答就是它能比常见归一化层更好地保留语义信息。特别是,InstanceNorm 方法中的归一化层几乎是所有 SOTA 条件图像合成模型的必需成分,当应用于统一或平滑的分割掩码时,它们倾向于洗掉所有语义信息。

图 3:给定统一分割图的对比结果:SPADE 生成器生成了貌似真实的纹理,pix2pixHD 因归一化层后语义信息的丢失生成了完全相同的输出。

在场景和标签多样的高难度 COCO-Stuff 数据集上,SPADE 效果显著优于已有方法 CRN 和 pix2pixHD。与真实图像相比,咦,难道不是换了个滤镜?

实验

研究者将 Spectral Norm 应用于生成器和判别器的所有层。生成器和判别器的学习率分别设置为 0.0001 和 0.0004。研究者使用 ADAM,设置β_1 = 0, β_2 = 0.999。所有实验都在具有 8 块 V100 GPU 的英伟达 DGX1 上进行。研究者使用同步均值和方差计算,即这些数据都是从所有 GPU 上收集的。

本研究中使用的数据集包括 COCO-Stuff 、ADE20K、ADE20K-outdoor、Cityscapes 和 Flickr Landscapes。

图 5:基于 COCO-Stuff 数据集的语义图像合成结果可视化比较。该方法成功地从语义标签中合成了真实的细节。

图 6:基于 ADE20K outdoor 和 Cityscapes 数据集的语义图像合成结果可视化比较。该方法在基于空间语义布局的同时生成逼真的图像。

表 1:在所有的基准数据集上,该方法在语义分割得分(平均 IoU 和整体像素精度)和 FID 上都优于目前领先的方法。mIoU 和像素精度值越高越好。FID 值越低越好。

表 2:用户偏好研究。这些数字表明,与其他方法相比,用户更喜欢该方法的结果。

图 8:COCO-Stuff 上的语义图像合成结果。本研究中的方法成功地在动物、体育活动等各种场景中生成了逼真的图像。

表 3:对于解码器架构(图 4)和 pix2pixHD++的编码器-解码器架构(在 pix2pixHD 基础上的改进基线)而言,当使用 SPADE 层时,mIoU 分数会提高。另一方面,在每一层简单地连接语义输入并不能做到这一点。此外,本研究中所有层上深度更小的简洁模型超越了所有基线。

表 4:SPADE 生成器的配置有所不同。研究者改变了生成器的输入、作用于分割图的卷积核大小、网络容量和无参数归一化方法。本研究所使用的设置已加粗显示。

图 9:在图像编码器上训练后,该模型获得了多模式合成能力。在部署期间,通过使用不同的随机噪声,该模型合成了具有不同外观但在输入掩码中具有相同语义布局的输出。为了实现推理,在输入分割掩码中显示了 ground truth 图像。

参考链接:

  • https://blogs.nvidia.com/blog/2019/03/18/gaugan-photorealistic-landscapes-nvidia-research/

  • https://nvlabs.github.io/SPADE/

理论GTC 2019GAN英伟达
8
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

激活函数技术

在 计算网络中, 一个节点的激活函数定义了该节点在给定的输入或输入的集合下的输出。标准的计算机芯片电路可以看作是根据输入得到"开"(1)或"关"(0)输出的数字网络激活函数。这与神经网络中的线性感知机的行为类似。 一种函数(例如 ReLU 或 S 型函数),用于对上一层的所有输入求加权和,然后生成一个输出值(通常为非线性值),并将其传递给下一层。

基准技术

一种简单的模型或启发法,用作比较模型效果时的参考点。基准有助于模型开发者针对特定问题量化最低预期效果。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

规划技术

人工智能领域的「规划」通常是指智能体执行的任务/动作的自动规划和调度,其目的是进行资源的优化。常见的规划方法包括经典规划(Classical Planning)、分层任务网络(HTN)和 logistics 规划。

学习率技术

在使用不同优化器(例如随机梯度下降,Adam)神经网络相关训练中,学习速率作为一个超参数控制了权重更新的幅度,以及训练的速度和精度。学习速率太大容易导致目标(代价)函数波动较大从而难以找到最优,而弱学习速率设置太小,则会导致收敛过慢耗时太长

张量技术

张量是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。其坐标在 维空间内,有 个分量的一种量,其中每个分量都是坐标的函数,而在坐标变换时,这些分量也依照某些规则作线性变换。称为该张量的秩或阶(与矩阵的秩和阶均无关系)。 在数学里,张量是一种几何实体,或者说广义上的“数量”。张量概念包括标量、矢量和线性算子。张量可以用坐标系统来表达,记作标量的数组,但它是定义为“不依赖于参照系的选择的”。张量在物理和工程学中很重要。例如在扩散张量成像中,表达器官对于水的在各个方向的微分透性的张量可以用来产生大脑的扫描图。工程上最重要的例子可能就是应力张量和应变张量了,它们都是二阶张量,对于一般线性材料他们之间的关系由一个四阶弹性张量来决定。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

上采样技术

在数字信号处理中,上采样、扩展和内插是与多速率数字信号处理系统中的重采样过程相关的术语。 上采样可以与扩展同义,也可以描述整个扩展和过滤(插值)过程。

语义分割技术

语义分割,简单来说就是给定一张图片,对图片中的每一个像素点进行分类。图像语义分割是AI领域中一个重要的分支,是机器视觉技术中关于图像理解的重要一环。

生成对抗网络技术

生成对抗网络是一种无监督学习方法,是一种通过用对抗网络来训练生成模型的架构。它由两个网络组成:用来拟合数据分布的生成网络G,和用来判断输入是否“真实”的判别网络D。在训练过程中,生成网络-G通过接受一个随机的噪声来尽量模仿训练集中的真实图片去“欺骗”D,而D则尽可能的分辨真实数据和生成网络的输出,从而形成两个网络的博弈过程。理想的情况下,博弈的结果会得到一个可以“以假乱真”的生成模型。

批归一化技术

批归一化(Batch Normalization,BN)由谷歌于2015年提出,是一个深度神经网络训练的技巧,它不仅可以加快模型的收敛速度,还能在一定程度上缓解深层网络中的“梯度弥散”问题,从而使得训练深层网络模型更加容易和稳定。目前BN已经成为几乎所有卷积神经网络的标配技巧了。从字面意思看来Batch Normalization(简称BN)就是对每一批数据进行归一化。

暂无评论
暂无评论~