【论文精读】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

相关文章

MybatisGenerator文件生成不出对应文件的问题

《MybatisGenerator文件生成不出对应文件的问题》本文介绍了使用MybatisGenerator生成文件时遇到的问题及解决方法,主要步骤包括检查目标表是否存在、是否能连接到数据库、配置生成... 目录MyBATisGenerator 文件生成不出对应文件先在项目结构里引入“targetProje

Python使用qrcode库实现生成二维码的操作指南

《Python使用qrcode库实现生成二维码的操作指南》二维码是一种广泛使用的二维条码,因其高效的数据存储能力和易于扫描的特点,广泛应用于支付、身份验证、营销推广等领域,Pythonqrcode库是... 目录一、安装 python qrcode 库二、基本使用方法1. 生成简单二维码2. 生成带 Log

基于WinForm+Halcon实现图像缩放与交互功能

《基于WinForm+Halcon实现图像缩放与交互功能》本文主要讲述在WinForm中结合Halcon实现图像缩放、平移及实时显示灰度值等交互功能,包括初始化窗口的不同方式,以及通过特定事件添加相应... 目录前言初始化窗口添加图像缩放功能添加图像平移功能添加实时显示灰度值功能示例代码总结最后前言本文将

通过C#获取PDF中指定文本或所有文本的字体信息

《通过C#获取PDF中指定文本或所有文本的字体信息》在设计和出版行业中,字体的选择和使用对最终作品的质量有着重要影响,然而,有时我们可能会遇到包含未知字体的PDF文件,这使得我们无法准确地复制或修改文... 目录引言C# 获取PDF中指定文本的字体信息C# 获取PDF文档中用到的所有字体信息引言在设计和出

Python使用Pandas库将Excel数据叠加生成新DataFrame的操作指南

《Python使用Pandas库将Excel数据叠加生成新DataFrame的操作指南》在日常数据处理工作中,我们经常需要将不同Excel文档中的数据整合到一个新的DataFrame中,以便进行进一步... 目录一、准备工作二、读取Excel文件三、数据叠加四、处理重复数据(可选)五、保存新DataFram

SpringBoot生成和操作PDF的代码详解

《SpringBoot生成和操作PDF的代码详解》本文主要介绍了在SpringBoot项目下,通过代码和操作步骤,详细的介绍了如何操作PDF,希望可以帮助到准备通过JAVA操作PDF的你,项目框架用的... 目录本文简介PDF文件简介代码实现PDF操作基于PDF模板生成,并下载完全基于代码生成,并保存合并P

使用JavaScript将PDF页面中的标注扁平化的操作指南

《使用JavaScript将PDF页面中的标注扁平化的操作指南》扁平化(flatten)操作可以将标注作为矢量图形包含在PDF页面的内容中,使其不可编辑,DynamsoftDocumentViewer... 目录使用Dynamsoft Document Viewer打开一个PDF文件并启用标注添加功能扁平化

详解Java中如何使用JFreeChart生成甘特图

《详解Java中如何使用JFreeChart生成甘特图》甘特图是一种流行的项目管理工具,用于显示项目的进度和任务分配,在Java开发中,JFreeChart是一个强大的开源图表库,能够生成各种类型的图... 目录引言一、JFreeChart简介二、准备工作三、创建甘特图1. 定义数据集2. 创建甘特图3.

使用 Python 和 LabelMe 实现图片验证码的自动标注功能

《使用Python和LabelMe实现图片验证码的自动标注功能》文章介绍了如何使用Python和LabelMe自动标注图片验证码,主要步骤包括图像预处理、OCR识别和生成标注文件,通过结合Pa... 目录使用 python 和 LabelMe 实现图片验证码的自动标注环境准备必备工具安装依赖实现自动标注核心

Java操作xls替换文本或图片的功能实现

《Java操作xls替换文本或图片的功能实现》这篇文章主要给大家介绍了关于Java操作xls替换文本或图片功能实现的相关资料,文中通过示例代码讲解了文件上传、文件处理和Excel文件生成,需要的朋友可... 目录准备xls模板文件:template.xls准备需要替换的图片和数据功能实现包声明与导入类声明与