【论文精读】DALLE2: Hierarchical Text-Conditional Image Generation with CLIP Latents

文章目录

  • 一、前言
    • (一)DALLE2 简介
    • (二)DALLE2和DALLE的对比
    • (三)相关模型推出时间
  • 二、文章概要
    • (一)标题
    • (二)摘要
    • (三)引言
    • (四)模型架构
  • 三、方法
    • (一)图像生成的相关工作
    • (二)diffusion model扩散模型
    • (三)DALLE2方法流程
    • (四)decoder模型
    • (五)prior模型


一、前言

(一)DALLE2 简介

https://openai.com/dall-e-2
在这里插入图片描述

  1. DALLE2是可以根据文本描述去生成这种原创性的真实的图片,DALLE2学习了图片文本中的特征,可以任意的组合这些概念、属性、风格。
    在这里插入图片描述

  2. DALLE2也可以根据文本对已有的图片进行编辑和修改,可以任意添加或者移除现在图片里的物品,甚至可以把阴影、光的反射、物体的纹理全部考虑在内。

(二)DALLE2和DALLE的对比

  1. DELLE2可以生成之前四倍的分辨率,生成效果更加清晰逼真
    在这里插入图片描述

  2. 对于DALLE生成的图片和DALLE2生成的图片,有70%的人认为DALLE2生成的图片跟这个文本提示的内容更加贴切,将近90%的人认为DALLE2生成的图片比DALLE生成的图片更逼真。
    在这里插入图片描述

(三)相关模型推出时间

2021年1月:DALLE
2021年5月:清华推出CogView模型,可以用中文生成图像
2021年11月:微软和北大推出NuWA(女娲)模型,不仅能生成图像,还能生成比较短的视频
2021年12月:openAI推出GLIDE模型
2021年12月:百度推出ERNIE-ViLG模型
2022年4月:openAI推出DALLE2
2022年4月:清华推出CogView2模型
2022年5月:清华推出CogVideo模型
2022年5月:Google推出Imagen模型

二、文章概要

(一)标题

使用 CLIP训练好的特征完成层级式的依托于文本条件的图像生成:

  • 层级式:先生成一个小分辨率的图片(如64x64),然后再利用一个模型上采样到256x256,再使用一个模型上采样到1024x1024
  • DALLE2模型其实可以理解成CLIP模型加上GLIDE模型,GLIDE模型就是基于扩散模型的文本图像生成的方法

在这里插入图片描述

(二)摘要

相关背景: 对比学习的方法比如CLIP模型已经可以学习到很稳健的图像特征,不仅能捕获到语义信息,还能捕获到图像的风格信息。(可以考虑用这些表示来生成图像)

主要工作: 提出了一个两阶段模型:

  • prior先验模型:根据给定的文本描述生成类似于CLIP的图像特征(图像嵌入)
  • decoder解码器:根据上述图像特征(以图像嵌入为条件)生成一个图像

研究表明:

  • 显式生成图像表示可以提高图像多样性,同时将照片真实性和标题相似性的损失降至最低。

GAN模型生成的图像虽然非常逼真,但是多样性较弱,生成的图像比较类似,不太具备原创性

  • 以图像表示为条件的解码器还可以生成图像的变体,保留其语义和风格,同时改变图像表示中缺少的非必要细节。
  • CLIP 的联合嵌入空间能够以零样本方式进行语言引导的图像操作。

模型结构:
我们使用扩散模型作为解码器,并对先验模型使用自回归模型和扩散模型进行实验,发现后者的计算效率更高,并产生更高质量的样本。

在这里插入图片描述

(三)引言

  1. 计算机视觉的最新进展是由从互联网收集的大型字幕图像数据集的缩放模型推动的。(CLIP)
  2. CLIP 嵌入具有许多理想的特性:对图像分布变化具有鲁棒性,具有令人印象深刻的零样本能力,并且经过微调以在各种视觉和语言任务上实现最先进的结果。
  3. 扩散模型 已成为一种有前景的生成建模框架,推动了图像和视频生成任务的最先进技术 。

扩散模型是一种概率分布模型,生成图片是从一个分布里采样,因此多样性较好,但是保真度弱于GAN模型

  1. 为了获得最佳结果,扩散模型利用了一种引导技术 ,该技术以牺牲样本多样性为代价来提高样本保真度(对于图像、真实感)。
    在这里插入图片描述

(四)模型架构

  • 虚线上方:CLIP训练过程
    • 通过CLIP过程学习文本和图像的联合表示空间
    • CLIP 模型在先验和解码器的训练期间被冻结:(一旦这个CLIP模型训练好之后,其中的文本编码器和图像编码器就锁住了)
  • 虚线下方:文本到图像的生成过程
    • 阶段1:prior(将 CLIP 文本嵌入馈送到自回归或扩散)
    • 阶段2:decoder (使用该嵌入来调节扩散解码器,从而生成最终的图像图像。)

采用两阶段而不是一阶段的关键提升在于:可以利用clip的图像编码器生成的特征去监督根据文本特征生成图像特征。在训练的时候,可以根据图像获得图像特征,拿该图像特征作为ground truth来监督。

在这里插入图片描述

DALLE2原名unCLIP:本质上是CLIP的反过程。

  • CLIP是给定文本、图像,得到对应的特征,然后将其进行匹配(图像匹配、图像检索等),是一个从输入到特征的过程。
  • DALLE2是通过文本特征到图像特征最后到图像的过程,是把特征还原到对应的数据。

三、方法

(一)图像生成的相关工作

GAN模型:

  • 两个网络generator和discriminator,一个负责生成图片,一个负责判断图片的真假。
  • 优点:①保真度高;②容易使用,需要的数据不多,可以在多个场景下使用;
  • 缺点:①训练不够稳定,需要同时训练两个网络;②生成图片的多样性较低,多样性主要来自于随机噪声,创造性较低;③不是概率模型,它的生成是隐式的,通过一个网络完成,不容易解释。

AutoEncoder模型:

  • 给定输入x,经过编码器得到特征,特征经过解码器得到图像
  • 目标:图像能够尽可能的重建之前的输入x,因此称为自编码器

Denoising-AutoEncoder模型:

  • 先将原图进行了一定程度的打乱,将扰乱之后的x输入到编码器,后续与AutoEncoder类似
  • 目标:图像能够尽可能的重建之前的输入x(不是打乱之后的)

Masked-AutoEncoder模型:

  • 掩码自编码器
  • 在训练时mask掉75%之后依旧能很好地把图像重建出来

AE、DAE、MAE的主要目的是得到输入x的特征,利用这些特征去进行分类、检测、分割等任务,而不是用于生成。因为模型过程中得到的特征不是一个概率分布,无法对其进行采样。

Variational AutoEncoder模型:

  • VAE的整体框架与AE类似,目标函数也是使得图像能够尽可能的重建之前的输入x
  • VAE中间不是学习输入x的一个固定特征,而是学习了一个分布
  • 假设学习到的分布为高斯分布,并用均值与方差来进行描述,然后从分布中采样出一个z,从而使得VAE做生成

整个过程可以看做先根据后验概率学习先验分布,然后分析likelihood

Vector quantised AutoEncoder模型:

  • VQVAE就是把VAE做量化
  • 把原本vae中的连续信息换成codebook转换过的离散信息,大模型就不容易过拟合,因为解空间实际减小了
  • codebook可以理解成聚类的中心
  • 图片经过编码器得到一个特征图,将特征图里的向量与codebook里的向量作对比,把最接近的聚类中心的编码存到z,利用z编码对应的特征生成新的特征图( f q f_q fq经过量化后的特征),然后通过解码器生成一个图片

VQVAE学习到的codebook又是固定的,因此不能去做随机采样,然后生成图片。学习得到的特征主要用于进行分类、检测、分割等任务,而不是用于生成。为了进行生成任务,需要单独训练一个prior网络,VQVAE论文作者单独训练了一个pixel CNN网络。(pixel CNN网络是一个自回归模型)

Vector quantised AutoEncoder2模型:

  • VQVAE2是VQVAE的改进版本
  • 把模型变成层级式,不仅做局部建模,而且做全局建模,并加上attention
  • 并且单独训练一个prior网络用于生成

DALLE模型:

  • VQVAE+GPT
  • 有一个图像文本对,文本先经过BPE编码得到一个特征,图像经过VQVAE得到特征
  • 将文本特征和图像特征连接起来,将该序列输入GPT,让GPT模型进行预测
  • 使用CLIP模型对生成结果进行评估,得到最终的生成结果

【论文精读】DALLE: Zero-Shot Text-to-Image Generation零样本文本到图像生成

(二)diffusion model扩散模型

前向扩散过程: 对于一个图片 x 0 x_0 x0,往该图片加噪声,比如每一步加一个很小的正态分布的噪声,加了T次之后即为 x T x_T xT,形成一张真正的噪声图片(正态分布)。
反向生成过程: 随机抽样一个噪声,训练一个模型,逐步去噪声。

diffusion model采取一个非常常见的模型结构:UNet

扩散模型的发展历程:

  1. 2015年首次提出
  2. 2020年6月:Denoising Diffusion Probabilistic Model(DDPM)对扩散模型进行了改进,从 x T x_T xT预测 x T − 1 x_{T-1} xT1转变为预测其中的噪声
  3. improved DDPM
  4. Diffusion beats GAN
  5. GLIDE(classifier guided diffusion)
  6. DALLE2

DDPM与VAE的对比:

  • DDPM也可以看做是一个编码器解码器的结构,扩散模型的编码器得到z的过程是固定的多步的,而VAE的编码器是学习得到的
  • 扩散模型中间的内容与最初的输入是同样维度大小的,VAE中间的特征会比初始的输入小很多
  • 扩散模型存在步数的概念,并且所有步数里的unet的模型参数是共享的

(三)DALLE2方法流程

  • 数据集:图像文本对
  • prior模型:根据文本 y y y生成图像的特征 z i z_i zi—— P ( z i ∣ y ) P(z_i|y) P(ziy)
  • decoder模型:把 z i z_i zi恢复呈图像 x x x—— P ( x ∣ z i , y ) P(x|z_i,y) P(xzi,y)
    在这里插入图片描述

总体上,DALLE2模型是先有一个CLIP模型,然后再训练DALLE2的图像生成模型,一旦CLIP模型训练好后,任意给定一个文本就可以通过文本编码器得到文本特征,然后通过prio模型将文本特征转化为图像特征,之后通过decoder模型将图像特征变为图像。
在这里插入图片描述

(四)decoder模型

  1. 其实是GLIDE模型的变体
  2. 以 CLIP 图像嵌入为条件,即CLIP 引导的diffusion
  3. 同时应用了无分类器指导(实现方式:每次随机mask掉10%的CLIP embedding,并且每次随机丢弃50%的text caption)
  4. 级联式生成(Dalle2训练了两个diffusion upsampler模型,第一个模型从 64 × 64 64 \times 64 64×64采样到 256 × 256 256 \times 256 256×256,第二个进一步采样到 1024 × 1024 1024 \times 1024 1024×1024。为了提升upsamper的稳健性,第一个上采样阶段用了高斯模糊;第二个上采样阶段用了多种BSR degradation操作)
  5. 训练过程中增加了噪声

(五)prior模型

  1. 尝试了两种方案:自回归prior模型和diffusion prior模型
    在这里插入图片描述
  2. 两种方案都使用了classifier free guidance
  3. 对于Autoregressive prior模型,输入是文本特征,也有CLIP输出的图像特征,然后与DALL-E、GPT类似地把他们拼接起来,然后将图像特征遮住,去自回归的预测。但是OpenAI在CLIP的文章中就已提到,这种自回归做预测的模型,训练效率太低
  4. 对于diffusion prior模型,训练了一个transformer的decoder

训练阶段:
训练数据: 图片文本对
对DuffusionPrior的训练主要包含以下几个步骤:

  • Step1:将图片文本对输入到CLIP模型中获得对应的文本向量编码(text embedding)文本中每个token的编码(text encoding)及图像向量编码(image embedding)。这里值得注意的是:CLIP的模型权重冻结,不参加训练。
  • Step2: 对image embedding(此处的image embedding就是diffusion model中的 x 0 x_0 x0)。随机采样时间步 t t t,对 x 0 x_0 x0​进行加噪,得到第 t t t时刻的noise image embedding x t x_t xt​。
  • Step3: 将文本向量编码、文本token编码、时间步向量、 t t t时刻的图像向量编码输入到模型中(其本质是一个decode-only transformer with a causal attention mask)。该模型的作用是预测分布 p ( x t − 1 ∣ x t ​ p(x_{t-1}|x_t​ p(xt1xt)分布的均值。
  • Step4: 计算预测分布与实际分布的KL散度实现训练。

推理阶段

  • Step1:将文本内容 y y y送入到CLIP模型中得到文本向量文本向量编码(text embedding)文本中每个token的编码(text encoding)。
  • Step2: 从高斯分布中随机采样一组向量作为 T T T时刻的图片向量编码。将文本向量编码、文本中每个token的编码、时间步编码、 T T T时刻的图片向量编码送入到DiffusionPriorNetwork中,预测 T − 1 T-1 T1时刻的图片向量编码。
  • Step3: 不断重复步骤2,直至时间步到 0 0 0得到所需的image embedding。

在这里插入图片描述

参考:
DALL·E 2(内含扩散模型介绍)【论文精读】
diffusion model(六)Dalle2技术小结

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

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

相关文章

9.华为交换机telnet远程管理配置aaa认证

目的:telnet远程管理设备 LSW1配置 [Huawei]int Vlanif 1 [Huawei-Vlanif1]ip add 1.1.1.1 24 [Huawei-Vlanif1]q [Huawei]user-interface vty 0 4 [Huawei-ui-vty0-4]authentication-mode aaa [Huawei-ui-vty0-4]q [Huawei]aaa [Huawei-aaa]local-user admin pass…

白酒:酒文化的教育价值与实践

酒文化作为中国传统文化的重要组成部分,具有丰富的教育价值。云仓酒庄的豪迈白酒作为酒文化的品牌之一,在传承与发展中不断挖掘和发挥酒文化的教育价值。 首先,豪迈白酒有责任传承丰富的历史文化知识。从酒的起源、酿造技艺、酒器文化到酒礼酒…

java实战——图书管理项目

文章目录 项目所需要的技术栈项目演示项目准备工作环境准备数据库数据准备 前后端交互分析(前端代码我们使用现成)图书列表界面的创建查看前端发送的请求根据前端接收的返回值来编写model层根据请求编写controller层根据controller编写Service根据Servic…

Linux C语言:指针与数组

一、指针与数组的基本用法 数组指针是指数组在内存中的起始地址,数组元素的地址是指数组元素在内存中的起始地址一维数组的数组名为一维数组的指针(起始地址) 例如: double x[8]; 因此,x为x数组的起始地址 设指针变…

什么是浏览器指纹

在数字互联网时代,我们的在线活动几乎都会留下痕迹。其中,浏览器指纹就像我们的数字身份证,让网站能够识别和追踪用户。本文将详细介绍浏览器指纹是什么,它如何工作。 一、什么是浏览器指纹 浏览器指纹(Browser Fing…

【C语言 || 排序】希尔排序

文章目录 前言1.希尔排序1.1 直接插入排序1.2 直接插入排序的实现1.2.1 直接插入排序的代码实现 1.3 直接插入排序的时间复杂度1.4 希尔排序1.4.1 希尔排序概念1.4.1 希尔排序的代码实现 前言 1.希尔排序 1.1 直接插入排序 在写希尔排序之前,我们需要先了解直接插入…

stable diffusion 局部重绘 reference-only api 接口调试

webUI api payload 插件生成的接口参数不准确,reference-only 的image不是对象,就是不同字符串字段,直接传,不是套image。 综上,那个插件参数不确定,应直接看插件的源码,看它接受什么参数 错误…

Paper Reading: PAMS:通过参数化最大尺度量化超分辨率

PAMS: Quantized Super-Resolution via Parameterized Max Scale PAMS:通过参数化最大尺度量化超分辨率, ECCV 2020 paper: https://arxiv.org/pdf/2011.04212.pdf GitHub: https://github.com/colorjam/PAMS 摘要 深度卷积神经网络(DCNNs)…

“Photoshop AI插件:StartAI的全面使用攻略

随着人工智能技术的飞速发展,Photoshop作为设计师们不可或缺的工具,也在不断地融入AI技术,以提升设计效率和效果。在2024年,PSAI插件StartAI因其强大的功能和易用性,成为了Photoshop用户的得力帮手。下面来给大家详细介…

CentOS 7x 使用Docker 安装oracle11g完整方法

1.安装docker-ce 安装依赖的软件包 yum install -y yum-utils device-mapper-persistent-data lvm2添加Docker的阿里云yum源 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo更新软件包索引 yum makecache fast查看docker…

深入浅出 Babel:现代 JavaScript 的编译器

在现代前端开发中,JavaScript 的版本更新速度非常快,新的语法和特性层出不穷。然而,旧版本的浏览器并不总是支持这些新特性。为了确保代码的兼容性和稳定性,我们需要一个工具来将现代 JavaScript 代码转换为旧版本的代码。Babel 就…

信息打点web篇----企业宏观资产打点

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 专栏描述:因为第一遍过信息收集的时候,没怎么把收集做回事 导致后来在实战中,遭遇资产获取少,可渗透点少的痛苦,如今决定 从头来过,全面全方位…

python安装系列问题

python3.4版本以上安装了python之后自带安装python。 1、换源 以Windows,清华源为例: 直接在user目录中创建一个pip目录,例如:C:\Users\xx\pip,新建文件pip.ini,内容如下: [global] index-url https:/…

C#的Switch语句3(如何为一段代码应用多个case标签)

文章目录 上一篇文章中断函数执行堆叠caseswitch中实用的字符串函数将字符串转换为小写 switch例子 上一篇文章 C#的Switch语句2 中断函数执行 switch语句内部可以使用return语句,这为控制程序流程和函数返回值提供了一种直接的方式。 当在switch语句块中遇到re…

CleanShot X for Mac v4.7 屏幕截图录像工具(保姆级教程,小白轻松上手,简单易学)

Mac分享吧 文章目录 一、准备工作二、部分特有功能效果1、截图软件的普遍常用功能(画框、箭头、加文字等)都具备,不再详细介绍2、ABCD、1234等信息标注(每按一下鼠标,即各是A、B、C、D...等)3、截图更换背…

SD-WAN组网如何帮助企业降低网络成本?

企业在构建IT网络时,常常面临节省费用和提升效益的挑战。IT开销主要包括设备、网络和维护成本。利用OgCloud的SD-WAN组网方案,企业可以有效地应对这些问题。 企业专线网络的高成本问题 企业专线的费用较高,而且数据不能同时在多条专线上传输。…

【linux】Valgrind工具集详解(十六):交叉编译、移植到arm(失败)

1、源码下载 官网:https://valgrind.org/ 源码:https://valgrind.org/downloads/current.html 2、配置 ./configure CC=arm-linux-gnueabihf-gcc \CXX=arm-linux-gnueabihf-g++ \AR=arm-linux-gnueabihf-ar \--host=arm-linux-gnueabihf \--pr

Postman如何在本地测试服务接口

项目架构及背景: 网关微服务多个业务微服务 服务部署在阿里云上,文件服务器用的是OSS。配置参数用Nacos进行统一管理。通过构建docker镜像包部署各业务微服务以及网关服务。 需求: 某一个业务微服务中开发了若干接口,需要在本地…

如何使用Indicator-Intelligence收集与威胁情报相关的域名和IPv4地址

关于Indicator-Intelligence Indicator-Intelligence是一款针对威胁情报的强大数据收集工具,该工具可以帮助广大研究人员通过威胁情报活动中生成的静态文件来查找与威胁行为相关的域名和IPv4地址。 需要注意的是,请在目标组织授权后再使用该工具进行安…

IFM易福门SV7500SV4200涡街流量计型号都是进口的。

IFM易福门SV7500SV4200涡街流量计型号都是进口的。工程余料。