翻到最后有视频版哦~

论文地址:https://arxiv.org/pdf/1912.07116.pdf

项目地址:https://github.com/genforce/mganprior

文字版

这次给大家分享一篇,关于GAN逆推的论文,是周博磊老师组在cvpr2020上的一个工作

因为现在GAN的生成效果已经非常不错,但是他们的输入都是随机噪声,而我们的需求肯定是对一张已有的图片进行操作,所以GAN逆推这个主题是很关键的,是GAN编辑和生成的基础。GAN的逆推就是生成器的反过程,生成器是把一个向量输入,输出一张图片,逆推的效果是输入一张图片,输出一个他在GAN空间中的向量

a就是这篇论文逆推的效果,bcdef都是在逆推后达到的效果,可以看到都很不错

我会从这五个方面介绍一下这篇论文

背景

首先是背景,背景就是GAN的生成能力已经非常不错,但是都是在随机噪声输入的情况下,我们的需求是对一张现有的图片进行操作,但是这个很难

动机

动机呢就是之前的一些方式,都不能很好的把一张真实图片逆推到GAN空间中,而且对高分辨率图片,效果更加糟糕

目标

然后论文的研究目标就是充分利用已经训好的生成器,使得GAN的逆推最优,有了好的逆推效果,就能做很不错的图片编辑

方法

然后来看方法,先看一下之前的经典逆推方法,这个图是我拼起来的,大家凑合看一下。我们有一张真实图片,目标就是找到一个向量,这个向量通过生成器之后能生成和真实图片一样的图片。第一个经典方法的话就是左边这个算法,下面这个优化公式,有loss,然后去调整输入的w

第二个经典方法的话,就是学一个encoder,没什么好说的

然后是这篇论文的框架图,论文提出,单单靠一个向量去逆推,是不行的,表达能力太弱了,需要多个向量一起上,每个向量负责一小块的逆推效果,这样才能充分和真实图片近似。宏观来看,和之前的方法是差不多的,都是过生成器,然后和原图做loss,梯度反传调z

我来把这个结构拆开来讲一下,首先,把生成器劈成两半,多个向量过G1后生成很多个中间特征,这个是第一步

第二步呢,就是引入一个通道权值,每个中间特征的通道上都赋了权重,然后把带了权重的特征加在一起给G2,输出的就是逆推后的效果

第三,讲一下怎么优化,优化目标是多个输入z,还有对应的权值,优化函数是图片的L2loss和vgg 的loss,这个loss反传去优化。整个过程没有网络,只是一个简单的优化过程。

除了可以逆推原图,作者还发现,对于图片上色,超分,图片修补等,修改优化函数后都能得到很不错的结果,在实验里细说

实验

下面是实验,首先说一下逆推原图的效果,第一行是原图,方法a是只用一个向量去逆推,方法b是学习一个encoder来逆推,方法c是a和b的结合,方法d是本文的方法,可以看到在定量和定性上的效果,本文的效果都是最好的

然后是文章的一个消融实验,我们先竖着看,发现输入向量的个数不是越多越好的,多到一定程度,效果就提不上去了,这说明在优化空间的维数和逆推的效果之间存在trade-off的,y轴是逆推图片和真实图片的相关性大小。然后横着看,发现逆推的效果随着生成器切分层序列的增加呈现上升趋势,在第四层后变化不明显。

接着,文章探究了一下逆推的过程中,每个向量扮演了什么样的角色,具体的方法是,比如拿掉z1,得到生成前后的差异图,和原图分割出来的不同类做IOU,就发现z1其实是生成塔的,z7是生成树的等等

然后是几个应用,第一个是图片上色,输入一张灰度图片,可以上色,这个AuC指标是用一个pretrain的网络评价的,输出的ab图做L2 loss。可以看到定性和定量效果都是最好的

第二个应用是超分,输入一张低分辨率图片,可以看到效果还是非常不错的

第三个应用是图像修补,给定图片和掩码,能回复出原图,从指标上看还是非常不错的

第四个应用是人脸编辑,对真实图片逆推后,用interfacegan学到的语义向量去编辑,发现也能达到不错的效果

实验的最后是一个解释性,我们发现对于这样一张卧室的图片,用人脸集,教堂集训出来的模型也能逆推,且生成器切分层的索引越大,效果越好,但我们也要看到,对于卧室集训出的模型,在第四层就已经效果非常好了,但是其他集就算第八层也一般般,这其实也能解释。因为卧室和人脸等的语义是不一样的,所以在人脸模型在浅层的一些高级特征没法生成卧室的图片,但是随着网络加深,深层的低级特征,比如像素等,是可以粗略组合出卧室的图片的

同时,我们看上色和图片修补的例子,对于上色,我们发现到第八层,效果才最好,但是对于修补,第四层就很好了,层数再加深甚至是有害的。因为上色任务,大体的结构是有的,只需要修改低级特征颜色,故在深层网络中有体现,对于修补任务,需要补的是结构,是高级特征,所以在相对浅的网络中有体现

结论

然后是结论,就是更多的参数,能达到更好的逆推效果,同时这个方法也能有很多的图片编辑应用

不足

对于不足,我觉得是参数太多了,逆推会非常非常慢

视频

[CVPR2020]Image

[OpenBayes实现][CVPR2020]Image Processing Using Multi Code GAN Prior

【CVPR2020】【逆推】Image Processing Using Multi-Code GAN Prior相关推荐

  1. HDU-5935 Car 逆推 贪心 精度

    题意 1 主人公从0开始开始跑 2 使用速度非递减技能 3 警察记录下了多个整数时间点他的位置 整数时间点不明确 让我们求主人公所花费的最小时间跨越过最后一个位置点 分析 本体选用逆推处理 为啥用逆推 ...

  2. 递推算法5——逆推法之猴子摘桃问题

    逆推法是根据结果推出已知条件,推算方法与顺推法类似,只是需要将结果作为初始条件向前推算.比较典型的例子是猴子摘桃和存取问题 猴子摘桃 [问题描述] 猴子第一天摘了若干个桃子,当即吃了一半,还不过瘾,又 ...

  3. 递推算法6——逆推法之存取问题

    该存多少钱 小明打算为自己的三年研究生生活准备了一笔学费,一次性的存入银行,保证每年年底取出1000元,到第3年学习结束时刚刚好取完.假设银行一年整存零取得月息为0.31%,请问需存入银行多少钱? [ ...

  4. hdu 3853 LOOPS (概率dp 逆推求期望)

    题目链接 LOOPS Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 125536/65536 K (Java/Others) Tot ...

  5. Roguelike+RPG如何给玩家刺激的游戏体验? 《我功夫特牛》系统逆推

    一.游戏介绍及游玩情况 <我功夫特牛>是一款武侠题材,火柴人画风的休闲游戏,玩法上笔者认为它是Roguelike+RPG组合型游戏,即单局死亡重置+角色养成游戏.其游戏内核,既有战斗和探索 ...

  6. 逆推继承看原型 函数的角色 函数声明和函数表达式的区别 函数中this指向的问题

    逆推继承看原型 <!DOCTYPE html> <html lang="en"> <head><meta charset="UT ...

  7. [剑指offer][JAVA]面试题第[46]题[把数字翻译成字符串][递归][逆推]

    [问题描述][中等] 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 "a" ,1 翻译成 "b",--,11 翻译成 "l", ...

  8. 全排列及相关扩展算法(四)——原始中介数通过逆推求原排列算法

    1.中介数逆推原排列:上一章我们讲到了中介数,通过一个排列可以很方便地求数它的中介数,通过中介数也可以很方便地求出排位序号.但是通过中介数逆推原排列就不是那么容易了.因为我们每求一位数,都需要对比其前 ...

  9. 二叉树的深度优先遍历逆推

    二叉树的深度优先遍历逆推 二叉树的深度优先遍历有三种方式,分别叫做先序遍历(preorder).中序遍历(inorder)和后序遍历(postorder),它们之间的不同在于访问每个节点的次序不同. ...

最新文章

  1. 【转载】xmind的使用安装方法
  2. PostgreSQL md5 auth method introduce, with random salt protect
  3. MLPerf训练最新发榜:谷歌、NV、浪潮 ,冠军榜“三国杀”
  4. ECMA_作用域深入This关键字
  5. Unity5 AssetBundle系列——简单的AssetBundleManager
  6. python自动点赞_用Python模拟技巧带你实现自动抽屉登录自动点赞
  7. 超详细Mysql的安装与卸载
  8. 三分钟Docker-镜像、容器实战篇
  9. 布局优化之ViewStub、Include、merge使用分析
  10. 凸优化第三章凸函数 3.6关于广义不等式的凸性
  11. unixlinux命令,20个 Unix/Linux 命令技巧
  12. Java_基础—List集合存储学生对象并遍历
  13. Python基础-基本语法
  14. 记一次产品需求:图片等比缩放和CSS自适应布局16:9
  15. python聚类系数_NetworkX 计算聚类系数的Python实现
  16. java d打字游戏_练习--java实现的打字游戏
  17. 300字美文摘抄加赏析
  18. android涂鸦实现
  19. servlet修改用户头像_修改头像总结
  20. cocos3D 教程

热门文章

  1. 得力计算机半音乐曲,60条最全音乐知识科普,让你轻松开启音乐之门!
  2. 新能源储能仪表推荐-ACR10R-D16TE4 防逆流仪表通讯接线及Modbus-RTU协议通讯表说明
  3. java 五子棋_Java GUI 单机版五子棋
  4. 一个故事,让你一生不再生气
  5. ubuntu上安装RobotFramework+ride
  6. 为什么大公司一定要使用微服务?微服务杂谈(1),推荐学习
  7. 公允价值变动及公允价值变动损益
  8. 7805和78l05可以代换吗_78L05和7805的引脚有何不同??
  9. 使用IDEA画结构图
  10. 字符串翻转并实现“i love china“--“china love i“