FineGAN
概
利用GAN生成图片, 特别的是, 这是一种分层的生成方式: 背景 + 轮廓 + 色彩和纹理. 同时这个网络还可以用于无监督的分类.
主要内容
具体流程如下图所示:
-
背景code + 隐变量 生成背景 ;
-
轮廓code + 生成掩码 和轮廓;
-
色彩和纹理code 生成掩码和实例.
-
最后的图片为
隐变量
注意到, 整个网络用到了4个隐变量, 分别是 和, 其中
其中皆为超参数.
另外, 基于一个直接理解, 即轮廓是较为抽象的信息, 同一类的物体的轮廓往往是一致, 但是同一类的物体要进行细分依赖于即色彩和纹理, 所以作者假设, 多个会共享一个(虽然我不知道怎么实现这个的). 另外, 由于背景往往和物体有很大的联系, 比如鸭子飞到树上是比较少见的事情, 所以在训练的时候, 作者会选择令, 相当于少采样了一次. 但是在测试的时候, 这个约束可以不关, 我们完全可以让鸭子飞到太空上.
背景
利用背景信息, 其实一个很直接很直接的问题是, 怎么得到背景信息呢? 这实际上是一个分割问题, 作者会利用检测器将图片中的背景信息提取出来, 所以上面的 都是基于patch而非整个图片工作的. 这样, 对于生成器生成的图片, 我们同样可以进行相同的操作了.
便是普通的用于判断图片真假的判别器, 后者似乎是用来判断这个patch是否是背景图片的, 这能够使得网络更好的生成背景图片.
轮廓
轮廓这部分生成器会生成掩码和实例, 并且之前的特征会继续传给下一个阶段使用.
要知道, 想要通过判别器来训练生成器的一个很重要的条件是真实数据是存在的, 但是我们实际上并没有这部分数据(即轮廓), 所以作者采用了类似InfoGAN的info损失:
其中是用来近似条件分布的.
色彩和纹理
这部分是类似上面的, 因为我们同样没有色彩和纹理的数据, 同样有一个的损失, 以及最后, 三个部分结合起来是最后的图片, 这部分可以直接用普通的adversarial loss .
用于无监督分类
这个倒是没什么特别的, 就是再训练, 将图片 映射到隐变量, 并根据这些特征利用K均值分类.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix