单张图像就可以训练GAN!Adobe改良图像生成方法 | 已开源

作者: 十三 2020-03-30 16:00:46

本文经AI新媒体量子位(公众号ID:QbitAI)授权转载,转载请联系出处。

数据集太小了,无法训练GAN?试试从单个图像入手吧。

去年谷歌就提出了SinGAN,是第一个拿GAN在单幅自然图像学习的非条件生成模型(ICCV 2019最佳论文)。

而最近,来自Adobe和汉堡大学的研究人员,对这个方法做了改进,探讨了几种让GAN在单幅图像提高训练和生成能力的机制。

研究人员将改进的模型称作ConSinGAN

单张图像就可以训练GAN!Adobe改良图像生成方法 | 已开源

那么,先来看下ConSinGAN的效果吧。

单张图像就可以训练GAN!Adobe改良图像生成方法 | 已开源

上图左侧是用来训练的单个图像,右侧是利用ConSinGAN训练后生成的复杂全局结构。

可以看出效果还是比较逼真。

当然,ConSinGAN还可以用来处理许多其他任务,例如图像超分辨率( image super-resolution)、图像动画(image animation),以及图像去雾(image dehazing)。

下面两张就是它在图像协调(image harmonization)和图像编辑(image editing)上的效果。

单张图像就可以训练GAN!Adobe改良图像生成方法 | 已开源
单张图像就可以训练GAN!Adobe改良图像生成方法 | 已开源

ConSinGAN是怎么做到的呢?

训练架构优化:并行的SinGAN

首先,我们先来看下SinGAN的训练过程。

SinGAN在图像中训练几个单独的生成网络,下图便是第一个生成器,也是唯一从随机噪声生成图像的无条件生成器。

单张图像就可以训练GAN!Adobe改良图像生成方法 | 已开源
在SinGAN中训练的第一个生成器

这里的判别器从来不将图像看做一个整体,通过这种方法,它就可以知道“真实的”图像补丁(patch)是什么样子。

这样,生成器就可以通过生成,在全局来看不同,但仅从补丁来看却相似的图像,来达到“欺诈”的目的。

在更高分辨率上工作的生成器,将前一个生成器生成的图像作为输入,在此基础上生成比当前还要高分辨率的图像。

所有的生成器都是单独训练的,这意味着在训练当前生成器时,所有以前的生成器的权重都保持不变。

这一过程如下图所示。

单张图像就可以训练GAN!Adobe改良图像生成方法 | 已开源

而在Adobe与汉堡大学的研究人员发现,在给定的时间内仅能训练一个生成器,并将图像(而不是特征图)从一个生成器传输到下一个生成器,这就限制了生成器之间的交互。

因此,他们对生成器进行了端到端的训练,也就是说,在给定时间内训练多个生成器,每个生成器将前一个生成器生成的特征(而不是图像)作为输入。

这也就是ConSinGAN名字的由来——并行的SinGAN,过程如下图所示。

单张图像就可以训练GAN!Adobe改良图像生成方法 | 已开源

然而,采取这样的措施又会面临一个问题,也就是过拟合。这意味着最终的模型不会生成任何“新”图像,而是只生成训练图像。

为了防止这种现象发生,研究人员采取了2个措施:

  • 在任意给定时间内,只训练一部分生成器;
  • 对不同的生成器采用不同的学习率(learning rate)。

下图就展示了使用这两种方法实现的模型。默认情况下,最多同时训练3个生成器,并对较低的生成器,分别将学习率调至1/10和1/100。

单张图像就可以训练GAN!Adobe改良图像生成方法 | 已开源

在这个过程中,有一个有趣的现象。

如果对较低的生成器采用较高的学习率,那么生成的图像质量会高些,但是差异性较弱。

相反,如果对较低的生成器采用较小的学习率,那么生成图像的差异性会丰富一些。如下图所示。

单张图像就可以训练GAN!Adobe改良图像生成方法 | 已开源

代码已开源

ConSinGAN的代码已经在GitHub上开源。

老规矩,先介绍一下运行所需要的环境:Python 3.5;Pytorch 1.1.0。

安装也非常简单:

  1. pip install -r requirements.txt 

若要使用论文中的默认参数训练模型:

  1. python main_train.py --gpu 0 --train_mode generation --input_name Images/Generation/angkorwat.jpg 

在英伟达GeForce GTX 1080Ti上训练一个模型大约需要20-25分钟。

不同的学习率和训练阶段数量,会影响实验的结果,研究人员推荐二者的默认值分别是0.1和6。

当然也可以修改学习率:

  1. python main_train.py --gpu 0 --train_mode generation --input_name Images/Generation/colusseum.jpg --lr_scale 0.5 

修改训练阶段的数量:

  1. python main_train.py --gpu 0 --train_mode generation --input_name Images/Generation/colusseum.jpg --train_stages 7 

当然,模型也可以用来处理“图像协调”和“图像编辑”等任务,详情可参阅GitHub。

传送门

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

GitHub项目地址:
https://github.com/tohinz/ConSinGAN

开源 技术 趋势
上一篇:护卫中小学生安全,如今已离不开机器人! 下一篇:中国的自动驾驶,到底比美国差在哪?
评论
取消
暂无评论,快去成为第一个评论的人吧

更多资讯推荐

化身阿凡达,国外小哥开源 AI 实时变脸工具 Avatarify

疫情期间,很多人都在用 Zoom 和 Skype 等软件进行视频会议。国外一位开发小哥觉得这样开会太无聊,于是基于 first-order-model 开发了一个能够把别人的照片套在自己脸上的“变脸”软件 Avatarify,并将其开源。

OSC神秘老司机 ·  2020-05-27 09:56:41
华为突破封锁,对标谷歌Dropout专利,开源自研算法Disout

美国持续封锁,华为的技术自研,已经深入到了AI底层算法层面上,并开始将研究成果面向业界开源。

乾明 金磊 ·  2020-05-20 10:25:43
Facebook 开源聊天机器人 Blender,号称全球最强

Facebook AI 和机器学习部门 FAIR 发布博客宣布,经过多年研究,其已经构建和开源了一个新的聊天机器人 Blender。

白开水不加糖 ·  2020-05-06 08:46:53
100倍加速!深度学习训练神器Determined AI宣布开源!更快,更简单,更强大

作为一名深度学习科研人员,小编我可是深受模型训练的困扰:一个模型要跑几天几夜,结果最后发现有一步错了 ...从头再来

科雨、白峰 ·  2020-05-03 13:52:27
「英伟达呼吸机」开源:计算机架构大师打造,成本暴减98%,黄仁勋点赞

计算机先驱们也加入了抗击新冠的行列:英伟达首席科学家 Bill Dally 本周宣布了一款开源低成本机械呼吸机设计。

佚名 ·  2020-05-02 18:49:35
15亿语料训练的94亿参数大模型更懂我?Facebook开源全球超强聊天机器人Blender

尽管聊天机器人和虚拟助手已经取得了很大的进步,但市面上的聊天机器人大多数是以任务为导向的。从零售业到医疗保健到金融服务等各个领域都有专门的产品,在一些领域垂直的任务中表现尚可。

鹏飞,白峰 ·  2020-04-30 13:30:30
让梦露和龙妈学着你说话,只需一张静态图和一个视频

想让名人学着你说话,怎么办?很简单,只要一张名人的照片,配上你说话的视频,分分钟就能搞定。

十三 ·  2020-04-28 10:32:37
这家中国AI创业公司拿下顶会竞赛冠军,代码已经开源

人工智能顶会NeurIPS举办的AutoDL 2019-2020系列竞赛落幕,来自中国的AI创业公司,斩获冠亚军。

乾明 ·  2020-04-20 10:08:22
Copyright©2005-2020 51CTO.COM 版权所有 未经许可 请勿转载