十二、视觉内容生成模型

72 阅读3分钟

1 判别式模型和生成式模型

在这里插入图片描述

1. 判别式模型

  • 学习策略函数Y=f(X)Y=f(X)或者条件概率P(YX)P(Y|X)
  • 不能反映训练数据本身的特性
  • 学习成本低,需要的训练样本少
  • 无法转为生成式

2. 生成式模型

  • 学习联合概率密度分布P(XY)P(X|Y),学习所有数据的分布
  • 能够反映训练数据本身的特性
  • 学习成本高,需要的训练样本多
  • 一定条件下可以转换为判别式

学习可观测样本的概率密度,并随机生成新样本 在这里插入图片描述

2 生成式模型

2.1 AutoEncoder自编码器

  • 图像压缩算法 Encoder->laten code->Decoder 在这里插入图片描述
  • 如果图像加一些扰动 Decoder变的脆弱不可控 在这里插入图片描述
  • 更适合视觉特征的编码器,全方位多角度由图1演变为图2 在这里插入图片描述 在这里插入图片描述

2.2 VAE(Variational AutoEncoder)变分自编码器

对多个高斯分布的特征进行采样 在这里插入图片描述 在这里插入图片描述

2.3 Diffusion Model扩散模型

  • VAE模型在Encoder时对图像压缩比较大,导致Decoder时得到的图像质量比较差
  • Diffusion Model : 逐步的加入高斯噪声,并反向逐步去噪。得到的图像质量好,不失真 在这里插入图片描述 两个过程
  • 正向扩散过程:向输入数据中逐步加入噪声
  • 反向扩散过程:通过去噪的方式学习数据生成过程 在这里插入图片描述 整体流程 在这里插入图片描述 U-Net架构 在这里插入图片描述 去噪过程 在这里插入图片描述 不同一般的UNet网络结构:
  • 加入time embedding,影响UNet中每一层的计算
  • 输入:加噪图片(特征)
  • 输出:预测的噪声

2.4 Stable Diffusion模型结构

ϵ\epsilon:VAE(变分自编码器)将图像特征压缩到原始尺寸的14\frac{1}{4},降低计算量,当Decoder时几乎不失真。 并加入引条件(Conditioning),可以是目标分类、文本、图片,以更准确、更好的进行Decoder 在这里插入图片描述

版本文本编码器UNet结构分辨率特点
SDv1.4CLIPCNN512x512
SDv1.5CLIPCNN512x512目前最流行的版本
SDv2.1Open-CLIPCNN768x768无法生成NSFW,SkipClip不生效
SDvXLCLIP+Open-CLIPCNN1024x1024质量高,资源消耗大,生态没有1.5成熟
PixeArtT5语言模型Vit1024x1024图文对齐度好,生成图像美感强,架构先进

社区模型

  • 阶段一:图文对齐训练-基础模型
  • 阶段二:图文对齐训练-社区微调模型 civitai.com/ 在这里插入图片描述

2.5 文生图模型的应用拓展

  • 图像引导生成,1 作为输入 2 引导输入 在这里插入图片描述

  • 单张图像引导 SD Inpainting 模型 在这里插入图片描述

  • 单张图像引导 SD Outpainting 模型 在这里插入图片描述

  • 多张图像引导 人脸、商品数字分身 LoRA/DreamBooth

    • LoRA: 图文QKV cross attention; UNet中的CNN卷积层 在这里插入图片描述
    • Dreambooth: 利用大类先验知识,来辅助特定物体的生成;prompt为“a [identifier] [class noun]” 在这里插入图片描述
  • 特征注入式引导生成 ControlNet 在这里插入图片描述 特征注入到Decoder层 在这里插入图片描述

  • 特征注入式引导生成 IP-adapter 在这里插入图片描述

  • 特征注入式引导生成 InstantID 在这里插入图片描述

2.6 SD模型的加速方法

  • 算子加速-最大化GPU利用率(TensorRT、ONNX)
  • 蒸馏加速-减少迭代频数
    • 数据无关 LCM(4步生图)
    • 数据相关 ADD(SD Turbo)(2 步生图);UFO-GEN(1步生图)

3 3D目标生成方法

3.1 基于NeRF方法

在这里插入图片描述

3.2 基于扩散模型方法

在这里插入图片描述

4 视频生成方法

4.1 基于文生图预训练模型的方法

在这里插入图片描述 在这里插入图片描述

4.2 原生视频生成方法

在这里插入图片描述