| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> StyleGAN2发展介绍 & 花卉图像生成 & 模型修改 -> 正文阅读 |
|
[人工智能]StyleGAN2发展介绍 & 花卉图像生成 & 模型修改 |
stylegan发展:gan要做的事情是通过生成器由简单分布生成复杂图像分布,生成的图片分布和真实图片分布的差距越小越好,这一步通过判别器实现。生成大的、质量高的图任务量大,由此产生由小至大、逐级生成的想法,这就是proGAN的思路,但是这里说的逐级生成不是连接(连接的思想是stackgan),而是变化,即生成器内的网络只有一个,训练中网络结构动态变化,此处的动态变化使用了PGGAN提出的平滑过渡技术实现。再然后,人们想控制图像每一级的特征,便产生了stylegan。 StyleGAN介绍:网络结构如下,首先使用 Mapping Network 将输入向量编码为中间变量 w 进行特征解缠,然后中间变量传给生成网络得到18个控制变量,使得该控制变量的不同元素能够控制不同的视觉特征。 (2)样式模块AdaIN :生成器由于从 4*4,变换到 8*8,并最终变换到 1024*1024,所以它由 9 个生成阶段组成,而每个阶段都会受两个控制向量(A)对其施加影响,其中一个控制向量在 Upsample之后对其影响一次,另外一个控制向量在 Convolution 之后对其影响一次,影响的方式都采用 AdaIN(自适应实例归一化)。因此,中间向量?W'?总共被变换成 18 个控制向量(A)传给生成器。? ?(3)删除传统输入:StyleGAN 生成图像的特征是由 W' 和 AdaIN 控制的,那么生成器的初始输入可以被忽略,并用常量值替代。这样做的理由是,首先可以降低由于初始输入取值不当而生成出一些不正常的照片的概率(这在 GANs 中非常常见),另一个好处是它有助于减少特征纠缠,对于网络在只使用?W'?不依赖于纠缠输入向量的情况下更容易学习。
StyleGAN2对StyleGAN的改进:StyleGAN存在瑕疵,少量生成的图片有明显的水珠,这个水珠也存在于feature map上,如下图。导致水珠的原因是 AdaIN 操作,AdaIN对每个feature map进行归一化,因此有可能会破坏掉 feature 之间的信息。 改进具体有三点:
?
官方开源代码:https://github.com/NVlabs/stylegan2-ada-pytorch 数据选取:由102类产自英国的花卉组成,每类由40-258张图片组成,共有8189张jpg格式图像。分类的细节和每类花卉的数量见【这里】,下载地址见【这里】。尺寸不统一,大概500*600 ?实际训练数据:对图像resize到128*128,resize的大小随意,但是输入要求是方形,我的选择是由于显卡显存限制。下图是为了方便查看由随机选取的子集进行拼接得到。 效果:下图是800个epoch的效果,已经生成的非常好了。? ?模型修改:更改了Mapping Network 层数 8 → 4,输入向量维度 512 → 256。生成器参数量 23M → 20M,训练效果差距不大。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 15:27:59- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |