浅析扩散模型与图像生成【应用篇】(二十四)——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等相比,本文提出的方法在指定物体的编辑效果上有明显的提升。但本文提出的方法需要对每个输入的图像和文本都进行训练,这制约了该方法的应用。

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

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

相关文章

华为OD机试 - 掌握的单词个数 - 回溯(Java 2024 C卷 100分)

华为OD机试 2024C卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(A卷+B卷+C卷)》。 刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。 一、题目描述 有一个字符…

通过ip addr命令无法获取到ip地址,无法ping通百度

问题 今天通过VM安装CentOS虚拟机时,安装完成后,想查看ip地址,使用ip addr命令,发现没有展示网络ip地址,ping百度也不通。 解决方案 CentOS使用网络配置文件来设置网络接口的参数,出现这个问题说明网络的…

物联网设计竞赛_3_Jetson Nano连接摄像头

ls /dev/video* 查看是否有摄像头 camorama 开启摄像头 关闭摄像头用&#xff1a; ctr c结束进程 若有camorama被启动用ps aux 或者 ps aux l grep camorama 找到对应进程用 kill -9 <PID>杀死进程再启动 必要的时候也能重启系统再试试&#xff1a; shutdown -r …

Windows2016系统禁止关闭系统自动更新教程

目录 1.输入cmd--适合系统2016版本2.输入sconfig&#xff0c;然后按回车键3.输入5&#xff0c;然后按回车键4.示例需要设置为手动更新&#xff0c;即输入M&#xff0c;然后按回车键 1.输入cmd–适合系统2016版本 2.输入sconfig&#xff0c;然后按回车键 3.输入5&#xff0c;然后…

半个小时搞懂STM32面经知识——DMA

1.DMA 1.1 什么是DMA&#xff1f; DMA传输将数据从一个地址空间复制到另一个地址空间&#xff0c;提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。 CPU无时不刻的在处理着大量的事务&#xff0c;但有些事情却没有那么重要&#xff0c;比方说数据的复制和存储数…

LLM实战:LLM微调加速神器-Unsloth + LLama3

1. 背景 五一结束后&#xff0c;本qiang~又投入了LLM的技术海洋中&#xff0c;本期将给大家带来LLM微调神器&#xff1a;Unsloth。 正如Unsloth官方的对外宣贯&#xff1a;Easily finetune & train LLMs; Get faster with unsloth。微调训练LLM&#xff0c;可以显著提升速…

kafka 图形化

介绍 idea 中的一个插件 kafkalytic,kafka 图形化 简单又强大 安装 使用界面 总体信息 数据查看

JDK的串行收集器介绍与优化指南-02

对象的生命周期 对象的生命周期 在Java中,对象的生命周期通常包括以下几个阶段,这些阶段与JVM的内存管理和垃圾收集机制密切相关。 创建阶段 (1)为对象分配存储空间:当使用new关键字或其他方式(如反射、克隆、反序列化等)创建一个对象时,JVM首先会在堆内存中为其分配…

004.可观察对象与观察者

Rx非常适合事件驱动的应用程序。这是有意义的&#xff0c;因为事件(作为)(如前所述)是创建时变值的命令式方法。从历史上看,事件驱动编程主要出现在客户端技术中&#xff0c;因为作为事件实现的用户交互。例如&#xff0c;你可能工作过使用OnMouseMove或OnKeyPressed事件。正因…

“智慧食堂”|基于Springboot+vue的“智慧食堂”系统(源码+数据库+文档)

“智慧食堂”系统 目录 基于Springbootvue的“智慧食堂”系统 一、前言 二、系统设计 三、系统功能设计 1功能页面实现 2系统功能模块 3管理员功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍…

缩短项目周期:SOLIDWORKS Electrical简化了电气设计过程

在现代工业设计领域&#xff0c;电气系统设计的复杂性日益增加&#xff0c;然而&#xff0c;达索系统SOLIDWORKS Electrical软件的出现为这一挑战提供了高效的解决方案。该软件支持工程师通过选配的方式快速设计原理图&#xff0c;这极大地简化了电气设计过程&#xff0c;并有效…

形位公差Overview of GDT

零件公差产生于十九世纪后期&#xff0c;其初衷是为了保证零件的互换性。起初只有尺寸公差。由于 当时的设计部门和制造部门通常都在一起或就在隔壁&#xff0c;因此交流起来非常方便。在当时&#xff0c;给 定的公差一般都很大&#xff0c;因此当时的设备刀具的能力对于保证产…

Spring:@Async注解使用注意事项及九大失效场景

前言 原文作者&#xff1a;微信公众号&#xff1a;苏三说技术 场景举例 代码案例 点击此处可观看&#xff1a;Async注解使用注意事项及九大失效场景

Python修改exe之类的游戏文件中的数值

文章目录 场景查找修改 补充字节to_bytes 场景 某些游戏数值&#xff08;攻击力、射程、速度…&#xff09;被写在exe之类的文件里 要先查找游戏数值&#xff0c;然后修改 查找 首先&#xff0c;要查找数值&#xff0c;大数重复较少&#xff0c;建议从大数找起 F 游戏原件…

OPT系列极速版远距离光数据传输器|光通讯传感器安装与调试方法

OPT系列极速版远距离光数据传输器|光通讯传感器使用红外激光通信&#xff0c;满足全双工 100M 带宽&#xff0c;通讯距离可达 300 米。能够快速&#xff0c;稳地传送数据&#xff0c;支持主流的工业控制总线&#xff08;Profinet&#xff0c;Ethercat 等&#xff09;&#xff1…

【JVM】从可达性分析,到JVM垃圾回收算法,再到垃圾收集器

《深入理解Java虚拟机》[1]中&#xff0c;有下面这么一段话&#xff1a; 在JVM的各个区域中&#xff0c;如虚拟机栈中&#xff0c;栈帧随着方法的进入和退出而有条不紊的执行者出栈和入栈操作。每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的&#xff08;尽管在…

【RAG 论文】BGM:为 LLM 和 Retriever 的偏好 gap 搭建一个 Bridge

论文&#xff1a;Bridging the Preference Gap between Retrievers and LLMs ⭐⭐⭐ Google Research, arXiv:2401.06954 论文速读 LLM 与 Retriever 之间存在一个 preference gap&#xff1a;大多数 retriever 被设计为 human-friendly&#xff0c;但是 LLM 的偏好与人类的却…

长难句打卡 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;有些人正竭力反对一项“终止专用于社会科学研究的…

网络安全防护:抵御DDoS和CC攻击

在当今数字化时代&#xff0c;网络安全已成为任何组织或个人不可忽视的重要议题。DDoS&#xff08;分布式拒绝服务&#xff09;攻击和CC&#xff08;命令与控制&#xff09;攻击作为两种最为常见的网络攻击方式&#xff0c;给网络运营者和用户带来了巨大的威胁和影响。本文将介…

函数memcpy的实现及详解

前言 今天我们来了解一下memcpy函数和它的作用吧&#xff0c;咋们之前已经熟悉了strcpy的使用&#xff0c;它的作用是字符串的拷贝&#xff0c;那么当我们要拷贝其他类型的数据时&#xff0c;应该使用什么函数呢&#xff0c;我们今天给大家介绍的就是memcpy函数&#xff0c;他可…