开发者社区> 云栖号资讯小哥> 正文

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

简介: 云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 数据集太小了,无法训练GAN?试试从单个图像入手吧。 最近,来自Adobe和汉堡大学的研究人员,对这个方法做了改进,探讨了几种让GAN在单幅图像提高训练和生成能力的机制。
+关注继续查看

云栖号资讯:【点击查看更多行业资讯
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!


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

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

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

1

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

2

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

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

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

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

3

4

ConSinGAN是怎么做到的呢?

训练架构优化:并行的SinGAN

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

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

5

△ 在SinGAN中训练的第一个生成器

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

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

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

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

这一过程如下图所示。

6

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

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

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

7

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

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

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

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

_2

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

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

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

3

代码已开源

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

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

安装也非常简单:

pip install -r requirements.txt

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

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

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

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

当然也可以修改学习率:

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

修改训练阶段的数量:

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

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

【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/zhibo

立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK

原文发布时间:2020-03-30
本文作者:十三
本文来自:“量子位公众号”,了解相关信息可以关注“公众号 QbitAI”

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Nuscenes SOTA!BEVFormer v2: 通过透视监督使流行的图像Backbones适应BEV识别!
作者提出了一种具有透视监督的新型鸟瞰图(BEV)检测器,它收敛更快,更适合目前的图像主干网络。现有的SOTA BEV检测器通常与某些深度预训练的主干网(如VoVNet)相连,阻碍了图像backbones和BEV检测器之间的协同作用。为了解决这一限制,论文优先考虑通过引入透视空间监督来简化BEV检测器的优化方案。为此提出了一种两级BEV检测器,其中来自透视头部的proposal被输入鸟瞰头部,用于最终预测。为了评估模型的有效性,作者进行了广泛的消融研究,重点是监督的形式和拟议检测器的通用性。所提出的方法在传统和主流图像主干上得到了验证,并在大规模nuScene数据集上获得了新的SOTA结果
80 0
首篇!最全的全景分割综述(RGB图像/医学图像/LiDAR)(上)
本文对现有的全景分割方法进行了第一次全面的综述。因此,基于所采用的算法、应用场景和主要目标的性质,对现有全景技术进行了定义良好的分类。此外,还讨论了全景分割在通过伪标记标注新数据集中的应用。接下来,进行消融研究,以从不同角度了解全景方法。此外,还讨论了适用于全景分割的评估指标,并对现有解决方案的性能进行了比较,以了解最新技术并确定其局限性和优势。最后,阐述了当前主题技术面临的挑战以及近期吸引大量关注的未来趋势,这可以作为未来研究的起点。
53 0
多模态图像版「GPT-3」来了!OpenAI推出DALL-E模型,一句话即可生成对应图像
【新智元导读】OpenAI又放大招了!今天,其博客宣布,推出了两个结合计算机视觉和NLP结合的多模态模型:DALL-E和CLIP,它们可以通过文本,直接生成对应图像,堪称图像版「GPT-3」。
392 0
深度学习基于GAN实现人脸图像超分辨率重建实战task2
天池龙珠计划深度学习训练营学习笔记
139 0
深度学习基于GAN实现人脸图像超分辨率重建实战task1
天池龙珠计划深度学习训练营学习笔记
444 0
在图像生成领域里,GAN这一大家族是如何生根发芽的
生成对抗网络这一 ML 新成员目前已经枝繁叶茂了,截止今年 5 月份,目前 GAN 至少有 300+的论文与变体。而本文尝试借助机器之心 SOTA 项目梳理生成对抗网络的架构与损失函数发展路径,看看 GAN 这一大家族都有什么样的重要历程。
82 0
如何用PyTorch处理人脸姿态的数据?
在解决机器学习问题时, 我们需要付出很多努力来准备数据, 为了使代码更具可读性, PyTorch提供了许多工具来使数据加载变得简单易行。在本教程中, 我们将要学习如何对 一个重要的数据集进行加载、预处理数据增强。
840 0
+关注
云栖号资讯小哥
云栖号小编在此 ^o^
文章
问答
文章排行榜
最热
最新
相关电子书
更多
深度学习论文实现:空间变换网络-第一部分
立即下载
基于神经网络的语言合成
立即下载
基于视觉推理的视频理解
立即下载