GLIDE 学习笔记

GLIDE 学习笔记

GLIDE: Towards Photorealistic Image Generation and Editing with Text-Guided Diffusion Models

论文:[2112.10741] GLIDE

项目:openai/glide-text2im: GLIDE: a diffusion-based text-conditional image synthesis model

GLIDE 2021年12月OpenAI的工作 ,面向逼真图片生成和文字引导的扩散模型编辑图片,由于目前最火的DALLE 2 就是CLIP和GLIDE的结合,今天我们来了解一下GLIDE,在学习之前,还是老规矩,我们还是动手玩一下,在github项目上有官方小模型使用colab notebook进行玩耍。下面我也自己尝试一下效果。

Playground

GLIDE中有两个任务,一个是Text-Conditional Image Generation,另一个是 Image Inpainting 下面基于官方给的notebook代码跑了个玩具看看效果。

  • 根据文字提示生成图片,我的代码地址:text2image_glide(github.com)

    下面是其中一组例子

    GLIDE 学习笔记_第1张图片

  • inpaint 上传图片并mask部分区域,并根据文字提示内容进行还原编辑图片

    我的项目地址:Inpaint_glide(github.com)

    效果展示:

    原图:GLIDE 学习笔记_第2张图片

    然后进行mask下面一部分,然后进行基于文本提示生成图片的结果:

    GLIDE 学习笔记_第3张图片

    第二个图片本来想拼写dog,结果打错了,啥也出来,至于第三个图片girl我就很懵逼,这也行,原来训练集是不是对girl有什么误解,我吐了。

原理

GLIDE主要使用扩散模型的方式来进行图片生成,近年来的图片生成方法有GAN,VAE, 基于流,扩散模型,扩散模型被证明图片生成有很大潜力,特别是与引导结合来兼顾保真度和多样性。

GLIDE 学习笔记_第4张图片

扩散模型

扩散模型简单来说就是从图片缓慢扩散得到高斯噪音,然后从高斯噪音逐步到图片信号的逆向过程,这里先简单介绍一下经典的扩散模型DDPM (Denoising Diffusion Probabilistic Model)

DDPM

逆向过程:从一张随机高斯噪音,逐步去噪,整个过程是一个马尔科夫链,根据输入,预测高斯分布的均值方差,然后进行采样得到x,不断采样预测,最后得到真实图片。

正向过程:从图片到高斯噪音,固定的马尔可夫链形势,逐步添加高斯噪音,我们可以得到任意噪音程度的图片,方便训练。

在这里插入图片描述

训练过程:使用一个U-Net结构的Autoencoder模型进行对噪音预测,然后根据预测值计算均值方差,进行采样生成图片。

Guided Diffusion

基于类别的扩散模型,基于DDPM模型,在逆向过程中,加入分类器,对采样生成图片进行分类,然后计算交叉熵损失梯度,通过梯度向下传导,来控制采样方向与类别相关.

Semantic Guidence Diffusion

扩散模型通过类别引导类似于图片优化问题,所以类似的提出了使用语义引导,即文本语义和图片语义进行引导。

文本语义引导:这里主要使用CLIP来计算文本和采样生成图片相似度损失梯度,进行引导采样图片生成

图片语义引导:希望生成与引导图片类似的图片,这里可以分为图片内容引导,即使用CLIP图片特征进行计算相似度,图片结构引导,使用encoder的空间特征分布,图片风格引导,基于Gram矩阵进行计算损失。

混合引导 :通过将上述引导函数以一定比例加起来,可以基于多种条件进行生成。

Classifier-Free Diffusion Guidence

无分类器的扩散引导,基于DDPM模型通过估计噪音估计来计算高斯分布均值,在这里,使用额外条件进行噪音估计,即将分类引导加入到噪音估计模型中,但每次不同引导类型都需要重新训练扩散模型。

本文GLIDE的工作就是通过no-classifier guidence来引导扩散模型来生成图片,如下公式为文本类别引导条件

在这里插入图片描述

总结

本文是OpenAI,使用已经有的方法Classifier-Free 扩散引导,来完成文本引导图片生成任务,数据集使用DALLE相同数据集,参数量35亿,比DALLE小(120亿)小,同时效果较好一些,出来classifier-free,也使用了clip-noise模型进行扩散引导,但效果较这个差一点.至于Limiations,就是速度很慢,在A100 GPU下生成一张图片至少15s

参考

  1. 从DDPM到GLIDE:基于扩散模型的图像生成算法进展 - 知乎 (zhihu.com)

你可能感兴趣的:(论文笔记,计算机视觉,深度学习,自然语言处理,人工智能)