InstructPix2Pix(CVPR2023)-图像编辑论文解读
文章目录
- 1.摘要
- 2.背景
- 3.算法
- 3.1 生成多模态训练集
- 3.1.1生成指令及成对caption
- 3.1.2 依据成对的caption生成成对的图像
- 3.2 InstructPix2Pix
- 4.实验结果
- 4.1基线比较
- 4.2消融实验
- 5.结论
论文: 《InstructPix2Pix: Learning to Follow Image Editing Instructions》
github: https://github.com/timothybrooks/instruct-pix2pix
1.摘要
本文提出一种根据人类引导编辑图像的方法InstructPix2Pix:输入一张图片及告诉模型做什么的引导语,我们的模型将会跟随引导语编辑图像。为获得解决该问题的训练集,作者结合两个大预训练模型的知识:GPT-3、Stable Diffusion,用于生成图像编辑数据集。InstructPix2Pix在生成数据集上训练,但是可泛化到真实数据并且实现用户引导。因为该方案在前向过程进行编辑,无需finetune或转换,可在秒级完成图像编辑。作者展示了令人信服的编辑结果。
2.背景
GPT捕获关于语言的知识,Stable Diffusion捕获关于图像的知识,两者结合用于生成跨越两模态的成对训练集。
InstructPix2Pix在前向过程直接进行图像编辑,无需额外样例图、对输入/输出图的描述或逐样本finetune。
尽管InstructPix2Pix利用生成数据进行训练,但可零样本泛化到真实图片中。可进行各种编辑任务:替换目标、改变图片风格、改变背景、艺术风格等等,如图1所示。
3.算法
作者将基于引导的图像编辑任务看作有监督学习问题:
1. 生成成对训练集,包括图像编辑指令及编辑前后的图像;图2a-c
2. 在生成数据集训练图像编辑扩散模型;图2-d
3.1 生成多模态训练集
3.1.1生成指令及成对caption
一个LLM可利用输入图caption生成编辑指令及编辑后图片caption。如图2a所示,输入caption:“photograph ofa girl riding a horse”,LLM可生成编辑指令“have her ride a dragon”及编辑后输出caption:“photograph ofa girl riding a dragon”。
上述过程用到的语言模型通过在小批量人工编写的数据集上finetune GPT-3获得的。该finetune数据集,作者通过在LAION-Aesthetics V2 6.5+中采样700条输入caption获得。如表1所示。受益于GPT-3广博的知识和概括能力,我们finetune的模型能够生成合理instruction及caption。
3.1.2 依据成对的caption生成成对的图像
将一对caption转换为对应图像的挑战在于当prompt发生变化时,不能保证图像一致性。比如:“a picture ofa cat”及“a picture ofa black cat”可能会生成非常不同的猫,不利于训练模型进行图像编辑。因此作者使用Prompt-to-Prompt,使得生成图像尽量相似,如图3展示使用Prompt-to-Prompt前后结果。Prompt-to-Prompt中参数p可控制两张图相似性,作者对每个caption对生成100个样本对,随机参数 p ∼ U ( 0.1 , 0.9 ) p ∼ U(0.1, 0.9) p∼U(0.1,0.9),通过CLIP进行过滤样本。
3.2 InstructPix2Pix
为了支持图像作为条件输入,作者在第一个卷积层增加channel,将 z t z_t zt与 ϵ ( c I ) \epsilon(c_I) ϵ(cI) concat。
Classifier-free扩散引导用于平衡生成样本质量及多样性,联合训练扩散模型用于有条件及无条件去噪,推理时将两估计得分结合,通过参数 s s s控制,如式2所示,
对于本任务,得分网络 e θ ( z t , c I , c T ) e_θ(z_t, c_I, c_T) eθ(zt,cI,cT) 有两个条件,作者引入两个引导参数 S I 、 S T S_I、S_T SI、ST,更改后的得分估计如式3,图4展示两参数影响。
4.实验结果
4.1基线比较
如图9,作者与Text2Live、SDEdit进行定性比较。尽管SDEdit能够保证内容一致,同时风格变化,但是它需要目标图的description而不是instruction。
与SDEdit定量比较如图8,纵轴表示CLIP图像相似性,通过计算CLIP image embedding余弦相似性实现,用于表示编辑后的图像与编辑前图像一致性;横轴表示CLIP图文相似性,用于表示编辑后图像与caption一致性。与SDEdit相比,作者所提方法在相同图文一致性时,具有更高的图像一致性。
4.2消融实验
图10展示消融实验量化结果,降低数据集大小将导致降低更大图像编辑能力,仅保证图像一致性,但无法保证图文一致性;移除数据集CLIP过滤,导致与输入图的一致性降低。
图4展示两个引导参数 S I 、 S T S_I、S_T SI、ST影响,增大 S T S_T ST使得与instruction更加一致,增大 S I S_I SI使得与输入图更加一致;
5.结论
作者证明大语言模型与文生图模型结合生成数据集,用于根据instruction训练扩撒模型。虽然能够进行令人信服的图像编辑,但是仍存在一些限制。
- 受限于生成数据集图像质量
- 受限于模型泛化到新编辑instruction的能力
- 视觉变化与instruction做出正确关联度受限于finetune GPT-3人工编写的instruction、GPT-3的能力、Prompt-to-Prompt能力
- 在目标数量计数及空间推理方面存在问题。如图13
- 在数据及预训练模型的偏置有可能继承至InstructPix2Pix中,如图14。
作者同时提出一些问题:如何根据instruction进行空间推理;如何将instruction与其他条件模态结合;如何评估基于instruction的图像编辑;强化学习策略可能用于改进模型与人类意图之间一致性。
相关文章:

InstructPix2Pix(CVPR2023)-图像编辑论文解读
文章目录 1.摘要2.背景3.算法3.1 生成多模态训练集3.1.1生成指令及成对caption3.1.2 依据成对的caption生成成对的图像 3.2 InstructPix2Pix 4.实验结果4.1基线比较4.2消融实验 5.结论 论文: 《InstructPix2Pix: Learning to Follow Image Editing Instructions》 …...

基于神经网络结合紫外差分光谱的二氧化硫浓度定量预测
基于神经网络结合紫外差分光谱的二氧化硫浓度定量预测 前言一、代码运行1. 解压数据2. 导包3. 读取数据4. 构建网络5. 设置优化器6. 模型训练7. 可视化loss8. 模型验证 二、结果展示三、总结作者简介 前言 二氧化硫(SO2)是一种常见的环境污染物ÿ…...

一个新工具 nolyfill
名字的意思, 我自己的理解 no(po)lyfill 正如它的名字, 不要再用补丁了, 当然这里说的是过时的补丁。 polyfill 是补丁的意思 为什么要用这个插件 文档原文: 当您通过安装最新的 Node.js LTS 来接受最新的功能和安全修复时,像eslint-plugin-import、…...

vue的第2篇 开发环境vscode的安装以及创建项目空间
一 环境的搭建 1.1常见前端开发ide 1.2 安装vs.code 1.下载地址:Visual Studio Code - Code Editing. Redefined 2.进行安装 1.2.1 vscode的中文插件安装 1.在搜索框输入“chinese” 2.安装完成重启,如下变成中文 1.2.2 修改工作区的颜色 选中[浅色]…...
Java之包装类的详细解析
包装类 5.1 概述 Java提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使…...
SpringBoot项目防止接口重复提交(简单拦截器实现方案)
基于SpringBoot框架来开发业务后台项目时,接口重复提交是一个常见的问题。为了避免这个问题,我们可以通过自定义拦截器实现一个后台拦截接口重复提交的功能,本文将介绍如何使用基于SpringBoot实现这个功能。 首先,我们需要引入一…...

C语言 数据结构与算法 I
C语言-数据结构与算法 C语言基础 因为之前写算法都是用C,也有了些C基础,变量常量数据类型就跳过去吧。 首先是环境,学C时候用Clion,C语言也用它写吧~ 新建项目,选C执行文件,语言标准。。。就先默认C99吧…...
PHP指定时间戳/日期加一天,一年,一周,一月
PHP指定时间戳加上1天,1周,1月,一年其实是不需要用上什么函数的!指定时间戳本身就是数字整型,我们只需要再计算1天,1周它的秒数相加即可! 博主搜索php指定时间戳加一天一年,结果许多…...

前端框架 vue-admin-template的搭建运行
一介绍 1.1 下载地址 vue-element-admin是基于element-ui 的一套后台管理系统集成方案。 GitHub - PanJiaChen/vue-element-admin: :tada: A magical vue admin https://panjiachen.github.io/vue-element-admin 1.2 node.js的安装 地址下载node.js 1.6版本 CNPM Binari…...

Git—版本控制系统
git版本控制系统 1、什么是版本控制2、常见的版本控制工具3、版本控制分类3.1、本地版本控制3.2、集中版本控制 SVN3.3、分布式版本控制 Git 4、Git与SVN的主要区别5、Git环境配置6、启动Git7、常用的Linux命令8、Git配置9、设置用户名与邮箱(用户标识,必…...

【MySQL基础|第一篇】——谈谈SQL中的DDL语句
个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【MySQL学习专栏】🎈 本专栏旨在分享学习MySQL的一点学习心得,欢迎大家在评论区讨论💌 前言ÿ…...

移动安全测试框架-MobSF WINDOWS 环境搭建
安装python python-3.11.5-amd64.exe 安装Win64OpenSSL-3_1_2.exe 安装VisualStudioSetup.exe github下载安装包 https://github.com/MobSF/Mobile-Security-Framework-MobSF/archive/refs/heads/master.zip GitHub - MobSF/Mobile-Security-Framework-MobSF: Mobile Secur…...

QT连接OpenCV库完成人脸识别
1.相关的配置 1> 该项目所用环境:qt-opensource-windows-x86-mingw491_opengl-5.4.0 2> 配置opencv库路径: 1、在D盘下创建一个opencv的文件夹,用于存放所需材料 2、在opencv的文件夹下创建一个名为:opencv3.4-qt-intall 文…...

使用 ElasticSearch 作为知识库,存储向量及相似性搜索
一、ElasticSearch 向量存储及相似性搜索 在当今大数据时代,快速有效地搜索和分析海量数据成为了许多企业和组织的重要需求。Elasticsearch 作为一款功能强大的分布式搜索和分析引擎,为我们提供了一种优秀的解决方案。除了传统的文本搜索,El…...

视频图像处理算法opencv在esp32及esp32s3上面的移植,也可以移植openmv
opencv在esp32及esp32s3上面的移植 Opencv简介 OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上,它轻量级而且高效——由一系列 C 函数和少量…...

2. postgresql并行扫描(1)——pg强制走并行扫描建表及参数配置
转载自:https://developer.aliyun.com/article/700370 1. 参数设置 1.1 postgresql.conf中修改 # 1、总的可开启的WORKER足够大 max_worker_processes 128# 2、所有会话同时执行并行计算的并行度足够大 max_parallel_workers64# 3、单个QUERY中并行计算NODE开…...

【C++】动态内存管理
【C】动态内存管理 new和delete用法内置类型自定义类型抛异常定位new 刨析new和delete的执行与实现逻辑功能执行顺序newdelete 功能实现operator new与operator delete malloc free与new delete的总结 在我们学习C之前 在C语言中常用的动态内存管理的函数为: mallo…...

MATLAB R2023a完美激活版(附激活补丁)
MATLAB R2023a是一款面向科学和工程领域的高级数学计算和数据分析软件,它为Mac用户提供了强大的工具和功能,用于解决各种复杂的数学和科学问题。以下是MATLAB R2023a Mac的一些主要特点和功能: 软件下载:MATLAB R2023a完美激活版 …...

垃圾回收 - 标记压缩算法
压缩算法是将标记清除算法与复制算法相结合的产物。 1、什么是标记压缩算法 标记压缩算法是由标记阶段和压缩阶段构成。 首先,这里的标记阶段和标记清除算法时提到的标记阶段完全一样。 接下来我们要搜索数次堆来进行压缩。压缩阶段通过数次搜索堆来重新填充活动对…...

Vue中过滤器如何使用?
过滤器是对即将显示的数据做进⼀步的筛选处理,然后进⾏显示,值得注意的是过滤器并没有改变原来 的数据,只是在原数据的基础上产⽣新的数据。过滤器分全局过滤器和本地过滤器(局部过滤器)。 目录 全局过滤器 本地过滤器…...

RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...

C++:多态机制详解
目录 一. 多态的概念 1.静态多态(编译时多态) 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1).协变 2).析构函数的重写 5.override 和 final关键字 1&#…...
Caliper 配置文件解析:fisco-bcos.json
config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...

TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?
在工业自动化持续演进的今天,通信网络的角色正变得愈发关键。 2025年6月6日,为期三天的华南国际工业博览会在深圳国际会展中心(宝安)圆满落幕。作为国内工业通信领域的技术型企业,光路科技(Fiberroad&…...
uniapp 实现腾讯云IM群文件上传下载功能
UniApp 集成腾讯云IM实现群文件上传下载功能全攻略 一、功能背景与技术选型 在团队协作场景中,群文件共享是核心需求之一。本文将介绍如何基于腾讯云IMCOS,在uniapp中实现: 群内文件上传/下载文件元数据管理下载进度追踪跨平台文件预览 二…...

ui框架-文件列表展示
ui框架-文件列表展示 介绍 UI框架的文件列表展示组件,可以展示文件夹,支持列表展示和图标展示模式。组件提供了丰富的功能和可配置选项,适用于文件管理、文件上传等场景。 功能特性 支持列表模式和网格模式的切换展示支持文件和文件夹的层…...
[特殊字符] 手撸 Redis 互斥锁那些坑
📖 手撸 Redis 互斥锁那些坑 最近搞业务遇到高并发下同一个 key 的互斥操作,想实现分布式环境下的互斥锁。于是私下顺手手撸了个基于 Redis 的简单互斥锁,也顺便跟 Redisson 的 RLock 机制对比了下,记录一波,别踩我踩过…...

小智AI+MCP
什么是小智AI和MCP 如果还不清楚的先看往期文章 手搓小智AI聊天机器人 MCP 深度解析:AI 的USB接口 如何使用小智MCP 1.刷支持mcp的小智固件 2.下载官方MCP的示例代码 Github:https://github.com/78/mcp-calculator 安这个步骤执行 其中MCP_ENDPOI…...