深度学习(7)---Diffusion Model概念讲解

news2024/11/27 22:38:17

文章目录

  • 一、基本概括
    • 1.1 概念讲解
    • 1.2 Denoise模块
  • 二、Stable Diffusion
    • 2.1 概念讲解
    • 2.2 FID
    • 2.3 CLIP


一、基本概括

1.1 概念讲解

 1. Diffusion Model是一种生成模型,通过连续添加高斯噪声来破坏训练数据,然后学习反转的去噪过程来恢复数据。它分为正向的扩散过程和反向的逆扩散过程。正向扩散过程是往图片上加噪声的过程,即从无到有地添加噪声,直到得到纯噪声图片。反向扩散过程则是通过学习如何从噪声图片恢复到原始图片。

 2. 正向过程:首先,对于一张原始图片 X 0 X_0 X0,我们给 X 0 X_0 X0 图片添加高斯噪声,图片由 X 0 X_0 X0 变为 X 1 X_1 X1。接着我们会在 X 1 X_1 X1 的基础上再添加高斯噪声得到 X 2 X_2 X2。重复上述添加高斯噪声步骤,直到图片变成 X n X_n Xn。由于添加了足够多的高斯噪声,现在的 X n X_n Xn 近似服从高斯分布(又称正态分布)。
注意:(1) 这里必须要加高斯噪声,因为高斯噪声服从高斯分布,后面的一些运算需要用到高斯分布的一些特性。(2) 每步添加高斯噪声的量是变化的,且后一步比前一步添加的高斯噪声更多。

在这里插入图片描述

 3. 逆向过程:首先,我们会随机生成一个服从高斯分布的噪声图片,然后一步一步的减少噪声直到生成预期图片。

在这里插入图片描述

1.2 Denoise模块

 去噪过程不是说由一张图片生成另一张图片,而是在一张高噪声图片的基础上,减掉一个噪声图片从而得到另一张低噪声图片。

在这里插入图片描述

在这里插入图片描述

二、Stable Diffusion

2.1 概念讲解

 1. 通过上面所述我们可得:当扩散步数和图像很大时,这种纯扩散模型会非常慢。为了解决这个问题,Stable Diffusion 应运而生。Stable Diffusion是一个文本到图像的潜在扩散模型。顾名思义,Stable Diffusion 发生在潜在空间中,这就是它比纯扩散模型更快的原因。

 2. Stable Diffusion第一步会将文本转换成向量;第二步会产生一个随机潜在噪声作为输入和文本转换后的向量产生一个 “中间产物”;第三步通过 “中间产物” 还原成原始图片。通常三个模块分开训练,最后组合在一起。

在这里插入图片描述

 论文中的Stable Diffusion结构图如下图所示:

在这里插入图片描述

 3. 如下图谷歌的由文本生成图片的模型也是大同小异。

在这里插入图片描述

 4. 第三步处理的 “中间产物” 可以是小图,也可以是图像潜在表示。

在这里插入图片描述

在这里插入图片描述

 5. Stable Diffusion第二步生成 “中间产物” 过程类似于Diffusion Model中Noise Predicter产生 “中间产物” 的过程。

在这里插入图片描述

在这里插入图片描述

2.2 FID

 在扩散模型中,FID(Frechet Inception Distance)是一种用于评估生成图像质量的度量标准。它衡量的是生成图像与真实图像之间的距离,其值越小代表生成的图像质量越高。FID的计算方法包括提取真实图像和生成图像的特征向量,并计算二者的Frechet距离。

在这里插入图片描述

2.3 CLIP

 CLIP(Contrastive Language–Image Pre-training)是一种多模态学习框架,旨在将语言和图像信息结合起来进行预训练。CLIP通过对比图像和文本的embedding来衡量两者之间的相似性,从而实现了对图像和文本的匹配。在扩散模型中,CLIP可以作为打通文本和图像的桥梁的核心模块,用于控制图像生成的过程。

在这里插入图片描述

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

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

相关文章

算法学习——华为机考题库10(HJ64 - HJ67)

算法学习——华为机考题库10(HJ64 - HJ70) HJ64 MP3光标位置 描述 MP3 Player因为屏幕较小,显示歌曲列表的时候每屏只能显示几首歌曲,用户要通过上下键才能浏览所有的歌曲。为了简化处理,假设每屏只能显示4首歌曲&a…

代码随想录算法训练营第三十五天|343. 整数拆分 , 96.不同的二叉搜索树

343. 整数拆分 代码随想录 视频讲解:动态规划,本题关键在于理解递推公式!| LeetCode:343. 整数拆分_哔哩哔哩_bilibili class Solution {public int integerBreak(int n) {// 1.确定dp数组(dp table)以及下…

【git】本地项目推送到github、合并分支的使用

1. github上创建仓库信息 点击个人头像,选择【你的仓库】 点击【新增】 填写仓库信息 2. 本地项目执行的操作 1.生成本地的git管理 (会生成一个.git的文件夹) git init 2.正常提交到暂存区,并填写提交消息 git add . git commit -m "init…

golang并发安全-sync.Once

什么是sync.Once sync.Once 是 Go 语言中的一种同步原语,用于确保某个操作或函数在并发环境下只被执行一次。它只有一个导出的方法,即 Do,该方法接收一个函数参数。在 Do 方法被调用后,该函数将被执行,而且只会执行一…

Python算法题集_搜索二维矩阵II

Python算法题集_搜索二维矩阵II 题41:搜索二维矩阵II1. 示例说明2. 题目解析- 题意分解- 优化思路- 测量工具 3. 代码展开1) 标准求解【双层循环】2) 改进版一【行尾检测】3) 改进版二【对角线划分】 4. 最优算法 本文为Python算法题集之一的代码示例 题41&#xf…

Oracle 面试题 | 12.精选Oracle高频面试题

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

国辰智企APS自动化排产平台:实现生产计划与其他系统无缝协同

在当今竞争激烈的制造环境中,有效的生产计划和排程对于企业的成功至关重要。APS生产计划排程平台作为一种先进的工具,正越来越受到企业的关注和应用。那么,APS生产计划排程平台有哪些类型呢?本文将为您详细介绍。 1.基于规则的APS…

Java学习-内部类

内部类概述 1.成员内部类 注意: 2.静态内部类 3.局部内部类(看看就行) 4.匿名内部类 应用场景:通常作为一个参数传给方法 Eg.小猫和小狗都参加游泳比赛

Open CASCADE学习|分割曲线

1、通过参数进行分割 分别获得曲线的 FirstParameter 和 LastParameter ,然后对参数进行分割,获得n个ui,并对每个ui调用D0(获得这个点的坐标值)或D1(获得这个点的坐标值和切向量)。这个方法的优…

【MySQL进阶】事务原理

文章目录 事务机制基本介绍事务管理基本操作提交方式事务 ID 隔离级别四种级别加锁分析 原子特性实现方式实现原理undo log 隔离特性实现方式MVCC实现原理隐藏字段undo logRead View RC RR 持久特性实现方式redo log 一致特性 面试题MySQL的ACID特性分别是怎么实现的&#xff1…

AES算法:数据传输的安全保障

在当今数字化时代,数据安全成为了一个非常重要的问题。随着互联网的普及和信息技术的发展,我们需要一种可靠的加密算法来保护我们的敏感数据。Advanced Encryption Standard(AES)算法应运而生。本文将介绍AES算法的优缺点、解决了…

React 中实现拖拽功能-插件 react-beautiful-dnd

拖拽功能在平时开发中是很常见的,这篇文章主要使用react-beautiful-dnd插件实现此功能。 非常好用,附上GitHub地址:https://github.com/atlassian/react-beautiful-dnd 安装及引入 // 1.引入 # yarn yarn add react-beautiful-dnd# npm npm…

在java中获取excel的cell值的时候报错

在获取cell的时候,通常会有报错类型不匹配的问题,这是因为你的cell中存储的数据类型和使用的方法不匹配的原因,假如说cell中存储了一个数字,但是使用的cell.getStringCellValue()获取值,就会有如下错误 java.lang.Ill…

LabVIEW智能温度直流模件自动测试系统

LabVIEW智能温度直流模件自动测试系统 自动化测试系统在提高测试效率和准确性方面发挥着越来越重要的作用。介绍了一种基于LabVIEW的智能温度直流模件(TDCA)自动测试系统的设计与实施,旨在提高测控装置的产品质量。 系统的硬件平台主要由PS…

Facebook群控:利用IP代理提高聊单效率

在当今社交媒体竞争激烈的环境中,Facebook已经成为广告营销和推广的重要平台,为了更好地利用Facebook进行推广活动,群控技术应运而生。 本文将深入探讨Facebook群控的定义、作用以及如何利用IP代理来提升群控效率,为你提供全面的…

13.从桥接模式细品人生的几座桥

“物理学不存在了,今后也不会存在。”——《三体》 在《三体》中,有这样一个桥段,顶级的物理学家杨冬在三体文明超级计算机“智子”的干扰和误导下,得出了物理实验的结果在实验之前就会被某种力量确定的结论,导致自己…

【Spring】代理模式

文章目录 代理模式对代理模式的理解静态代理动态代理JDK动态代理原理源码优化 CGLIB动态代理使用原理 JDK与CGLIB的对比 面试题JDK动态代理和CGLIB有什么区别?既然有没有接口都可以用CGLIB,为什么Spring还要使用JDK动态代理? 代理模式 对代理…

数据库管理phpmyadmin

子任务1-PHPmyadmin软件的使用 本子任务讲解phpmyadmin的介绍和使用操作。 训练目标 1、掌握PHPmyadmin软件的使用方法。 步骤1 phpMyAdmin 介绍 phpmyadmin是一个用PHP编写的软件工具,可以通过web方式控制和操作MySQL数据库。通过phpMyAdmin可以完全对数据库进行…

目标检测:2如何生成自己的数据集

目录 1. 数据采集 2. 图像标注 3. 开源已标记数据集 4. 数据集划分 参考: 1. 数据采集 数据采集是深度学习和人工智能任务中至关重要的一步,它为模型提供了必要的训练样本和测试数据。在实际应用中,数据采集的方法多种多样,每…

Linux网络通信——TCP/OSI七层模型/TCP/IP(五层或四层模型)/HTTP报文传输原理

文章目录 消息的传输什么是OSI七层模型OSI七层模型的内容物理层(Physical Layer):数据链路层(Data Link Layer):网络层(Network Layer):传输层(Transport Lay…