DIFFEDIT-图像编辑论文解读
文章目录
- 摘要
- 算法
- Step1:计算编辑mask
- Step2:编码
- Step3:使用mask引导进行解码
- 理论分析:
- 实验
- 数据集:
- 扩散模型:
- ImageNet数据集上实验
- 消融实验
- IMAGEN数据集上实验
- COCO数据集上实验
- 结论
论文: 《DiffEdit: Diffusion-based semantic image editing with mask guidance》
github: https://github.com/johnrobinsn/diffusion_experiments/blob/main/DiffEdit.ipynb
摘要
图像生成最佳展现巨大优势,扩散模型对于各种文本prompt可生成令人信服图片。作者提出DiffEdit,基于文本query进行图像编辑。当前基于扩散模型图像编辑方法,通常需要提供mask,转为条件修复任务。作为对比,DiffEdit可基于prompt自动生成mask,高亮需要编辑区域。在ImageNet达到SOTA,同时作者在COCO及基于文本生成的图像上进行验证。
算法

DIFFEDIT依据文本推理需要编辑的mask区域,图2表示该方法的三个步骤:
Step1:计算编辑mask
进行图像去噪时,不同文本输入,扩散模型给出不同噪声估计,根据噪声估计的差异找到那些图像区域与条件文本变换有关。如图2所示。本算法中使用高斯噪声,通过去除10个输入噪声极值并进行平均化进行稳定预测,归一化到[0, 1],通过阈值0.5进行二值化。
Step2:编码
使用DDIM中编码器 E r E_r Er对输入图 x 0 x_0 x0编码到隐空间,直到达到编码比例 r r r,该过程未使用文本条件;
Step3:使用mask引导进行解码
获得隐向量 x r x_r xr后,基于编辑文本Q使用扩散模型解码 x r x_r xr,同时利用mask M引导扩散过程,该过程通过替换mask以外区域像素值为DDIM编码得到的 x t x_t xt对应区域像素值,因此可映射回源图。
编码比例r决定可编辑能力,该值越大编辑能力更强,从而更好地匹配文本Q,代价为与输入图偏差更大。
理论分析:
对于输入图 x 0 x_0 x0经编码得到的 x r x_r xr,通过无条件DDIM可解码为 x 0 x_0 x0,虽然DIFFEDIT中基于文本Q为条件进行解码,但仍存在强偏置使得与原图接近。
实验
数据集:
ImageNet、Imagen、COCO
扩散模型:
mask分辨率32 * 32(ImageNet)、64 * 64(Imagen及COCO),使用DDIM采样50 step
ImageNet数据集上实验
评估:使用LPIPS感知距离评估与输入图像距离,使用CSFID评估图片真实性以及与文本一致性,ImageNet为单目标因此适合。
越强的图像编辑能力,CSFID得分越低,但是导致图片与输入图不一致,导致LPIPS得分变高。图4表明DIFFEDIT相对于其他方案,在两者之间获得不错均衡。

消融实验

图6中Encode-Decode表示增加DDIM encoding,DiffEdit w/o Encode表示仅使用mask,图6左展示与SDEdit相比,两者均分别提升均衡性,并且两者结合展示出互补性。图5展示可视化结果。

图6右侧展示不同二值化阈值,阈值越低,mask区域越大,0.5可达到不错CSFID-LPIPS均衡。
IMAGEN数据集上实验
评估:使用FID评估图像逼真度,CLIP-Score评估图文一致性。

图7表明DIFFEDIT CLIP-LPIPS及FID-CLIP均衡。其中mask计算有两种:
w/ref. text:使用原始caption 作为参考text;
w/o ref. text:输入空text;
使用原始caption作为参考text获得最佳均衡。图8为可视化结果。使用参考text更容易忽视参考text及query text都描述的部分。

图9展示通过对比caption及query text推理所得mask。

COCO数据集上实验
作者使用COCO验证集,query text与图片对应caption相似但不一致,如图15,以此评估图像编辑能力。评估指标使用CLIPScore, FID and LPIPS。

图10展示DIFFEDIT达到CLIP-LPIPS最佳均衡,但是最大CLIP得分低于SDEdit。

可视化结果如图11,第一列展示DDIM编码好处:能够纠正mask中目标的主要特性;最后三列表明允许选择输入图中不同目标进行不同编辑。

结论
DIFFEDIT,一种新颖的基于扩散模型的语义图像编辑算法。给出文本query,使用扩散模型,DIFFEDIT推理相关区域进行编辑而无用用户提供mask。利用DDIM编码输入图进行初始化生成过程,作者进行理论分析及实验表明该方法保留输入图更多的外观信息。在ImageNet,COCO,Imagen数据集展示不错编辑能力,并且超越之前方法。
相关文章:
DIFFEDIT-图像编辑论文解读
文章目录 摘要算法Step1:计算编辑maskStep2:编码Step3:使用mask引导进行解码理论分析: 实验数据集:扩散模型:ImageNet数据集上实验消融实验IMAGEN数据集上实验COCO数据集上实验 结论 论文: 《D…...
【优选算法】—— 字符串匹配算法
在本期的字符串匹配算法中,我将给大家带来常见的两种经典的示例: 1、暴力匹配(BF)算法 2、KMP算法 目录 (一)暴力匹配(BF)算法 1、思想 2、演示 3、代码展示 (二&…...
Docker容器:docker consul的注册与发现及consul-template守护进程
文章目录 一.docker consul的注册与发现介绍1.什么是服务注册与发现2.什么是consul3.docker consul的应用场景4.consul提供的一些关键特性5.数据流向 二.consul部署1.consul服务器(192.168.198.12)(1)建立 Consul 服务启动consul后…...
Blazor 依赖注入妙用:巧设回调
文章目录 前言依赖注入特性需求解决方案示意图 前言 依赖注入我之前写过一篇文章,没看过的可以看看这个。 C# Blazor 学习笔记(10):依赖注入 依赖注入特性 只能Razor组件中注入所有Razor组件在作用域注入的都是同一个依赖。作用域可以看看我之前的文章。 需求 …...
Python 基础 -- Tutorial(三)
7、输入和输出 有几种方法可以表示程序的输出;数据可以以人类可读的形式打印出来,或者写入文件以备将来使用。本章将讨论其中的一些可能性。 7.1 更花哨的输出格式 到目前为止,我们已经遇到了两种写值的方法:表达式语句和print()函数。(第三种方法是使…...
基于STM32的四旋翼无人机项目(二):MPU6050姿态解算(含上位机3D姿态显示教学)
前言:本文为手把手教学飞控核心知识点之一的姿态解算——MPU6050 姿态解算(飞控专栏第2篇)。项目中飞行器使用 MPU6050 传感器对飞行器的姿态进行解算(四元数方法),搭配设计的卡尔曼滤波器与一阶低通滤波器…...
微信小程序开发教学系列(1)- 开发入门
第一章:微信小程序简介与入门 1.1 简介 微信小程序是一种基于微信平台的应用程序,可以在微信内直接使用,无需下载和安装。它具有小巧、高效、便捷的特点,可以满足用户在微信中获取信息、使用服务的需求。 微信小程序采用前端技…...
Nginx虚拟主机(server块)部署Vue项目
需求 配置虚拟主机,实现一个Nginx运行多个服务。 实现 使用Server块。不同的端口号,表示不同的服务;同时在配置中指定,Vue安装包所在的位置。 配置 Vue项目,放在 html/test 目录下。 config中的配置如下…...
JAVA开发环境接口swagger-ui使用总结
一、前言 swagger-ui是java开发中生产api说明文档的插件,这是后端工程师和前端工程师联调接口的桥梁。生成的文档就减少了很多没必要的沟通提高开发和测试效率。 二、 swagger-ui的使用 1、引入maven依赖 <dependency><groupId>io.springfox</grou…...
mongodb 数据库管理(数据库、集合、文档)
目录 一、数据库操作 1、创建数据库 2、删除数据库 二、集合操作 1、创建集合 2、删除集合 三、文档操作 1、创建文档 2、 插入文档 3、查看文档 4、更新文档 1)update() 方法 2)replace() 方法 一、数据库操作 1、创建数据库 创建数据库…...
分布式与集群的定义及异同
分布式与集群的定义及异同 分布式定义优点不足 集群优点不足 异同 分布式 定义 分布式是指将一个系统或应用程序分散到多个计算机或服务器上进行处理和管理的技术。它是指多个系统协同合作完成一个特定任务的系统。例如,可以将一个大业务拆分成多个子业务…...
电脑端teams一直在线小程序,简单好用易上手
居家办公的你,会不会想要摸鱼!!会不会想要下楼拿快递!!会不会想要出去下馆子!!!然而,teams的5分钟不操作电脑状态就变为离开大大的阻挡了你幸福生活的脚步!&a…...
YOLOv5算法改进(4)— 添加CA注意力机制
前言:Hello大家好,我是小哥谈。注意力机制是近年来深度学习领域内的研究热点,可以帮助模型更好地关注重要的特征,从而提高模型的性能。在许多视觉任务中,输入数据通常由多个通道组成,例如图像中的RGB通道或…...
无涯教程-PHP - XML GET
XML Get已用于从xml文件获取节点值。以下示例显示了如何从xml获取数据。 Note.xml 是xml文件,可以通过php文件访问。 <SUBJECT><COURSE>Android</COURSE><COUNTRY>India</COUNTRY><COMPANY>LearnFk</COMPANY><PRICE…...
Spark Standalone环境搭建及测试
🥇🥇【大数据学习记录篇】-持续更新中~🥇🥇 篇一:Linux系统下配置java环境 篇二:hadoop伪分布式搭建(超详细) 篇三:hadoop完全分布式集群搭建(超详细…...
【PHP】流程控制-ifswitchforwhiledo-whilecontinuebreak
文章目录 流程控制顺序结构分支结构if分支switch分支 循环结构for循环while循环do-while循环continue和break 流程控制 顺序结构:代码从上往下,顺序执行。(代码执行的最基本结构) 分支结构:给定一个条件,…...
Pytorch-day04-模型构建-checkpoint
PyTorch 模型构建 1、GPU配置2、数据预处理3、划分训练集、验证集、测试集4、选择模型5、设定损失函数&优化方法6、模型效果评估 #导入常用包 import os import numpy as np import torch from torch.utils.data import Dataset, DataLoader from torchvision.transfor…...
使用Xshell7控制多台服务同时安装ZK最新版集群服务
一: 环境准备: 主机名称 主机IP 节点 (集群内通讯端口|选举leader|cline端提供服务)端口 docker0 192.168.1.100 node-0 2888 | 3888 | 2181 docker1 192.168.1.101 node-1 2888 | 388…...
python numpy array dtype和astype类型转换的区别
Python3 本身对整数的支持做了提升,可以支持无限长度的整数:比如: b 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffPython的模块numpy array定义的数组在windows和MACOS上默认长度是…...
浮动属性样式
🍓浮动属性 属性名称中文注释备注float设置盒子浮动left左浮动,right右浮动,none不浮动clear清除浮动left清除左浮动,right清除右浮动,both左右浮动都清除(注意:clear清除浮动一般只有作用在块…...
智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...
作为测试我们应该关注redis哪些方面
1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...
什么是VR全景技术
VR全景技术,全称为虚拟现实全景技术,是通过计算机图像模拟生成三维空间中的虚拟世界,使用户能够在该虚拟世界中进行全方位、无死角的观察和交互的技术。VR全景技术模拟人在真实空间中的视觉体验,结合图文、3D、音视频等多媒体元素…...
git: early EOF
macOS报错: Initialized empty Git repository in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/ remote: Enumerating objects: 2691797, done. remote: Counting objects: 100% (1760/1760), done. remote: Compressing objects: 100% (636/636…...
