浅析扩散模型与图像生成【应用篇】(十九)——Emu Edit

devtools/2024/9/22 21:39:11/

19. Emu Edit: Precise Image Editing via Recognition and Generation Tasks

  该文提出一种精细的由文本指令驱动的图像编辑技术,与InstructPix2Pix类似,给定一段文字修改指令就能对图像进行准确精细的修改。作者认为现有的图像编辑技术,如InstructPix2Pix,在理解和执行指令上还存在困难,并且他们的泛化能力仍然有限,在与他们训练数据存在差别的任务中表现有所下降。Emu Edit在执行编辑指令和保留原始图像的视觉保真度方面都取得了实质性改进。作者主要做了两方面的工作:一是在包含16种图像编辑任务的多任务条件下对模型进行训练;二是引入了学习型任务嵌入的概念,针对每个任务都训练一个对应的嵌入特征,并将其引入到模型中。在这两个方法的帮助下,Emu Edit在众多图像编辑任务中都取得了令人惊异的优秀表现,如添加、移除对象,修改背景、风格,甚至是目标识别和分割等。
在这里插入图片描述
  为了实现在多个图像编辑任务中的模型训练,需要一个数据集包含:原始图片,文本描述和修改后的图片,现有数据集都难以满足高质量、大规模、多任务这三个要求,因此作者首先构建了一个大规模的高质量图像编辑数据集。作者将所有图像编辑任务分成三大类:基于区域的编辑(例如添加、移除对象)、自由形式编辑(如风格迁移)和其他视觉任务(如目标检测、分割)。然后,微调一个语言大模型(LLama2-70B)根据图像的描述(一只猫)和任务类型(添加物体),输出编辑指令(增加一个粉红色夹克)、要编辑的目标物体(夹克)、新的图像描述(一只穿着红色夹克的猫)和原始的目标对象(猫)。根据这些条件信息,来获取对应的修改后的图片。作者利用DINO-SAM根据编辑指令得到要编辑区域的掩码,然后利用DiffEdit中的技术将这些掩码融入到编辑过程中,实现区域之间的无缝拼接,最后作者还对这些生成好的图像进行过滤和筛选。最终得到一个包含1千万张图片对和文本指令的图像编辑数据集。
  Emu Edit的网络结构采用了Emu中的设置,包括一个含有28亿参数的UNet扩散模型 ϵ θ \epsilon_{\theta} ϵθ,一个编码器 E E E和解码器 D D D,和来自CLIP ViT-L和T5-XXL模型的文本嵌入。给定一张输入图像 x x x,经编码得到潜在特征 z = E ( x ) z=E(x) z=E(x),经过扩散过程得到含有噪声的特征 z t z_t zt。将含有噪声的特征 z t z_t zt,与时刻 t t t,修改后的图像潜在特征 E ( c I ) E(c_I) E(cI)和文本指令嵌入 c T c_T cT一起输入到模型中,进行训练。损失函数依旧是扩撒模型常用的 min ⁡ θ E y , ϵ , t [ ∥ ϵ − ϵ θ ( z t , t , E ( c I ) , c T ) ∥ 2 2 ] \min _{\theta} \mathbb{E}_{y, \epsilon, t}\left[\left\|\epsilon-\epsilon_{\theta}\left(z_{t}, t, E\left(c_{I}\right), c_{T}\right)\right\|_{2}^{2}\right] θminEy,ϵ,t[ϵϵθ(zt,t,E(cI),cT)22]
  为了提高对于特定任务的适应性,作者又引入了学习型任务嵌入的概念,就是单独定义了一组嵌入式向量 v i v_i vi i i i表示第 i i i个任务,并将其加入到模型中。一方面将 v i v_i vi与时间步数嵌入相加,另一方面参考Prompt-to-Prompt通过交叉注意力机制将任务嵌入融合进去。损失函数如下 min ⁡ θ , v 1 , … , v k E y ^ , ϵ , t [ ∥ ϵ − ϵ θ ( z t , t , E ( c I ) , c T , v i ) ∥ 2 2 ] \min _{\theta, v_{1}, \ldots, v_{k}} \mathbb{E}_{\hat{y}, \epsilon, t}\left[\left\|\epsilon-\epsilon_{\theta}\left(z_{t}, t, E\left(c_{I}\right), c_{T}, v_{i}\right)\right\|_{2}^{2}\right] θ,v1,,vkminEy^,ϵ,t[ϵϵθ(zt,t,E(cI),cT,vi)22]在推理时,任务类别无需人工指定,而是单独微调了一个Flan-T5-XL模型根据输入的编辑指令来判断任务类别。该模型具备少样本的任务学习能力,实验表明最少只需要一个样本的训练,就能在新的任务上取得非常明显的效果提升。在对新任务进行学习时,为了快速训练,保持原有的生成能力不受影响,仅对任务嵌入的参数进行更新,而保持整个Unet模型参数锁定。
  在对图像进行连续编辑时,会出现“误差累积”的现象,就是图像越来越失真。为了提升连续编辑的效果,作者提出一种简单的方法,逐像素计算编辑后图像和原始图像之间的像素差值,只有差值大于一定阈值的像素点才会更改为新的图像,其他的保持原图不变。


http://www.ppmy.cn/devtools/25348.html

相关文章

基于springboot的企业级工位管理系统源码数据库

基于springboot的企业级工位管理系统源码数据库 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了企业级工位管理系统的开发全过程。通过分析企业级工位管理系统管理的不足,创建了一个计算机管理企业级工…

基于Springboot的点餐平台

基于SpringbootVue的点餐平台的设计与实现 开发语言:Java数据库:MySQL技术:SpringbootMybatis工具:IDEA、Maven、Navicat 系统展示 用户登录 首页展示 菜品信息 菜品资讯 购物车 后台登录 用户管理 菜品分类管理 菜品信息管理 …

C#创建obj三维模型文件

介绍 使用开源库创建obj三维模型文件。 开源库地址:https://github.com/JeremyAnsel/JeremyAnsel.Media.WavefrontObj 相关API地址:https://jeremyansel.github.io/JeremyAnsel.Media.WavefrontObj/api/JeremyAnsel.Media.WavefrontObj.ObjFile.html …

C#编程模式之组合模式(Composite)

创作背景:各位朋友,我们继续C#编程模式的探讨,这次探讨的模式是组合模式。它和桥接模式一样,是一种结构型设计模式,允许使用者将对象组合成树形结构来展示其“部分和整体”的层次结构。要求同样比较严格,用…

指纹浏览器:网络安全与隐私的新工具

在互联网时代,隐私和网络安全成为人们越来越关注的话题。随着数字化的发展,个人信息的泄露和在线追踪的问题愈发严峻。在这个背景下,"指纹浏览器"作为一种新型工具,开始受到关注。撸空投需要了解指纹浏览器。本文将深入…

Ubuntu搭建RP2040开发环境-1

Ubuntu搭建RP2040开发环境-1 2024-4-23 hongxi.zhu 前置依赖(可选) sudo apt-get install vim sudo apt-get install cmake sudo apt-get install libncurses-dev sudo apt-get install libssl-dev sudo apt-get install git一、下载SDK和编译链 下载SD…

c++多文件,cmakelist编写简单示例

记录下c多文件cmakelist编写流程&#xff1a; 目录结构大致如下&#xff1a; 1、swap.h #include <iostream> #include <vector> #include <string> using namespace std;void swap(int *a,int *b); 2、swap.cpp #include "swap.h"void swap(…

【MRI重建】Cartesian采样中data consistency 常规数据一致性实现(pytorch)

关于 在MRI重建中,data consistency 可以帮助加快MRI图像重建和减少模型重建带来的重建误差。 工具 方法实现 x_rec: 重建图像, (batch_size,2,H,W) mask: 欠采样模版,(batch_size,2,H,W) k_un: 真实欠采样采集数据, (batch_size,2,H,W) torch.view_as_complex: 将实数数据…