【论文精读】DALLE3:Improving Image Generation with Better Captions 通过更好的文本标注改进图像生成

本文主要是介绍【论文精读】DALLE3:Improving Image Generation with Better Captions 通过更好的文本标注改进图像生成,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、文章概览
  • 二、数据重标注
    • (一)现在训练数据的文本标注主要存在的问题
    • (二)创建图像标注器
    • (三)微调图像标注器
  • 三、评估重新标注的数据集
    • (一)混合合成标注和真实标注
    • (二)评估方法
    • (三)问题一:评估在不同类型的标注上训练的模型之间的性能差异
    • (四)评估合成标注与真实标注的最佳混合比例
    • (五)实际应用
  • 四、对比DALLE3与其他模型的效果
    • (一)自动评估
    • (二)人工评估


DALLE3的核心:如何通过更好的文本标注让图像生成质量提升

一、文章概览

  • 提出问题: 现有的文本到图像模型很难遵循详细的图像描述,并且经常忽略单词或混淆提示的含义。
  • 作出假设: 假设这个问题是因为训练数据集中的噪声和不准确的图像标题。
  • 解决方案: 训练一个图片标注器用于生成标注,然后使用它来重新捕获训练数据集。
  • 主要工作: 训练了DALLE3,发现对生成的图片标注进行训练确实能提升生成模型的性能,并且提出了一套评估生成模型的方案。

在这里插入图片描述

二、数据重标注

(一)现在训练数据的文本标注主要存在的问题

  1. 厨房中的水槽或人行道上的停车标志等物体的存在以及对这些物体的描述。
  2. 场景中对象的位置以及这些对象的数量。
  3. 常识细节,例如场景中物体的颜色和大小。
  4. 图像中显示的文本。

更糟糕的是,在互联网上找到的字幕通常根本不正确;描述图像的切向相关细节。例如,在通常用于生成图像标题的替代文本中经常会发现广告。

(二)创建图像标注器

用于预测文本的传统语言模型:

  • 分词器将文本字符串分解为离散的标记: t = [ t 1 , t 2 , . . . , t n ] t=[t_1,t_2,...,t_n] t=[t1,t2,...,tn]
  • 通过最大化似然函数来构建文本的语言模型:
    L ( t ) = ∑ j l o g P ( t j ∣ t j − k , . . . , t j − 1 ; Θ ) L(t)=\sum_j logP(t_j|t_{j-k},...,t_{j-1};\Theta) L(t)=jlogP(tjtjk,...,tj1;Θ)

本文的图像标注器:

  • 基于CLIP的图像嵌入函数 F ( i ) F(i) F(i)对语言模型进行了条件调整:

图像有数千个像素值组成,因此需要一个压缩的表示空间,CLIP就提供了这一点

L ( t , i ) = ∑ j l o g P ( t j ∣ t j − k , . . . , t j − 1 ; z j ; F ( i ) ; Θ ) L(t,i)=\sum_j logP(t_j|t_{j-k},...,t_{j-1};z_j;F(i);\Theta) L(t,i)=jlogP(tjtjk,...,tj1;zj;F(i);Θ)

(三)微调图像标注器

作者训练了两种标注模式:

  • 短标注(SSC):只描述主要物体
  • 详细描述(DSC):不仅描述主体,还描述环境,背景,文字 风格等

在这里插入图片描述

三、评估重新标注的数据集

作者在评估生成文本标注对模型性能的影响时,主要集中讨论了两个问题:

  • 使用每种类型的合成标注对性能的影响。 (长标注、短标注)
  • 合成标注与真实标注的最佳混合比例。

(一)混合合成标注和真实标注

考虑到图像标注器会出现过拟合现象(过度拟合数据集中的分布规律),作者将合成标注和真实标注进行混合。混合发生在数据采样时,文章会以固定的百分比机会随机选择合成标注和真实标注。

(二)评估方法

文章采用的评估指标:CLIP 分数

CLIP 分数与文本图像相似度有很强的相关性

CLIP分数的计算方式:

  • 首先使用公共 CLIP ViT-B/32图像编码器来生成图像嵌入 z i z_i zi
  • 然后使用文本编码器为图像创建文本嵌入标题 z t z_t zt
  • 将 CLIP 分数计算为余弦相似度 C
    C ( z i , z t ) = z i . z t ∣ ∣ z i ∣ ∣ ∣ ∣ z t ∣ ∣ C(z_i,z_t)=\frac{z_i. z_t}{||z_i|| ||z_t||} C(zi,zt)=∣∣zi∣∣∣∣zt∣∣zi.zt

(三)问题一:评估在不同类型的标注上训练的模型之间的性能差异

作者设计了三个不同的模型:

  1. 仅根据真实标注训练的文本到图像模型。
  2. 在 95% 的短合成标注上训练的文本到图像模型。
  3. 在 95% 的描述性合成标注上训练的文本到图像模型。

对于每个模型,作者分别使用真实标注(左图)描述性合成标注(右图) 进行了两次评估计算:
在这里插入图片描述
结果表明:

  • 在基于真实标注进行评估时,两种基于合成标注训练的模型的 CLIP 评分性能都比基线模型稍好,而在描述性合成标注上进行评估时,性能明显更好。这表明在训练文本到图像模型时使用合成标注没有任何缺点。
  • 合成标注的评估曲线的方差要低得多。这说明重新标注确实可以被视为一种平均操作。
  • 在合成标注上评估的图像生成模型在所有训练的模型中也获得了更高的净 CLIP 分数,这支持了合成​​标注与其相应图像具有更好绑定的概念。

(四)评估合成标注与真实标注的最佳混合比例

作者使用了 65%、80%、90% 和 95% 四种混合比例的描述性合成标注训练了四个图像生成模型。实验进行到一半时,评估显示 65% 的混合物在所有评估中都远远落后于其他混合物,因此作者放弃了它。

在这里插入图片描述

结果表明: 更高程度的合成标注混合始终可以提高模型的 CLIP 分数。

(五)实际应用

由于用户在实际应用过程中,可能不会发出长的、高度描述性的标注的分布,因此可以借助大型语言模型帮助用户直接扩写,具体来说,可以使用 LLM进行“上采样”,将短的prompt转换成长的prompt,这样不仅可以添加缺失的细节,还可以消除复杂关系的歧义。
在这里插入图片描述

四、对比DALLE3与其他模型的效果

作者使用95%的合成标注和5%的真实标注对DALLE3进行训练,并使用自动评估和人工评估两种方式对DALLE3与其他模型的效果进行了对比。

(一)自动评估

评估指标:

  • CLIP score
  • Drawbench:基于lmagen提出的一系列比较全面的测评pompts,用GPT-V来评估生成图片和prompts的匹配度(实际上是用生成模型评估生成模型)
  • T2l-Compbench:与Drawbench类似,只是换了不同的prompts体系和不同的评估模型
    在这里插入图片描述
    结果表明,DALL-E 3 在所有评估的基准测试中都是最先进的。

(二)人工评估

人工评估主要考察的三个方面:

  • prompt following:向评估者呈现提供给文本到图像模型的完整上采样标题,并要求“选择哪个图像更好地对应于标题”。
  • style:要求评估者根据图片本身的风格舒适度进行选择。
  • coherence:要求评估者选择哪张图像包含更连贯的对象。

针对于前面两个方面,作者使用了自建的prompts体系去评估,coherence则使用MSCOCO数据集中的一些标注作为prompts体系(主要是因为MSCOCO中没有虚幻的场景)。Drawbench评估方法与自动评估的prompts体系一直,但是用人工来评判生成的图片和prompts是不是致,而不是用GPT-V这种生成模型。
在这里插入图片描述
结果显示,在所有三个方面,尤其是在prompt following方面,DALL-E 3 生成的图像在大多数情况下都比所有竞争对手更受人类评分者的青睐。

参考:【DALLE3论文】openAI最新图像生成模型

这篇关于【论文精读】DALLE3:Improving Image Generation with Better Captions 通过更好的文本标注改进图像生成的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Python自动化提取多个Word文档的文本

《Python自动化提取多个Word文档的文本》在日常工作和学习中,我们经常需要处理大量的Word文档,本文将深入探讨如何利用Python批量提取Word文档中的文本内容,帮助你解放生产力,感兴趣的小... 目录为什么需要批量提取Word文档文本批量提取Word文本的核心技术与工具安装 Spire.Doc

Java使用Spire.Barcode for Java实现条形码生成与识别

《Java使用Spire.BarcodeforJava实现条形码生成与识别》在现代商业和技术领域,条形码无处不在,本教程将引导您深入了解如何在您的Java项目中利用Spire.Barcodefor... 目录1. Spire.Barcode for Java 简介与环境配置2. 使用 Spire.Barco

SpringBoot集成iText快速生成PDF教程

《SpringBoot集成iText快速生成PDF教程》本文介绍了如何在SpringBoot项目中集成iText9.4.0生成PDF文档,包括新特性的介绍、环境准备、Service层实现、Contro... 目录SpringBoot集成iText 9.4.0生成PDF一、iText 9新特性与架构变革二、环

idea-java序列化serialversionUID自动生成方式

《idea-java序列化serialversionUID自动生成方式》Java的Serializable接口用于实现对象的序列化和反序列化,通过将对象转换为字节流来存储或传输,实现Serializa... 目录简介实现序列化serialVersionUID配置使用总结简介Java.io.Seripyth

Java中的随机数生成案例从范围字符串到动态区间应用

《Java中的随机数生成案例从范围字符串到动态区间应用》本文介绍了在Java中生成随机数的多种方法,并通过两个案例解析如何根据业务需求生成特定范围的随机数,本文通过两个实际案例详细介绍如何在java中... 目录Java中的随机数生成:从范围字符串到动态区间应用引言目录1. Java中的随机数生成基础基本随

C#自动化生成PowerPoint(PPT)演示文稿

《C#自动化生成PowerPoint(PPT)演示文稿》在当今快节奏的商业环境中,演示文稿是信息传递和沟通的关键工具,下面我们就深入探讨如何利用C#和Spire.Presentationfor.NET... 目录环境准备与Spire.Presentation安装核心操作:添加与编辑幻灯片元素添加幻灯片文本操

Python实现Word文档自动化的操作大全(批量生成、模板填充与内容修改)

《Python实现Word文档自动化的操作大全(批量生成、模板填充与内容修改)》在职场中,Word文档是公认的好伙伴,但你有没有被它折磨过?批量生成合同、制作报告以及发放证书/通知等等,这些重复、低效... 目录重复性文档制作,手动填充模板,效率低下还易错1.python-docx入门:Word文档的“瑞士

使用python生成固定格式序号的方法详解

《使用python生成固定格式序号的方法详解》这篇文章主要为大家详细介绍了如何使用python生成固定格式序号,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下... 目录生成结果验证完整生成代码扩展说明1. 保存到文本文件2. 转换为jsON格式3. 处理特殊序号格式(如带圈数字)4

Java使用Swing生成一个最大公约数计算器

《Java使用Swing生成一个最大公约数计算器》这篇文章主要为大家详细介绍了Java使用Swing生成一个最大公约数计算器的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下... 目录第一步:利用欧几里得算法计算最大公约数欧几里得算法的证明情形 1:b=0情形 2:b>0完成相关代码第二步:加

k8s admin用户生成token方式

《k8sadmin用户生成token方式》用户使用Kubernetes1.28创建admin命名空间并部署,通过ClusterRoleBinding为jenkins用户授权集群级权限,生成并获取其t... 目录k8s admin用户生成token创建一个admin的命名空间查看k8s namespace 的