浅析扩散模型与图像生成【应用篇】(二十五)——Plug-and-Play

news2024/11/13 6:41:19

25. Plug-and-Play: Diffusion Features for Text-Driven Image-to-Image Translation

  该文提出一种文本驱动的图像转换方法,输入一张图像和一个目标文本描述,按照文本描述对输入图像进行转换,得到目标图像。图像转换任务其实本质上属于图像编辑任务的一种,在保留输入图像原有的姿态、布局不变的情况下,修改图像的背景、纹理、材质等内容,而不能改变图像的内容、语义、视角等。本文提出在解码器阶段的特征图能够保留局部语义信息,并且不会受到对象外观的影响,而自注意力层中的相似性图能够保留布局和形状的细节。作者对输入图像进行重建,并将重建过程中的特征图和自注意力层中的相似性图抽取出来,注入到目标图像的生成过程中,从而实现对生成图像的布局、形状的约束和引导。文本的特征还是通过交叉注意力机制引入,来实现对目标图像的修改。
在这里插入图片描述
  首先,输入图像 I G I^G IG经过一个DDIM的扩散过程得到噪声图 x T G x^G_T xTG,将 x T G x^G_T xTG输入到一个预训练好的LDM中得到去噪重建的图像 x T − 1 G x^G_{T-1} xT1G。在解码过程中,将特征图 f t l f^l_t ftl和自注意力层中的相似性图 A t l = S o f t m a x ( q t l k t l T ) A_t^l=\mathrm{Softmax}(\boldsymbol{q}_t^l{\boldsymbol{k}_t^l}^T) Atl=Softmax(qtlktlT)提取出来。为了展示特征图和相似性图所包含的信息,作者使用PCA提取特征图中前三个主成分,并进行可视化展示,效果如下图所示
在这里插入图片描述
  可以看到,在较浅的层级中,特征图只保留了非常粗糙的前景物体信息。而在中间层级(layer=4)中,就能观察到不同领域的对象之间共享的局部语义信息,物体中相同的部分对应的颜色也相同(例如人物的头部都是黄绿色,而躯干都是红紫色),即使他们的外观存在很大的差别。在更高的层级中,特征图就包含了更多高频的低级纹理信息。同理,我们再看一下不同层级中自注意力层的相关性图的可视化效果,如下图所示。在较低的层级中,相似性图和图像的语义布局是对齐的,随着层级不断地加深,能够提取到更多的高频信息。
在这里插入图片描述
  可视化的结果表明了,中层级的特征图保留了局部的语义信息,而相似性图保留了布局和形状信息。作者的想法也非常简单,直接把这些信息注入到目标图像的生成过程中,取代对应位置的特征图和相似性图,从而实现对生成过程的引导。保持生成图像的语义、布局和形状不会发生改变。
  可以看到生成过程中,初始的噪声图 x T ∗ x^*_T xT直接使用原图的扩散结果 X T G X^G_T XTG,对噪声图使用预训练的LDM进行扩散生成,并将第4层特征图 { f t ∗ l } \{f_t^{*l}\} {ftl}和自注意力层的相似性图 A t l A_t^l Atl直接用前面提取得到特征图和相似图替换掉,而文本特征 P P P仍通过交叉注意力机制引入,得到生成的结果 z t − 1 ∗ = ϵ ^ θ ( x t , P , t ; f t 4 , { A t l } ) z_{t-1}^*=\hat{\epsilon}_{\boldsymbol{\theta}}(\boldsymbol{x}_t,P,t;\boldsymbol{f}_t^4,\{\boldsymbol{A}_t^l\}) zt1=ϵ^θ(xt,P,t;ft4,{Atl})为什么选择第4层的特征图而不是选择所有的特征图呢?是因为作者发现,如果全部都用会使得的生成结果保留原有图像的一些纹理和外观信息,只用第4层特征图就能够很好的保留语义信息。此外,如果只注入相似性图而不注入特征图,则会导致引导特征和生成特征之间没有语义关联,从而导致结构上的不对齐,如下图所示
在这里插入图片描述
  在生成过程中,作者使用两个参数 τ f \tau_f τf τ A \tau_A τA分别来控制注入特征图和相似性图的时间步数,当生成步数 t t t大于 τ f \tau_f τf τ A \tau_A τA,才开始注入特征图或相似性图,整个流程如下图所示
在这里插入图片描述
  此外,作者还引入了输入图像的文本描述作为负提示(Negative-prompting),作为无分类器的引导来修正预测的噪声 ϵ \epsilon ϵ ϵ = w ϵ θ ( x t , P , t ) + ( 1 − w ) ϵ ~ \epsilon=w\boldsymbol{\epsilon}_{\theta}(\boldsymbol{x}_{t},P,t)+(1-w)\tilde{\boldsymbol{\epsilon}} ϵ=wϵθ(xt,P,t)+(1w)ϵ~其中 ϵ ~ = α ϵ θ ( x t , ∅ , t ) + ( 1 − α ) ϵ θ ( x t , P n , t ) \tilde{\boldsymbol{\epsilon}}=\alpha\boldsymbol{\epsilon}_\theta(\boldsymbol{x}_t,\varnothing,t)+(1-\alpha)\boldsymbol{\epsilon}_\theta(\boldsymbol{x}_t,P_n,t) ϵ~=αϵθ(xt,,t)+(1α)ϵθ(xt,Pn,t) α \alpha α w w w分别来控制负提示的影响和无分类器引导的影响。但作者通过实验发现,这个改进对于缺少纹理的轮廓图像效果更明显,而对于拥有正常外观的引导图片作用较小。本文的转换效果与其他的图像编辑方法对比如下
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Flask框架】

6.Flask轻量型框架 6.1Flask简介 python提供的框架中已经写好了一个内置的服务器,服务器中的回应response行和头已经写好,我们只需要自己写显示在客户端,的主体body部分。 ---------------------------------------------------------- Fla…

【Linux】常用指令、热键与权限管理

一、常用指令 (1)ls 功能:列出指定目录下的所有子目录与文件 用法:ls (选项) (目录或文件名) 常用选项: -a:列出目录下的所有文件,包括隐藏…

k8s环境部署的集成arthas-spring-boot-starter spingboot项目无法访问控制台

前言 k8s环境部署的集成arthas-spring-boot-starter项目无法访问控制台,springboot项目集成arthas-spring-boot-starter 会自带个控制台 供我们访问 但是当使用k8s环境部署后 这个页面就无法访问了 分析 首先看下arthas对应的配置 arthas-spring-boot-starter 中…

linux基础指令讲解(ls、pwd、cd、touch、mkdir)

🪐🪐🪐欢迎来到程序员餐厅💫💫💫 主厨:邪王真眼 主厨的主页:Chef‘s blog 所属专栏:c大冒险 总有光环在陨落,总有新星在闪烁 这个是我们今天要用到的初始…

超实用的excel进销存管理系统(75份),自带库存预警,直接用!

进销存(Inventory Management)是企业管理中的一个核心组成部分,它涉及到商品的采购(进货)、销售和存储(库存)等环节。有效的进销存管理可以帮助企业降低成本、提高效率和客户满意度。 1. 采购管…

【上海大学计算机组成原理实验报告】五、机器语言程序实验

一、实验目的 理解计算机执行程序的实际过程。 学习编制机器语言简单程序的方法。 二、实验原理 根据实验指导书的相关内容,指令的形式化表示是指采用一种规范化的符号系统,以更清晰、精确地描述和表示指令的逻辑功能和操作步骤。 汇编是一种编程语言…

C++ 中重写重载和隐藏的区别

重写(override)、重载(overload)和隐藏(overwrite)在C中是3个完全不同的概念。我们这里对其进行详细的说明 1、重写(override)是指派生类覆盖了基类的虚函数,这里的覆盖必…

gitlab webhook触发jenkins任务

配置jenkins 安装gitlab插件 配置jenkins job 选择gitlab webhook触发 在高级中生成token 代码仓设置 新增webhook 配置webhook 测试连接 缺点,不能带gitLab事件的参数!!!

Xilinx RAM IP核的使用及注意事项

对于RAM IP核(Block Memory Generator核)的使用以及界面的配置介绍,文章RAM的使用介绍进行了较详细的说明,本文对RAM IP核使用中一些注意的地方加以说明。 文章目录 三种RAM的区别单端口RAM(Single-port RAM)简单双端口RAM(Simple Dual-port RAM)真双端…

Spring Security入门教程:实现自定义用户配置

在上一篇文章中:Spring Security入门教程:利用Spring Security实现安全控制 我们学会了使用Spring Security实现安全控制,学会了他的基础使用,这节课我们来学习一下它的自定义的功能,更深入的了解和使用Spring Securit…

计算机组成结构—寻址方法

目录 一、指令寻址 二、数据寻址 1.立即寻址 2.直接寻址 3.间接寻址 4.隐含寻址 5.寄存器寻址 6.寄存器间接寻址 7.基址寻址 8.变址寻址 9.相对寻址 10. 堆栈寻址 寻址方式是寻找指令或操作数有效地址的方式,也就是指确定本条指令的数据地址,…

C++错题集(持续更新ing)

Day 1 一、选择题 解析: 在数字不会溢出的前提下,对于正数和负数,有: 1)左移n位,相当于操作数乘以2的n次方; 2)右移n位,相当于操作数除以2的n次方。 解析&#xff1a…

深度盘点在当今经济形势下资深项目经理或PMO的或去或从

在当今经济形势下,资深项目经理(Project Manager)或项目管理办公室(PMO)的去向和选择受到多种因素的影响。以下是对他们可能面临的或去或从的深度盘点: 1、发展去向 1. 深化专业领域:在经济形势…

2024年【制冷与空调设备运行操作】考试内容及制冷与空调设备运行操作考试试题

题库来源:安全生产模拟考试一点通公众号小程序 制冷与空调设备运行操作考试内容是安全生产模拟考试一点通生成的,制冷与空调设备运行操作证模拟考试题库是根据制冷与空调设备运行操作最新版教材汇编出制冷与空调设备运行操作仿真模拟考试。2024年【制冷…

如何实现Linux双网卡同时连接内网和外网的配置?

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

快速查看字符对应的ASCII码

1、借助gdb查看 打印字符串用双引号括起来打印单个字符用单引号括起来x 表示十六机制d 表示十进制t 表示二进制 2、借助二进制查看软件 第一步:把要查看的字符保存到文本文件中第二步:借助二进制查看工具(比如:Hex Editor Neo&am…

Windows 10无法远程桌面连接:原因及解决方案

在信息技术日益发展的今天,远程桌面连接已成为企业日常运维、技术支持乃至个人用户远程办公的必备工具。然而,有时我们可能会遇到Windows 10无法远程桌面连接的问题,这无疑会给我们的工作和生活带来诸多不便。 原因分析 1、远程访问未启用&a…

对比测评3款BI分析工具

前不久,一位准备入职阿里的学弟问我,他要做电商数据分析,电商有庞杂的标签、模型、数据和业务逻辑,菜鸟应该要具备什么样的分析能力啊? 我看了他的岗位职责,主要是负责经营决策支持、专题分析和数据看板搭…

智能决策引擎架构设计

智能决策引擎概述 智能决策引擎系统是在大数据支撑下,根据行业专家经验制定规则策略、以及机器学习/深度学习/AI领域建立的模型运算,对当前的业务进行全面的评估,并给出决策结果的一套系统。 一套商业决策引擎系统动辄百万而且需要不断加钱定制,大多数企业最终仍会走上自研…