专栏首页CreateAMindStarGAN-多领域图像翻译

StarGAN-多领域图像翻译

http://blog.csdn.net/stdcoutzyx/article/details/78829232

  • 标签:
  • StarGAN /
  • 图像翻译 /
  • 对抗神经网络 /
  • Pix2Pix /
  • CycleGAN

Pix2Pix模型解决了有Pair对数据的图像翻译问题;CycleGAN解决了Unpaired数据下的图像翻译问题。但无论是Pix2Pix还是CycleGAN,都是解决了一对一的问题,即一个领域到另一个领域的转换。当有很多领域要转换了,对于每一个领域转换,都需要重新训练一个模型去解决。这样的行为太低效了。本文所介绍的StarGAN就是将多领域转换用统一框架实现的算法。

下图是StarGAN的效果,在同一种模型下,可以做多个图像翻译任务,比如更换头发颜色,更换表情,更换年龄等。

引入

如果只能训练一对一的图像翻译模型,会导致两个问题:

  • 训练低效,每次训练耗时很大。
  • 训练效果有限,因为一个领域转换单独训练的话就不能利用其它领域的数据来增大泛化能力。

为了解决多对多的图像翻译问题,StarGAN出现了。

模型框架

StarGAN,顾名思义,就是星形网络结构,在StarGAN中,生成网络G被实现成星形。如下图所示,左侧为普通的Pix2Pix模型要训练多对多模型时的做法,而右侧则是StarGAN的做法,可以看到,StarGAN仅仅需要一个G来学习所有领域对之间的转换。

那么,是什么让G有这样的能力呢?

网络结构

要想让G拥有学习多个领域转换的能力,需要对生成网络G和判别网络D做如下改动。

  • 在G的输入中添加目标领域信息,即把图片翻译到哪个领域这个信息告诉生成模型。
  • D除了具有判断图片是否真实的功能外,还要有判断图片属于哪个类别的能力。这样可以保证G中同样的输入图像,随着目标领域的不同生成不同的效果
  • 除了上述两样以外,还需要保证图像翻译过程中图像内容要保存,只改变领域差异的那部分。图像重建可以完整这一部分,图像重建即将图像翻译从领域A翻译到领域B,再翻译回来,不会发生变化。

D的训练和G的训练如下所示。

目标函数

首先是GAN的通用函数,判断输出图像是否真实

其次是类别损失,该损失被分成两个,训练D的时候,使用真实图像在原始领域进行,训练G的时候,使用生成的图像在目标领域进行。

训练D的损失:

训练G的损失:

再次则是重建函数,重建函数与CycleGAN中的正向函数类似。

汇总后则是

多数据集训练

在多数据集下训练StarGAN存在一个问题,那就是数据集之间的类别可能是不相交的,但内容可能是相交的。比如CelebA数据集合RaFD数据集,前者拥有很多肤色,年龄之类的类别。而后者拥有的是表情的类别。但前者的图像很多也是有表情的,这就导致前一类的图像在后一类的标记是不可知的。

为了解决这个问题,在模型输入中加入了Mask,即如果来源于数据集B,那么将数据集A中的标记全部设为0.

效果图

更多请参考原始论文.

Reference

  • [1]. StarGAN: Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation
  • [2]. Pix2Pix图像翻译
  • [3]. CycleGAN-Unpaired图像翻译

本文分享自微信公众号 - CreateAMind(createamind),作者:张雨石

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-12-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 代码已公开--StarGAN-多领域图像翻译

    github代码:https://github.com/yunjey/StarGAN 应用到多感知信息上面。

    用户1908973
  • torcs强化学习的图像生成低纬表示重建效果

    commaai的生成模型进行生成torcs道路画面,左侧为生成图像,右侧为实际游戏图像,两个画面为一个epoch的1万次循环训练的效果,下面跨度98个epoch...

    用户1908973
  • 检测9000类物体的YOLO9000 更好 更快 更强

    多尺度训练YOLOv2;权衡速度和准确率,运行在不同大小图像上。YOLOv2测试VOC 2007 数据集:67FPS时,76.8mAP;40FPS时,78.6m...

    用户1908973
  • 代码已公开--StarGAN-多领域图像翻译

    github代码:https://github.com/yunjey/StarGAN 应用到多感知信息上面。

    用户1908973
  • AI还原半世纪前的黑白电影和照片:效果惊艳在线可玩,网友大呼“鹅妹子嘤”

    在Facebook的F8大会上,国外技术小哥Jason Antic展示了一种叫DeOldify的AI模型,这种技术为老电影上色效果堪称惊艳。

    量子位
  • R语言第二章数据处理③删除重复数据目录总结

    ================================================

    用户1359560
  • Python3中如何删除字典中值为空的键值对?

    细心的朋友会发现,这里我们对data.keys()做了一个list()操作,请大家想想为什么要做这样的一个操作呢?

    BigYoung小站
  • 叫你一声“孙悟空”,敢答应么?

    随着自然语言理解等技术的发展,对话机器人如今盛行,而基于此的智能音箱产品的发展也异常火热。

    AI科技大本营
  • 适用于 Linux 系统的 11 款图像查看器

    Linux 桌面系统中都默认自带了不错的图像查看器,除非您要使用某个特定的功能或希望获得更好的用户体验,可以尝试一下其它图像查看器。此前,系统极客向大家推荐了 ...

    用户6543014
  • 【译】与Adapter一起使用(ListView, GridView, ...)

    首先,我们需要为测试提供一些图像。我们从eatfoody.com截取了部分美味的食谱图,上传至imgur。

    小鄧子

扫码关注云+社区

领取腾讯云代金券