DreamBooth论文解读

2023-10-11 10:59
文章标签 解读 论文 dreambooth

本文主要是介绍DreamBooth论文解读,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 摘要
  • 问题
  • 算法
    • 3.1 文生图扩散模型
    • 3.2 个性化文生图模型
    • 3.3 特定类别先验保留损失
  • 实验
    • 评估方式
    • 比较
    • 消融实验
      • PPL
      • 类别先验
    • 应用
    • 限制
  • 结论

论文: 《DreamBooth: Fine Tuning Text-to-Image Diffusion Models for Subject-Driven Generation》
project: https://dreambooth.github.io/
第三方代码: https://github.com/XavierXiao/Dreambooth-Stable-Diffusion

摘要

文本生成图像模型取得不错进展,但是无法根据提供的参考集生成新模态。DreamBooth利用预训练模型语义先验及新的特定目标先验保留损失合成未出现在参考图中的各种场景、姿势、视角、光照下目标。

问题

现有文本生成图片模型无法依据参考图生成该目标。

算法

仅需3-5张图像不需要任何文本描述,即可通过各种prompt引导生成目标变体。

3.1 文生图扩散模型

损失函数如式1,对于初始噪声 ϵ ∈ N ( 0 , I ) \epsilon \in N(0, I) ϵN(0,I),x为真值。
在这里插入图片描述

3.2 个性化文生图模型

常规思路是通过少量数据集进行finetune,但是容易出现过拟合及模式坍塌。但是作者发现大规模文生图扩散模型擅长整合新信息且不会遗忘先验知识,也不会过拟合到小规模训练集。
作者设计prompt为“a [identifier] [class noun]”,[identifier]为目标相关固定标识符,[class noun]为目标类别描述,比如猫、狗。如果不使用类别描述或使用错误类别描述将导致增加训练时间或者发生语言偏移,进而降低表现。
标识符使用常见单词或随机字母,效果相似,因为每个字母分别进行tokenize,因此作者使用词汇中不常见token f ( V ^ ) f( \hat V) f(V^)转换进文本空间 V ^ \hat V V^

3.3 特定类别先验保留损失

直接finetune所有模型所有层将导致语言偏移;同时可能导致输出多样性降低。
针对上述问题作者提出一种自生特定类别先验损失用于保证多样性同时抑制语言偏移。该方法本质上使用生成样本监督模型。损失函数如式2,其中 C p r C_{pr} Cpr仅包含类别信息,图3展示该过程。
在这里插入图片描述
在这里插入图片描述

实验

评估方式

  1. CLIP-I:CLIP的提取生成图与真图的embedding,计算两者之间的余弦相似度;
  2. DINO:ViT- S/16 DINO提取生成图与真图的embedding,计算两者之间的余弦相似度;
  3. CLIP-T:计算prompt机图像的CLIP embedding之间余弦相似度

比较

在这里插入图片描述
表1作者比较DreamBooth超越Textual Inversion,同时使用Imagen优于使用Stable Diffusion,
表2展示人工评测结果,在目标精确度以及prompt一致性上DreamBooth优于Textual Inversion;结合表1,量化指标微小差异,对用户直观感受差异巨大。可视化结果如图4.
在这里插入图片描述
在这里插入图片描述

消融实验

PPL

在这里插入图片描述
作者比较prior preservation loss (PPL)影响,结果如表3,评估方式为PRES,计算先验类别随机生成目标与真实图指定目标之间DINO embedding距离,该指标越高表明目标多样性不足,发生模式坍塌。同时作者使用平均LPIPS进行多样性评估(DIV)。作者发现使用PPL具有更高多样性,可视化结果如图6。
在这里插入图片描述

类别先验

使用类别先验,可生成各种纹理目标;使用错误类别,将导致生成奇怪物体;不使用类别先验,导致模型难以拟合,进而生成错误目标。实验结果如表4。
在这里插入图片描述

应用

重构。可生成在不同环境中目标,如图7。
在这里插入图片描述

艺术再现。如图8
新颖视角生成。如图8,仅使用4张正面图可生成未见过视角:侧面、上面、下面。
属性修改。如图8,输入prompt为:“a cross of a [V] dog and a [target species]”
在这里插入图片描述

限制

在这里插入图片描述
图9为一些失败案例。
作者归因于:
a.较弱先验,或者目标与特定概念很少出现在训练集;
b.环境与目标外观耦合;
c.过拟合到真实图片,当prompt与真实图相似时易出现。
同时对于一些比较少见目标,模型难以生成该目标多个变体。

结论

作者提出的DreamBooth,仅需要3-5张目标图片,通过prompt引导就可生成该目标变体。该方法核心为将该目标与特定标识符绑定。

这篇关于DreamBooth论文解读的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/187577

相关文章

java之Objects.nonNull用法代码解读

《java之Objects.nonNull用法代码解读》:本文主要介绍java之Objects.nonNull用法代码,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录Java之Objects.nonwww.chinasem.cnNull用法代码Objects.nonN

SpringCloud负载均衡spring-cloud-starter-loadbalancer解读

《SpringCloud负载均衡spring-cloud-starter-loadbalancer解读》:本文主要介绍SpringCloud负载均衡spring-cloud-starter-loa... 目录简述主要特点使用负载均衡算法1. 轮询负载均衡策略(Round Robin)2. 随机负载均衡策略(

解读spring.factories文件配置详情

《解读spring.factories文件配置详情》:本文主要介绍解读spring.factories文件配置详情,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录使用场景作用内部原理机制SPI机制Spring Factories 实现原理用法及配置spring.f

Spring MVC使用视图解析的问题解读

《SpringMVC使用视图解析的问题解读》:本文主要介绍SpringMVC使用视图解析的问题解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring MVC使用视图解析1. 会使用视图解析的情况2. 不会使用视图解析的情况总结Spring MVC使用视图

Linux中的进程间通信之匿名管道解读

《Linux中的进程间通信之匿名管道解读》:本文主要介绍Linux中的进程间通信之匿名管道解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、基本概念二、管道1、温故知新2、实现方式3、匿名管道(一)管道中的四种情况(二)管道的特性总结一、基本概念我们知道多

Linux系统之authconfig命令的使用解读

《Linux系统之authconfig命令的使用解读》authconfig是一个用于配置Linux系统身份验证和账户管理设置的命令行工具,主要用于RedHat系列的Linux发行版,它提供了一系列选项... 目录linux authconfig命令的使用基本语法常用选项示例总结Linux authconfi

解读docker运行时-itd参数是什么意思

《解读docker运行时-itd参数是什么意思》在Docker中,-itd参数组合用于在后台运行一个交互式容器,同时保持标准输入和分配伪终端,这种方式适合需要在后台运行容器并保持交互能力的场景... 目录docker运行时-itd参数是什么意思1. -i(或 --interactive)2. -t(或 --

解读为什么@Autowired在属性上被警告,在setter方法上不被警告问题

《解读为什么@Autowired在属性上被警告,在setter方法上不被警告问题》在Spring开发中,@Autowired注解常用于实现依赖注入,它可以应用于类的属性、构造器或setter方法上,然... 目录1. 为什么 @Autowired 在属性上被警告?1.1 隐式依赖注入1.2 IDE 的警告:

Rust中的注释使用解读

《Rust中的注释使用解读》本文介绍了Rust中的行注释、块注释和文档注释的使用方法,通过示例展示了如何在实际代码中应用这些注释,以提高代码的可读性和可维护性... 目录Rust 中的注释使用指南1. 行注释示例:行注释2. 块注释示例:块注释3. 文档注释示例:文档注释4. 综合示例总结Rust 中的注释

解读Pandas和Polars的区别及说明

《解读Pandas和Polars的区别及说明》Pandas和Polars是Python中用于数据处理的两个库,Pandas适用于中小规模数据的快速原型开发和复杂数据操作,而Polars则专注于高效数据... 目录Pandas vs Polars 对比表使用场景对比Pandas 的使用场景Polars 的使用