0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

深入研究文献中关于图像修复的第一个生成模型

新机器视觉 来源:AI公园 作者:AI公园 2021-03-20 09:17 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

导读

本文给出了图像恢复的一般性框架,编解码器 + 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个大小为nxn的特征映射。如果使用标准的全连接层,我们会有m²n⁴个参数,对于通道级的全连接层,我们只有mn⁴个参数。因此,我们可以在距离很远的空间位置上捕获特征,而不需要添加那么多额外的参数。

解码器

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

损失函数

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

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

f6324406-88ee-11eb-8b86-12bb97331649.png

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

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

f662eec6-88ee-11eb-8b86-12bb97331649.png

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

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

f6f51800-88ee-11eb-8b86-12bb97331649.png

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

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

实验结果

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

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

语义修复

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

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

f95796b8-88ee-11eb-8b86-12bb97331649.png

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

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

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

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

特征学习

图7,最近邻的上下文

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

f9f5acd6-88ee-11eb-8b86-12bb97331649.png

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

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

总结

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

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

要点

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

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

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

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

责任编辑:lq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编码器
    +关注

    关注

    45

    文章

    3903

    浏览量

    141425
  • 图像
    +关注

    关注

    2

    文章

    1095

    浏览量

    42154
  • 模型
    +关注

    关注

    1

    文章

    3648

    浏览量

    51710

原文标题:用生成模型来做图像恢复的介绍和回顾:上下文编码器

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    使用Firebase AI Logic生成图像模型的两种新功能

    为您的应用添加自定义图像,能够显著改善和个性化用户体验,有效提高用户参与度。本文将探讨使用 Firebase AI Logic 生成图像的两种新功能: 其是 Imagen 专属编辑功
    的头像 发表于 11-30 09:28 205次阅读

    Linux 下交叉编译实战:跑起来你的第一个 STM32 程序

    跑起来你的第一个STM32程序。、准备工作在开始之前,需要准备:1、Linux开发环境Ubuntu、Debian或其他主流发行版都可以。2、ARMGCC交叉编译工具
    的头像 发表于 11-24 19:04 234次阅读
    Linux 下交叉编译实战:跑起来你的<b class='flag-5'>第一个</b> STM32 程序

    在Ubuntu20.04系统训练神经网络模型些经验

    模型。 我们使用MNIST数据集,训练卷积神经网络(CNN)模型,用于手写数字识别。模型
    发表于 10-22 07:03

    【Sipeed MaixCAM Pro开发板试用体验】基于MaixCAM-Pro的AI生成图像鉴别系统

    1. 项目概述 本项目旨在开发并部署高精度的深度学习模型,用于自动鉴别张图片是由AI生成(如Stable Diffusion, DAL
    发表于 08-21 13:59

    模型推理显存和计算量估计方法研究

    ,为实际应用提供了有益的参考。 未来,我们将继续深入研究模型推理的优化方法,以降低显存和计算资源的需求,提高深度学习模型在实际应用的性能。
    发表于 07-03 19:43

    模型自适应控制在永磁同步电机转速的仿真研究

    的可行性和有效性。 纯分享帖,点击下方附件免费获取完整资料~~~ *附件:无模型自适应控制在永磁同步电机转速的仿真研究.pdf 【免责声明】本文系网络转载,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请
    发表于 06-25 13:01

    利用NVIDIA 3D引导生成式AI Blueprint控制图像生成

    AI 赋能的图像生成技术突飞猛进,从早期模型生成手指过多的人类图像,到现在能创造出令人惊叹的逼真视觉效果。即使取得了如此飞跃,仍然存在
    的头像 发表于 06-05 09:24 732次阅读

    Gemini API集成Google图像生成模型Imagen 3

    开发者现在可以通过 Gemini API 访问 Google 最先进的图像生成模型 Imagen 3。该模型最初仅对付费用户开放,不久后也将面向免费用户推出。
    的头像 发表于 05-14 16:53 941次阅读

    直流电机控制方法的Matlab仿真研究

    针对无刷直流电机的控制方法进行了深入研究 。根据无刷直流电机实际物理模型建立相应的数学模型,电机使用双闭环进行控制 。根据电机的实际工作特点,使用模糊自适应 PID 算法替代常规 PID 算法建立
    发表于 03-27 12:15

    小白学大模型:训练大语言模型的深度指南

    在当今人工智能飞速发展的时代,大型语言模型(LLMs)正以其强大的语言理解和生成能力,改变着我们的生活和工作方式。在最近的研究,科学家
    的头像 发表于 03-03 11:51 1205次阅读
    小白学大<b class='flag-5'>模型</b>:训练大语言<b class='flag-5'>模型</b>的深度指南

    文详解视觉语言模型

    视觉语言模型(VLM)是种多模态、生成式 AI 模型,能够理解和处理视频、图像和文本。
    的头像 发表于 02-12 11:13 3230次阅读
    <b class='flag-5'>一</b>文详解视觉语言<b class='flag-5'>模型</b>

    【「基于大模型的RAG应用开发与优化」阅读体验】+第一章初体验

    《基于大模型的RAG应用开发与优化》试读报告 ——第一章:了解大模型与RAG 近年来,随着人工智能技术的快速发展,大模型生成式AI技术逐
    发表于 02-07 10:42

    电容器深入研究:电路保护、滤波和能量存储

    校参加了些课程,并获得了关于何时使用电容器以及它们如何工作的真实示例。从电路保护到滤波,从能量存储到传感,我正在深入研究简单而复杂的电容器世界。 这些东西是如何运作的? 事实上,
    的头像 发表于 01-25 15:13 922次阅读
    电容器<b class='flag-5'>深入研究</b>:电路保护、滤波和能量存储

    借助谷歌Gemini和Imagen模型生成高质量图像

    以获得卓越的视觉效果。这个过程并不止于此;图像生成,Imagen 2 可以进步优化以满足特定需求,从而创建
    的头像 发表于 01-03 10:38 1334次阅读
    借助谷歌Gemini和Imagen<b class='flag-5'>模型</b><b class='flag-5'>生成</b>高质量<b class='flag-5'>图像</b>

    Google两款先进生成式AI模型登陆Vertex AI平台

    新的 AI 模型,包括最先进的视频生成模型Veo以及最高品质的图像生成模型Imagen 3。近日
    的头像 发表于 12-30 09:56 978次阅读