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清除浮动一般只有作用在块…...
实战构建c盘清理桌面应用,快马ai生成可部署完整解决方案
今天想和大家分享一个实战项目:用Python开发一个C盘清理桌面应用。这个工具不仅能解决日常C盘空间不足的烦恼,还具备完整的图形界面和实用功能。最近在InsCode(快马)平台上尝试了快速生成和部署,整个过程特别顺畅。 项目背景与核心功能 开发这…...
OpenClaw语音控制扩展:Qwen3.5-4B-Claude对接Whisper实现声控自动化
OpenClaw语音控制扩展:Qwen3.5-4B-Claude对接Whisper实现声控自动化 1. 为什么需要语音控制自动化 去年冬天的一个深夜,我在赶制项目文档时突发奇想:如果能让AI听懂我的语音指令直接操作电脑,是不是连键盘都不用碰了?…...
OpenClaw 全面解析:Token时代的iPhone如何颠覆开发者工作流?
前言:两周15万Star背后的技术革命 2026年初,一个名为 OpenClaw 的开源项目在 GitHub 上以惊人速度走红——两周内突破 15 万 Star,如今已达 310k Star,成为近年来增速最快的开源项目之一。 黄仁勋在最新访谈中将其称为 “Token时代…...
5分钟搞定!用Docker Compose一键部署Penpot设计协作平台(含SMTP配置避坑指南)
5分钟极速部署Penpot:Docker Compose全流程指南与SMTP实战避坑 中小团队在设计协作工具选型时,往往陷入两难:商业软件成本高昂,开源方案部署复杂。Penpot作为Figma的开源替代品,凭借其完整的协作功能和零成本优势&…...
macOS 环境下的 Fugu14 越狱实战:从环境配置到 Unc0ver 完美激活
1. 准备工作:搭建macOS越狱环境 在开始Fugu14越狱之前,我们需要确保macOS环境配置完善。我实测发现,很多新手卡在第一步环境搭建,其实只要按顺序完成这些准备,后面流程会顺利很多。 首先需要安装Python 3.8或更高版本…...
ChatBI 开源产品实战解析:从语义层到Agent,如何选择你的AI数据助手?
1. 为什么企业需要AI数据助手? 想象一下这个场景:市场部的小王需要统计上季度各区域的销售数据,他对着Excel表格里密密麻麻的数字发愁,不得不找IT部门帮忙写SQL查询。三天后拿到数据时,业务窗口期已经错过——这是很多…...
ROS2新手必看:用turtlesim小乌龟快速入门机器人仿真(附完整安装指南)
ROS2实战入门:从turtlesim小乌龟探索机器人仿真世界 引言:为什么选择turtlesim作为ROS2的起点? 在机器人操作系统(ROS)的学习道路上,很多开发者都会遇到一个共同的困境:理论概念抽象难懂,而直接上手复杂项…...
如何用League-Toolkit提升你的英雄联盟游戏体验
如何用League-Toolkit提升你的英雄联盟游戏体验 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 你是否曾经在英雄联盟游戏中感到效…...
闽北哥-做个无用之人,方成大用
做个无用之人 ——方成大用 “太有用的人,一定走不远。” 🌿 人生是一场‘无心生大用’的修行。 白木香树越能结香,越被千疮百孔; 无用之树,反得自然生长。 💡 真正的价值,不在“有”ÿ…...
从FCN到U-Net:盘点深度学习图像分割中,那些‘放大’特征图的秘密武器与选型指南
从FCN到U-Net:解码图像分割中的特征图放大技术选型 在构建图像分割模型时,特征图的上采样操作往往是决定最终分割精度的关键环节之一。不同于分类任务只需输出一个类别标签,分割网络需要对每个像素进行分类,这就要求网络能够将低分…...
