基于条件生成对抗网络的图像生成

2019-09-10 07:22陆萍董虎胜
甘肃科技纵横 2019年7期

陆萍 董虎胜

摘 要 由于生成对抗网络能够比较好地捕捉训练数据的内在分布,进而生成近乎以假乱真的数据,在最近几年中受到了广泛的关注。但是生成对抗网络仍存在模型过于自由,生成对象不可控的不足。本文对引入了条件约束的生成对抗网络模型进行了研究,并设计了基于轮廓约束的建筑图片生成模型。由于在模型训练时使用了外形轮廓进行引导,生成的图像能够做到可控可预测。实验结果表明该模型具有非常优秀的图像合成效果。

关键词 生成对抗网络,条件约束,图像合成

0引言

在机器学习领域中,生成模型占有着重要的地位,它通过学习数据的内在分布获取假设分布的模型参数,进而能够使用学习到的模型采样出符合该分布的样本。但是使用传统的生成学习算法通常需要对数据的分布进行假设,进而使用最大似然估计、马尔科夫链等方法学习模型参数,但受到样本数的限制,学习到的模型在性能上受到了一定的制约。与这些方法相比,生成对抗网络(Generative Adversarial Net, GAN)采用了零和博弈的思想来学习真实的数据分布,通过生成器(Generator)与判别器(Discriminator)的对抗来优化提高模型的生成能力与判别能力,因此无需假设数据的分布就可以很好地学习到数据的内在分布。近年来在图像生成与图像合成等方向上,GAN模型得到了广泛的应用和深入的研究。

但是GAN模型在训练时采用了“粗放”式的训练方式,所有训练样本被不加约束的送入模型训练,这使得GAN模型在用于图像生成时具有不可控制的不足,生成的图像自由度过高且不可预测。而条件约束的GAN模型由于引入标签约束,因此能够比较好的避免该问题。本文对条件GAN(Conditional GAN, CGAN)模型进行了研究,并基于CGAN设计了引入轮廓约束的建筑图片生成模型。

1 GAN模型

GAN模型包含了两个基本结构:生成器和判别器。生成器的输入为随机噪声,输出是与真实训练数据具有相同结构的样本。判別器接收来自于真实训练集的样本,并尽力对它们进行分类。如果输入样本为,则置其标签为0;如果输入为真实样本,则置其标签为1。在训练阶段,努力地让自己生成的数据与来自真实训练集的样本表现一致,而则尽力地区分出当前样本是由生成器生成的还是取自于真实训练集。这种相互对抗并迭代优化的过程会使得不论是生成器还是判别器的性能都能够得到不断提升,最终将无法正确地判别数据的来源,也就是的分类概率将趋于1/2。此时可以认为生成器学习到了真实数据的分布,由其生成的样本一般能够取得“以假乱真”的效果。

若假设噪声服从概率为的分布,真实训练样本服从概率为的分布,GAN模型的学习目标可以表达为如下的函数形式:

式中分别指代判别器分类概率的数学期望,从式中可知GAN模型的训练实际上是一个min-max的博弈过程。

2 CGAN模型

在GAN模型中不需要对训练数据的分布作假设,使用了从数据中直接采样并训练的方法,在理论上能够完全逼近真实数据分布。但是GAN也存在模型过于自由的缺点,使用训练好的GAN模型生成数据时存在不可控与不可预测的不足。特别是在图像数据的生成中,像素分布空间巨大,使用GAN模型生成的图像在类别上随机,有时会生成大量与需要无关的结果。为了对GAN模型进行约束,可以在GAN模型训练中添加引导变量(也称为条件变量),在使用作為标签来约束GAN模型中的生成器和判别器后,就可以获得在指定类别的数据。这种添加了约束条件的GAN模型也被称为条件GAN(Conditional GAN, CGAN)模型,它的目标可以被表达为如下的函数:

从上式可知CGAN与原始GAN模型的差异仅在于模型中引入了条件约束变量,但是这样的改进使得的模型具有了类别的约束,训练后的生成器能够生成指定条件的数据。与GAN相同,CGAN在训练中也采用了交替迭代优化的方式。

3 本文图像生成模型

根据对CGAN模型的分析,本文设计了根据指定轮廓生成建筑图像的CGAN模型,该模型接收如图1所示的轮廓图(左)和建筑图(右),其中轮廓图用作为训练样本,建筑图作为模型引导条件。在创建CGAN模型时,采用了UNet架构设计了生成器,使用8个卷积层与8个反卷积层从轮廓图中生成伪样本。在设计判别器时,采用了5卷积层配合Sigmoid层的网络结构。

在生成器中接收用训练轮廓图,首先通过8个卷积层进行卷积运算。这些卷积层的卷积核被统一设置为[4, 4,]尺寸,其中为输入的通道数, 为输出通道数,卷积设置移动步长均为2。在该部分使用的激活函数均为Leaky ReLU函数,且在每层中均使用了批归一化处理方法来增强模型的收敛性能。在接收256×256×3的输入图像后,各卷积层输出的特征图(feature map)尺寸分别为:128×128×64、64×64×128、32×32×256、16×16×512、8×8×512、4×4×512、2×2×512、1×1×512。由于采用了UNet结构,接下来的8层反卷积结构中执行了对应的类逆向处理,使用的反卷积核大小为[4, 4, ],步长为2。但是在该过程中使用了ReLU激活函数,且将各前一个反卷积层的输出与对应卷层积的输出作了拼接(concatenation)运算。在最后一个反卷积层中使用的是激活函数,这样在将输出结果加上1再乘127.5后即可转换为Uint8的像素值。

本文在判别器的结构设计上较生成器简化了很多,其接收的数据为输入图像及其标签在通道维度上作拼接运算后的结果。在经过5个卷积层后,输出的结果被送入层获得分类输出概率。在每个卷积层中使用的卷积核均为[4, 4, ]的結构,步长值为2,且每层均应用了批归一化处理与Leaky ReLU激活函数。各层输出的特征图大小分别为:128×128×64、64×64×128、32×32×256、32×32×512、32×32×1。

4 实验

应用上节描述的CGAN图像生成模型,本文使用图1所示的训练样本(轮廓图)及对应标签(建筑图)对设计的模型进行了训练与测试。训练使用的建筑图像数据集facade由https://phillipi.github.io/pix2pix/下载获得,该数据集中收集了600张欧式建筑及其对应的轮廓图。由于这些图像大小不统一,实验中将它们的尺寸统一为256×256像素大小,并随机选择了300张图像用作为训练集,剩余作为测试集。实验使用的硬件环境为Nvidia GTX 1080显卡,软件环境为PyTorch。

实验中在训练集上迭代约10万次后判别器趋于收敛,模型分类概率基本维持在0.5左右浮动。此时生成器生成的图像如图2所示,其中由左至右分别为训练轮廓图、生成图像与原建筑图像,可以看出此时生成的图像已经基本上较好地逼近了用作为标签的原建筑图像。

利用训练好的生成模型在测试集上测试时获得了如图3所示的生成效果,可以看出在测试集上模型基本表现出了良好的生成效果,基本上还原了轮廓图中的建筑外观。

5 结束语

本文对具有条件约束的对抗生成网络CGAN模型进行了研究,并基于PyTorch深度学习框架设计了建筑图像生成模型。实验中使用了facade数据集中的图像进行了模型的训练,实验结果表明CGAN模型在引入了条件约束和引导后能够获得优秀的图像生成性能。

参考文献

[1] Goodfellow Ian, Pouget-Abadie Jean,Mirza Mehdi et al. Generative adversarial nets[C]//Advances in neural information processing systems, 2014:2672-2680.

[2] Mirza, Mehdi and Osindero, Simon. Conditional generative adversarial nets[J]. arXiv preprint arXiv:1411.1784, 2014.

[3] 孙全,曾晓勤.基于生成对抗网络的图像修复[J],计算机科学,2018,45(12):229-234,261.

[4] Bousmalis Konstantinos, Silberman Nathan, Dohan David et al. Unsupervised pixel-level domain adaptation with generative adversarial networks[C]//Proceedings of the IEEE conference on computer vision and pattern recognition, 2017, 3722--3731

[5] Isola Phillip, Zhu Jun-Yan, Zhou Tinghui et al. Image-to-image translation with conditional adversarial networks [C]// Proceedings of the IEEE conference on computer vision and pattern recognition. 2017, 1125--1134.

作者信息:

陸萍(1979-), 女,江苏太仓人,副教授/硕士, 研究方向为数字图像处理

董虎胜(1981.04-),男,江苏泗洪人,讲师,研究方向为机器学习与计算机视觉

基金项目:江苏省高等院校国内高级访问学者计划资助项目(2018GRFX052);江苏省2019年青蓝工程骨干教师培养对象