【明星自动大变脸】最新StarGAN对抗生成网络实现多领域图像变换(附代码)

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

图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章进一步讨论。

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

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

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

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

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

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

模型简介

在单一数据集上的训练

总得来看,StarGAN包括两个模块,一个鉴别器D和一个生成器G.(a)D学习如何区分真实图像和伪造图像,并将真实图像分类到相应领域。 (b)G同时输入图像和目标域的标签并生成假图像,在输入时目标域标签被复制并与输入图像拼接在一块。 (c)G尝试从给定原始域标签的假图像重建原始图像。 (d)G试图生成与真实图像不可区分的图像同时又很容易被目标域D所区分出来。

在多数据集上的训练

StarGAN同时在CelebA和RaFD两个数据机上进行培训的概述。 (a)〜(d)显示了使用CelebA的训练过程,(e)〜(h)显示了使用RaFD的训练过程。 (a),(e)鉴别器D学习如何区分真实图像和伪造图像,并仅将已知标签的分类误差最小化。 (b),(c),(f),(g)当掩码向量(紫色)为[1,0]时,生成器G学习专注于CelebA标签(黄色),而忽略RaFD标签(绿色)来执行图像到图像的转换,反之亦然,当掩码矢量是[0,1]时。 (d),(h)G尝试生成与真实图像无法区分的图像,同时图像可以被D分类可为目标域。

实验结果

在明星脸上的面部属性迁移

这些图片是由StarGAN在CelebA 数据集上训练后生成的。

在RaFD人脸数据集上的表情合成

这些图片是由StarGAN在RaFD人脸数据集上训练后生成的。

在明星脸上的表情合成

这些图片是由StarGAN同时在RaFD和CelebA数据集上训练后生成的。 

论文:StarGAN: Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation

摘要

最近的研究表明,在两个领域之间图像到图像转化的研究领域取得了显著的成功。然而,现有的方法在处理两个以上图像域时,可伸缩性和鲁棒性有限,因此,要为每一对映像域都需要独立构建不同的模型。

为了解决这个问题,我们提出了一个新的可扩展的StarGAN,可以利用同一个模型实现多个域图像到图像转化。这样一个统一的StarGAN模型体系允许在一个单一的网络内同时训练不同域的多个数据集。这使得StarGAN与现有的图像转化模型相比,StarGAN更加灵活,能将输入图像转化到任意所需要的目标域图像。实验证明,我们的方法在面部属性转移和面部表情合成任务上的有效性。

Github 代码

PyTorch代码实现的《StarGAN: UnifiedGenerative Adversarial Networks for Multi-Domain Image-to-Image Translation》,StarGAN可以很灵活的将一副图片转换成任何你想要的目标风格,这一切只需要一个简单的生成器和一个判别器。

作者

  • Yunjey Choi  https://github.com/yunjey, 
  • Minje Choi  https://github.com/mjc92, 
  • Munyoung Kim  https://www.facebook.com/munyoung.kim.1291, 
  • Jung-Woo Ha  https://www.facebook.com/jungwoo.ha.921, 
  • Sung Kim  https://www.cse.ust.hk/~hunkim/, 
  • Jaegul Choo  https://sites.google.com/site/jaegulchoo/

Python代码依赖包

  • Python 2.7 or 3.5+ https://www.continuum.io/downloads
  • PyTorch 0.2.0 http://pytorch.org/
  • TensorFlow 1.3+ https://www.tensorflow.org/  

如何开始运行代码

1. 克隆代码仓库  

bash
$ git clonehttps://github.com/yunjey/StarGAN.git
$ cd StarGAN/

2. 下载数据集

(i) CelebA数据集
bash
$ bashdownload.sh
(ii) RaFD数据集

由于RaFD并不是一个公开的数据集,所以你必须先在Radboud Faces Database website (http://www.socsci.ru.nl:8180/RaFD2/RaFD?p=main)这个网站上申请使用权限。然后你需要想这里描述https://github.com/yunjey/StarGAN/blob/master/png/RaFD.md的那样,来创建相应的目录结构。

3. 训练 StarGAN

(i) 使用CelebA训练
bash
$ python main.py--mode='train' --dataset='CelebA' --cdim=5 --imagesize=128 --numepochs=20--numepochsdecay=10
(ii) 使用RaFD训练
bash
$ python main.py--mode='train' --dataset='RaFD' --cdim=8 --imagesize=128 --numepochs=200--numepochsdecay=100
(iii) 同时使用CelebA和RaFD训练
bash
$ python main.py--mode='train' --dataset='Both' --cdim=5 --c2dim=8 --imagesize=256--numiters=200000 --numitersdecay=100000

4. StarGAN测试

(i) 在明星脸上的面部属性迁移
bash
$ python main.py--mode='test' --dataset='CelebA' --cdim=5 --imagesize=256 --testmodel=201000
(ii) 在RaFD人脸数据集上的表情合成
bash
$ python main.py--mode='test' --dataset='RaFD' --cdim=8 --imagesize=256 --testmodel=200200
(iii) 在明星脸上的表情合成
bash
$ python main.py--mode='test' --dataset='Both' --cdim=5 --c2dim=8 --imagesize=256--testmodel=200000

原文发布时间为:2017-11-29

本文来自合作伙伴新智元,了解相关信息可以关注“AI_era”微信公众号

原文链接:【明星自动大变脸】最新StarGAN对抗生成网络实现多领域图像变换(附代码)

时间: 2024-10-15 11:48:24

【明星自动大变脸】最新StarGAN对抗生成网络实现多领域图像变换(附代码)的相关文章

深度卷积对抗生成网络(DCGAN)实战

更多深度文章,请关注云计算频道:https://yq.aliyun.com/cloud 生成式对抗网络(GANs)的概念在四年前由Ian Goodfellow创造.古德费洛(Goodfellow)认为鉴别器(Discriminator)是艺术评论家而相对的艺术家则是生成器(Generator),它们两个就组成了GAN.艺术评论家(Discriminator)看着一幅图像,试图确定它是真的还是伪造的.一个想欺骗艺术评论家的艺术家(Generator)试图制造一个看起来尽可能真实的伪造图像.这两种模

最简单易懂的GAN(生成对抗网络)教程:从理论到实践(附代码)

  之前 GAN网络是近两年深度学习领域的新秀,火的不行,本文旨在浅显理解传统GAN,分享学习心得.现有GAN网络大多数代码实现使用Python.torch等语言,这里,后面用matlab搭建一个简单的GAN网络,便于理解GAN原理. GAN的鼻祖之作是2014年NIPS一篇文章:Generative Adversarial Net,可以细细品味. ● 分享一个目前各类GAN的一个论文整理集合 ● 再分享一个目前各类GAN的一个代码整理集合   开始 我们知道GAN的思想是是一种二人零和博弈思想

NSA最新项目:OpenC2,实现网络防御自动响应

美国国家安全局(简称NSA)带领一批网络安全技术专家与供应商投入一年多时间开发出一种开放式标准化计算机语言--OpenC2,旨在对网络防御任务进行指挥及操控. OpenC2概念 OpenC2的设计理念在于让网络防御技术中的各类不同元素以机器速度实现相互通信,无论其由具体由哪家厂商负责制造以及使用哪种编程语言. 根据OpenC2项目发起者.NSA官员布鲁尔所言,网络防御方"必须具备一套自动机器响应机制",从而在与攻击者的对抗当中取得优势.在本周二召开的Gartner安全风险管理峰会上,他

蘑菇街大变脸,7.0版本App已经上线

1月21日消息,在移动电商强势来袭时,各家电商都在顺势力拼移动端的转型,轻巧的垂直电商似乎更容易从中看到机会. 记者从国内最大的女性时尚消费平台蘑菇街了解到,蘑菇街最新的7.0版本App已经上线,与旧版相比可谓一次"大变脸",而这背后是年轻用户群体消费习惯.移动端交易占比.商业模式等各种因素交织的必然选择.       在产品形态上,新版本摒弃了旧版的"频道 图墙"形式的商品展示,取代以"达人 信息流"形式,用户关注的人所发布的商品信息会像微博或

杨幂出《宫》陷绯闻期待《孤岛惊魂》大变脸

杨幂<孤岛惊魂>剧照 新浪娱乐讯 近日,一组杨幂与冯绍峰在北京一同进餐的照片 曝光,两人开心用餐的同时还亲密自拍.随着电视剧<宫>的热播,穿越回现实的两人"峰幂恋"的传闻也成为影迷和粉丝关心的焦点.被记者并肩而行的杨幂和冯绍峰,不时低头闲聊,在寒风大作的北京,两人的甜蜜劲儿和"情侣"没两样.而对于即将在春季档上映的自己的新片<孤岛惊魂>,杨幂则表示,不同于<宫>中自己的深情款款,<孤岛惊魂>中自己将大变脸.

Java调用命令实现视频上传过程中自动转换为flv格式并截图生成缩略图

//视频上传过程中自动转换为flv格式并截图生成缩略图(Java调用命令实现) import java.util.ArrayList; import java.util.List; public class VideoProcess { System.out.println(oldfilepath+"->"+newfilename+"- >"+newimg); List<String> commendF = new ArrayList<

阿里来往5.0大变脸

摘要: 和易信一样,沉寂许久的来往也突然来了个大变脸,不仅全部重新设计了UI界面,甚至连Logo都来了个180度大转弯,变成了一颗看起来比较畸形的柠檬......重新设计的来往,除了UI的变化 和易信一样,沉寂许久的"来往"也突然来了个大变脸,不仅全部重新设计了UI界面,甚至连Logo都来了个180度大转弯,变成了一颗看起来比较畸形的柠檬......重新设计的来往,除了UI的变化外,更重大的改变在于,重新梳理了产品定位,着重突出"扎堆"功能,主打兴趣社交. 新版来往

谷歌将面向明星和大品牌推出Google++个性化网址服务

和讯科技消息 北京时间8月24日,谷歌宣布近期,将面向明星和大品牌推出Google++个性化网址服务. 谷歌目前已经批准了丰田和德尔塔航空公司等大企业,以及布兰妮·斯皮尔斯等明星的个性化网址. 谷歌还向另一些名人发出电子邮件.邮件显示,谷歌将为用户选择个性化网址.而如果对谷歌建议的网址不满意,那么可以点击邮件中链接,申请一个不同的网址.邮件中建议的个性化网址基于明星在网上的一般称呼,或是大品牌在网上的通用名称.由于谷歌倾向于在Google+上使用真实姓名,因此用户将无法选择以Twitter帐户名

中国IDC业内激战 浅析两大域名服务器最新动态

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 近日,国内知名IDC运营商万网封停慧聪网域名事件一度闹得沸沸扬扬,孰是孰非我们不作探讨.换个角度,我们来了解一下万网是否会受此次事件的影响?下面,IDC评述网简要地整理了中国两大域名服务器最新动态,供大家参考.(统计时间:2011年3月21日至2011年4月25日) 首先,我们来关注XINNET.COM(新网)的情况: 图表1 近乎一直稳坐中