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

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

3天内不再提示

用生成模型来做图像恢复的介绍和回顾

新机器视觉 来源:AI公园 作者:Chu-Tak Li 2021-06-10 15:56 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

导读

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

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

目标

很简单的!我们想要填补图像中缺失的部分。

应用

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

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

很多其他应用!

术语

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

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

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

传统方法

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

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

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

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

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

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

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

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

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

Intention

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

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

背景

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

Autoencoders:这是一种通常用于重建任务的CNN结构。由于其形状,也有人称之为沙漏结构模型。对于这个结构,输出大小与输入大小相同,我们实际上有两个部分,一个是编码器,另一个是解码器。

编码器部分用于特征编码,针对输入得到紧凑潜在的特征表示,而解码器部分则对潜在特征表示进行解码。我们通常把中间层称为低维的“瓶颈”层,或者简单地称之为“瓶颈”,因此整个结构看起来就像一个沙漏。

让我们想象一下,我们将一幅完好无损的图像输入到这个自动编码器中。在这种情况下,我们期望输出应该与输入完全相同。这意味着一个完美的重建。如果可能的话,“瓶颈”是输入的一个完美的紧凑潜在特征表示。

更具体地说,我们可以使用更少的数字来表示输入(即更有效,它与降维技术有关)。因此,这个“瓶颈”包含了几乎所有的输入信息(可能包括高级语义特征),我们可以使用它来重构输入。

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

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

编码器

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

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

通道全连接层

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

解码器

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

损失函数

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

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

04b0fa4a-c9b8-11eb-9e57-12bb97331649.png

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

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

04cbfdd6-c9b8-11eb-9e57-12bb97331649.png

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

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

04e52932-c9b8-11eb-9e57-12bb97331649.png

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

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

实验结果

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

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

语义修复

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

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

特征学习

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

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

总结

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

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

要点

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

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

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

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

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

编辑:jq

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

    关注

    9

    文章

    1226

    浏览量

    43839
  • 编码器
    +关注

    关注

    45

    文章

    4022

    浏览量

    143728
  • GaN
    GaN
    +关注

    关注

    21

    文章

    2391

    浏览量

    84922
  • cnn
    cnn
    +关注

    关注

    3

    文章

    356

    浏览量

    23587

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    《多模态大模型 前沿算法与实战应用 第一季》精品课程简介

    文本,1D CNN处理声纹特征,通过门控机制动态融合两者信息。例如当用户语气愤怒时,模型会优先关注文本中的投诉关键词。 输出生成 :根据融合后的特征,TTS(文本转语音)
    发表于 05-01 17:46

    大晓机器人开源实时生成世界模型Kairos 3.0-4B

    近日,大晓机器人重磅开源开悟世界模型3.0(Kairos 3.0)-4B 系列具身原生世界模型。作为业内首个实现 “多模态理解 — 生成 — 预测” 一体化的开源具身原生世界模型,该
    的头像 发表于 03-14 16:54 2083次阅读
    大晓机器人开源实时<b class='flag-5'>生成</b>世界<b class='flag-5'>模型</b>Kairos 3.0-4B

    模型支撑后勤保障方案生成系统软件平台

        北京五木恒润大模型支撑的后勤保障方案生成平台系统软件,依托人工智能大模型技术,融合后勤保障领域专业知识与实际需求,可自动生成高效、精准、可定制的智能化后勤保障方案。以下从六大核
    的头像 发表于 12-17 16:51 671次阅读

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

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

    openDACS 2025 开源EDA与芯片赛项 赛题七:基于大模型生成式原理图设计

    领域,对促进产业高质量发展具有重要意义。本赛项包含7道赛题,下面是赛题七 基于大模型生成式原理图设计的介绍。 2. 命题单位及赛题Chair 2.1 命题单位 openDACS工作委员会、复旦大学
    发表于 11-13 11:49

    如何使用恢复算法实现开平方运算

    本文主要描述如何使用恢复算法实现开平方运算。 简介 开平方的恢复算法其实与除法的恢复算法十分相似。首先我们假设X为输入的操作数(它应该为正数),而他的平方根可以表示为Qn=0.q1
    发表于 10-24 13:33

    如何让大模型生成你想要的测试用例?

    应用大模型生成测试用例,常见的知识库,测试大模型,微调,RAG等技术门槛都不低,甚至很难,因此对于应用者而言,最快的方式就是应用好提示词,调教属于个人风格的测试用例智能生成模块,让智能
    的头像 发表于 09-26 10:01 1212次阅读
    如何让大<b class='flag-5'>模型</b><b class='flag-5'>生成</b>你想要的测试用例?

    SILEX希科高速图像传输解决方案

    SILEX希科高速图像传输解决方案
    的头像 发表于 08-27 11:25 828次阅读

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

    能够有效捕捉AI生成图像与真实手绘扫描图像在纹理、笔触、光影、全局一致性等方面的细微差异。 边缘端部署:将模型量化、编译,最终高效运行在算力有限的MaixCAM-Pro开发板上。 实时
    发表于 08-21 13:59

    如何进行YOLO模型转换?

    (onnx_model.SerializeToString(),import_options)# 编译模型compiler.compile()# 生成KModel文件kmodel_data
    发表于 08-14 06:03

    请问如何在RK3588上使用npu,onnx模型推理

    请问如何在瑞芯微 RK3588上使用npu,onnx模型推理。官网上介绍说要把ONNX模型转换成RKNN
    发表于 08-09 00:51

    【正点原子STM32MP257开发板试用】基于 DeepLab 模型图像分割

    【正点原子STM32MP257开发板试用】图像分割 本文介绍了正点原子 STM32MP257 开发板基于 DeepLab 模型实现图像分割的项目设计。 DeepLab
    发表于 06-21 21:11

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

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

    FA模型的ServiceAbility的切换介绍

    的ServiceExtensionAbility为系统API,只有系统应用才可以创建。因此,FA模型的ServiceAbility的切换,对于系统应用和三方应用策略有所不同。下面分别介绍这两种场景。 系统
    发表于 06-05 07:24

    FA模型绑定Stage模型ServiceExtensionAbility介绍

    FA模型绑定Stage模型ServiceExtensionAbility 本文介绍FA模型的三种应用组件如何绑定Stage模型的Servi
    发表于 06-04 07:55