最近对于image inpainting的研究开始向生成结果的多样性开始转变。传统image inpainting方法虽然也可以生成貌似真实的完整图像,但是这些模型有一个根本性的问题:它们默认了输入的缺失图像应该对应某一个完整图像,然后将生成的图像与真实的完整图像通过重建误差来优化网络。这显然是不合理的。就如艺术品修复一样,对于同一件艺术品,不同的艺术家对其修复的结果肯定是不一样的,但是这些修复结果都是合理的(艺术家自身水平达标的前提下),因此,如果将缺失图像用 I m I_m Im​来表示,完整图像用 I g I_g Ig​表示,模型学习的应该是一个概率表示 p ( I g ∣ I m ) p(I_g|I_m) p(Ig​∣Im​)。

本文基于一个很直观的想法:越靠近mask边缘的缺失像素点,其应该越与mask边缘的已知像素有关。换句话说,越靠近mask边缘的缺失像素点,其多样性应该越小,越远离边缘的缺失像素点,其多样性应该越大。依照这个想法,作者通过构建网络将mask图(原本缺失处是0,观测处是1)生成一个概率图,依照这个概率图来确定生成像素是应该更加确定还是更加多样。
此外,本文与传统方法的另一个不同点在于,为了获得生成结果的多样性,本文并不是将图像经过编码后再解码来生成的,而是从随机噪声开始生成(这样在测试的时候对于同一个测试图像,取不同的噪声可以产生不同的修复结果),然后在生成的过程中不断的添加先验信息(由某个预训练的inpainting模型生成的完整图像),最终生成一个多样性的完整图像。并且为此作者还提出了一个专门配套的perceptual diversity loss来保证生成的多样性。
给出本文的流程图:

网络是经典的双阶段的模型,第一阶段预训练一个inpainting网络,可以产生比较粗糙的修复图像。之后本文的网络先是输入一个随机噪声,通过开始的几步卷积获得一个上采样结果,之后在每一个SPDNorm Residual Blocks中将预训练模型的粗糙修复结果(先验信息)和对应的mask输入到其中,不断进行特征的生成,最终随机噪声在不断添加的先验信息的加持下,生成理想的结果。SPDNorm Residual Blocks是本文的核心点,其中分为两部分,一部分是Hard SPDNNorm,其中的 D h D^h Dh用mask图生成Hard map。一部分是Soft SPDNorm,其中的 D s D^s Ds用mask图生成soft map。对于输入的特征 F i n F^{in} Fin经过不同的模块通过一系列卷积操作来生成相应的 F h a r d F^{hard} Fhard和 F s o f t F^{soft} Fsoft:
接下来具体来讲一下这两个map图的生成方式。
Hard map:顾名思义,就是一种很直接的概率图。如果将观测像素点的概率看做1,越靠近mask边缘的缺失像素点应该越确定(概率越接近于1),相反其概率应该越接近于0。于是作者给出了一个概率的迭代计算公式:
其中 M i M_i Mi​是第 i i i次迭代后得到的概率图,显然每经过一次迭代,概率图就会向内收缩一圈,然后每一次收缩的区域我么可以用 E i = M i − M i − 1 E_i = M_i − M_{i−1} Ei​=Mi​−Mi−1​来表示,并且收缩部分的概率由原来的0转变为 1 / k i 1/k^i 1/ki。由此随着越远离mask边缘,其概率也会以指数级衰减。本文将k设置为了4。
Soft map:对比前面hard map,这里最大的不同点就是前面的hard map是不需要训练,直接由mask图计算得到的,而soft map则是由一个可训练的网络得到的。通过一个可训练的网络,soft map提取粗糙完整图像 P P P的特征 F p F^p Fp和前面步骤计算结果 F i n F^{in} Fin的先验信息,动态的生成一个概率图。计算过程可以表示为 D s = σ ( C o n v ( [ F p , F i n ] ) ⋅ ( 1 − M ) + M D^s = \sigma(Conv([F^p ,F^{in}]) · (1 − M) + M Ds=σ(Conv([Fp,Fin])⋅(1−M)+M其中 M M M是缺失图像对应的mask图。

这里个人还有一点看法,通过给的示意图来看,soft map生成结果十分平滑,几乎聚集在0.5左右,并且最重要的一点是,其本身似乎并不满足作者所期望的中间小,边缘大的特性。所以我觉得这里所计算的soft map应该更像是一种依据全局结构信息来生成的一种结构可能性图,而这种可能性图并不非常依赖是否靠近mask边缘:试想一根树枝的图像,我们从中间mask掉一块(灰色部分),通过全局结构信息,我们很容易判定缺失部分中间的信息(A处)是一根树枝,并且相比于树枝周围的信息,B处虽然更加处在边缘,但是显然其信息不如A处容易推断。
由此,作者说soft map更多的是稳定模型训练(实验Table 3有体现),是有根据的。
前面我们可以看出,为了使得生成结果具有多样性,模型每次生成都是从随机噪声开始的。因此为了体现这种随机噪声的作用,最后作者又引入感知多样性损失。首先传统的多样性损失是这样的:
其中 I o u t 1 I_{out1} Iout1​和 I o u t 2 I_{out2} Iout2​分别是由 z 1 , z 2 z_1,z_2 z1​,z2​生成的完整图像。然而直接套用这个是有问题的:1、我们在进行比较时,不应该将mask之外的内容进行多样性比较。2、为了产生最大的差异性,网络的一个平凡解是直接生成一黑一白的两个图像(后面的实验Fig 7有体现)。由此,作者提出了一种新的感知多样性损失:
首先感知损失,那么一定是特征之间求损失,这里的 F i F_i Fi​就是代表VGG-19网络来提取生成图像的特征。之后,作者用M来限制了损失的范围。**其实个人觉得,这里已经有对比学习的味道了。**除此之外,网络还有常用的 reconstruction loss, feature matching loss and hinge adversarial loss。
至此,方法过程介绍完了。

PD-GAN: Probabilistic Diverse GAN for Image Inpainting相关推荐

  1. 【GAN优化】GAN训练的几个问题

    从今天开始,我们将关注训练GAN时产生的问题,作为第一篇文章,首先从几个方面来分析一下实际训练的GAN和理论模型上的GAN不同之处以及实践中出现的问题.第一个部分将介绍最优判别器引发的梯度消失问题,第 ...

  2. 【GAN优化】GAN优化专栏栏主小米粥自述,脚踏实地,莫问前程

    今天是加入有三AI的第三期,给大家来个自我介绍,也聊一聊我的一些想法和体会. 作者 | 小米粥 编辑 | 言有三 随走随行 其实我一直非常佩服那些有规划又努力的人,因为我是一个对自己没太多规划的人. ...

  3. 【GAN优化】GAN优化专栏上线,首谈生成模型与GAN基础

    大家好,今天小米粥在有三AI开设新专栏<GAN的优化>.在这个专栏中,我们会讲述GAN的相关背景.基本原理.优化等相关理论,尤其是侧重于GAN目标函数的优化.小米粥和有三将带领大家从零学起 ...

  4. Tensorflow 对抗生成网络GAN 不服就GAN

    这一节的回顾也意味着深度学习基础课程学习进入了尾声了,GAN作为性能远超我们上一节提到的VAE的一个存在还是有很多出彩的地方的: 首先引用理查德费曼的一句话-'What I cannot create ...

  5. 想怎么GAN就怎么GAN,一键拯救发际线

    郭一璞 劈图栗 乾明 发自 亚龙湾  量子位 报道 | 公众号 QbitAI GAN可GAN,非常GAN. 生成对抗网络(GAN)除了生成各种各样的人脸,现在还能对人脸进行各种各样的精确"整 ...

  6. 如何训练GAN?训练GAN的技巧和方法

    https://github.com/soumith/ganhacks 1.输入归一化 把信号归一化到-1 到1 generator的最后一层输出用Tanh 2.使用修饰过后的损失函数 在GAN的文章 ...

  7. CMU 提出全新 GAN 结构,GAN 自此迈入预训练大军!

    文|林锐 众所周知,现在 GAN 的应用是越来越宽泛了,尤其是在 CV 领域.不仅可以调个接口生成新头像图一乐,也可以用 GAN 做数据增强让模型更加健壮. ▲嘉然你带我走吧嘉然! 在CV领域,不像分 ...

  8. 能量视角下的GAN模型:GAN=“挖坑”+“跳坑”

    作者丨苏剑林 单位丨广州火焰信息科技有限公司 研究方向丨NLP,神经网络 个人主页丨kexue.fm 在这个系列中,我们尝试从能量的视角理解 GAN.我们会发现这个视角如此美妙和直观,甚至让人拍案叫绝 ...

  9. LSGANs : Least Squares GAN(最小二乘GAN)--解决标准GAN生成的图片质量不高以及训练过程不稳定问题

    LSGANs基本思想 LSGANs的英文全称是Least Squares GANs.这篇文章针对的是标准GAN生成的图片质量不高以及训练过程不稳定这两个缺陷进行改进.改进方法就是将GAN的目标函数由交 ...

最新文章

  1. InfluxDB 分布式时间序列数据库环境搭建——据qcon大会2016qiniu说集群很坑且闭源了...
  2. python新手代码-Python的初学者你现在可以自己“看”到代码的运行了!
  3. 野火STM32F103教学视频完整目录(配合霸道-指南者开发板)
  4. 超大规模智能模型相关工作总结:编程实现框架、算法模型、微调技术和应用...
  5. 什么笔记本电脑好用_苹果笔记本好用吗?苹果笔记本怎么样?
  6. PHP Fatal error: Class 'com' not found in ... 的处理办法
  7. 【AWS】 AWS Free Usage Tier
  8. web.config SetAttributes
  9. androidru使用adb启动activity和monkeyrunner启动activity
  10. Windows系统如何删除远程桌面连接记录
  11. 手机版浏览器f12_没有广告的浏览器??
  12. NLP 的巨人肩膀(下):从 CoVe 到 BERT
  13. 本地 Git 文件夹显示绿色标识
  14. Python和MD5网站挂马检测程序
  15. 公网远程开机(唤醒家庭PC)
  16. java兔子繁殖_兔子繁衍问题 (考虑死亡)
  17. 2021最新某某文书列表参数pageId、ciphertext、__RequestVerificationToken以及接口返回数据result逆向分析(二)
  18. Xilinx MIG IP核app_wdf_rdy信号一直为低
  19. 打印机可以打印不能扫描怎么弄_打印机无法扫描怎么解决 打印机无法扫描相关介绍【解决方法】...
  20. 心电图前波过多_心电图老也搞不清的那些波啊——δ波

热门文章

  1. 向武 清华大学 计算机,哥哥保送弟弟全市第二 双胞胎同时上清华(组图)
  2. Altium designer--软件简介及安装教程(AD)
  3. OSChina 周四乱弹 ——年终奖300,前提是过年加班,干不干?
  4. 学期末总结——我体会的翻转课堂
  5. 运营公众号成功的三大要素
  6. 对学术不怎么热爱,只想当大学老师而去读博可以么?
  7. 详细解说Windows 8.1与Windows 8的区别(Win8.1与Win8区别)
  8. C语言第六章函数实验报告,第六章实验报告
  9. 最新花粥云商城源码(硬防墙)V1.1版本
  10. 破案了!不会讲笑话不会作诗的chatGPT!