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

文章目录

  • 一、基本概括
    • 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可以作为打通文本和图像的桥梁的核心模块,用于控制图像生成的过程。

在这里插入图片描述

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

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

相关文章

go消息队列RabbitMQ - 订阅模式-fanout

1、发布订阅 订阅模式,消息被路由投递给多个队列,一个消息被多个消费者获取。 1) 可以有多个消费者 2) 每个消费者有自己的queue(队列) 3) 每个队列都要绑定到Exchange(交换机&…

【npm】安装全局包,使用时提示:不是内部或外部命令,也不是可运行的程序或批处理文件

问题 如图,明明安装Vue是全局包,但是使用时却提示: 解决办法 使用以下命令任意一种命令查看全局包的配置路径 npm root -g 然后将此路径添加到环境变量中去,这里注意,原本NodeJS的安装路径配置的环境变量不要删除&…

Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(一)

原文:Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow 译者:飞龙 协议:CC BY-NC-SA 4.0 前言 机器学习海啸 2006 年,Geoffrey Hinton 等人发表了一篇论文,展示了如何训练一个能够以最先进的精度…

Tomcat组件架构与数据流

一、背景与简介 Tomcat我们都知道是一个开源的、实现了大部分Java EE、Servlet、JSP规范的Servlet容器, 允许我们将实现了Serlvet接口的Web程序war包进行部署运行。 但是你有对Tomcat做过细致的学习么? 我相信大部分同学和我一样,之前也是只会进行简单使用&#x…

IDEA插件ChatGPT - Easycode安装使用

IDEA插件ChatGPT - Easycode简介 ChatGPT - Easycode 是一个由 OpenAI 开发的 IntelliJ IDEA 插件,它可以利用 ChatGPT 的强大语言生成能力,帮助开发人员提高编码效率。 主要功能: 代码生成:可以根据自然语言描述生成代码&…

sqli-labs-master靶场训练笔记(21-38|精英级)

2024.1.30 level-21 (cookie 注入数据加密) 从页面上就可以看出这次的数据被 baes64 加密了 中国有句古话:师夷长技以制夷 ,用base64加密后的数据即可爆出数据 加密前: admin and updatexml(1,concat(~,(select database()),~),1) and …

ReactNative实现宽度变化实现的动画效果

效果如上图所示,通过修改设备宽度实现动画效果 import React, {useRef, useEffect, useState} from react; import {Animated, Text, View, Image} from react-native;const FadeInView props > {const fadeAnim useRef(new Animated.Value(0)).current;React…

item_get_video-获取视频详情(bili.item_get_video)

B站(Bilibili)的item_get_video API用于获取视频的详细信息。通过调用该API,您将能够获得视频的基本信息、元数据、播放链接等。这使得开发者可以轻松地将B站视频集成到自己的应用程序或网站中,为用户提供更丰富的内容和更好的体验…

vue项目集成booststrap

1.首先安装bootstrap npm install bootstrap 我安装的是4.3的版本 2.在main.js中引用bootstrap import bootstrap/dist/css/bootstrap.css import bootstrap/dist/css/bootstrap.min.css import bootstrap/dist/js/bootstrap.js import bootstrap/dist/js/bootstrap.min.…

新数据不影响原来的数据

问题描述 新数据修改时,原来的数据也会受影响 const obj1 ref({ name: slx, age: 20 })const obj2 obj1obj2.value.name hhhhconsole.log(obj1, obj1.value)console.log(obj2, obj2.value)解决方法 (仅适用于对象 在这段代码中,obj1 和 obj2 指向同…

ASP.NET Core 预防开放式重定向攻击

写在前面 为预防钓鱼网站的常用套路,在进行 Web 应用程序的开发时,原则上应该将所有由用户提交的数据视为不可信。如果应用程序中包含了基于 URL 内容重定向的功能,需要确保这种类型的重定向操作只能在应用本地完成,或者明确判断…

MQTT在linux下服务端和客户端的应用

MQTT(Message Queuing Telemetry Transport)是一种轻量级、开放标准的消息传输协议,设计用于受限设备和低带宽、不稳定网络的通信。 MQTT的一些关键特点和概念: 发布/订阅模型: MQTT采用发布/订阅(Publ…

编译原理本科课程 专题5 基于 SLR(1)分析的语义分析及中间代码生成程序设计

一、程序功能描述 本程序由C/C编写,实现了赋值语句语法制导生成四元式,并完成了语法分析和语义分析过程。 以专题 1 词法分析程序的输出为语法分析的输入,完成以下描述赋值语句 SLR(1)文法的语义分析及中间代码四元式的过程,实现…

基于tomcat的https(ssl)双向认证

一、背景介绍 某个供应商服务需要部署到海外,如果海外多个地区需要部署多个服务,最好能实现统一登录,这样可以减轻用户的使用负担(不用记录一堆密码)。由于安全问题(可能会泄露用户数据)&#x…

【大厂AI课学习笔记】1.5 AI技术领域(1)计算机视觉

人工智能的三大基础应用领域是,自然语言处理,语音识别,计算机视觉。 计算机视觉:定义、关键技术、技术发展、应用场景与商业化成功 一、计算机视觉的定义 计算机视觉,作为一个跨学科的领域,旨在研究如何让…

ArcGIS Pro 按照字段进行融合或拆分

ArcGIS Pro 按字段融合 在ArcGIS Pro中,通过使用“融合”工具可以轻松地合并具有相同字段的图层。 步骤一:打开ArcGIS Pro 启动ArcGIS Pro应用程序,确保您已经登录并打开您的项目。 步骤二:添加图层 将包含相同字段的图层添加到…

【Linux】信号-上

欢迎来到Cefler的博客😁 🕌博客主页:折纸花满衣 🏠个人专栏:题目解析 🌎推荐文章:【LeetCode】winter vacation training 目录 👉🏻信号的概念与产生jobs命令普通信号和实…

牛客网-------------------------长方体

解题思路: 设棱长为x,y,z;假设已知面积为a,b,c 那么,xya;yzb;xzc; 一式除二式得x/za/b x(a/b)*z 联立xzc 代入得(a/b)z^2c z^2c*b/a z根号下&…

Windows自动化实现:系统通知和任务栏图标自定义

文章目录 Windows自动化的三个小工具系统通知任务栏图标使用pystray实现使用infi.systray实现 Windows自动化的三个小工具 系统通知 import win10toastwin10toast.ToastNotifier().show_toast("eee", "休息一下", icon_path"icon.ico", durati…

服务器和云计算之间有什么关系?

云计算与服务器之间的关系是密切而复杂的。首先,我们需要明确一点,云计算并不是一种全新的技术,而是对现有技术的一种整合和改进。在这个基础上,我们可以更好地理解云计算与服务器之间的关系。 服务器是云计算的重要组成部分之一…