CVPR2020之多码先验GAN:预训练模型如何使用?

Stella981
• 阅读 356

点击上方“机器学习与生成对抗网络”,关注"星标"

获取有趣、好玩的前沿干货!CVPR2020之多码先验GAN:预训练模型如何使用?

今天分享一篇港中文周博磊老师组的工作。

CVPR2020之多码先验GAN:预训练模型如何使用?

Image Processing Using Multi-Code GAN Prior

https://arxiv.xilesou.top/pdf/1912.07116.pdf

CVPR2020之多码先验GAN:预训练模型如何使用?

尽管生成对抗网络(GAN)在图像生成里取得了巨大成功,但是将训练好的GAN模型应用到真实的图像处理任务仍然具有挑战性。无监督的GAN中,生成器通常将潜在空间Z映射到图像空间image,也就是没有地方提供去采纳一个真实图像作为输入,这导致训练好的模型无法进行很好地进行后续图像处理

为了让训练好的GAN能用于处理图像,现有方法尝试以重新反向传播(寻找合适的Z)或者添加一个额外的编码器encoder将图像映射到潜在空间。但多数情况下两者的重建并不理想。

在这项工作中提出一种新的逆映射(image->Z)方法,将训练好的GAN作为一个有效的先验去处理多种图像处理任务。具体而言,给定需要做逆映射的GAN模型,使用多个潜码Z利用该GAN模型生成多个特征图(映射到生成器的某个中间层),然后计算它们的重要性系数最终组合并生成目标图像。这种多参数化潜码Z训练的方式可以显著提高图像的重建质量。而高质量的图像重建可以使得训练好的GAN作为一种先验应用于许多真实场景下的应用,例如:图像上色、超分辨率、图像修复、图像语义物体操作编辑等等。同时论文还进一步分析了训练好的模型中每一层的表征属性,去解释每层所能表示的知识。

CVPR2020之多码先验GAN:预训练模型如何使用?

1、GAN逆映射(GAN inversion)

CVPR2020之多码先验GAN:预训练模型如何使用?

一个无监督、训练好的GAN可以通过从潜在空间Z中采样然后合成高质量的图像,也就是Z->image。而所谓的GAN逆映射指的是,找到一个合适Z去恢复目标图像,也就是image->Z(Z此时是一个待优化的参数)。

2、特征组合

作者认为单码(single latent code)去恢复重建目标图像的所有细节so hard,所以使用多码,期待它们可以更全方面的去重建更细致的部分(将复杂任务细化、分而治之)。本文引进的所谓多码(multiple latent codes),如何将它们结合在一起优化是一个关键问题。

CVPR2020之多码先验GAN:预训练模型如何使用?

作者的方法是将生成器“分为”两部分,G1和G2,L是中间某层的特征输出,提出“自适应通道重要性”(Adaptive Channel Importance)去做融合后重建。

CVPR2020之多码先验GAN:预训练模型如何使用?

CVPR2020之多码先验GAN:预训练模型如何使用?

CVPR2020之多码先验GAN:预训练模型如何使用?

3、优化目标

最终整个框架是求解Z和α

CVPR2020之多码先验GAN:预训练模型如何使用?

重建损失使用的是MSE和VGG的感知损失距离:

CVPR2020之多码先验GAN:预训练模型如何使用?

4、图像处理任务的应用

对于图像上色

CVPR2020之多码先验GAN:预训练模型如何使用?

CVPR2020之多码先验GAN:预训练模型如何使用?

对于图像超分

CVPR2020之多码先验GAN:预训练模型如何使用?

CVPR2020之多码先验GAN:预训练模型如何使用?

对于图像修复

CVPR2020之多码先验GAN:预训练模型如何使用?

CVPR2020之多码先验GAN:预训练模型如何使用?

5、GAN里的知识表征

分别使用face、church、conference room、bedroom四个数据集预训练PGGAN,并以此作为先验。当使用single latent code去重建时,很难“覆盖先验”,出来的结果会呈现原训练集图像内容,而无法重建到目标图像。

CVPR2020之多码先验GAN:预训练模型如何使用?

结论

本文提出了一种新颖的GAN逆映射方法。基于预训练的无监督GAN,使用多码(multiple latent codes)去重建目标图像的方法。实验表明该方法可以有效利用预训练好的GAN进行多种图像处理任务。


公众号近期荐读:

GAN整整6年了!是时候要来捋捋了!

新手指南综述 | GAN模型太多,不知道选哪儿个?

数百篇GAN论文已下载好!搭配一份生成对抗网络最新综述!

CVPR2020之MSG-GAN:简单有效的SOTA

CVPR2020之姿势变换GAN:图像里谁都会劈叉?

3月已半,GAN最近都在整些啥?

有点夸张、有点扭曲!速览这些GAN如何夸张漫画化人脸!

见微知细之超分辨率GAN!附70多篇论文下载!

天降斯雨,于我却无!GAN用于去雨如何?

脸部转正!GAN能否让侧颜杀手、小猪佩奇真容无处遁形?

容颜渐失!GAN来预测?

强数据所难!SSL(半监督学习)结合GAN如何?

弱水三千,只取你标!AL(主动学习)结合GAN如何?

异常检测,GAN如何gan ?

虚拟换衣!速览这几篇最新论文咋做的!

脸部妆容迁移!速览几篇用GAN来做的论文

【1】GAN在医学图像上的生成,今如何?

01-GAN公式简明原理之铁甲小宝篇


GAN&CV 交流群 ,无论小白还是大佬,诚挚邀您加入!

一起讨论交流!长按备注【进群】加入:

CVPR2020之多码先验GAN:预训练模型如何使用?

更多分享、长按关注本公众号:

CVPR2020之多码先验GAN:预训练模型如何使用?

本文分享自微信公众号 - 看那个码农(gh_31e9c1ac7ce4)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
光头强的博客 光头强的博客
4个月前
Java面向对象试题
1、请创建一个Animal动物类,要求有方法eat()方法,方法输出一条语句“吃东西”。创建一个接口A,接口里有一个抽象方法fly()。创建一个Bird类继承Animal类并实现接口A里的方法输出一条有语句“鸟儿飞翔”,重写eat()方法输出一条语句“鸟儿吃虫”。在Test类中向上转型创建b对象,调用eat方法。然后向下转型调用eat()方
刚刚好 刚刚好
4个月前
css问题
1、在IOS中图片不显示(给图片加了圆角或者img没有父级)<div<imgsrc""/</divdiv{width:20px;height:20px;borderradius:20px;overflow:h
blmius blmius
1年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
小森森 小森森
4个月前
校园表白墙微信小程序V1.0 SayLove -基于微信云开发-一键快速搭建,开箱即用
后续会继续更新,敬请期待2.0全新版本欢迎添加左边的微信一起探讨!项目地址:(https://www.aliyun.com/activity/daily/bestoffer?userCodesskuuw5n)\2.Bug修复更新日历2.情侣脸功能大家不要使用了,现在阿里云的接口已经要收费了(土豪请随意),\\和注意
晴空闲云 晴空闲云
4个月前
css中box-sizing解放盒子实际宽高计算
我们知道传统的盒子模型,如果增加内边距padding和边框border,那么会撑大整个盒子,造成盒子的宽度不好计算,在实务中特别不方便。boxsizing可以设置盒模型的方式,可以很好的设置固定宽高的盒模型。盒子宽高计算假如我们设置如下盒子:宽度和高度均为200px,那么这会这个盒子实际的宽高就都是200px。但是当我们设置这个盒子的边框和内间距的时候,那
艾木酱 艾木酱
3个月前
快速入门|使用MemFire Cloud构建React Native应用程序
MemFireCloud是一款提供云数据库,用户可以创建云数据库,并对数据库进行管理,还可以对数据库进行备份操作。它还提供后端即服务,用户可以在1分钟内新建一个应用,使用自动生成的API和SDK,访问云数据库、对象存储、用户认证与授权等功能,可专
Wesley13 Wesley13
1年前
4种主流超参数调优技术
点击上方“机器学习与生成对抗网络”,关注"星标"获取有趣、好玩的前沿干货!!(https://oscimg.oschina.net/oscnet/88766b7e21b9447b
Stella981 Stella981
1年前
Docker 部署SpringBoot项目不香吗?
  公众号改版后文章乱序推荐,希望你可以点击上方“Java进阶架构师”,点击右上角,将我们设为★“星标”!这样才不会错过每日进阶架构文章呀。  !(http://dingyue.ws.126.net/2020/0920/b00fbfc7j00qgy5xy002kd200qo00hsg00it00cj.jpg)  2
helloworld_34035044 helloworld_34035044
7个月前
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
helloworld_28799839 helloworld_28799839
4个月前
常用知识整理
Javascript判断对象是否为空jsObject.keys(myObject).length0经常使用的三元运算我们经常遇到处理表格列状态字段如status的时候可以用到vue