【扩散模型】9、Imagen | 借用语言模型的能力来实现文生图(NIPS2022 Oral)

在这里插入图片描述

文章目录

    • 一、背景
    • 二、方法
      • 2.1 预训练的语言编码器
      • 2.2 扩散模型和 classifier-free guidance
    • 三、效果

论文:Imagen: Photorealistic Text-to-Image Diffusion Models with Deep Language Understanding

官网:https://www.assemblyai.com/blog/how-imagen-actually-works/#how-imagen-works-a-deep-dive

博客:https://cloud.tencent.com/developer/article/2202539

出处:谷歌 | NIPS2022 Oral

一、背景

本文提出的 Imagen,是一个借用语言模型结合扩散模型来实现 text-to-image 的生成模型,实现具有语言理解能力的文本到图像的生成

Imagen 模型包括两部分:

  • 固定的 T5-XXL encoder:将文本映射到 embedding
  • 64x64 的扩散模型,后面跟两个超分模型,来生成 256x256 和 1024x1024 的模型,所有的扩散模型都是以 text embedding 作为条件,使用 classifier-free guidance

在这里插入图片描述

二、方法

2.1 预训练的语言编码器

Text-to-image 模型需要一个很强大的语义理解 text encoder,这样才能捕捉到输入文本的语义

当前很多文生图模型都使用 text-image pairs 的模式来训练文本编码器,例如 CLIP

但本文作者认为大型语言模型也可以是另一种选择来为文本到图片生成任务进行文字编码。最近大型语言模型(如BERT [15], GPT [47, 48, 7], T5 [52]) 上的进步,实现了对于文字理解和生成能力上的飞跃。这些语言模型比只用纯粹比配对图片-文字数据更大规模且分布更广阔丰富的纯粹文字库进行训练。

故本文作者对比了 BERT、T5、CLIP,固定这些模型的权重,也有利于训练过程中减小计算量,对比结果发现,提高文本编码器的体量,就能很好的提高 text-to-image 生成的质量。尽管T5-XXL 和 CLIP 文字编码器在简单基准测试如 MS-COCO 上表现相似,但人类评估员更喜欢T5-XXL 编码器,无论是图片 - 文字对齐还是 DrawBench 片保真度都更好一些。

2.2 扩散模型和 classifier-free guidance

classifier guidance:

  • 不需要重新训练 diffusion 模型,需要训练加噪图片的分类模型,可以控制生成图片的类别,分类图片有多少类,就能控制这个扩散模型生成多少类

classifier-free guidance:

  • 需要重新训练 diffusion 模型,不需要训练分类模型,不受限于类别,直接用条件控制即可

扩散模型就是从噪声数据中一步步来得到原始图片的过程

这个过程中:

  • Classifier guidance:能够通过影响采样过程的梯度来降低生成图片的多样性,提升图片的保真性,可以使用预训练好的扩散模型,需要额外训练一个噪声图片分类器,在采样的时候引导扩散模型
  • Classifier-free guidance:不需要额外训练图片分类器,而是在训练扩散模型时使用 conditional 和 unconditional,随机 10% 的概率 drop 掉文本 c

在这里插入图片描述

  • 前面的是 conditional 结果
  • 后面的是 unconditional 结果
  • w 是 guidance weight,w=1 的时候就是有条件模型,w=0 时就是无条件模型,提升 w>1 就会提高有条件引导的作用

三、效果

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

Python命名规范中的[单/双][前导/后缀]下划线小结

如图所示 出处 Single and Double Underscores in Python Names

flutter + firebase 云消息通知教程 (android-安卓、ios-苹果)

如果能看到这篇文章的 一定已经对手机端的 消息推送通知 有了一定了解。 国内安卓厂商这里不提都有自己的FCM 可自行查找。(国内因无法科学原因 ,不能使用谷歌服务)只说海外的。 目前 adnroid 和 ios 推送消息分别叫 FCM 和 APNs。这里通过…

金蝶云星空业务对象添加网控设置

文章目录 金蝶云星空业务对象添加网控设置排查是否已经网控设置网控设置 金蝶云星空业务对象添加网控设置 排查是否已经网控设置 网控设置

TrustZone之安全启动与引导失败处理

一、引导和信任链 引导是任何TrustZone系统的关键部分。只有在引导流程中之前运行的所有软件组件都是可信的情况下,才能信任某个软件组件。这通常被称为信任链。下图显示了一个简化的信任链: 在我们的示例中,首先运行的代码是boot ROM。我们必须隐式信任boot ROM,因…

JavaScript高级 函数进阶篇

函数进阶 1、函数的定义和调用 函数声明方式function关键字(命名函数);函数表达式(匿名函数);new Function()(此处的Function()是一个构造函数);var fn new Function(参…

输入框获取焦点

Entry Component struct Test {build() {Row() {Column({ space: 5 }) {//Text("自定义样式").customStyles(20,Color.Yellow).backgroundColor("#36D").padding(10).borderRadius(30)TextInput({placeholder: "获取焦点"}).borderColor(Color.Y…

只更新软件,座椅为何能获得加热功能?——一文读懂OTA

2020年,特斯拉发布过一次OTA更新,车主可以通过这次系统更新获得座椅加热功能。当时,这则新闻震惊了车圈和所有车主,彼时的大家还没有把汽车当作可以“升级”的智能设备。 如今3年过去了,车主对各家车企的OTA升级早已见…

【halcon算子】set_window_param

算子介绍 set_window_param 是 HALCON 的一个操作符,用于设置已打开窗口的不同参数。以下是一些通用的窗口参数: ‘flush’ 启用或禁用在显示每个对象后刷新窗口内容。如果将 ‘flush’ 设置为 ‘false’,则必须调用 flush_buffer 来更新窗口…

Laravel框架使用phpstudy本地安装的composer用Laravel 安装器进行安装搭建

一、首先需要安装Laravel 安装器 composer global require laravel/installer 二、安装器安装好后,可以使用如下命令创建项目 laravel new sys 三、本地运行 php artisan serve 四、 使用Composer快速安装Laravel5.8框架 安装指定版本的最新版本(推荐&a…

描述一个bug及定义bug的级别

(一)描述一个bug 描述一个bug,需要以下几个因素: 故障标题、故障发现的版本、故障类别(功能/兼容/界面)、故障优先级、故障描述(测试环境、测试步骤、预期结果、实际结果)。 举个例…

《每天一分钟学习C语言·六》

1、 1字节(Byte)8位,1KB1024字节,1M1024KB,1G1024MB 2、 char ch A; printf(“ch %d\n”, ch);ch为65 这里是ASCII码转换 3、 scanf("%d", &i); //一般scanf直接加输入控制符 scanf("m%d&qu…

火力发电厂电气一次部分初步设计(论文+图纸)

1 原始资料 设计电厂为中型是凝汽式发电厂&#xff0c;共4台发电机组&#xff0c;2台75MW机组&#xff0c;2台50MW机组&#xff0c;总的装机容量为250MW&#xff0c;占系统容量的比例为&#xff1a; 250/(3500250)100%6.7%<15%&#xff0c;未超过电力系统的检修备用容量和…