论文阅读_DALLE-2的unCLIP模型
论文信息
name_en: Hierarchical Text-Conditional Image Generation with CLIP Latents
name_ch: 利用CLIP的层次化文本条件图像生成
paper_addr: http://arxiv.org/abs/2204.06125
doi: 10.48550/arXiv.2204.06125
date_read: 2023-02-12
date_publish: 2022-04-12
tags: [‘深度学习’,‘自然语言处理’,‘图形图像’]
author: Aditya Ramesh
citation: 703
读后感
OpenAI出品,应用于DALL-E 2。主要实现了以文本为条件生成图像。它在图像的还原和生成过程中,利用了图像与文本间的映射关系,文本可以看作是人对图片内容的抽象,它让模型从人的视角“看”图片,识别了其中人觉得最重要的内容;在图片内容和人类概念之间建立联系,并能通过文本描述的概念来生成和编辑图片。
从技术层面看,它主要基于CLIP,Diffusion模型,并在GLIDE的方法之上进行了改进(之前GLIDE尝试了有分类的CLIP,本文尝试了无分类的CLIP;GLIDE对Diffusion中加噪图片训练CLIP对齐嵌入,本文用不加噪图片做CLIP)。
介绍
CLIP模型在图片和文本之间建立映射关系,能很好的获取图片的含义和风格。本文基于CLIP,提出了两阶段模型(如图):首先,生成给定文本描述对应的CLIP图像嵌入,然后,用解码器生成以图像嵌入为条件的图像。其解码器尝试了自回归和扩散两种方法,发现扩散模型效率更高。
其核心逻辑如图所示:虚线上结合了文本和图像的表示空间;虚线下是生成图片的过程,用文本嵌入产生一个图像嵌入,然后利用这个嵌入在条件约束下送入扩散解码器产生最终图像。

方法
数据集由成对的( x , y):图像x和它们对应的描述y组成,用zi和zt分别表示CLIP图像和文本嵌入。
P(x∣y)=P(x,zi∣y)=P(x∣zi,y)P(zi∣y)P(x \mid y)=P\left(x, z_{i} \mid y\right)=P\left(x \mid z_{i}, y\right) P\left(z_{i} \mid y\right)P(x∣y)=P(x,zi∣y)=P(x∣zi,y)P(zi∣y)
利用上述公式,生成图片,其中先验(上图中prior)P (zi | y),生成以字幕y为条件的CLIP图像嵌入zi;解码器(上图中Decoder)P (x|zi , y),生成以CLIP图像嵌入zi (以及可选的文本标题y)为条件的图像x(具体训练细见附录C)。
解码器 Decoder
使用扩散模型生成基于CLIP图像嵌入(以及可选的文本标题)的图像。基于GLIDE模型做了一些修改(GLIDE模型使用加噪后的图片训练CLIP),将CLIP嵌入投影到额外的4个上下文标记中,这些上下文标记串联到GLIDE文本编码器的输出序列中;并在训练过程中随机丢弃文本标题50 %的来实现无分类器指导;另外,还考虑了上采样以改进模型精度,以及提升模型鲁棒性的方法。
先验 Prior
上述编码器可用嵌入空间数据生成图像,但还需要一个先验模型,从标题y生成zi,以便从文本生成图像。本文探索了两种不同的模型作为先验模型:
- 自回归先验
- 扩散先验
其中扩散模型效率更高。训练一个带因果注意力掩膜的解码器Transformer,之前的扩散先验由:编码文本、CLIP文本嵌入、扩散时间步嵌入、带噪CLIP图像嵌入、最终通过Transformer预测不带噪CLIP图像嵌入。本文生成zi的两个样本,并选择与zt点积较高的样本来提高采样质量。并且发现更好的Diffusion方法是训练模型直接预测不带噪的zi,因此改进了 Diffusion 损失函数。
Lprior =Et∼[1,T],zi(t)∼qt[∥fθ(zi(t),t,y)−zi∥2]L_{\text {prior }}=\mathbb{E}_{t \sim[1, T], z_{i}^{(t)} \sim q_{t}}\left[\left\|f_{\theta}\left(z_{i}^{(t)}, t, y\right)-z_{i}\right\|^{2}\right]Lprior =Et∼[1,T],zi(t)∼qt[fθ(zi(t),t,y)−zi2]
另外,还使用主成分分析( PCA )对CLIP图像嵌入zi进行降维。通过在原始的1024个主成分中只保留320个主成分,能够保留几乎所有的信息,从后面实验部分,主成分中越重要的维度对应的概念越核心。
操作图像
下面展示了几种应用模型的方法:
生成语义相似的图像
给定一幅图像x,可以生成具有相同本质内容(主体元素和风格)但在其他方面不同的相关图像,如形状和方向。具体方法是通过η值控制DDIM采样的随机性。

上方是原图,下面九张为修改后生成的图。
混合图像
混合x1,x2两张图(最左和最右两张),通过对输入图像的嵌入使用球面插值在它们的zi1和zi2之间旋转。

修改图像
通过语义描述修改图像。输入是一个图像和对它的描述,以及转换目标的描述,如图第四行:输入为冬天图片,目标是将其转成秋天的图片。实现方法是计算两个输入标题嵌入的差值,然后使用插件方法在图像嵌入和文本差值间旋转。

探索稳空间
PCA重构提供了一种探测CLIP潜在空间结构的工具。在图-7中,右侧是原图,对CLIP的嵌入空间降维,原空间维度为1024,仅保留重性为24,30,40… 320的PCA维度进行重建。可以看到不同维度编码了哪些语义信息。
我们观察到重要性高的PCA维度保留了粗粒度的语义信息,如场景中的物体类型,而重要性相对低的PCA维度编码了更细粒度的细节,如物体的形状和精确形式。
例如,在第一个场景中,重要的维度只有食物,也许还有一个容器,而增加维度后则有西红柿、绿植和瓶子。

之后,作者还对图片的逼真度、多样性和美学性进行了评测,展示unCLIP优于之前模型。
相关文章:
论文阅读_DALLE-2的unCLIP模型
论文信息 name_en: Hierarchical Text-Conditional Image Generation with CLIP Latents name_ch: 利用CLIP的层次化文本条件图像生成 paper_addr: http://arxiv.org/abs/2204.06125 doi: 10.48550/arXiv.2204.06125 date_read: 2023-02-12 date_publish: 2022-04-12 tags: [‘…...
软件测试5年,历经3轮面试成功拿下华为Offer,24K/16薪不过分吧
前言 转眼过去,距离读书的时候已经这么久了吗?,从18年5月本科毕业入职了一家小公司,到现在快5年了,前段时间社招想着找一个新的工作,前前后后花了一个多月的时间复习以及面试,前几天拿到了华为的…...
【软件工程】课程作业(三道题目:需求分析、概要设计、详细设计、软件测试)
文章目录:故事的开头总是极尽温柔,故事会一直温柔……💜一、你怎么理解需求分析?1、需求分析的定义:2、需求分析的重要性:3、需求分析的内容:4、基于系统分析的方法分类:5、需求分析…...
05 DC-AC逆变器(DCAC Converter / Inverter)简介
文章目录0、概述逆变原理方波变换阶梯波变换斩控调制方式逆变器分类逆变器波形指标1、方波变换器A 单相单相全桥对称单脉冲调制移相单脉冲调制单相半桥2、方波变换器B 三相180度导通120度导通(线、相的关系与180度相反)3、阶梯波逆变器独立直流源二极管钳…...
带你深层了解c语言指针
前言 🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏: 🍔🍟🌯 c语言进阶 🔑个人信条: 🌵知行合一 🍉本篇简介:>:介绍c语言中有关指针更深层的知识. 金句分享: ✨今天…...
2-MATLAB APP Design-下拉菜单栏的使用
一、APP 界面设计展示 1.新建一个空白的APP,在此次的学习中,我们会用到编辑字段(文本框)、下拉菜单栏、坐标区,首先在界面中拖入一个编辑字段(文本框),在文本框中输入内容:下拉菜单栏的使用,调整背景颜色,字体的颜色为黑色,字体的大小调为26. 2.在左侧组件库常用栏…...
七、HTTPTomcatServlet
1,Web概述 1.1 Web和JavaWeb的概念 Web是全球广域网,也称为万维网(www),能够通过浏览器访问的网站。 在我们日常的生活中,经常会使用浏览器去访问百度、京东、传智官网等这些网站,这些网站统称为Web网站。如下就是通…...
LeetCode 热题 C++ 198. 打家劫舍
力扣198 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存…...
C语言学习笔记——程序环境和预处理
目录 前言 一、程序环境 1. 翻译环境 1.1 主要过程 1.2 编译过程 2. 运行环境 二、预处理 1. 预定义符号 2. #define 2.1 #define定义标识符 2.2 #define定义宏 2.3 命名约定和移除定义 3. 条件编译 4. 文件包含 结束语 前言 每次我们写完代码运行的时候都…...
「JVM 高效并发」Java 内存模型
Amdahl 定律代替摩尔定律成为了计算机性能发展的新源动力,也是人类压榨计算机运算能力的最有力武器; 摩尔定律,描述处理器晶体管数量与运行效率之间的发展关系;Amdahl 定律,描述系统并行化与串行化的比重与系统运算加…...
C语言刷题(2)——“C”
各位CSDN的uu们你们好呀,今天小雅兰来复习一下之前所学过的内容噢,复习的方式,那当然是刷题啦,现在,就让我们进入C语言的世界吧 当然,题目还是来源于牛客网 完完全全零基础 编程语言初学训练营_在线编程题…...
第一个 Spring MVC 注解式开发案例(初学必看)
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...
openresty学习笔记
openresty 简介 openresty 是一个基于 nginx 与 lua 的高性能 web 平台,其内部 集成了大量精良的 lua 库、第三方模块以及大数的依赖项。用于 方便搭建能够处理超高并发、扩展性极高的动态 web 应用、 web 服务和动态网关。 openresty 通过汇聚各种设计精良的 ngi…...
微信小程序DAY3
文章目录一、页面导航1-1、声明式导航1-2、编程式导航1-3、声明式导航传参1-4、编程式导航传参1-5、获取导航传递的参数二、页面事件2-1、下拉刷新事件2-1-1、启用下拉刷新2-1-2、配置下拉刷新2-1-3、监听页面下拉刷新事件2-2、上拉触底事件2-2-1、事件触发2-2-1、事件配置三、…...
【CAN】手把手教你学习CAN总线(一)
CAN总线一、CAN总线概念二、CAN的差分信号三、CAN总线的通信协议1、 帧起始2、仲裁段3、控制段4、数据段5、CRC段6、ACK段7、帧结束四、CAN的位时序1、同步段(SS)2、传播时间段(PTS)3、相位缓冲段(PBS)4、再…...
JUC 体系的基石——AQS
—— AQS(AbstractQueuedSynchronizer) 概念 抽象队列同步器;volatile cas 机制实现的锁模板,保证了代码的同步性和可见性,而 AQS 封装了线程阻塞等待挂起,解锁唤醒其他线程的逻辑。AQS 子类只需要根据状…...
Qt中信号与槽的使用
Qt中信号与槽的使用 Qt当中一个重要的东西是信号和槽,它被用于对象之间的通信。 在Qt中,例如“点击按钮”这个事件就是发送信号的对象,接收信号的是某一个窗口,响应信号的是一个处理,可以是隐藏窗口或者是关闭窗口。…...
力扣-销售员
大家好,我是空空star,本篇带大家了解一道简单的力扣sql练习题。 文章目录前言一、题目:607. 销售员二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交SQL运行结果5.其他总结前言 …...
HTML综合案例练习
一、展示简历内容 可以首先看一下我们的效果,之后再思考怎么实现 总的来说,这个练习不算难。 这里关于这个简历的代码编写我们不说太多,只注意以下几个内容即可: 注意及时查看我们的代码是否符合预期,即一段一段测 …...
MySQL运维
目录 1、日志 1、错误日志 2、二进制日志 3、查询日志 4、慢查询日志 2、主从复制 搭建 1、主库配置 2、从库配置 3、分库分表 1、简介 编辑 1、垂直拆分 2、水平拆分 3、实现技术 2、MyCat 3、MyCat使用和配置 配置 4、MyCat分片 1、垂直拆分 2、水平拆分…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...
定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...
将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?
Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...
uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
