FineGAN
概
利用GAN生成图片, 特别的是, 这是一种分层的生成方式: 背景 + 轮廓 + 色彩和纹理. 同时这个网络还可以用于无监督的分类.

主要内容
具体流程如下图所示:
背景code \(b\) + 隐变量\(z\) 生成背景 \(\mathcal{B}\);
轮廓code \(p\) + \(z\) 生成掩码\(\mathcal{P}_m\) 和轮廓\(\mathcal{P}_f\);
色彩和纹理code \(c\) 生成掩码\(\mathcal{C}_m\)和实例\(\mathcal{C}_f\).
最后的图片为
\]

隐变量
注意到, 整个网络用到了4个隐变量, 分别是\(b, p, c\) 和\(z\), 其中
b \sim \mathrm{Cat}(K=N_b, p=1/N_b) \\
p \sim \mathrm{Cat}(K=N_p, p=1/N_p) \\
c \sim \mathrm{Cat}(K=N_c, p=1/N_c)
\]
其中\(N_b, N_p, N_c\)皆为超参数.
另外, 基于一个直接理解, 即轮廓是较为抽象的信息, 同一类的物体的轮廓往往是一致, 但是同一类的物体要进行细分依赖于\(c\)即色彩和纹理, 所以作者假设\(N_p < N_c\), 多个\(c\)会共享一个\(p\)(虽然我不知道怎么实现这个的). 另外, 由于背景往往和物体有很大的联系, 比如鸭子飞到树上是比较少见的事情, 所以在训练的时候, 作者会选择令\(b=c\), 相当于少采样了一次. 但是在测试的时候, 这个约束可以不关, 我们完全可以让鸭子飞到太空上.
背景
利用背景信息, 其实一个很直接很直接的问题是, 怎么得到背景信息呢? 这实际上是一个分割问题, 作者会利用检测器将图片中的背景信息提取出来, 所以上面的\(D_b, D_{bg\_aux}\) 都是基于patch而非整个图片工作的. 这样, 对于生成器\(G_b\)生成的图片, 我们同样可以进行相同的操作了.
\(D_b\)便是普通的用于判断图片真假的判别器, 后者\(D_{bg\_aux}\)似乎是用来判断这个patch是否是背景图片的, 这能够使得网络更好的生成背景图片.
轮廓
轮廓这部分生成器会生成掩码和实例, 并且之前的特征会继续传给下一个阶段使用.
要知道, 想要通过判别器\(D\)来训练生成器的一个很重要的条件是真实数据是存在的, 但是我们实际上并没有这部分数据(即轮廓), 所以作者采用了类似InfoGAN的info损失:
\]
其中\(D_p\)是用来近似条件分布的.
色彩和纹理
这部分是类似上面的, 因为我们同样没有色彩和纹理的数据, 同样有一个\(\mathcal{L_{c\_info}}\)的损失, 以及最后, 三个部分结合起来是最后的图片, 这部分可以直接用普通的adversarial loss \(\mathcal{L}_{c\_adv}\).
用于无监督分类
这个倒是没什么特别的, 就是再训练\(\phi_p, \phi_c\), 将图片\(\mathcal{C}_j\) 映射到隐变量\(c, p\), 并根据这些特征利用K均值分类.
代码
FineGAN的更多相关文章
- Fine-Grained(细粒度) Image – Papers, Codes and Datasets
Table of contents Introduction Survey papers Benchmark datasets Fine-grained image recognition Fine- ...
随机推荐
- hadoop/spark面试题
总结于网络 转自:https://www.cnblogs.com/jchubby/p/5449379.html 1.简答说一下hadoop的map-reduce编程模型 首先map task会从本地文 ...
- spring boot 之监听器ApplicationListener
监听器ApplicationListener 就是spring的监听器,能够用来监听事件,典型的观察者模式.ApplicationListener和ContextRefreshedEvent一般都是成 ...
- Android消除Toast延迟显示
Toast可以用来显示音量改变或者保存更新消息,如果用户一直点击,Toast会排队一个一个的,直到消息队列全部显示完,这样的效果显然是不好的,下面来看解决方法 Toast.makeText(ac ...
- d3基础入门一-选集、数据绑定等核心概念
引入D3 D3下载,本文下载时的版本为6.5.0 mkdir d3.6.5.0 unzip --help unzip d3.zip -d d3.6.5.0/ ls d3.6.5.0/ API.md C ...
- mysql与clickhouse的字段类型对应表
- SpringBoot(1):初始SpringBoot
一. SpringBoot 简介 1. SpringBoot介绍 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程.该框架使用了特 ...
- 时间同步之pxe,cobbler,dhcp
ntpdate 时间同步 同步方法 ntpdate ntp服务器IP 例: ntpdate 192.168.37.11 自动运行同步时间脚本 crontab -e * */1 * * * /usr/s ...
- 2020腾讯犀牛鸟网络安全T-Star高校挑战赛writeup
签到 浏览器禁用js,在www目录下有 key 命令执行基础 使用 | 可以执行其他命令,在 ../目录下有 key.php cat 一下读出来 你能爆破吗 一开始随便输了个账号的时候不是这个页面,抓 ...
- Offset函数(Excel函数集团)
此处文章均为本妖原创,供下载.学习.探讨! 文章下载源是Office365国内版1Driver,如有链接问题请联系我. 请勿用于商业!谢谢 下载地址:https://officecommunity-m ...
- LuoguB2102 计算鞍点 题解
Content 给定一个 \(5\times 5\) 的矩阵,请在这个矩阵中找出一个元素,使得这个元素既是它所在行的最大值,也是它所在列的最小值. Solution 如果直接暴力枚举每一个元素,再去算 ...