【深度学习】Inst-Inpaint: Instructing to Remove Objects with Diffusion Models,指令式图像修复

论文:https://arxiv.org/abs/2304.03246
code:http://instinpaint.abyildirim.com/

文章目录

  • Abstract
  • Introduction
  • Related Work
  • Dataset Generation
  • Method
  • PS

Abstract

图像修复任务是指从图像中擦除不需要的像素,并以语义一致且逼真的方式填充它们。传统上,希望被擦除的像素由二值化掩码定义。从应用的角度来看,用户需要为他们想要去除的对象生成这些掩码,这可能耗时且容易出错。在这项工作中,我们对一种图像修复算法感兴趣,它可以根据自然语言输入来估计要移除的对象,并且同时移除它。为此,首先,我们构建了一个名为GQA-Inpaint的数据集,用于这个任务,该数据集即将发布。其次,我们提出了一种新颖的修复框架,名为Inst-Inpaint,它可以根据以文本提示形式给出的指令从图像中去除对象。我们设定了各种基于GAN和扩散的基准模型,并在合成和真实图像数据集上进行实验。我们使用不同的评估指标来衡量模型的质量和准确性,并展示了显著的定量和定性改进。项目的网页链接:http://instinpaint.abyildirim.com/

该论文主要实现了以下工作:

  1. 提出了一项新的任务——指令式图像修复:研究了通过文本指令来执行图像修复任务,而无需使用传统的二值掩码。

  2. 构建了一个新的图像修复数据集——GQA-Inpaint:该数据集包含复杂的真实图像,而不需要任何人工标注,使用了GQA数据集的场景图信息。

  3. 开发了一种新颖的条件扩散模型——Inst-Inpaint:该模型可以在给定图像和文本指令的情况下执行图像修复,并将图像修复问题转化为条件扩散模型的训练任务。

  4. 使用U-Net架构:在模型中采用U-Net架构用于特征提取和图像修复。

  5. 使用交叉注意机制:为了实现文本条件的修复任务,使用了交叉注意机制将文本指令与模型的特征进行关联。

  6. 实现细节:详细描述了模型的实现和训练细节,包括对CLEVR和GQA-Inpaint数据集上的模型进行训练。

这篇论文提出了一种新的指令式图像修复任务,并开发了一种新颖的条件扩散模型,以在给定图像和文本指令的情况下执行图像修复。通过构建新的数据集并进行实验证明了该方法的有效性。

Introduction

图像修复指的是从图像中移除不需要的对象和/或填补图像中缺失的区域。这被认为是极具挑战性的,因为修复后的图像中的被修复区域应该与其他部分和谐一致。在进行像素填充时,修复方法应该考虑全局图像内容。传统的研究方法使用二值掩码来标示缺失区域。近期的图像修复方法利用深度学习框架,配备生成先验,并将修复任务构建为一个监督学习问题。训练数据包括作为源数据和目标数据的输入和被擦除图像对,并且模型通常使用基于重建的目标进行训练。尽管过去几年来图像修复方法在性能上不断改进,但这些方法仍然需要在推断时提供用户指定的掩码。这些掩码可以以细或厚的刷笔涂抹或方框的形式提供,但绘制这些掩码通常很繁琐且容易出错。

近期,基于文本的图像生成和编辑引起了广泛关注。特别是在训练时使用大规模的图像-文本数据,像DALL·E2、Stable Diffusion、Imagen和Parti等模型展示了卓越的生成能力,并有效地捕捉了图像的组成结构。此外,使用文本可以更自然和用户友好地控制图像。研究人员还表明这些方法可以通过额外条件化模型的方式轻松地用于图像修复,只需在模型上附加二值掩码,并告诉模型如何在掩码内填充内容。然而,这种方法更适合于操作对象的属性或添加新的场景元素,但可能不太适合于移除对象。例如,请参见Blended Latent Diffusion模型。

在本工作中,我们引入了一项称为"指令式图像修复"的新任务,其中只通过文本指令来指定要移除的不需要的对象,无需使用二值掩码(见图1)。为了解决这个问题,我们首先使用GQA数据集构建数据生成流程,创建一个新的基准数据集,称为GQA-Inpaint。其次,我们设计了一种单阶段深度修复网络,称为Inst-Inpaint,它可以使用文本指令从图像中移除对象。与现有的修复方法相比,我们的模型不需要掩码,也不需要明确地预测掩码。总体而言,我们的贡献如下:

  • 我们提出了一种端到端的图像修复框架,Inst-Inpaint,它可以仅基于文本指令对给定图像中的对象进行移除。我们的方法的一些示例输出如图1所示。

  • 我们生成了一个真实图像数据集,GQA-Inpaint,用于训练和评估所提出的指令式图像修复任务的模型。在这里,我们使用了最初用于视觉推理的GQA数据集,并利用提供的场景图使用了最先进的实例分割和修复方法生成配对的训练数据。

  • 我们进行了大量实验,展示了我们框架的有效性。为了比较结果,我们使用了多种指标来评估各种基准模型,其中包括一种基于CLIP的新型修复评分。我们在基于文本的图像修复方法方面取得了显著的改进,超越了现有的最先进方法。

Related Work

基于扩散的生成模型。在配备大规模文本-图像配对数据集的情况下,扩散模型在图像合成方面取得了令人印象深刻的结果。这些模型的图像合成能力已扩展到视频生成和图像编辑任务。我们的工作解决了基于文本指令的修复任务,并与编辑任务更相关。SDEdit是首批使用文本提示和扩散模型对真实图像进行编辑的作品。它对输入图像应用噪声,然后根据文本提示对其进行去噪。鉴于加噪-去噪的过程,内容保留并没有严格实现。Prompt-to-prompt editing展示了通过对注意力机制应用操作,可以使用文本提示对生成的图像进行编辑。InstructPix2Pix通过Prompt-to-prompt生成数据集,并微调扩散模型以使用配对数据编辑图像。

图像修复。图像修复任务的常见设置包括使用二值掩码来定义被修复的像素。原始图像像素被去除,新的像素根据这些掩码来生成。此领域以前主要由生成对抗网络(GANs)主导。基于GAN的模型大多输出确定性结果,因为这些模型还通过重建损失进行训练以提高稳定性。最近也有使用GAN实现多样性的方法,但它们是在单个对象数据集(如面部数据)上训练的。它们并未扩展到修复多样的场景,因为GAN训练非常困难。

最近,扩散模型也进入了图像修复领域,并取得了令人期待的结果。已经证明,预训练的无条件扩散模型可以通过Repaint模型对图像进行修复。Repaint修改去噪过程,以使生成过程依赖于未被擦除的图像内容。

与我们工作同时进行的是X-Decoder,它可以同时处理输入图像和文本,用于指导分割。X-Decoder可以根据提示对图像进行分割,并在与扩散模型结合时,可以擦除分割的对象。

Dataset Generation

我们的目标是构建一个真实图像数据集,用于训练和评估基于指令的图像修复模型。

目前存在一些可以用于此任务的数据集,例如CoDraw和CLEVR数据集。然而,这些数据集中的图像都是由几何对象或剪贴艺术品组成的合成场景。虽然这些相对简单的图像可以被视为构建模型的很好工具,但在它们上面训练的模型并不直接适用于真实图像的编辑。

为了缓解现有数据集的这一缺点,在本工作中,我们提议构建一个新的图像修复数据集,其中包含复杂的真实图像,并且不使用任何人工标注。我们将这个数据集称为GQA-Inpaint,因为我们选择在GQA数据集的基础上构建它。

具体而言,GQA数据集包含85,000个真实世界图像及其对应的场景图。场景图通过以对象、属性和关系来表示图像的简化表示。场景图中的每个节点表示一个对象,并且其位置和大小由边界框指定。此外,每个对象都与一些属性相关联,编码了它的颜色、形状或材质。连接节点和对象的边通常表示这些对象之间的空间关系。

我们为所提议的数据集设计的数据生成流程如图2所示,严重依赖于场景图的表示。具体而言,在修复任务中,我们从场景图的节点中选择目标对象。虽然GQA数据集中已经提供了对象的边界框,但我们观察到直接将它们用作修复的掩码会导致不理想的结果。因此,为了获得更高质量的目标图像,我们提取每个对象的分割掩码,并将其用于从图像中移除对象。此外,我们从提供的场景图生成用作指令的文本提示。以下是所有这些步骤的简要描述。更多细节可以在补充材料中找到。

从场景图中选择对象。具体而言,在选择目标对象时,我们通常考虑数据集中最常见的对象,并忽略边界框太小或太大的对象。

提取分割掩码。我们使用Detectron2和Detic框架获得对象的分割掩码。为了涵盖广泛的对象类别,我们使用在COCO和LVIS数据集上训练的多个实例分割模型对对象进行分割。

我们选择最准确的分割结果。为了衡量准确性,我们利用数据集提供的边界框真值。我们比较IoU分数并选择较大的值。

从图像中移除对象。在这一步中,我们的目标是从图像中移除对象。为此,我们使用最先进的图像修复方法CRFill,因为它具有计算效率高和高质量结果的特点。

在进行修复之前,我们首先使用CascadePSP对预测的掩码进行优化,然后使用11×11像素的形态学膨胀来扩展边缘的分割掩码,以使掩码更好地捕捉对象。

生成文本提示。GQA数据集中包含对象之间的关系表示,如图2所示。如果所选择的对象是其类别的单个实例,我们不使用任何关系,简单地创建提示为“移除[对象]”。如果图像中存在多个相同对象类别的实例,我们根据场景图中的关系构建提示,以指定特定的实例。

在这里插入图片描述

Method

为了解决提出的指令式图像修复任务,我们开发了一种新颖的条件扩散模型,命名为Inst-Inpaint,它接受图像和文本指令作为输入。训练这个模型需要一个配对数据集,其中包括源图像和目标图像以及相应的文本提示。我们基于潜在扩散模型构建我们的模型,因为它具有计算效率高的优点。具体而言,潜在扩散模型包括一个编码器E和一个解码器D,分别用于将图像投影到较低的潜在维度并对图像进行重构。这是一个变分自编码器,并作为第一步进行单独训练。

在这里插入图片描述

如上所述,我们用于指令式图像修复的模型可以解释为条件扩散模型。也就是说,我们用两个额外的条件来训练我们的模型;源图像和文本提示。在训练过程中,目标图像通过编码器得到z0,如图2所示。源图像s也使用第一阶段的相同预训练编码器进行编码。编码特征E(s)在每个时间步骤与zt进行拼接。对于文本条件,我们使用交叉注意机制。基于指令的对象去除的目标如下:

在这里插入图片描述

实现和训练细节。Inst-Inpaint将从前向扩散过程中获得的目标图像潜在编码zt在时间步骤t上与源图像特征E(s)进行拼接,以预测上一个时间步骤zt−1的潜在编码。对于文本条件的修复任务,Inst-Inpaint使用BERT tokenizer对文本进行分词,并通过使用这些标记作为输入,从头开始学习一个Transformer模型来获取指令嵌入。这些嵌入在特定U-Net层的交叉注意机制中使用。

我们在CLEVR和GQA-Inpaint数据集上分别训练了两个Inst-Inpaint模型。CLEVR模型的第一阶段模型是一个变分自编码器,从头开始训练,使用数据集中所有指令的源图像和目标图像的组合进行训练。与CLEVR模型不同,GQA-Inpaint模型使用预训练的VQGAN模型1,在Open Images数据集上进行训练,并具有16384个码书条目。

在CLEVR模型的第二阶段模型中,我们定义了一个包含八层的Transformer,用于获得指令嵌入,并使用四个注意头的交叉注意机制来学习指令嵌入和用于修复过程的激活层之间的关系。GQA-Inpaint模型的架构比CLEVR模型更复杂,由十六层Transformer和八个注意头的交叉注意机制组成。更多的训练细节可以在补充材料中找到。

PS

这篇论文的实现效果肯定不容易实现,读读有一定启发就好。论文后面的内容这里不再翻译。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/55611.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

springboot对静态资源的支持

1、spring boot默认静态路径支持 Spring Boot 默认将 / 所有访问映射到以下目录:** classpath:/static classpath:/public classpath:/resources classpath:/META-INF/resources也就是说什么也不用配置,通过浏览器可以直接访问这几个目录下的文件。 1…

Spring之BeanDefinition(二)

Spring之BeanDefinition 文章目录 Spring之BeanDefinition1、对象和bean的区别2、BeanDefinition作用AutowireCandidate说明Primary说明ConstructorArgumentValues说明第一种使用方式第二种使用方式 MutablePropertyValuesabstract小结 3、BeanDefinition的发展历程3、BeanDefi…

C++ 类的友元

【例1】 将数据与处理数据的函数封装在一起,构成类,既实现了数据的共享又实现了隐藏,无疑是面向对象程序设计的一大优点。但是封装并不总是绝对的。现在考虑一个简单的例子,就是Point类,每一个Point类的对象代表一个“…

阿里云服务器免费试用及搭建WordPress网站

文章目录 前言一、免费试用1、选择使用产品2、进行产品配置3、远程连接阿里云服务器①、重置实例密码②、SecureCRT 远程链接③、Workbench 远程链接二、搭建 WordPress 网站1、开放搭建 WordPress 需要的端口2、搭建 LAMP 环境①、Linux 系统升级和更新源②、安装 Apache2③、…

LAXCUS分布式操作系统引领科技潮流,进入百度首页

信息源自某家网络平台,以下原样摘抄贴出。 随着科技的飞速发展,分布式操作系统做为通用基础平台,为大数据、高性能计算、人工智能提供了强大的数据和算力支持,已经成为了当今计算机领域的研究热点。近日,一款名为LAXCU…

云原生势不可挡,如何跳离云原生深水区?

云原生是云计算领域一大热词,伴随云原生概念而来的是数字产业迎来井喷、数字变革来临、数字化得以破局以及新一波的技术红利等等。云原生即“云”原生,顾名思义是让“应用”最大程度地利用云的能力,发挥云价值的最佳路径。具体来说&#xff0…

通向架构师的道路之apache性能调优

一、总结前一天的学习 在前两天的学习中我们知道、了解并掌握了Web Server结合App Server实现单向Https的这样的一个架构。这个架构是一个非常基础的J2ee工程上线布署时的一种架构。在前两天的教程中,还讲述了Http服务 器、App Server的最基本安全配置(…

解决单节点es索引yellow

现象 单节点的es,自动创建索引后,默认副本个数为1,索引状态为yellow 临时解决 修改副本个数为0 永久解决 方法1、修改elasticsearch.yml文件,添加配置并重启es number_of_replicas:副本分片数,默认…

【疑难解决】EasyCVR告警消息生成后,合成录像不显示的原因排查

有用户反馈,视频监控汇聚平台EasyCVR对接了摄像头告警信息,但是平台没有告警信息上来。 技术人员配合项目现场排查,TSINGSEE青犀视频安防监控平台EasyCVR平台端已经配置了告警预案,并且也开启了告警开关,用户的配置流程…

docker简单web管理docker.io/uifd/ui-for-docker

要先pull这个镜像docker.io/uifd/ui-for-docker 这个软件默认只能使用9000端口,别的不行,因为作者在镜像制作时已加入这一层 刚下下来镜像可以通过docker history docker.io/uifd/ui-for-docker 查看到这个端口已被 设置 如果在没有设置br0网关时&…

【NLP概念源和流】 05-引进LSTM网络(第 5/20 部分)

一、说明 在上一篇博客中,我们讨论了原版RNN架构,也讨论了它的局限性。梯度消失是一个非常重要的缺点,它限制了RNN对较短序列的建模。香草 RNN 在相关输入事件和目标信号之间存在超过 5-10 个离散时间步长的时间滞时无法学习。这基本上限制了香草RNN在许多实际问题上的应用,…

编程:必备技能还是浪费时间?

当下,学习编程正变得越来越受欢迎,许多人都在探讨这个话题,但仍有很多人产生疑问:学习编程是否有必要?我们可以从学习编程的好处和应用领域来进行分析。好处方面,乔布斯曾说:“人人都应该学习编…

新闻稿发布中,首发来源和转载是什么意思?

一秒推小编告诉您,在新闻稿发布中,首发来源和转载是两个常用的词语,它们有着不同的含义和使用场合。#新闻稿发布# 首发来源指的是原创的、第一次发布该条新闻的媒体或媒体机构。比如,如果一家新闻机构发布了一则新闻稿&#xff0c…

《golang设计模式》第一部分·创建型模式-03-建造者模式(Builder)

文章目录 1. 概念1.1 角色1.2 类图 2. 代码示例2.1 设计2.2 代码2.3 类图 1. 概念 1.1 角色 Builder(抽象建造者):给出一个抽象接口,以规范产品对象的各个组成成分的建造。ConcreteBuilder(具体建造者)&a…

05 Ubuntu下安装.deb安装包方式安装vscode,snap安装Jetbrains产品等常用软件

使用deb包安装类型 deb包指的其实就是debian系统,ubuntu系统是基于debian系统的发行版。 一般我们会到需要的软件官网下载deb安装包,然后你既可以采用使用“软件安装”打开的方法来进行安装,也可以使用命令行进行安装。我推荐后者&#xff…

装修小程序,开启装修公司智能化服务的新时代

随着数字化时代的来临,装修小程序成为提升服务质量和效率的关键工具。装修小程序旨在为装修公司提供数字化赋能、提高客户满意度的智慧装修平台。通过装修小程序,装修公司能够与客户进行在线沟通、展示设计方案、提高服务满意度等操作。 装修小程序的好处…

spring boot 服务健康检测返回OUT_OF_SERVICE,导致服务无法成功注册到consul

一、背景 健康检测接口返回OUT_OF_SERVICE curl -X GET http://192.168.5.53:8085/mgm/health{"status":"OUT_OF_SERVICE"}从日志启动看,没有任何报错信息;而且jvm进程也启动成功。 关键的一点信息是,服务的swagger地…

Linux之 Ubuntu 安装常见服务 (二) Tomcat

安装TomCat 服务 1、安装JDK环境 https://www.oracle.com/java/technologies/downloads/ 下载的官网 wget https://download.oracle.com/java/20/latest/jdk-20_linux-x64_bin.deb (sha256) 使用dpkg进行软件安装时,提示:dpkg:处理软件包XX…

若依打印sql

官方issue 自动生成的代码,sql日志怎么没有打印 在ruoyi-admin中的application.yml配置如下。 # 日志配置,默认 logging:level:com.ruoyi: debugorg.springframework: warn#添加配置com.ying: debug输出sql

express学习笔记6 - 用户模块

新建router/user.js const express require(express) const routerexpress.Router() router.get(/login, function(req, res, next) {console.log(/user/login, req.body)res.json({code: 0,msg: 登录成功})})module.exportsrouter 在router/user.js引入并使用 const us…