点击上方“AI公园”,关注公众号,选择加“星标“或“置顶”


作者:Chu-Tak Li

编译:ronghuaiyang

导读

本文给出了图像恢复的一般性框架,编解码器 + GAN,后面的图像复原基本都是这个框架。

本文会介绍图像修复的目的,它的应用,等等。然后,我们将深入研究文献中关于图像修复的第一个生成模型(即第一个基于GAN的修复算法,上下文编码器)。

目标

  • 很简单的!我们想要填补图像中缺失的部分。如图1所示。

图1,中心缺失的图像(左),复原后的图像(右)。

应用

  • 移除图像中不需要的部分(即目标移除)

  • 修复损坏的图像(可以扩展到修复电影)

  • 很多其他应用!

术语

给出一个有一些缺失区域的图像,我们定义

  • 缺失像素/生成像素/空洞像素:待填充区域的像素。

  • 有效像素/ground truth像素:和缺失像素含义相反。需要保留这些像素,这些像素可以帮助我们填补缺失的区域。

传统方法

  • 给出一个有一些缺失区域的图像,最典型的传统方法填充缺失区域是复制粘贴。

  • 主要思想是从图像本身或一个包含数百万张图像的大数据集中寻找最相似的图像补丁,然后将它们粘贴到缺失的区域。

  • 然而,搜索算法可能是耗时的,它涉及到手工设计距离的度量方法。在通用化和效率方面仍有改进的空间。

数据驱动的基于深度学习的方法

  • 由于卷积神经网络(Convolutional Neural Networks, CNNs)在图像处理方面的成功,很多人开始将CNNs应用到自己的任务中。基于数据驱动的深度学习方法的强大之处在于,如果我们有足够的训练数据,我们就可以解决我们的问题。

  • 如上所述,图像修复就是将图像中缺失的部分补上。这意味着我们想要生成一些不存在或没有答案的东西。因此,所有基于深度学习的修复算法都使用生成对抗网络(GANs)来产生视觉上吸引人的结果。为什么视觉上吸引人呢?由于没有模型来回答生成的问题,人们更喜欢有良好视觉质量的结果,这是相当主观的!

  • 对于那些可能不知道GANs的读者,我推荐你先去了解一下。这里以图像修复为例,简单地说,典型的GAN由一个生成器和一个鉴别器组成。生成器负责填补图像中缺失的部分,鉴别器负责区分已填充图像和真实图像。请注意,真实的图像是处于良好状态的图像(即没有缺失的部分)。我们将随机地将填充的图像或真实的图像输入识别器来欺骗它。最终,如果鉴别器不能判断图像是被生成器填充的还是真实的图像,生成器就能以良好的视觉质量填充缺失的部分!

第一个基于GAN的修复方法:上下文编码器

在对image inpainting做了简单的介绍之后,我希望你至少知道什么是image inpainting, GANs(一种生成模型)是inpainting领域常用的一种。现在,我们将深入研究本系列的第一篇论文。

Intention

  • 作者想训练一个CNN来预测图像中缺失的像素。众所周知,典型的CNNs(例如LeNet手写数字识别和AlexNet图像分类)包含许多的卷积层来提取特征,从简单的结构特征到高级的语义特征(即早期层简单的特征,比如边缘,角点,到后面的层的更复杂的特征模式)。对于更复杂的功能模式,作者想利用学到的高层语义特征(也称为隐藏特征)来帮助填充缺失的区域。

  • 此外,为修复而学习的特征需要对图像进行更深层次的语义理解。因此,学习到的特征对于其他任务也很有用,比如分类、检测和语义分割。

背景

在此,我想为读者提供一些背景信息,

  • Autoencoders:这是一种通常用于重建任务的CNN结构。由于其形状,也有人称之为沙漏结构模型。对于这个结构,输出大小与输入大小相同,我们实际上有两个部分,一个是编码器,另一个是解码器,如下图2所示。编码器部分用于特征编码,针对输入得到紧凑潜在的特征表示,而解码器部分则对潜在特征表示进行解码。我们通常把中间层称为低维的“瓶颈”层,或者简单地称之为“瓶颈”,因此整个结构看起来就像一个沙漏。让我们想象一下,我们将一幅完好无损的图像输入到这个自动编码器中。在这种情况下,我们期望输出应该与输入完全相同。这意味着一个完美的重建。如果可能的话,“瓶颈”是输入的一个完美的紧凑潜在特征表示。更具体地说,我们可以使用更少的数字来表示输入(即更有效,它与降维技术有关)。因此,这个“瓶颈”包含了几乎所有的输入信息(可能包括高级语义特征),我们可以使用它来重构输入。

图2,自编码器的结构图解

上下文编码器进行图像生成

图3,提出的上下文编码器

图3显示了提出的上下文编码器的概要。首先,输入的是mask图像(即有中心缺失的图像)。输入编码器以获得编码后的特征。然后,本文的主要贡献是在编码特征和解码特征之间放置通道全连接层,以获得更好的语义特征(即“瓶颈”)。最后,解码器利用“瓶颈”特征重建缺失的部分。让我们来看看他们的网络内部。

图4,提出的网络的结构细节

编码器

  • 编码器使用AlexNet结构,他们用随机初始化权值从头开始训练他们的网络。

  • 与原始的AlexNet架构和图2所示的自动编码器相比,主要的区别是中间的通道全连接层。如果网络中只有卷积层,则无法利用特征图上距离很远的空间位置的特征。为了解决这个问题,我们可以使用全连接层,即当前层的每个神经元的值依赖于上一层的所有神经元的值。然而,全连接层会引入许多参数,8192x8192=67.1M,这甚至在GPU上也很难训练,作者提出了通道全连接层来解决这个问题。

通道全连接层

  • 实际上,通道全连接层非常简单。我们只是完全独立地连接每个通道而不是所有的通道。例如,我们有m个大小为n x n的特征映射。如果使用标准的全连接层,我们会有m²n⁴个参数,对于通道级的全连接层,我们只有mn⁴个参数。因此,我们可以在距离很远的空间位置上捕获特征,而不需要添加那么多额外的参数。

解码器

  • 对于解码器来说,这只是编码过程的反向。我们可以使用一系列的转置卷积来获得期望大小的重建图像。

损失函数

  • 本文使用的损失函数由两项组成。第一项是重建损失(L2损失),它侧重于像素级的重建精度(即PSNR方向的损失),但总是会导致图像模糊。第二个是对抗损失,它通常用于GANs。它鼓励真实图像和填充图像之间数据分布更接近。

  • 对于那些对损失函数感兴趣的读者,我强烈推荐你们阅读这篇论文中的方程。在这里,我只是口头描述每个损失项。

重建损失(L2损失),M表示缺失的区域(1表示缺失区域,0表示有效像素),F是生成器

  • L2损失:计算生成的像素与对应ground truth像素之间的L2距离(欧几里得距离)。只考虑图4中所示的缺失区域。

对抗损失,D是鉴别器。我们希望训练出一种能够区分填充图像和真实图像的鉴别器

  • 对抗损失:对抗鉴别器的结构如图4所示。鉴别器的输出是一个二进制值0或1。如果输入是真实图像,则为1,如果输入是填充图像,则为0。

联合损失,Lambda_rec为0.999,Lambda_adv为0.001

  • 使用随机梯度下降(SGD),Adam优化器交替训练生成器和鉴别器。

实验结果

  • 评估使用了两个数据集,即Paris Street View和ImageNet。

  • 作者首先展示了修复结果,然后他们还表明,作为预训练步骤,学习到的特征可以迁移到其他任务中。

语义修复

图5,修复结果,前3行是ImageNet数据集的结果,下面2行是来自Paris StreetView数据集的结果

  • 图5显示了使用建议的上下文编码器的修复结果。

表1,Paris StreetView数据集的像素重建损失

  • 作者与传统的最近邻修复算法进行了比较。显然,该方法优于最近邻修复方法。

图6,使用不同方法的修复结果

  • 图6显示了使用各种方法的修复结果。我们可以看到L2损失倾向于给出模糊的图像(第二列)。L2 +对抗性的损失给更清晰的填充图像。对于NN-Inpainting,他们只是复制和粘贴最相似的图像补丁到缺失的区域。

特征学习

图7,最近邻的上下文

  • 为了显示他们学习到的特征的有用性,作者尝试编码不同的图像patch,并根据编码的特征得到最相似的patch。在图7中。作者将其与传统的HOG和典型的AlexNet进行了比较。它们实现了与AlexNet类似的表现,但AlexNet是在一百万张标有数据集的图像上预训练的。

表2,分类、检测和语义分割的定量比较。

  • 如表2所示,在ImageNet上预训练过的模型具有最好的性能,但需要昂贵的标签。在该方法中,上下文是用于训练模型的监督。这就是他们所谓的通过修复图像来学习特征。很明显,它们学习到的特征表示与其他借助辅助监督训练的模型相当,甚至更好。

总结

  • 所提出的上下文编码器训练可以在上下文的条件下生成图像。在语义修复方面达到了最先进的性能。

  • 学习到的特征表示也有助于其他任务,如分类,检测和语义分割。

要点

我想在这里强调一些要点。

  • 对于图像修复,我们必须使用来自有效像素的“提示”来帮助填充缺失的像素。“上下文”一词是指对整个图像本身的理解。

  • 本文的主要贡献是通道全连接层。其实,理解这一层并不难。对我来说,它是Non-Local Neural Networks或Self-Attention的早期版本/简化版本。主要的一点是,前一层的所有特征位置对当前层的每个特征位置都有贡献。从这个角度来看,我们对整个图像的语义理解会更加深入。这个概念在后面的文章中被广泛采用!

  • 所有后来的修复论文都遵循了GAN-based结构(即编码器-解码器结构)。人们的目标是具有良好视觉质量的充满图像。

—END—

英文原文:https://medium.com/analytics-vidhya/introduction-to-generative-models-for-image-inpainting-and-review-context-encoders-13e48df30244

请长按或扫描二维码关注本公众号

喜欢的话,请给我个在看吧

用生成模型来做图像恢复的介绍和回顾:上下文编码器相关推荐

  1. 深度学习实战22(进阶版)-AI漫画视频生成模型,做自己的漫画视频

    大家好,我是微学AI,今天给大家带来深度学习实战22(进阶版)-AI漫画视频生成模型. 回顾之前给大家介绍了<深度学习实战8-生活照片转化漫画照片应用>,今天我借助这篇文章的原理做一个AI ...

  2. 超越GAN?OpenAI提出可逆生成模型Glow!图像生成太逼真

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 作者:Aryansh Omray,微软数据科学工程师,Medium技术博主 机器学习领域的一个基本问题就是如 ...

  3. 生成模型的2022年——人工智能AIGC顶级论文回顾

    2022年是生成模型奇幻发展的一年,Stable Diffusion

  4. 生成模型--GAN用于图像漫画特效算法

    图像漫画特效算法   这种风格迁移的算法都快要被GAN统治了 . 主要思路   可以分两部分:   1)简化图像,即去除图像细节,仅保留图像主要信息:   在简化图像步骤,除了meanshift算法外 ...

  5. 扩散模型diffusion model用于图像恢复任务详细原理 (去雨,去雾等皆可),附实现代码

    文章目录 1. 去噪扩散概率模型 2. 前向扩散 3. 反向采样 3. 图像条件扩散模型 4. 可以考虑改进的点 5. 实现代码 话不多说,先上代码: 扩散模型diffusion model用于图像恢 ...

  6. 扩散模型与生成模型详解

    扩散模型与其他生成模型 什么是扩散模型 扩散模型的简介 生成建模是理解自然数据分布的开创性任务之一.VAE.GAN和Flow系列模型因其实用性能而在过去几年中占据了该领域的主导地位.尽管取得了商业上的 ...

  7. 三大深度学习生成模型:VAE、GAN及其变种

    本章将为读者介绍基于深度学习的生成模型.前面几章主要介绍了机器学习中的判别式模型,这种模型的形式主要是根据原始图像推测图像具备的一些性质,例如根据数字图像推测数字的名称,根据自然场景图像推测物体的边界 ...

  8. 生成模型与判别模型区别

    概念理解 监督学习方法可分为两大类,即生成方法与判别方法,它们所学到的模型称为生成模型与判别模型. 判别模型:判别模型是学得一个分类面(即学得一个模型),该分类面可用来区分不同的数据分别属于哪一类: ...

  9. 换脸效果媲美GAN!一文解析OpenAI最新流生成模型「Glow」

    在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考. 在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果. 点击本文底部的「阅读原文」即刻加入社区 ...

最新文章

  1. 2020 ICPC Macau A. Accelerator(期望,计数,分治FFT)(每日一题 21.7.6)
  2. 如何提高强化学习的可靠性?
  3. spring boot整合mail
  4. 解读思科2014-19年全球移动互联网发展趋势报告(1)
  5. 21世纪初最有影响力的20篇计算机视觉期刊论文
  6. 游戏开发--开源软件11--Firefly(python 服务端分布式框架)||pygame
  7. 原生js获取document_【JS 口袋书】第 9 章:使用 JS 操作 HTML 元素
  8. Android Git 客户端
  9. 关于LRU缓存简单记录以及代码补全。
  10. Spring AOP核心原理分析
  11. XP去除开机登陆画面
  12. idea jdbc封装_IDEA 中 MyBatis还可以这么玩!!!
  13. CF935D Fafa and Ancient Alphabet 概率dp(递推)
  14. python答疑的作用_python课程答疑
  15. 计算机程序领域专利撰写,干货 | 计算机软件专利撰写模板
  16. 2018年让你的技术学习快人一步!
  17. pta 计算圆周率(C语言实现)
  18. Struts2通配符
  19. 解决re.search()时出现excepted string or buffer问题
  20. 未受信任的企业级开发者_在 iOS 上安装自定企业级应用

热门文章

  1. 新玺配资:有机构高喊“决胜低估值蓝筹”
  2. 2020年考研----吉林大学软件学院967电子信息考研经验分享
  3. oracle sql 简繁体转换
  4. 个人作品展示与软件下载
  5. 【寻找最佳小程序】04期 :探访“小打卡”产品打磨细节及线下场景真实应用
  6. Astgo(阿斯特)官方提供的使用技巧大全
  7. TCP套接口热迁移REPAIR模式
  8. 论文笔记-Reliable Supervision from Transformations for Unsupervised Optical Flow Estimation
  9. 2022年全球及中国智能传感器行业头部企业市场占有率及排名调研报告
  10. pam_shells.so