论文:Visual Programming for Text-to-Image Generation and Evaluation

作者:J Cho, A Zala, M Bansal

发表:NeurIPS 2023

随着大型语言模型在多个领域表现出色,近期研究将其用于控制视觉模块,执行视觉和语言任务。作者提出了两个新颖的可解释的视觉编程框架,用于文本到图像(T2I)的生成(VPGEN)和评估(VPEVAL)。VPGEN框架通过三个步骤(对象/数量生成、布局生成和图像生成)实现逐步的T2I生成,相比传统的端到端模型,提供了更强的空间控制能力,并能处理更广泛的对象类别。VPEVAL框架通过调用一组专精不同技能的视觉模块,提供更人性化的评估,并附带视觉和文本解释,克服了单一评分模型的局限性。作者的工作展示了在技能特定和开放式提示上的显著改进,期望能推动T2I模型在可解释生成和评估方面的进一步发展。

论文链接

背景介绍

大型语言模型(LLMs)在许多自然语言处理任务中表现出色,如问答、摘要和故事生成。最近的研究表明,LLMs 还可以通过生成控制外部视觉模块的视觉程序并结合它们的输出来解决某些视觉与语言任务,如视觉问答和视觉定位。然而,之前的研究中没有将 LLMs 和不同的视觉模块结合起来解决具有挑战性的文本到图像(T2I)生成任务。 本文的工作提出了两种新颖的可解释/可说明的视觉编程(VP)框架,结合 LLMs 和视觉模块用于 T2I 生成和评估。

相关工作

Text-to-image generation models.在T2I生成任务中,模型从文本生成图像。早期的深度学习模型使用生成对抗网络(GAN)框架来完成这项任务。最近,多模态语言模型和扩散模型得到了普及。多模态语言模型(如Parti和MUSE)以及扩散模型(如Stable Diffusion,UnCLIP和Imagen)的最新进展已经证明了零样本图像生成中的高水平写实性。

Bridging text-to-image generation with layouts.一条研究路线将T2I生成任务分解为两个阶段:文本到布局生成和布局到图像生成。然而,先前的方法通过从头开始训练新的布局预测器模块来关注一组预定义的对象类,因此不能在训练期间加入新对象。作者提出的VPGEN使用LM通过在文本中生成对象/计数/位置来处理布局生成,允许灵活地适应可以理解不同区域描述的预训练LM。

Language models with visual modules. 虽然大型语言模型(LLM)已经显示出广泛的常识知识,但它们中的大多数只在文本语料库上训练,无法理解图像输入来处理视觉和语言(VL)任务。因此,最近的工作探索通过解决外部视觉模块的子任务并结合其输出以获得最终响应来解决VL任务。视觉子任务包括将图像描述为文本,找到与文本相关的图像区域,使用文本指导编辑图像,以及从VQA模型中获得答案。然而,现有的工作重点是将视觉输入转换为文本格式,以便LLM可以理解它们。作者的工作是第一个使用视觉编程的可解释和可解释的T2I生成和评估。

Evaluation of text-to-image generation models.文本到图像社区通常使用两种类型的自动评估指标:视觉质量和图像-文本对齐。对于视觉质量,Inception Score(IS)和Fréchet Inception Distance(FID)已被广泛使用。对于图像-文本对齐,以前的工作使用单个模型来计算图像-文本对的对齐分数,基于文本检索,余弦相似性,字幕,对象检测和视觉问答(VQA)。在这项工作中,作者提出了第一个T2I评估框架VPEVAL,基于可解释和可解释的评估程序,这些程序执行一组不同的视觉模块(例如,对象检测、OCR、深度估计、对象计数)。作者的VPEVAL评估程序为评估结果提供了视觉+文本解释,并与人类判断高度相关。

VPGEN:Visual Programming for Step-by-Step Text-to-Image Generation

作者提出了 VPGEN,一种用于可解释的逐步文本到图像(T2I)生成的新颖视觉编程框架。如图1所示,作者将文本到图像生成任务分解为三个步骤:(1)对象/数量生成,(2)布局生成,以及(3)图像生成。与之前使用中间布局预测模块的 T2I 生成工作相比,VPGEN 以文本形式表示所有布局(对象描述、对象数量和边界框),并使用语言模型(LM)处理前两个步骤:(1)对象/数量生成和(2)布局生成。这使得利用预训练语言模型的知识变得容易,并且能够生成在文本到布局训练期间未见过的对象的布局(例如,“皮卡丘”)。

图1 使用VPGEN逐步生成可解释的文本到图像

使用LM的两步布局生成。图1说明了LM如何通过两个步骤生成布局:(1)对象/计数生成和(2)布局生成。对于第一步,作者通过枚举对象及其计数来表示场景,例如“obj 1(# of obj 1)obj 2(# of obj 2)”。对于第二步,遵循先前的基于LM的对象检测工作,作者将“xyxy”格式边界框坐标归一化为[0,1]并将其转换为100个bin;单个对象表示为“obj(xmin,ymin,xmax,ymax)”,其中每个坐标都在{0,· · ·,99}内。

训练布局感知LM。为了获得布局感知LM,作者使用Vicuna 13B,这是一个从LLaMA微调的SOTA语言模型。作者使用LoRA的参数有效微调来保留LM的原始知识,并在训练和推理期间保存内存。作者从Flickr30K entities,MS COCO instances 2014和PaintSkills三个公共数据集的训练集中收集文本布局对注释,共计120万个样本。

布局到图像生成。作者使用最近的布局到图像生成模型GLIGEN用于最终的步骤图像生成。布局到图像模型采用区域列表(边界框和文本描述)以及原始文本提示来生成图像。

VPEVAL:Visual Programming for Explainable Evaluation of Text-to-Image Generation

VPEVAL 是一个基于视觉编程的用于 T2I 生成模型的可解释/可说明评估框架。与使用端到端模型计算图像-文本对齐分数的现有T2I评估方法不同,作者的评估为评估结果提供了可解释的程序和视觉+文本解释,如图2和图4。作者提出了两种类型的评价提示:(1)基于技能的评价和(2)开放式评价。在基于技能的评估中,作者定义了五种图像生成技能,并使用一组特定于技能的提示和评估程序,如图3所示。在开放式评估中,作者使用了一组不同的提示,需要多种图像生成技能。作者采用一种语言模型来动态地为每个文本提示生成一个评估程序,如图4所示。

Evaluation Skills

受PaintSkills基于技能的T2I分析的启发,作者的VPEVAL测量了五种图像生成技能:对象(Object),计数(Count),空间(Spatial),缩放(Scale)和文本渲染(Text Rendering)。由具有专家视觉模块的评估程序提供支持,作者的VPEVAL支持图像的零样本估计(不需要对T2I模型进行微调),使用自由形式的文本提示检测区域,新的3D空间关系(前,后),以及新的比例比较和文本渲染技能,这些在PaintSkills中不支持。在图2中,作者展示了每项技能的评估过程。

图2 VPEVAL中基于Skill的评估

Visual Evaluation Modules

为了衡量上节所述的技能。作者使用八个专门用于不同任务的专家视觉评估模块。这些模块提供了视觉+文本的解释与他们的分数。通过在图像上渲染边界框来生成视觉解释,并且通过文本模板来生成文本解释,如图2和图4所示。作者在图3中提供了每个模块的Python伪代码实现。

图3 VPEVAL中使用的视觉模块的Python伪代码实现

模块定义:

  • objDet基于引用表达式文本检测图像中的对象,并使用Grounding DINO和DPT返回它们(+它们的2D边界框和深度)。
  • ocr使用EasyOCR检测图像中的所有文本并返回它们(+它们的2D边界框)。
  • vqa使用BLIP-2(Flan-T5 XL)回答多项选择题。它可以处理仅用objDet或ocr无法覆盖的短语(例如,姿态估计、动作识别、对象属性)。
  • objectEval使用objDet评估对象是否在图像中。
  • countEval使用objDet和等式(例如,“==3”,“<5”)。
  • spatialEval评估两个对象是否彼此具有特定的空间关系。对于六个关系(above、below、left、right、front和behind),它使用objDet比较边界框/深度值。对于其他关系,它使用vqa。
  • scaleEval使用objDet评估两个对象之间是否存在某种比例关系。对于三种比例关系(更小、更大和相同),它使用objDet比较边界框区域。对于其他关系,它使用vqa。
  • textEval使用ocr评估给定文本是否存在于图像中。

Skill-based Evaluation with Visual Programs

对于基于技能的评估,作者使用各种特定于技能的模板创建文本提示,这些模板用于图像生成和评估。在图2中,作者展示了VPEVAL中基于技能的评估。给定需要不同图像生成技能的文本提示,作者的评估程序通过调用相关的视觉模块来测量图像-文本对齐分数。与现有的T2I评估方法不同,作者的评估程序提供评估结果的视觉+文本解释。

Open-ended Evaluation with Visual Program Generator LM

尽管作者使用特定技能提示进行的评估涵盖了五种重要且多样的图像生成技能,但用户编写的提示有时可能更加复杂,并需要多种评估标准。例如,评估使用提示“一个穿着婚礼礼服的女人正在向一个骑着滑板车的女人展示一片西瓜”生成的图像涉及多个方面,如两个女人(计数技能)、“骑着滑板车的女人”(空间技能)、“穿着婚礼礼服”(属性检测技能)等。为了处理这种开放式提示,作者扩展了VPEVAL设置,加入了可以同时使用多个视觉模块的评估程序(而单一技能提示可以通过1-2个模块的程序进行评估)。作者使用大型语言模型(LLM)生成开放式提示评估程序,然后这些评估程序输出平均分数以及其视觉模块的视觉+文本解释。程序生成涉及选择要评估的提示元素以及评估这些元素的模块(见图4)

图4 VPEVAL中开放式提示的评价

开放式提示。对于开放式评估,作者使用TIFA v1.0人类判断数据集的160个提示(作者将这些提示称为“TIFA 160”)。数据集包括(1)COCO、PaintSkills、DrawBench和Partiprompts的文本提示,(2)由五个基线模型(minDALL-E、VQ-Diffusion、Stable Diffusion v1.1/v1.5/v2.1)生成的图像,以及(3)图像上的人类判断评分(1-5 Likert量表)。

通过上下文学习生成评估程序。由于带有开放式提示的评估程序的注释可能成本高昂,作者使用ChatGPT(GPT-3.5-Turbo)通过上下文学习生成评估程序。为了引导ChatGPT,作者调整了TIFA的12个上下文提示。作者向ChatGPT展示了视觉模块列表以及示例文本提示和程序,然后请求模型在给定新提示的情况下生成程序,如图4所示。

实验和结果

Evaluated Models

作者评估了VPGEN(Vicuna+GLIGEN)和五个流行的公开可用的T2I模型,包括:

  • 扩散模型:Stable Diffusion v1.4/v2.1和Karlo
  • 多模态自回归语言模型:minDALL-E和DALL-E Mega。

Stable Diffusion v1.4是与VPGEN最具可比性的baseline,因为VPGEN中的GLIGEN使用冻结的Stable Diffusion v1.4以及一些新插入的适配器参数进行空间控制。

Evaluation on Skill-based Prompts

扩散模型优于多模态LM。在表1中,作者展示了每个模型的VPEVAL技能精度。扩散模型(Stable Diffusion、Karlo和本文提出的VPGEN)显示出比多模态LM(minDALL-E和DALL-E Mega)更高的总体准确性。

表1 基于技能提示的T2I生成模型的VPEVAL分数

计数/空间/缩放/文本渲染技能具有挑战性。总体而言,五个基线T2I模型在对象技能方面获得了高分(除minDALL-E外均高于93%)。即它们擅长生成高质量的单个对象。然而,这些模型在其他技能中的准确度较低,这表明这些技能(计数,空间,缩放和文本渲染)对于最近的T2I模型仍然具有挑战性。

逐步生成提高具有挑战性的技能。表1的最后一行显示,作者的VPGEN在对象技能方面实现了高准确性,并且在计数(比Karlo +12.7%),空间(比Stable Diffusion v2.1 + 24.8%)和缩放(比Karlo +9.9%)技能方面远远优于其他基线。这个结果表明,作者的逐步生成方法是有效的对齐图像布局与文本提示,同时仍然有一个可解释的生成程序。所有模型在文本渲染技能上得分都很低,包括作者的VPGEN。作者的VPGEN模型没有提高文本渲染得分的一个潜在原因可能是VPGEN的文本到布局训练数据集(Flickr 30 K Entities,COCO和PaintSkills)包含很少的关于文本渲染的图像/标题。

计数/空间/规模技能中的细粒度分析。为了更好地了解作者的VPGEN在计数,空间和缩放技能方面的高性能,作者使用细粒度分割对这些技能进行了详细分析。在图5中,作者比较了作者的VPGEN(Vicuna+GLIGEN)及其最接近的基线Stable Diffusion v1.4在三个技能上的表现。总的来说:VPGEN在所有三个技能上的每一个技能上都比Stable Diffusion取得了更好的性能。计数:虽然这两种模型在计算较大数字时都存在困难,但作者的VPGEN模型在所有四个数字上都实现了50+的准确度。空间:作者的VPGEN模型在所有六个空间关系上都表现得更好。VPGEN在2D关系(左/右/下/上)上显示出比3D深度关系(前/后)更高的准确性,而Stable Diffusion在3D关系上比2D关系更好。规模:与两个大小相似(相同)的对象相比,VPGEN使用两个大小不同(更大/更小)的对象生成更准确的布局。

图5 VPGEN(Vicuna+GLIGEN)和Stable Diffusion v1.4在计数/空间/缩放技能中细粒度分割的VPEVAL评分比较

Evaluation on Open-ended Prompts

表2展示了开放式TIFA 160提示的VPEVAL评分。作者通过对模块的准确性进行平均来计算分数(参见图4的示例)。基线模型(扩散模型>多模态LM)的总体评分趋势与基于技能的提示一致。与基于技能的评估趋势不同,作者的VPGEN(Vicuna+GLIGEN)方法实现了与Stable Diffusion基线相似的性能,同时还提供了可解释的生成步骤。作者对用于评估的开放式提示进行分析。在这些提示中,对象描述和属性是主要的提示元素(占元素的86.4%),而空间布局的描述仅占元素的13.6%。对于来自PaintSkills的提示,其中空间布局更重要,作者发现VPGEN得分远高于Stable Diffusionv1.4(71.0 vs.63.5)和Stable Diffusionv2.1(71.0 v.s.68.4)。此外,作者发现即使VPGEN生成正确的布局,GLIGEN有时也无法正确生成图像。

表2 开放式提示上的VPEVAL分数

VPGEN错误来源:布局/图像生成。由于作者的VPGEN将布局生成和图像生成分开,因此作者研究了每一步引起的错误。为此,作者手动分析从TIFA 160提示生成的图像,并标记(1)生成的布局是否与文本提示对齐,以及(2)最终图像是否与文本提示/布局对齐。即使Vicuna13B生成正确的布局,GLIGEN有时也无法正确生成图像,这表明当更好的布局到图像模型可用时,作者的VPGEN框架将实现更高的结果。

定性的例子。在图6中,作者提供了由VPGEN和Stable Diffusion v1.4(最接近的基线)生成的示例图像,以及各种基于技能的(顶部)和开放式(底部)提示。更多基于技能/开放式提示的定性示例、包含不可见对象的提示、计数≥ 4个对象和错误分析见附录。

图6 由Stable Diffusion v1.4和VPGEN(Vicuna13B+GLIGEN)生成的图像

Human Evaluation of VPEVAL

为了测量作者的VPEVAL和人类判断的一致性,作者比较了VPEVAL和其他指标在基于技能的提示和开放式提示上的人类相关性。基于技能提示的VPEVAL的人为相关性。作者请两名专家注释者对五个基线模型中的每一个模型的20张图像进行评估,并对五种技能中的每一种进行二进制评分(总共20 × 5 × 5 = 500张图像)。注释者之间的一致性用Cohen的κ = 0.85和Krippendorff的α = 0.85测量,表明“接近完美”(κ > 0.8或α > 0.8)一致性。作者比较了他们的视觉程序与描述(指标BLEU,ROUGE,METEOR和SPICE),VQA和CLIP(ViT-B/32)基于评估。作者使用BLIP-2 Flan-T5 XL,这是图像描述生成和VQA的最先进的公共模型。

BLEU 是一种用于评估机器翻译和文本生成质量的指标。它通过比较生成的文本(候选文本)与一个或多个参考文本,计算它们之间的n-gram匹配情况。BLEU的评分范围是0到1,分数越高表示生成文本与参考文本越相似。

ROUGE 是一组用于评估自动摘要和机器翻译等生成任务的指标。它主要通过计算生成文本与参考文本之间的重叠情况来评估生成质量。

METEOR 是一种用于评估机器翻译和文本生成的指标,旨在克服BLEU的一些缺点。它不仅考虑了精确匹配,还考虑了词形变化和词义相似性。

SPICE 是一种专门用于图像描述生成任务的评估指标。它通过比较生成描述和参考描述之间的语义内容来评估生成质量。

在表3中,作者的VPEVAL显示出与人类判断的总体相关性(66.6)高于基于单个模块的评估(CLIP,Captioning和VQA)。关于每个技能的相关性,VPEVAL在计数和文本渲染中显示出特别强的人类相关性。由于BLIP-2 VQA模块在对象/空间/尺度上也显示出很强的相关性,作者还对VPEVAL进行了实验:对objectEval/spatialEval/scaleEval模块使用BLIP-2 VQA(而不是Grounding DINO和DPT),这增加了人类相关性得分。

表3 基于技能评估的人类相关性研究

Spearman’s 𝜌(斯皮尔曼等级相关系数)是一种用于衡量两个变量之间的单调关系的非参数统计指标。它评估的是变量排名之间的相关性,而不是数值之间的线性关系,因此特别适用于数据不满足正态分布或存在非线性关系的情况。

Spearman’s 𝜌 的计算步骤

  1. 排名:将两个变量的数值分别排序,得到排名序列。

  2. 差异:计算每对数值的排名差异 𝑑𝑖。

  3. 公式:使用以下公式计算Spearman’s 𝜌:

    其中,𝑑𝑖 是每对数值的排名差异,𝑛 是样本数量。

解释

  • 𝜌=1:表示两个变量之间有完全正的单调关系,即一个变量增加,另一个变量也增加。
  • 𝜌=−1:表示两个变量之间有完全负的单调关系,即一个变量增加,另一个变量减少。
  • 𝜌=0:表示没有单调关系,即两个变量之间没有相关性。

开放式提示下VPEVAL的人类相关性。作者在TIFA160提示符上使用作者的程序生成语言模型(LM)生成视觉程序。该数据集由800张图像(160个提示 × 5个T2I模型)以及图像上的人类判断(1-5 Likert量表)和其他自动度量(BLIP-2字幕生成、CLIP余弦相似性和TIFA与BLIP-2)组成。表4显示,作者的VPEVAL与TIFA(BLIP-2)相比实现了更好的人类相关性,而作者的VPEVAL†版本实现了更高的相关性。结果表明,使用各种针对不同技能的可解释模块可以相互补充,提高人类相关性,同时还提供视觉+文本的解释。

表4 开放式评估中使用Spearman’s 𝜌的人类相关性。

生成程序的人类分析。最后,作者还测量了生成的评估程序的准确性。为此,作者对TIFA160提示符进行抽样,并通过以下两点分析评估程序:(1)模块覆盖提示符中元素的程度;(2)模块运行时输出的准确性。作者发现,与人类判断相比,由作者的VPEVAL生成的程序对提示符元素具有非常高的覆盖率,并且每个模块的准确性也很高。

总结与讨论

作者提出了两个新颖的视觉编程框架,用于可解释/可说明的文本到图像(T2I)生成和评估:VPGEN 和 VPEVAL。VPGEN 是一个分步骤的 T2I 生成框架,将 T2I 任务分解为三个步骤(对象/计数生成、布局生成和图像生成),在前两个步骤中利用大型语言模型(LLM),在最后一个图像生成步骤中使用布局到图像生成模型。VPGEN 生成的图像比强大的 T2I 基线更准确地遵循文本描述(特别是在对象数量、空间关系和对象大小方面),同时仍然具有可解释的生成程序。VPEVAL 是一个 T2I 评估框架,使用具有不同技能的多样化视觉模块的可解释评估程序来衡量各种 T2I 技能,并提供评估结果的视觉+文本解释。在作者的分析中,VPEVAL 在技能特定和开放式提示方面与人类判断的相关性都高于单一模型的评估。作者希望作者的工作能激励未来在 T2I 模型的可解释/可说明生成和评估方面取得进展。



Questions & Discussion: ✉️ zju_zhengli@zju.edu.cn