浅析扩散模型与图像生成【应用篇】(二十四)——Text2Live

24. Text2LIVE : Text-Driven Layered Image and Video Editing

  本文提出一种文本驱动的图像和视频编辑方法。与其他方法直接对图像进行编辑的方式不同,本文提出的方法并不是基于扩散模型的,更像是一个自编码器,通过对原图编码解码输出一个新的编辑图层,再与原图进行融合得到编辑后的图像。因此本文提出的方法更多适用于修改图中某个对象的纹理,或者增加一些特效,如火焰、烟雾等,而不能修改物体的动作、布局等等。另一方面,本文将提出的方法应用到了视频的编辑应用中。
在这里插入图片描述
  本文主要完成了如下工作的:

  • 分层编辑,根据输入原图输出一个包含RGBA通道的可编辑图层,并与原图融合后得到编辑图像
  • 显示计算内容保留和定位损失,能够更好的保留原有图像内容不被改变,且能够引导编辑的位置
  • 内部生成先验,通过对输入的图像和文本进行数据增强,从而构建一个内部样本数据集用于生成器的训练

在这里插入图片描述
  我们先来看一下他是如何进行图像编辑的,正如前文所说,将原图 I s I_s Is输入到一个生成器中,输出一个包含RGBA四个通道的可编辑图层 E = { C , α } \mathcal{E}=\{C,\alpha\} E={C,α},其中 C C C表示RGB图像, α \alpha α表示透明度层,将可编辑图层 E \mathcal{E} E与原图 I s I_s Is进行融合,得到编辑后的图像 I o I_o Io I o = α ⋅ C + ( 1 − α ) ⋅ I s I_o=\alpha\cdot C+(1-\alpha)\cdot I_s Io=αC+(1α)Is文中没有明确说生成器是如何实现的,但看起来像是一个自编码器模型,那么如何让生成器输出我们想要编辑的内容呢?这里就需要通过损失函数引入文本条件的引导了。对于一个文本描述 T T T,作者在其基础上提出两个辅助的文本提示: T s c r e e n T_{screen} Tscreen描述了目标编辑层和 T R O I T_{ROI} TROI描述了待编辑的位置。例如, T T T=“fire out of the bear’s mouth”,, T s c r e e n T_{screen} Tscreen =“fire over a green screen”, T R O I T_{ROI} TROI =“mouth”。利用这些文本描述,作者提出了一系列的损失函数,包括内容损失 L c o m p \mathcal{L}_{\mathrm{comp}} Lcomp,绿幕损失 L s c r e e n \mathcal{L}_{\mathrm{screen}} Lscreen,结构损失 L s t r u c t u r e \mathcal{L}_{\mathrm{structure}} Lstructure和一个正则化项 L r e g \mathcal{L}_{\mathrm{reg}} Lreg,总的损失函数如下: L T e x t 2 L I V E = L c o m p + λ g L s c r e e n + λ s L s t r u c t u r e + λ r L r e g \mathcal{L}_{\mathrm{Text2LIVE}}=\mathcal{L}_{\mathrm{comp}}+\lambda_{g}\mathcal{L}_{\mathrm{screen}}+\lambda_{s}\mathcal{L}_{\mathrm{structure}}+\lambda_{r}\mathcal{L}_{\mathrm{reg}} LText2LIVE=Lcomp+λgLscreen+λsLstructure+λrLreg其中内容损失通过计算生成图像特征和文本描述特征之间的余弦距离损失和方向损失,来评估生成结果与文本描述之间的匹配程度 L c o m p = L cos ⁡ ( I o , T ) + L d i r ( I s , I o , T R O I , T ) \mathcal{L}_{{\mathrm{comp}}}=\mathcal{L}_{\cos}\left(I_{o},T\right)+\mathcal{L}_{{\mathrm{dir}}}(I_{s},I_{o},T_{{\mathrm{ROI}}},T) Lcomp=Lcos(Io,T)+Ldir(Is,Io,TROI,T)其中 L c o s = D cos ⁡ ( E i m ( I o ) , E t x t ( T ) ) \mathcal{L}_{\mathsf{cos}} = \mathcal{D}_{\cos} (E_{\mathrm{im}}(I_{o}),E_{\mathrm{txt}}(T)) Lcos=Dcos(Eim(Io),Etxt(T)) D cos ⁡ \mathcal{D}_{\cos} Dcos表示余弦距离, E i m E_{\mathrm{im}} Eim E t x t E_{\mathrm{txt}} Etxt分别表示CLIP中的图像和文本编码器。第二项 L d i r \mathcal{L}_{\mathsf{dir}} Ldir则用于控制在CLIP空间中编辑的方向 L d i r = D cos ⁡ ( E i m ( I o ) − E i m ( I s ) , E t x t ( T ) − E t x t ( T R O I ) ) \mathcal{L}_{\mathsf{dir}}=\mathcal{D}_{\cos}(E_{\mathrm{im}}(I_{o})-E_{\mathrm{im}}(I_{s}),E_{\mathrm{txt}}(T)-E_{\mathrm{txt}}(T_{\mathsf{ROI}})) Ldir=Dcos(Eim(Io)Eim(Is),Etxt(T)Etxt(TROI))
  绿幕损失则是参考了在电影工业中常用的绿幕特效技术,通过将可编辑图层融和到一个纯绿色背景 I g r e e n I_{green} Igreen中,并使其与特定的文本模板匹配, T s c r e e n T_{screen} Tscreen=“{ }” over a green screen L s c r e e n = L cos ⁡ ( I s c r e e n , T s c r e e n ) \mathcal{L}_{{\mathrm{screen}}}=\mathcal{L}_{\cos}\left(I_{{\mathrm{screen}}},T_{{\mathrm{screen}}}\right) Lscreen=Lcos(Iscreen,Tscreen)其中 I s c r e e n = α ⋅ C + ( 1 − α ) ⋅ I g r e e n I_{\mathsf{screen}}=\alpha\cdot C+(1-\alpha)\cdot I_{\mathsf{green}} Iscreen=αC+(1α)Igreen这个损失函数的好处在于它可以直接对所编辑的内容进行监督,而不会影响图像中其他的内容。结构损失 L s t r u c t u r e \mathcal{L}_{\mathrm{structure}} Lstructure则是为了保证所编辑对象的空间布局、形状、感观语义等不发生变化,作者首先利用CLIP中的ViT提取得到 K K K个空间tokens,然后计算这 K K K个tokens之间的自相似矩阵 S ( I ) S(I) S(I) S ( I ) i j = 1 − D cos ⁡ ( t i ( I ) , t j ( I ) ) S(I)_{ij}=1-\mathcal{D}_{\cos}\left(\mathbf{t}^i(I),\mathbf{t}^j(I)\right) S(I)ij=1Dcos(ti(I),tj(I))最后计算输入图像和输出图像的自相似矩阵之间的F范数作为结构损失 L structure = ∥ S ( I s ) − S ( I o ) ∥ F \mathcal{L}_\text{structure}=\left\|S(I_s)-S(I_o)\right\|_F Lstructure=S(Is)S(Io)F
  为了控制所编辑区域的空间范围,作者希望输出的透明度图尽可能的稀疏一些,也就是让大部分的透明度值 α \alpha α全为0,以保证生成的图像 I o I_o Io与原图 I s I_s Is在大部分区域上都是一致的。为了实现这种稀疏的特性,作者使用了L1和近似L0正则化项: L r e g = γ ∣ ∣ α ∣ ∣ 1 + Ψ 0 ( α ) \mathcal{L}_{\mathrm{reg}}=\gamma||\alpha||_1+\Psi_0(\alpha) Lreg=γ∣∣α1+Ψ0(α)其中 Ψ 0 ( x ) ≡ 2 Sigmoid ( 5 x ) − 1 \Psi_0(x)\equiv2\text{Sigmoid}(5x)-1 Ψ0(x)2Sigmoid(5x)1为了实现编辑区域的准确定位,作者还提出一种文本驱动的相关性损失来对透明度图进行初始化。首先按照Chefer等人【1】提出的方法计算相关性图 R ( I s ) R(I_s) R(Is)来粗略的估计图像中与 T R O I T_{ROI} TROI最相关的区域

[1] Chefer, H., Gur, S., Wolf, L.: Generic attention-model explainability for interpret- ing bi-modal and encoder-decoder transformers. In: Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV) (2021)

然后通过最小化下式,来对透明度图 α \alpha α进行初始化 L i n i t = M S E ( R ( I s ) , α ) \mathcal{L}_{\mathsf{init}}=\mathrm{MSE}\left(R(I_{s}),\alpha\right) Linit=MSE(R(Is),α)
  在训练过程中,每次输入一个图像 I s I_s Is和一个文本描述 T T T,然后对图像和文本描述进行数据增强,得到一组训练样本 { ( I s i , T i ) } i = 1 N \{(I_s^i,T^i)\}_{i=1}^N {(Isi,Ti)}i=1N,图像增强包括全局裁剪、颜色变换、反转等,文本增强则使用一系列预定义的文本模板进行采样,例如“a photo of { }”。这就是前文所提到的内部数据集,使用这个小数据集对生成器进行训练,得到对应的编辑结果。
在这里插入图片描述

  了解了本文的图像编辑方式,我们再来简单看一下针对视频的编辑方式。相比于图像编辑,视频编辑需要考虑时间上的连续性,而不是简单的对每张图进行编辑。这里作者使用了一种叫做神经分层图集的方法(Neural Layered Atlases,NLA),NLA将视频分解成一组2D的图集分别表示前景物体和背景图像,每个图集都可以看作是一幅2D的图像。NLA本质上是由多个MLP构成的,给定一个视频中的像素坐标 p = ( x , y , t ) p=(x,y,t) p=(x,y,t) x , y x,y x,y分别表示横纵坐标, t t t表示时间,NLA将其分别转化为前景和背景图集上的二维坐标点以及一个前景的不透明度值。 M b ( p ) = ( u b p , v b p ) , M f ( p ) = ( u f p , v f p ) \mathbb{M}_b(p)=(u_b^p,v_b^p),\mathbb{M}_f(p)=(u_f^p,v_f^p) Mb(p)=(ubp,vbp),Mf(p)=(ufp,vfp)其中 M b ( p ) \mathbb{M}_b(p) Mb(p) M f ( p ) \mathbb{M}_f(p) Mf(p)分别对应背景和前景的映射网络, ( u b p , v b p ) (u_b^p,v_b^p) (ubp,vbp) ( u f p , v f p ) (u_f^p,v_f^p) (ufp,vfp)分别对应背景和前景图集上的坐标点。通过在二维图集上对坐标点进行编辑,并将其反向映射到视频中的像素坐标 p p p,从而实现对视频的编辑。
  本文使用一个预训练好的NLA模型对视频进行分解,然后对2D离散的图集 I A I_A IA进行编辑得到图集编辑层 E A = { C A , α A } \mathcal{E}_A=\{C_A,\alpha_A\} EA={CA,αA},接着使用预训练好的映射网络 M \mathbb{M} M E A \mathcal{E}_A EA进行双线性采样 E t = S a m p l e r ( E A , S ) \mathcal{E}_\mathrm{t}=\mathrm{Sampler}(\mathcal{E}_A,\mathcal{S}) Et=Sampler(EA,S)其中 S = { M ( p ) ∣ p = ( ⋅ , ⋅ , t ) } \mathcal{S}=\{\mathbb{M}(p)\mid p=(\cdot,\cdot,t)\} S={M(p)p=(,,t)}是第 t t t帧图像对应的UV坐标集合。最后将 E t \mathcal{E}_\mathrm{t} Et与原始图像帧做融合得到编辑后的视频。
  与其他当时流行的图像编辑方法,如GLIDE、Blended-Diffusion、CLIPStyler等相比,本文提出的方法在指定物体的编辑效果上有明显的提升。但本文提出的方法需要对每个输入的图像和文本都进行训练,这制约了该方法的应用。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[ACTF新生赛2020]SoulLike

没见过的错误: ida /ctg目录下的hexrays.cfg文件中的MAX_FUNCSIZE64 改为 MAX_FUNCSIZE1024 然后就是一堆数据 反正就是12个字符 from pwn import * flag"actf{" k0 for n in range(12):for i in range(33,127):pprocess("./SoulLike")_flag…

FFmpeg常用API与示例(三)—— 音视频解码与编码

编解码层 1.解码 (1) 注册所有容器格式和 CODEC:av_register_all() (2) 打开文件:av_open_input_file() (3) 从文件中提取流信息:av_find_stream_info() (4) 穷举所有的流,查找其中种类为 CODEC_TYPE_VIDEO (5) 查找对应的解码器:avcodec_find_decoder() (6) …

家居分类的添加、修改、逻辑删除和批量删除

文章目录 1.逻辑删除家居分类1.将之前的docker数据库换成云数据库2.树形控件增加添加和删除按钮1.找到控件2.粘贴四个属性到<el-tree 属性>3.粘贴两个span到<el-tree>标签里4.代码5.效果6.方法区新增两个方法处理添加和删除分类7.输出查看一下信息8.要求节点等级小…

蓝桥杯国赛每日一题:完全二叉树的权值(双指针,二叉树)

题目描述&#xff1a; 给定一棵包含 N 个节点的完全二叉树&#xff0c;树上每个节点都有一个权值&#xff0c;按从上到下、从左到右的顺序依次是 A1,A2,⋅⋅⋅AN&#xff0c;如下图所示&#xff1a; 现在小明要把相同深度的节点的权值加在一起&#xff0c;他想知道哪个深度的节…

微前端无界方案

微前端无界 无界 官方文档 主应用 1、引入 // 无框架时使用wujie import Wujie from wujie // 当结合框架时使用wujie-xxx // import Wujie from "wujie-vue2"; // import Wujie from "wujie-vue3"; // import Wujie from "wujie-react";cons…

软件需求工程习题

1.&#xff08;面谈&#xff09;是需求获取活动中发生的需求工程师和用户间面对面的会见。 2.使用原型法进行需求获取&#xff0c;&#xff08;演化式&#xff09;原型必须具有健壮性&#xff0c;代码质量要从一开始就能达到最终系统的要求 3.利用面谈进行需求获取时&#xf…

提升文本到图像模型的空间一致性:SPRIGHT数据集与训练技术的新进展

当前的T2I模型&#xff0c;如Stable Diffusion和DALL-E&#xff0c;虽然在生成高分辨率、逼真图像方面取得了成功&#xff0c;但在空间一致性方面存在不足。这些模型往往无法精确地按照文本提示中描述的空间关系来生成图像。为了解决这一问题&#xff0c;研究人员进行了深入分析…

长难句打卡 5.13

And in Europe, some are up in arms over a proposal to drop a specific funding category for social-science research and to integrate it within cross-cutting topics of sustainable development. 在欧洲&#xff0c;有些人正竭力反对一项“终止专用于社会科学研究的…

rac asm新增磁盘报0RA-15333或ORA-15075

虚拟化做的rac&#xff0c;发现原来加盘直接把sdb、sdc、sdd、sde加到asm里了&#xff0c;后面通过udev绑定的盘&#xff0c;增加到asm里就报错&#xff1a; [DBT-30007]Addition of disks to disk group DATA failed ORA-15032:not all alterations performed 0RA-15333: d…

05、 java 的三种注释及 javadoc 命令解析文档注释(即:java 特有注释方式)的过程

java的三种注释 1、单行注释&#xff1a;其一、代码展示&#xff1a;其二、特点&#xff1a; 2、多行注释&#xff1a;其一、代码展示&#xff1a;其二、特点&#xff1a; 3、文档注释(java特有)&#xff1a;其一、代码展示&#xff1a;其二、注释文档的使用&#xff1a;其三、…

flink cdc,读取datetime类型

:flink cdc&#xff0c;读取datetime类型&#xff0c;全都变成了时间戳 Flink CDC读取MySQL的datetime类型时会转换为时间戳的问题&#xff0c;可以通过在Flink CDC任务中添加相应的转换器来解决。具体来说&#xff0c;可以在MySQL数据源的debezium.source.converter配置项中指…

电商平台接口自动化框架实践||电商API数据采集接口

电商数据采集接口 语言&#xff1a;python 接口自动化实现流程 红色为可实现/尚未完成 绿色为需要人工干预部分 自动生成测试用例模板&#xff08;俩种方式二选一&#xff09;&#xff1a; mimproxy&#xff0c;通过浏览器代理抓包方式&#xff0c;访问 H5 或者 web 页面&a…

电脑快速搜索文件及文件夹软件——Everything

一、前言 Everything是一款由voidtools开发的文件搜索工具&#xff0c;主要运行于Windows操作系统上。它的主要功能是快速、高效地搜索电脑上的文件和文件夹名称。Everything通过利用NTFS文件系统的MFT&#xff08;主文件表&#xff09;来索引文件&#xff0c;从而实现几乎实时…

大型医疗挂号微服务“马上好医”医疗项目(4)设计一个医院方接口

如何构建一个医院方接口 一、如何进行数据库建模 数据库建模一般需要使用工具PowerDesign&#xff0c;但是其实在navicat中是有类似的功能的 二、分析医院接口会有什么字段 其实很多的同学在入行的时候会有一个问题&#xff0c;没有设计思维。 表字段的设计方案 状态字段…

如何写好网评文章?写好了怎么去投稿呢,教程来了

如何写好网评文章&#xff0c;可谓仁者见仁、智者见智。俗话说&#xff1a;“冰冻三尺非一日之寒。”写好网评文章决不是一朝一夕能够练成的&#xff0c;是一个漫长的修炼的过程&#xff0c;需要我们耐得住寂寞、静得下心神。从事网评写作六年多&#xff0c;我有一些心得体会和…

51cto已购买的视频怎么下载到本地

你是否曾在学习51CTO的精品课程时&#xff0c;希望可以随时随地无网络干扰地进行学习&#xff0c;或是想要将这些已购买的课程永久珍藏&#xff1f;今天&#xff0c;你的愿望将要实现。我们将向你揭示如何轻松地将已购买的51CTO视频下载到本地&#xff0c;让学习的路上再也没有…

【Linux线程(一)】线程初理解

前言&#xff1a; &#xff08;一&#xff09;线程的概念 &#xff08;二&#xff09;线程的理解 &#xff08;三&#xff09;示例 &#xff08;四&#xff09;线程优缺点 线程的优点 线程的缺点 &#xff08;五&#xff09;线程和进程的切换 1.线程的切换 2.进程的切换…

感染了后缀为.360勒索病毒如何应对?数据能够恢复吗?

导言&#xff1a; 在数字化时代的浪潮中&#xff0c;网络安全问题如同暗流涌动&#xff0c;威胁着每一个互联网用户的安宁。而近年来&#xff0c;一种名为.360勒索病毒的新型网络威胁逐渐浮出水面&#xff0c;以其独特的加密方式和狡猾的传播策略&#xff0c;给全球网络安全带…

数据库——SQL SERVER(先学删库跑路)

目录 一&#xff1a;什么是数据库 二&#xff1a;为什么需要数据库 三&#xff1a;数据库的安装 四&#xff1a;学前必备知识 1. 数据库原理 2. 数据库与编程语言 3. 数据库与数据结构的区别 4. 连接 5. 有了编程语言为啥还要数据库 6. 初学者学习数据库的三个方面 …

出租车计价器设计与实现(论文 + 源码)

关于java出租车计价器设计与实现.zip资源-CSDN文库https://download.csdn.net/download/JW_559/89304164 出租车计价器设计与实现 摘 要 在我国&#xff0c;出租车行业是八十年代初兴起的一项新兴行业&#xff0c;随着出租车的产生&#xff0c;计价器也就应运而生。但当时在全…