浅析扩散模型与图像生成【应用篇】(六)——DiffuseIT

6. Diffusion-based Image Translation using Disentangled Style and Content Representation

  本文介绍了一种基于扩散模型的图像转换方法,图像转换就是根据文本引导或者图像的引导,将源图像转换到目标域中,如下图所示。
在这里插入图片描述
  在图像转换中待解决的一个关键问题就是如何在将语义特征转换到目标域中时保留源图像的结构特征,而不是随机的生成一张目标域中的图像。而扩散模型本身具备很强的随机性,因此必须引入一定的约束,控制其生成的过程。作者受到流形约束梯度(Manifold Constrained Gradient,MCG)的启发,将损失梯度引入到生成过程中,实现方法如下 x t − 1 ′ = 1 α t ( x t − 1 − α t 1 − α ˉ t ϵ θ ( x t , t ) ) + σ t ϵ \boldsymbol{x}_{t-1}^{\prime}=\frac{1}{\sqrt{\alpha_{t}}}\left(\boldsymbol{x}_{t}-\frac{1-\alpha_{t}}{\sqrt{1-\bar{\alpha}_{t}}} \boldsymbol{\epsilon}_{\theta}\left(\boldsymbol{x}_{t}, t\right)\right)+\sigma_{t} \boldsymbol{\epsilon} xt1=αt 1(xt1αˉt 1αtϵθ(xt,t))+σtϵ x t − 1 = x t − 1 ′ − ∇ x t ℓ total  ( x ^ 0 ( x t ) ) \boldsymbol{x}_{t-1}=\boldsymbol{x}_{t-1}^{\prime}-\nabla_{\boldsymbol{x}_{t}} \ell_{\text {total }}\left(\hat{\boldsymbol{x}}_{0}\left(\boldsymbol{x}_{t}\right)\right) xt1=xt1xttotal (x^0(xt))其中 x t − 1 ′ \boldsymbol{x}_{t-1}^{\prime} xt1沿用了DDPM中的计算方法,在此基础上又根据损失梯度 ∇ x t ℓ total  ( x ^ 0 ( x t ) ) \nabla_{\boldsymbol{x}_{t}} \ell_{\text {total }}\left(\hat{\boldsymbol{x}}_{0}\left(\boldsymbol{x}_{t}\right)\right) xttotal (x^0(xt))进一步更新得到 x t − 1 \boldsymbol{x}_{t-1} xt1 x ^ 0 ( x t ) \hat{\boldsymbol{x}}_{0}\left(\boldsymbol{x}_{t}\right) x^0(xt)是根据 x t \boldsymbol{x}_{t} xt估计得到的生成结果,后续简写为 x \boldsymbol{x} x,其计算过程如下 x ^ 0 ( x t ) : = x t α ˉ t − 1 − α ˉ t α ˉ t ϵ θ ( x t , t ) \hat{\boldsymbol{x}}_{0}\left(\boldsymbol{x}_{t}\right):=\frac{\boldsymbol{x}_{t}}{\sqrt{\bar{\alpha}_{t}}}-\frac{\sqrt{1-\bar{\alpha}_{t}}}{\sqrt{\bar{\alpha}_{t}}} \boldsymbol{\epsilon}_{\theta}\left(\boldsymbol{x}_{t}, t\right) x^0(xt):=αˉt xtαˉt 1αˉt ϵθ(xt,t)则接下来的任务就是如何定义损失函数 ℓ total  \ell_{\text {total }} total 了。
在这里插入图片描述

1. 结构损失

  正如上文所述,我们希望输出的结果能够保持源图像的结构信息,而Slicing Vision Transformer这篇论文指出ViT中多头自注意力层的key值 k l k^l kl包含了结构信息,而最后一层的类别Token保留了语义信息。基于此,提出了一种损失通过匹配key值之间的自相似性矩阵 S l S^l Sl来保持输入和输出之间的结构一致性,计算过程如下 ℓ s s i m ( x s r c , x ) = ∥ S l ( x s r c ) − S l ( x ) ∥ F \ell_{ssim}(x_{src},x)=\left \| S^l(x_{src})-S^l(x)\right\|_F ssim(xsrc,x)= Sl(xsrc)Sl(x) F其中 [ S l ( x ) ] i , j = cos ⁡ ( k i l ( x ) , k j l ( x ) ) [S^l(x)]_{i,j}=\cos(k^l_i(x),k^l_j(x)) [Sl(x)]i,j=cos(kil(x),kjl(x)) k i l ( x ) k^l_i(x) kil(x)表示在ViT的第 l l l个多头自注意力层中的第 i i i个key值。虽然自相似损失可以保留输入和输出之间的内容信息,但对于DDPM扩散任务只能提供非常有限的约束。这是因为第 i i i个key值对应着图像中第 i i i个图块的位置,其与其他位置处的key值可能区别很大。为此,作者引入一种对比学习损失,让相同位置的图块之间更相似,而增大不同位置之间的距离,计算过程如下 ℓ cont  ( x s r c , x ) = − ∑ i log ⁡ ( exp ⁡ ( sim ⁡ ( k i l ( x ) , k i l ( x s r c ) ) / τ ) exp ⁡ ( sim ⁡ ( k i l ( x ) , k i l ( x s r c ) ) / τ + ∑ j ≠ i exp ⁡ ( sim ⁡ ( k i l ( x ) , k j l ( x s r c ) ) / τ ) ) \ell_{\text {cont }}\left(\boldsymbol{x}_{s r c}, \boldsymbol{x}\right)=-\sum_{i} \log \left(\frac{\exp \left(\operatorname{sim}\left(k_{i}^{l}(\boldsymbol{x}), k_{i}^{l}\left(\boldsymbol{x}_{s r c}\right)\right) / \tau\right)}{\exp \left(\operatorname{sim}\left(k_{i}^{l}(\boldsymbol{x}), k_{i}^{l}\left(\boldsymbol{x}_{s r c}\right)\right) / \tau+\sum_{j \neq i} \exp \left(\operatorname{sim}\left(k_{i}^{l}(\boldsymbol{x}), k_{j}^{l}\left(\boldsymbol{x}_{s r c}\right)\right) / \tau\right)\right.}\right) cont (xsrc,x)=ilog exp(sim(kil(x),kil(xsrc))/τ+j=iexp(sim(kil(x),kjl(xsrc))/τ)exp(sim(kil(x),kil(xsrc))/τ) 其中 sim ⁡ ( ⋅ , ⋅ ) \operatorname{sim}(\cdot,\cdot) sim(,)表示规范化的余弦相似性函数。

2. 风格损失

  风格损失的目的是增加生成结果和引导之间的语义相似性。对于文本引导,作者提出了 ℓ C L I P \ell_{CLIP} CLIP损失,计算过程如下 ℓ C L I P ( x ; d t r g , x s r c , d s r c ) : = − sim ⁡ ( v t r g , v s r c ) \ell_{C L I P}\left(\boldsymbol{x} ; \boldsymbol{d}_{t r g}, \boldsymbol{x}_{s r c}, \boldsymbol{d}_{s r c}\right):=-\operatorname{sim}\left(\boldsymbol{v}_{t r g}, \boldsymbol{v}_{s r c}\right) CLIP(x;dtrg,xsrc,dsrc):=sim(vtrg,vsrc)其中 v t r g : = E T ( d t r g ) + λ i E I ( x s r c ) − λ s E T ( d s r c ) , v s r c : = E I ( aug ⁡ ( x ) ) \boldsymbol{v}_{t r g}:=E_{T}\left(\boldsymbol{d}_{t r g}\right)+\lambda_{i} E_{I}\left(\boldsymbol{x}_{s r c}\right)-\lambda_{s} E_{T}\left(\boldsymbol{d}_{s r c}\right), \quad \boldsymbol{v}_{s r c}:=E_{I}(\operatorname{aug}(\boldsymbol{x})) vtrg:=ET(dtrg)+λiEI(xsrc)λsET(dsrc),vsrc:=EI(aug(x)) d s r c , d t r g \boldsymbol{d}_{src},\boldsymbol{d}_{t r g} dsrc,dtrg x s r c \boldsymbol{x}_{src} xsrc分别表示源图像的文本描述,目标文本描述(文本引导)和源图像, E T , E I E_T,E_I ET,EI分别表示CLIP模型中的文本和图像编码器, aug ⁡ \operatorname{aug} aug表示CLIP中为了防止出现对抗伪影的增强操作。通过调节 λ s \lambda_s λs λ i \lambda_i λi可以去除源域的文本信息和增加源域的图像信息。而对于图像引导,作者提出一种语义风格损失 ℓ s t y \ell_{sty} sty,正如前文所说ViT的最后一层的类别Token保留了语义信息,因此可以借此来保持源图像和生成图像之间的语义一致性。此外,作者发现仅用语义一致性作为约束,会导致生成的图像之间存在颜色差异,因此作者又引入了图像之间的MSE损失来减少颜色上的差距,义风格损失 ℓ s t y \ell_{sty} sty如下 ℓ s t y ( x t r g , x ) = ∥ e [ C L S ] L ( x t r g ) − e [ C L S ] L ( x ) ∥ 2 + λ m s e ∥ x t r g − x ∥ 2 \ell_{s t y}\left(\boldsymbol{x}_{t r g}, \boldsymbol{x}\right)=\left\|\boldsymbol{e}_{[C L S]}^{L}\left(\boldsymbol{x}_{t r g}\right)-\boldsymbol{e}_{[C L S]}^{L}(\boldsymbol{x})\right\|_{2}+\lambda_{m s e}\left\|\boldsymbol{x}_{t r g}-\boldsymbol{x}\right\|_{2} sty(xtrg,x)= e[CLS]L(xtrg)e[CLS]L(x) 2+λmsextrgx2其中 e [ C L S ] L \boldsymbol{e}_{[C L S]}^{L} e[CLS]L表示最后一层的类别Token。

3. 语义差异损失

  为了加快生成的过程,减少反向去噪的步骤,作者设计了语义差异损失 ℓ s e m \ell_{sem} sem, ℓ s e m ( x t ; x t + 1 ) = − ∥ e [ C L S ] L ( x ^ 0 ( x t ) ) − e [ C L S ] L ( x ^ 0 ( x t + 1 ) ) ∥ 2 \ell_{s e m}\left(\boldsymbol{x}_{t} ; \boldsymbol{x}_{t+1}\right)=-\left\|\boldsymbol{e}_{[C L S]}^{L}\left(\hat{\boldsymbol{x}}_{0}\left(\boldsymbol{x}_{t}\right)\right)-\boldsymbol{e}_{[C L S]}^{L}\left(\hat{\boldsymbol{x}}_{0}\left(\boldsymbol{x}_{t+1}\right)\right)\right\|_{2} sem(xt;xt+1)= e[CLS]L(x^0(xt))e[CLS]L(x^0(xt+1)) 2通过增加相邻两次反向去噪步骤估计的生成结果之间的语义差异,促使生成结果能够更快的变换到目标域中。最终的损失函数 ℓ t o t a l \ell_{total} total如下 ℓ total  = λ 1 ℓ cont  + λ 2 ℓ ssim  + λ 3 ℓ C L I P + λ 4 ℓ sem  + λ 5 ℓ r n g \ell_{\text {total }}=\lambda_{1} \ell_{\text {cont }}+\lambda_{2} \ell_{\text {ssim }}+\lambda_{3} \ell_{C L I P}+\lambda_{4} \ell_{\text {sem }}+\lambda_{5} \ell_{r n g} total =λ1cont +λ2ssim +λ3CLIP+λ4sem +λ5rng其中 ℓ r n g \ell_{rng} rng是一个正则化损失项,为了防止反向去噪过程中出现不合理的步骤。如果采用图像引导,上式中的 ℓ C L I P \ell_{C L I P} CLIP应改为 ℓ s t y \ell_{sty} sty

  为了进一步加快生成过程,作者还提出一种重采样策略。作者发现一个好的生成起始点 X T X_T XT能够有效的提升生成效果,缩短反向去噪步骤。因此作者重复 N N N次对 X T − 1 X_{T-1} XT1的采样步骤,并根据前向扩散公式计算得到 X T X_T XT x T = 1 − β T − 1 x T − 1 + β T − 1 ϵ \boldsymbol{x}_{T}=\sqrt{1-\beta_{T-1}} \boldsymbol{x}_{T-1}+\beta_{T-1} \boldsymbol{\epsilon} xT=1βT1 xT1+βT1ϵ然后,从中选取梯度最容易受到损失函数影响的 X T X_T XT作为起始点。整个算法的计算流程如下所示

在这里插入图片描述
  实验表明,在文本引导和图像引导的图像转换任务中,DiffuseIT都取得了不错的效果。
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

拼多多3.9元的手机支架,在视频号卖15.9元

关注卢松松,会经常给你分享一些我的经验和观点。 万万没想到:拼多多3.9元的手机支架,在视频号竟然要卖15.9元。 更让人想不到的是:视频号商家竟然是从拼多多发货的,足足赚了4倍差价。 更更更让人想不到的是&#xff1a…

Vanna-ai -基于RAG的TextToSql实现方案

官方连接:Vanna.AI - Personalized AI SQL Agent 1.背景 基于大模型的TextToSql的关键为给大模型提供正确有效的数据库信息及问题,以提升大模型生成sql的正确率。database_info question形成prompt,但是实际中通常会遇到一个问题&#xff…

文物保护平台数据统计分析及预警-子系统专题分析

文物预防性监测与调控系统的监测统计分析子系统提供全面的文物状态及环境数据分析,为博物馆工作人员进行基于文物材质特性的专项保护提供相关科研辅助。主要的监测分析,包括各展厅文物统计分析、不同环境因素报表统计、以及监测调控设备统计分析等。 系统用户和文物管理人员可以…

商城免费搭建之java商城 java电子商务Spring Cloud+Spring Boot+mybatis+MQ+VR全景

1. 涉及平台 平台管理、商家端(PC端、手机端)、买家平台(H5/公众号、小程序、APP端(IOS/Android)、微服务平台(业务服务) 2. 核心架构 Spring Cloud、Spring Boot、Mybatis、Redis 3. 前端框架…

【论文阅读】(DALLE-3)Improving Image Generation with Better Captions

(DALLE-3)Improving Image Generation with Better Captions 文章目录 (DALLE-3)Improving Image Generation with Better Captions简介Method实验 引用: Betker J, Goh G, Jing L, et al. Improving image generation…

外包干了3个月,技术倒退明显

先说情况,大专毕业,18年通过校招进入湖南某软件公司,干了接近6年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&#xf…

【英文文献笔记记录方法】

英文文献笔记记录方法 本文是根据b站up主视频总结的文字版,方便后面自己查阅。感兴趣的话可以去看原版视频: 英文文献笔记方法 文献笔记记录的目的 深化文献阅读的理解帮助快速回忆文献内容 查看作者 主要看第一作者和通讯作者。 在谷歌学术搜索作者…

第三百八十四回

【toc] 我们在上一章回中介绍了Visibility组件相关的内容,本章回中将介绍Flutter与原生平台通信相关的内容.闲话休提,让我们一起Talk Flutter吧。 概念介绍 在移动开发领域以Android和IOS SDK开发出的应用程序叫原生开发,开发同一个程序需要…

力扣--动态规划64.最小路径和

思路分析: 基本思路: 本算法采用动态规划的思想,通过构建一个额外的二维矢量 dp 来存储每个位置的最小路径和。最终目标是求得右下角位置的最小路径和,即整个网格的最小路径和。 初始化: 初始化矢量的行数和列数&…

软件测试--性能测试实战篇

软件测试--性能测试实战篇 项目介绍和部署1. 轻商城项目介绍1.1 背景1.2 简介2. 项目功能架构3. 项目技术架构4. 熟悉数据库设计5. 轻商城项目搭建5.1 准备工作5.2 项目搭建步骤性能测试需求分析1. 性能测试需求分析1.1 如何获取有效的需求2. 性能测试点的提取2.1 性能测试点的…

基于springboot+vue的精简博客系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

网工内推 | 国企运维,年薪最高30W,RHCE认证优先

01 上海华力微电子有限公司 招聘岗位:系统运维资深/主任工程师 职责描述: 1、负责IT基础设施(包括服务器、存储、中间件等系统基础技术平台)的设计建设和日常运维管理; 2、负责生产、开发和测试环境的技术支持&#x…