博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【明星自动大变脸】最新StarGAN对抗生成网络实现多领域图像变换(附代码)
阅读量:5991 次
发布时间:2019-06-20

本文共 1799 字,大约阅读时间需要 5 分钟。

hot3.png

图像到图像转化的任务是将一个给定图像的特定方面改变到另一个方面,例如,将一个人的面部表情从微笑到皱眉改变(见图1)。自从生成对抗网络(GANs)的引入,这个任务经历了很大的发展,从改变发色,改变边缘图以重建照片,到改变风景图像的季节等。

b424b9fbc3429be887477fce17c570db4baf4fce

图1. 通过从RaFD数据集学习转移知识,从而应用到CelebA图像转化的多域的图像到图像转化结果。第一列和第六列显示输入图像,其余列是产生的StarGAN图像。注意,图像是由一个单一模型网络生成的,面部表情标签如生气、高兴、恐惧是从RaFD学习的,而不是来自CelebA。

给定来自两个不同域的训练数据,这些模型学习如何将图像从一个域转换到另一个域。文章中将术语表示为图像中固有的特征,如头发颜色、性别或年龄,属性值作为属性的特定值,例如黑色/金色/棕色的头发颜色,或性别的男性/女性等。我们进一步将具有一系列相同属性值的图像设为一个域。例如,女性形象代表一个域,而男性代表另一个域。

几个图像数据集带有许多标记属性。例如,在CelebA数据集包含40个标签的面部特征,如头发的颜色、性别、年龄;RaFD数据集有8个表示面部表情的标签,如“快乐”,“愤怒”和“悲伤”。我们可以根据这些属性设置执行更有趣的任务,即多域图像到图像的转换,我们根据多个域的属性来改变图像。图1中,前5列展示了一个CelebA图像可以根据任何四个域进行转化,“金发”、“性别”、“年龄”、“苍白的皮肤”。我们可以进一步延伸到从不同的数据集进行多个域的训练,如共同训练的CelebA和RaFD图像来改变CelebA图像的面部表情,通过训练RaFD数据提取特征来作用于CelebA图像,如在图1的最右边的列。

然而,现有的模型在多域图像转换任务中效率低下。这些模型的低效率是因为在学习K域的时候,需要训练K(K−1)个生成器。图2说明了如何在四个不同的域之间转换图像的时候,训练十二个不同的生成器的网络。即使它们可以从所有域图像学习全局特征,如形状特征学习,这种模型也是无效的,因为每个生成器不能充分利用整个训练数据,只能从K学习的两个领域。未能充分利用训练数据很可能会限制生成图像的质量。此外,它们不能联合训练来自不同域的数据集,因为每个数据集只有部分标记,本文在3.2章进一步讨论。

0a4ba4cfa571179db1883fcc228a7bbeee4a9360

图2. 我们的StarGAN模型与其他跨域模型的比较。(a)为处理多个域,应该在每一对域都建立跨域模型。(b)StarGAN用单个发生器学习多域之间的映射。该图表示连接多个域的拓扑图。

为解决这些问题我们提出了StarGAN,它是生成对抗网络,能够学习多个域之间的映射。如图2(b)所示,文章中提出的模型接受多个域的训练数据,并且只使用一个生成器学习所有可用域之间的映射。这个想法是非常简单的。其模型不是学习固定的图像转化(例如,从黑发到金发),而是输入图像和域信息,学习如何灵活地将输入图像转换到相应的域中。文章中使用一个标签(二进制或one hot向量)代表域信息。在训练过程中,随机生成目标域标签并训练模型,以便灵活地将输入图像转换到目标域。通过这样做,可以控制域标签并在测试阶段将图像转换成任何所需的域。

本文还引入了一种简单而有效的方法,通过将掩码向量添加到域标签,使不同数据集的域之间进行联合训练。文章中所提出的方法使模型可以忽略未知的标签,并专注于有标签的特定数据集。在这种方式下,此模型对任务能获得良好的效果,如利用从RaFD数据集学到的特征来在CelebA图像中合成表情,如图1的最右边的列。据本文中提及,这篇工作是第一个成功地完成跨不同数据集的多域图像转化。

总的来说,本文的贡献如下:

  1. 提出了StarGAN,生成一个新的对抗网络,只使用一个单一的发生器和辨别器实现多个域之间的映射,有效地从所有域的图像进行训练;
  2. 展示了如何在多个数据集之间学习多域图像转化,并利用掩码向量的方法使StarGAN控制所有可用的域标签。
  3. 提供定性和定量的结果,对面部表情合成任务和面部属性传递任务使用StarGAN,相比baseline模型显示出它的优越性。

原则上,文中提出的模型可以应用于任何其他类型的域之间的转换问题,例如,风格转换(style transfer),这是未来的工作方向之一。

转载于:https://my.oschina.net/u/3611008/blog/1582188

你可能感兴趣的文章
FreeMarker | 取值篇
查看>>
《Linux0.11内核完全注释》读书笔记之内核启动方式总结
查看>>
Prefer Literal Syntax over the Equivalent methods
查看>>
安装 CAS 服务器
查看>>
U盘检测程序&文件递归
查看>>
画图小工具p图的方法
查看>>
GC策略&内存申请、对象衰老
查看>>
vim格式化代码
查看>>
mysql数据库时间字段CURRENT_TIME问题
查看>>
Ftp 下载和上传 指定文件夹内所有文件(包括文件夹,并且文件夹目录不变)...
查看>>
命令行里打 cd 简直是浪费生命
查看>>
40条技巧优化php代码
查看>>
简易Linux Mail Server 搭建 -- Sendmail 设置
查看>>
linux tomcat 80 端口不能访问
查看>>
sprig - classPathMapperScanner
查看>>
RandomAccessFile写文件
查看>>
伪静态的实现方法:IIS环境下配置Rewri...
查看>>
js函数收藏
查看>>
php扩展编译zlib Cannot find config.m4.
查看>>
Common-lang包常用类 方法
查看>>