DALL·E 2 解读 | 结合预训练CLIP和扩散模型实现文本-图像生成

这篇具有很好参考价值的文章主要介绍了DALL·E 2 解读 | 结合预训练CLIP和扩散模型实现文本-图像生成。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

DALL·E 2 解读 | 结合预训练CLIP和扩散模型实现文本-图像生成

 文章来源地址https://www.toymoban.com/news/detail-502633.html

一、导读

论文信息

DALL·E 2 解读 | 结合预训练CLIP和扩散模型实现文本-图像生成

  • 论文标题: 《Hierarchical Text-Conditional Image Generation with CLIP Latents》
  • 作者/单位:Aditya Ramesh et al. / Open AI
  • 论文链接: http://arxiv.org/abs/2204.06125
  • 论文中文对照版:论文笔记:DALL-E2:Hierarchical Text-ConditionalImage Generation with CLIP Latents详解_nocol.的博客-CSDN博客
  • 代码链接: 非官方实现 https://github.com/lucidrains/DALLE2-pytorch (OpenAI官方实现待更新)
  • 项目主页: 待更新

 

CLIP(打通文本-图像模型)相关讲解:

  • 详解CLIP (一) | 打通文本-图像预训练实现ImageNet的zero-shot分类,比肩全监督训练的ResNet50/101
  • 详解CLIP (二) | 简易使用CLIP-PyTorch预训练模型进行图像预测
  • 小小将:神器CLIP:连接文本和图像,打造可迁移的视觉模型
  • 徐土豆:CLIP-对比图文多模态预训练的读后感
  • 如何评价OpenAI最新的工作CLIP:连接文本和图像,zero shot效果堪比ResNet50?

 

 论文笔记:CLIP:Learning Transferable Visual Models From Natural Language Supervision详解_nocol.的博客-CSDN博客

clip预训练模型综述_nocol.的博客-CSDN博客

 

扩散模型Diffusion Model相关讲解:

  • Jonathan Ho et al.“Denoising diffusion probabilistic models.” arxiv Preprint arxiv:2006.11239 (2020).
  • xjtupanda:DDPM:Denoising Diffusion Probabiblistic Model 去噪扩散概率模型学习笔记
  • 理想主义者:生成模型(四):扩散模型

通俗理解DDPM:生成扩散模型_nocol.的博客-CSDN博客

二、DALL·E 2 模型解读

DALL·E 2 解读 | 结合预训练CLIP和扩散模型实现文本-图像生成

 

DALL·E 2 模型总览

DALL·E 2 这个模型的任务很简单:输入文本text,生成与文本高度对应的图片。

它主要包括三个部分:CLIP,先验模块prior和img decoder。其中CLIP又包含text encoder和img encoder。(在看DALL·E 2之前强烈建议先搞懂CLIP模型的训练和运作机制)

DALL·E 2 解读 | 结合预训练CLIP和扩散模型实现文本-图像生成

 

DALL·E 2 训练过程

DALL·E 2是将其子模块分开训练的,最后将这些训练好的子模块拼接在一起,最后实现由文本生成图像的功能。

1. 训练CLIP,使其能够编码文本和对应图像

这一步是与CLIP模型的训练方式完全一样的,目的是能够得到训练好的text encoder和img encoder。这么一来,文本和图像都可以被编码到相应的特征空间。对应上图中的虚线以上部分。

2. 训练prior,使文本编码可以转换为图像编码

论文中对于该步骤作用的解释为:

A prior P(zi|y) that produces CLIP image embeddings zi conditioned on captions y .

 

实际的训练过程为:将CLIP中训练好的text encoder拿出来,输入文本y,得到文本编码zt。同样的,将CLIP中训练好的img encoder拿出来,输入图像 x 得到图像编码zi。我们希望prior能从zt获取相对应的zi。假设zt经过prior输出的特征为zi′,那么我们自然希望zi′与zi越接近越好,这样来更新我们的prior模块。最终训练好的prior,将与CLIP的text encoder串联起来,它们可以根据我们的输入文本y生成对应的图像编码特征zi了。关于具体如何训练prior,有兴趣的小伙伴可以精度一下原文,作者使用了主成分分析法PCA来提升训练的稳定性。

DALL·E 2 解读 | 结合预训练CLIP和扩散模型实现文本-图像生成

 

在DALL·E 2 模型中,作者团队尝试了两种先验模型:自回归式Autoregressive (AR) prior 和扩散模型Diffusion prior [1]。实验效果上发现两种模型的性能相似,而因为扩散模型效率较高,因此最终选择了扩散模型作为prior模块。本文不具体解释扩散模型,大家可以查阅参考博文,或者我后期再整理相关知识。

3. 训练decoder生成最终的图像

论文中对于该步骤作用的解释为:

A decoder P(x|zi,y) that produces images x conditioned on CLIP image embeddingszi (and optionally text captions y ).

 

也就是说我们要训练decoder模块,从图像特征zi还原出真实的图像 x ,如下图左边所示。这个过程与自编码器类似,从中间特征层还原出输入图像,但又不完全一样。我们需要生成出的图像,只需要保持原始图像的显著特征就可以了,这样以便于多样化生成,例如下图右边的示例。

 

DALL·E 2 解读 | 结合预训练CLIP和扩散模型实现文本-图像生成

 

 

左:训练decoder的过程。右:图像经过img encoder再经decoder得到重建图像。顶部图像为输入。

DALL-E 2使用的是改进的GLIDE模型 [2]。这个模型可以根据CLIP图像编码的zi,还原出具有相同与 x 有相同语义,而又不是与 x 完全一致的图像。

 

 

DALL·E 2 推理过程(由文本生成图像过程)

经过以上三个步骤的训练,已经可以完成DALL·E 2预训练模型的搭建了。我们这事丢掉CLIP中的img encoder,留下CLIP中的text encoder,以及新训练好的prior和decoder。这么一来流程自然很清晰了:由text encoder将文本进行编码,再由prior将文本编码转换为图像编码,最后由decoder进行解码生成图像。

DALL·E 2 解读 | 结合预训练CLIP和扩散模型实现文本-图像生成

 

DALL·E 2 推理过程 

三、DALL·E 2实验效果和不足之处

实验效果

看下DALL·E 2 在MS-COCO prompts上的生成效果:

DALL·E 2 解读 | 结合预训练CLIP和扩散模型实现文本-图像生成

 

不足之处

本文作者提到了DALL·E 2的三个不足之处:

  1. DALL·E 2 容易将物体和属性混淆,比如下图 DALL·E 2(unCLIP) 与GLIDE的对比。提示的文字为:“a red cube on top of a blue cube”。

DALL·E 2 解读 | 结合预训练CLIP和扩散模型实现文本-图像生成

 

DALL·E 2与GLIDE由“a red cube on top of a blue cube”生成的图像

DALL·E 2 不容易将红色和蓝色分辨出来。这可能来源于CLIP的embedding过程没有将属性绑定到物体上;并且decoder的重建过程也经常混淆属性和物体,如下图所示,例如中间的柯基图片,有的重建结果将其帽子和领结的颜色搞反了。

DALL·E 2 解读 | 结合预训练CLIP和扩散模型实现文本-图像生成

 

decoder经常混淆属性和物体

2. DALL·E 2对于将文本放入图像中的能力不足,如下图所示,我们希望得到一个写着deep learning的标志,而标志却将单词/词组拼写得很离谱。这个问题可能来源于CLIP embedding不能精确地从输入地文本提取出“拼写”信息。

DALL·E 2 解读 | 结合预训练CLIP和扩散模型实现文本-图像生成

 

DALL·E 2由“A sign that says deep learning.”生成的图像

3.DALL·E 2 在生成复杂场景图片时,对细节处理有缺陷,如下图所示生成Times Square的高质量图片。这个可能来源于decoder的分层(hierarchy)结构,先生成64 × 64的图像,再逐步上采样得到最终结果的。如果将decoder先生成的图像分辨率提高,比如从64 × 64提升到128 × 128,那么这个问题可能可以缓解,但要付出更大计算量和训练成本的代价。

 DALL·E 2 解读 | 结合预训练CLIP和扩散模型实现文本-图像生成

 

DALL·E 2由“A high quality photo of Times Square.”生成的图像

待更新内容:代码实现以及上手使用(OpenAI仍未开源,目前可先使用非官方实现代码)

 原文链接:DALL·E 2 解读 | 结合预训练CLIP和扩散模型实现文本-图像生成-pudn.com

 

 

 

到了这里,关于DALL·E 2 解读 | 结合预训练CLIP和扩散模型实现文本-图像生成的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 李沐论文精读系列五:DALL·E2(生成模型串讲,从GANs、VE/VAE/VQ-VAE/DALL·E到扩散模型DDPM/ADM)

    传送门: 李沐论文精读系列一: ResNet、Transformer、GAN、BERT 李沐论文精读系列二:Vision Transformer、MAE、Swin-Transformer 李沐论文精读系列三:MoCo、对比学习综述(MoCov1/v2/v3、SimCLR v1/v2、DINO等) 李沐论文精读系列四:CLIP和改进工作串讲(LSeg、GroupViT、VLiD、 GLIPv1、 GLIPv2、CLIPas

    2024年02月10日
    浏览(26)
  • CLIP原理解读——大模型论文阅读笔记一

    通过自然语言处理来的一些监督信号,可以去训练一个迁移效果很好的视觉模型。 论文的作者团队收集了一个超级大的图像文本配对的数据集,有400 million个图片文本的配对, 模型最大用了ViT-large,提出了CLIP(Contrastive Language-Image Pre-training),是一种从自然语言监督中学习

    2024年02月08日
    浏览(30)
  • DALL-E2原理解读——大模型论文阅读笔记五

    论文:https://cdn.openai.com/papers/dall-e-2.pdf 项目:https://openai.com/dall-e-2 利用CLIP提取的文本特征,级联式的生成图片。第一阶段通过prior将文本特征与图像特征进行对齐,第二阶段用扩散模型将视觉特征转化为生成图片。整体来看,DALL-E2就是CLIP与扩散模型的结合,因此作者也将其

    2024年02月11日
    浏览(29)
  • 扩散模型(Diffusion model)代码详细解读

    代码地址:denoising-diffusion-pytorch/denoising_diffusion_pytorch.py at main · lucidrains/denoising-diffusion-pytorch (github.com) 前向过程和后向过程的代码都在 GaussianDiffusion ​这个类中。​ 有问题可以一起讨论! Why self-conditioning? · Issue #94 · lucidrains/denoising-diffusion-pytorch (github.com) \\\"pred_x0\\\" preforms

    2024年01月25日
    浏览(38)
  • 文本引导的图像生成模型一:DALL·E 2

    可以参考模型:https://zhuanlan.zhihu.com/p/526438544

    2024年02月05日
    浏览(33)
  • LLMs之llama_7b_qlora:源代码解读inference_qlora.py(模型推理)使用LORA权重来初始化预训练的LLAMA模型来进行文本生成(基于用户交互输入的上下文生成新文本)

    LLMs之llama_7b_qlora:源码解读inference_qlora.py(模型推理)使用LORA权重来初始化预训练的LLAMA模型来进行文本生成(基于用户交互输入的上下文生成新文本) 目录

    2024年02月15日
    浏览(51)
  • 多模态模型学习1——CLIP对比学习 语言-图像预训练模型

    学了一些多模态的知识,CLIP算是其中最重要也是最通用的一环,一起来看一下吧。 CLIP的全称是Contrastive Language-Image Pre-Training,中文是对比语言-图像预训练,是一个预训练模型,简称为CLIP。 该模型是 OpenAI 在 2021 年发布的,最初用于匹配图像和文本的预训练神经网络模型,

    2023年04月13日
    浏览(42)
  • 扩散模型实战(十):Stable Diffusion文本条件生成图像大模型

     扩散模型实战(一):基本原理介绍 扩散模型实战(二):扩散模型的发展 扩散模型实战(三):扩散模型的应用 扩散模型实战(四):从零构建扩散模型 扩散模型实战(五):采样过程 扩散模型实战(六):Diffusers DDPM初探 扩散模型实战(七):Diffusers蝴蝶图像生成实

    2024年02月03日
    浏览(41)
  • 使用预训练的2D扩散模型改进3D成像

    扩散模型已经成为一种新的生成高质量样本的生成模型,也被作为有效的逆问题求解器。然而,由于生成过程仍然处于相同的高维(即与数据维相同)空间中,极高的内存和计算成本导致模型尚未扩展到3D逆问题。在本文中,作者将传统的基于模型的迭代重建的思想与扩散模

    2024年02月16日
    浏览(31)
  • 【AIGC】手把手使用扩散模型从文本生成图像

    在这篇文章中,我们将手把手展示如何使用Hugging Face的diffusers包通过文本生成图像。 DALLE2是收费的,用户只有一些免费的额度,如果免费额度使用完毕就需要付费了,所以必须寻找替代方案,并发现了Hugging Face,他们发布了一个扩散模型的包diffusers ,可以让我们直接使用。

    2024年02月09日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包