论文标题:
FlexCap: Generating Rich, Localized, and Flexible Captions in Images
论文作者:
Debidatta Dwibedi, Vidhi Jain, Jonathan Tompson, Andrew Zisserman, and Yusuf Aytar
参与机构:
Google DeepMind, Carnegie Mellon University
导读:
在本次工作中,研究者探索如何将图像的文本描述直接提供给大语言模型,而不是通过潜在的视觉特征来表示图像。这样一来,大语言模型就不需要介入视觉编码器,做到不看图也能理解图。为此,研究者介绍了一种通用且灵活的图像描述视觉语言模型FlexCap,该模型能够生成自定义长度的图像区域描述,从而控制其输出的信息密度,描述范围从简洁的目标标签到详细的描述。为了实现这一点,研究者创建了不同长度的图像区域描述的大规模训练数据集。该模型及数据集在各个应用中都体现了巨大的价值。©️【深蓝AI】编译
1. 引言
大语言模型的突破性成功带来了一系列的衍生应用。视觉语言模型的引入通过问答和视觉对话的形式对视觉内容进行推理,进一步扩展了大语言模型的应用范畴。然而,利用大语言模型来理想地赋能视觉应用仍然是一个悬而未决的问题。
一种有效的策略是直接向大语言模型提供视觉特征作为输入token。Flamingo和BLIP专注于利用冻结的视觉编码器产生的潜在表征,并将其与冻结的大语言模型集成。其中Flamingo使用交叉注意力来调整视觉token以供语言模型使用,而BLIP调整视觉token使其像文本token一样被大语言模型摄取。在这项工作中,作者研究了是否可以通过关注图像的目标和区域来直接提供图像的文本表示,而不是通过潜在的视觉特征来表示图像。
图1|FlexCap框架©️【深蓝AI】编译
研究者用“灵活描述”的思想来探索这种替代策略,并生成可控的丰富的图像区域描述,所需的文本粒度由生成的字数控制。FlexCap有效地结合了三项任务:图像描述、目标检测和密集图像描述。虽然图像描述模型可以捕获粗略的语义信息,但它们缺乏对视觉内容的空间理解。另一方面,目标检测以bbox的形式带来了空间信息,但是目标检测系统缺乏语义细节(目标之间的属性和关系),并且通常仅限于几个类。最近开集目标检测方法增加了语义的多样性,但它仍然受到人工撰写的文本查询或提示的限制。
图像区域描述是定位图像的显著区域并用自然语言描述它们的任务。然而,这些模型的容量和丰富性受到现有图像描述数据集(例如COCO和Visual Genome)的限制。此外,这些方法侧重于完整的句子生成,而不是像人们通常所做的那样,在几个丰富程度上混合使用长短描述。FlexCap通过将所有三项任务定义为不同的描述问题,将它们组合成一个系统:
· 图像描述意味着使用FlexCap将整个图像作为一个大的边界框进行描述;
· 图像区域描述可以通过对单个bbox进行条件处理来执行;
· 目标检测可以通过提示模型生成短的类别名称作为一种图像描述类型来执行。
但是整个系统需要一个特殊的图像数据集,其中许多框都需要标有简短的和详细的描述。研究者提出了一种方法,通过使用开集目标检测器,从图像-文本对数据集中生成<图像,bbox,图像区域描述>三元组。研究者在两个尺度上证明了这一点:
· 使用YFCC100M图像描述的2亿个三元组;
· 以及使用WebLI图像描述数据集的320亿个三元组。
在该数据集上训练FlexCap使模型能够生成空间和语义丰富的表示(bbox及其描述),重点关注目标属性及其上下文变化的描述。研究者展示了这种人类可解释的表示,当与大语言模型的功能相结合时,可以实现可视化的问答和对话。研究者还证明了这种组合可以在zero-shot图像和视频问答基准测试上获得与最先进的视觉语言模型相竞争的性能。
2. 相关工作
2.1 视觉问答(VQA)
VQA是一项旨在评估模型是否能回答有关图像问题的任务,通常需要基础视觉概念和推理能力。一些现有的模型,如ViperGPT、Flamingo、BLIP、PALI,在VQA基准上显示出出色的zero-shot性能。这些方法将视觉和语言组件紧密耦合在一个模型中,而FlexCap生成了图像的、高级的、人类可解释的文本表示,并证明通过大语言模型的直接应用,FlexCap-LLM可以在VQA基准测试中获得可观的性能。与其他方案不同的是,ViperGPT还解耦了视觉和语言组件,使用LLM重新解释视觉问题,然后使用现有的视觉感知工具处理它们。然而,在本研究工作的案例中,研究者只使用一个强大的视觉工具——FlexCap来生成所有必要的信息,并将推理留给LLM。从这个意义上说,FlexCap与ViperGPT是非常互补的,因为它是一种强大的工具,可以提高ViperGPT对图像的可控视觉理解。
2.2 开集目标检测
像OWL-ViT和ViLD这样的开集目标检测模型使用户能够用任何给定文本查询图像内容,并为这些查询获得匹配的bbox。在本文工作中,研究者使用OWL-ViT的文本和视觉编码器将bbox与文本查询相关联以生成训练数据。通过训练,研究者取消了提供逐数据集或逐图像文本查询以使用OWL-ViT的手动步骤。RegionCLIP通过在大规模数据上利用区域级视觉语言对比学习,在开集目标检测上获得了良好的性能。本文研究工作与这项工作的不同之处在于,研究者为每个bbox生成描述,而不是将文本查询(手动定义的)与bbox相关联。
2.3 长度可控的图像描述
长度控制的图像描述已在ZeroCap和LIC中进行了探索。ZeroCap通过改变对句末标记进行采样的概率,将长度控制实现为后处理步骤。因此,该模型不会记住字长条件,并且不能保证在单词数量级别上的细粒度长度控制。另一方面,LIC通过使用代表不同长度间隔的学习标记调节模型来生成长度可控的图像描述。
然而,LIC与 FlexCap 还是有相当大的差异。首先,FlexCap允许在图像区域级别实现可控性,而LIC仅提供完整的图像标题。这是一个显着差异,因为它允许FlexCap为图像中的所有目标生成简洁或详细的标题。其次,FlexCap具有更精确的描述长度控制水平。LIC使用粗略的主观控制级别,具有4个或5个长度级别(例如短、中、长和更长),而FlexCap允许指定确切的单词数。
3. FlexCap
图2|FlexCap架构和训练设置©️【深蓝AI】编译
3.1 结构
如图2所示,FlexCap的输入为图像、bbox坐标以及conditioning tokens(本文指长度控制prompt);输出为bbox区域内的文本描述。模型组成为图像编码器(SOViT-400M/14)和基于transformer的文本解码器。在本作中,研究者采用了包括维度为768的12个自注意力层和12个注意力头。注意:一个线性层会将视觉编码器的1152维输出转换为文本解码器的768维输入。
图像输入经过视觉编码器 n × d n \times d n×d得到输出,其中 n n n是图像patches数量, d d d是embedding维度。bbox坐标(维度为 1 × 4 1\times 4 1×4)经过线性层得到 1 × d 1\times d 1×d维特征。图像特征和标准化后的bbox坐标特征拼接成 ( n + 1 ) × d (n+1) \times d (n+1)×d维特征送入文本解码器。
在next token预测过程中,只有文本tokens会被mask,而图像特征和bbox坐标特征不会被mask。这样文本解码器可以在看到全量图像信息并定位bbox区域。此外,视觉编码器的参数不会被冻结。
图3|三元组数据构建流程©️【深蓝AI】编译
3.2 长度控制
对于图像中的同一区域,可能存在多个合理的描述。在图3所示的输入图像中,以下所有描述都是正确的:dog, Border collie, dog playing with a frisbee, brown dog playing on a grass field。显然,描述图像bbox区域的任务并不是只有一个正确的答案。研究者利用长度调节的思想使模型具有产生所需长度的输出的能力。研究者通过简单地使用指示输出描述的期望长度的附加tokens来调节输入。首先,用于描述的单词数量通常与信息密度成比例。研究者训练模型预测序列中的下一个单词,同时考虑所需的长度,从而使模型学会调整生成文本中的信息量。第二,长度调节允许用户控制模型的输出,进一步允许将单个模型用于许多不同的任务。第三,长度前缀为图像描述模型提供了一个更好的初始状态。
图2展示了同一个bbox是如何同时具备多个合理的图像描述的,例如s a cat e 和s grey and white cat lying on shoes e。如果我们使用第一个描述为训练数据,单词s a cat作为看到的文本,下一个单词预测损失会鼓励模型增加e token的分数,并由于softmax损失而降低单词playing的分数。这与第二个图像描述直接冲突。我们可以通过在文本生成中使用长度前缀来缓解这种训练问题。
3.3 具体实现
研究者使用JAX框架实现该模型。使用带有余弦退火学习率衰减算法的AdamW优化器对该模型迭代了 400 K 400K 400K步。最大学习率为 1.6 × 1 0 − 4 1.6 \times 10^{-4} 1.6×10−4;预热10k次迭代步;权重衰减系数为0.05;batch size为4096;图像分辨率为 224 × 224 224 \times 224 224×224;最大文本序列长度为32个tokens。对于batch中的每张图像,研究者在每个训练迭代步中最多采样8个bboxes。
3.4 推理
推理时,输入为图像、目标bbox、以及期望输出长度。然后以自回归的方式进行解码,直到遇到结束token e或者达到解码步骤的最大数量。虽然可以使用文本生成中使用的标准采样技术,如beam search、temperature sampling或nucleus sampling来生成多个图像描述,但为了简单起见,研究者在所有实验中都使用greedy decoding。
4. 数据集构建
为了训练FlexCap模型,研究者基于WebLI和YFCC100M数据等建立了一个大规模的不同长度的图像区域描述数据集。数据集生成流程如图3所示。
1)研究者利用n-grams从开源图像描述数据中抽取不同长度的数据,例如”dog“,“brown dog”,“brown dog playing with a disc”,其中n={1,2,\dots,8}$。然后,研究者会对抽取结果进行后处理,过滤掉不完整的、错误的、无意义的结果,例如”with a red“和”dog playing with“等。
2)使用OWL-ViT计算bbox区域和文本间相似度,过滤掉相似度低于0.1的样本对。经过过滤后,一个bbox可能对应多个n-grams结果,所以得到对一个bbox区域不同粒度的表示。
图4|用于VQA任务的FlexCap©️【深蓝AI】编译
5. FlexCap-LLMs
最近,为了提高视觉模型的识别和推理能力,使其能够执行问答和视觉对话等任务,人们的工作重点转变为将视觉模型(如ViT)的特征与大语言模型连接起来。现有代表性工作如Flamingo, LLaVA, PALI, PALM-E, Ferret和LaVIT,这些方法均致力于将图像patch表示为单词或token。在本作中,研究者提出了新的思路。
研究者没有直接使用大语言模型来理解视觉特征,而是尝试使用更丰富的文本描述来探索将图像内容与大语言模型连接起来。由于FlexCap通过生成稠密的局部信息来解决丰富的视觉感知问题,它使大语言模型能够通过将丰富的空间视觉概念与世界知识联系起来来执行高级空间和文本推理任务。大语言模型可以通过观察FlexCap的描述结果来推理图像区域属性,通过利用更大的窗口描述来做场景级别的理解,通过检查具有相似内容的bbox的数量来计数,以及通过比较bbox的位置来比较相对空间关系。
虽然使用图像描述作为大语言模型的输入并不是很新颖的方法,但保证图像描述的多样性和丰富性始终充满挑战。如图4,研究者展示了如何用FlexCap帮助大语言模型解决视觉问题。首先,研究者使用OWL-ViTv2定位重要目标,并根据阈值保留前128个bboxes。然后,使用FlexCap为每个bbox生成图像描述。为了得到全面的描述,研究者为每个bbox区域设置了多个prompt(即不同的长度要求)。在所有实验中,研究者使用PALM2-S模型作为大语言模型。
为了使基础FlexCap具有更好的检测能力、输出更长的句子和OCR识别能力,研究者在检测(COCO、VOC、OpenImages、LVIS)、图像描述(COCO Captions、Visual Genome)和OCR数据集(WebLI)上对FlexCap进行了25K步的联合训练。对于图像描述数据集,本作使用覆盖整个图像的bbox,并发现这个协同训练步骤对于使用大语言模型的下游任务非常有用。
6. 实验
研究者在需要不同粒度级别的不同任务中对FlexCap模型进行了评估。
表1|Zero-shot视觉问答结果©️【深蓝AI】编译
6.1 视觉问答
视觉问答(VQA)通常需要根据相应的问题,在多个粒度上对内容进行基于视觉的丰富语义理解。因此,研究者评估了FlexCap-LLM在几个图像VQA基准(如OKVQA、GQA和VizWiz)以及视频问答基准(如MSRVTT和MSVD)上的有效性。这些数据集的不同特征有助于我们更好地了解FlexCap的功能。
1)图像VQA
首先,研究者基于zero-shot设置,在GQA、OKVQA和VizWiz基准上评估FlexCap-LLM,注意FlexCap没有使用任务或相应的数据集进行训练。基准测试结果如表1所示。
- 组合型问答
GQA数据集用于评估复杂组合问题的性能。由于FlexCap为场景中的多个视觉元素及其相应位置生成信息,因此它非常适合于图像的构图理解问题。在这个基准上,如表1a所示,FlexCap的性能优于最近的所有基线。
- 需要外部知识的问答
OKVQA数据集是专门为评估回答有关图像的问题的能力而设计的,这些问题需要图像上不容易获得的外部知识。因此,它需要对内容有多个层次的理解,并根据这些信息进行推理,这非常考验FlexCap能否给大语言模型注入足够的视觉知识及相关外部知识。在表1b中显示了FlexCap在OKVQA上的性能优于Flamingo和ViperGPT等强baseline,这突出了FlexCap生成的通用和特定描述组合的有效性。与其他使用OKVQA的问题的baseline不同,FlexCap是在没有访问问题的情况下生成的描述。
- 非典型图像的视觉问答
研究者还评估了VizWiz,它包含视障人士提出的视觉问题。与web内容不同,在这些图像中,目标和场景并不能很好地集中在一起。因此与典型的web数据集相比,该数据集包含许多out-of-distribution样本。表1c中报告了这个实验的结果,FlexCap明显优于Flamingo。
表2|Zero-shot视频问答结果©️【深蓝AI】编译
2)视频VQA
研究者还在zero-shot视频问答数据集MSRVTT-QA和MSVD-QA上评估了FlexCap-LLM。这些基准的结果如表2所示。为了处理视频,研究者从视频中均匀地采样8帧,将每一帧通过FlexCap生成目标和区域的描述。然后,将来自不同帧的所有目标描述组合为大语言模型的prompt。研究者观察到FlexCap-LLM在zero-shot设置中显著超过Flamingo模型的性能。这些结果突出了FlexCap的zero-shot的有效性,它可以解决视频域中的任务,即使FlexCap和所使用的大语言模型都没有针对这些任务进行训练。
6.2 图像描述
1)数据和评估方法
图像描述任务被定义为产生区域和每个区域的相应描述。研究者使用了Visual Genome数据集来进行这一实验。在这个数据集中,每个图像都用多个bbox进行注释,每个bbox都有相应的描述。研究者使用论文DenseCap中提出的训练测试切分和评估度量,并提出在IoU阈值(0.3,0.4,0.5,0.6,0.7)和Meteor得分阈值(0.0,0.05,0.1,0.15,0.2,0.25)的成对阈值上使用mAP。此外,作者还使用了与论文GRiT中提到的相同的文本和bbox的预处理方法。
2)微调
我们在Visual Genome训练集上对预训练的FlexCap模型进行了60k步的微调,学习率为1e-6,分辨率为。
表3|Visual Genome数据中的区域描述评估结果©️【深蓝AI】编译
3)图像区域描述
研究者首先评估Visual Genome GT bbox的描述质量。由于此设置删除了定位任务,因此研究者只对区域描述问题进行了更清晰的评估。表3a中提供了该实验的结果,与在该设置中评估的其他方法相比,FlexCap实现了更好的性能。
然后,在GRIT的图像区域描述实验中,研究者想与其他同时执行定位和描述的方法进行比较。表3b显示,与在该设置中评估的其他方法相比,FlexCap获得了更好的性能。因为,FlexCap没有提出任何定位模块,仅使用GRIT的region proposals作为模型的输入框,这也使研究者能够直接将图像描述能力与GRIT进行比较。根据结果可以发现,即使FlexCap在的较低分辨率下进行测试,在这项任务中也优于GRIT。
图5|Visual Genome数据集上的开放式目标检测©️【深蓝AI】编译
6.3 开放式目标检测
图6|被LLaVA遗漏但但被FlexCap召回的目标©️【深蓝AI】编译
开放式目标检测,即用更丰富的描述定位图像中的目标。该任务可以分为(a)先定位后描述或(b)先描述后定位。对于FlexCap,研究者采用前者,其中定位能力由OWL-ViT提供。研究者将FlexCap结果与先描述后定位的方法进行比较,研究者首先要求最先进的VLM(即LLAVA)对所有对象的图像进行全面描述,然后使用开集目标检测方法(即OWL-ViT)对这些描述进行定位。对图像中所有目标的召回是开放式目标检测的一个主要标准,如图5(a)所示,与使用现有工作的先描述后定位方法相比,使用FlexCap的先定位后描述方法表现得更好。
在图5(b-e)中,与先描述后定位的方法相比,研究者所提出的先定位后描述的方法检索到了图像的更多部分,尤其是中小尺寸的目标。这主要是因为大多数VLM被训练来描述图像中的显著目标,而不是详尽地列出场景中存在的所有目标。图6中展示了遗漏检测的一些典型示例。
图7|FlexCap能够通过使用前缀调节来提取属性©️【深蓝AI】编译
图8|FlexCap能够使用前缀控制描述内容©️【深蓝AI】编译
图9|FlexCap能够使用带有前缀的多样化描述©️【深蓝AI】编译
6.4 定性结果
FlexCap不仅允许对答案的长度进行调节,还允许对描述进行文本提示。可以利用这一点来提取目标感兴趣的特性,如颜色和材料,图7中展示了这方面的示例:假设想提取目标的颜色和材料,我们设计了两个前缀:
1)“LENGTH-4 The color is ____”;
2)“LENGTH-5 This is made of ____”。
经过进一步的探索,研究者发现了可以从图像中提取不同类型信息的前缀,在图8中展示了这方面的示例——FlexCap可以提取以下属性:人类的行为(“The person is”)、目标的用途(“This is used for”)、OCR(“The sign says”)、书籍的名称(“The book is called”)、图书的作者(“Written by”)以及照片的拍摄地点(“The photo was taken in”)。请注意,同一个模型如何能够从同一个bbox中提取不同的信息:根据前缀决定提取书名或作者姓名(图8(4)和图8(5))。在图9中,研究者强调了不同的前缀如何导致不同描述内容的生成。
6.5 消融实验和分析
表4|消融实验结果©️【深蓝AI】编译
1)大规模对比预训练
在本节中,研究者研究了使用对比学习预训练的视觉编码器或仅使用bbox-caption目标函数从头开始训练视觉编码器的影响。在这个实验中,研究者使用ViT-B/16作为Backbone,并在WebLI 图像区域描述数据集上进行训练。表4a报告了Visual Genome数据集上关于GT bbox-caption和GRiT的密集图像描述的结果。在第1行中,研究者观察到基于长度条件的图像区域描述目标函数可以从头开始用于backbone和文本解码器的训练,并实现有竞争力的性能。其次,研究者观察到使用大规模对比学习预训练模型可以获得更好的性能。
2)数据规模
在这个实验中,研究者测试了缩放数据集对性能的影响。研究者首先使用大的图像文本数据集(WebLI)对 ViT-B/16编码器进行对比学习预训练。研究者在两个不同规模的不同图像区域描述数据集上对其进行训练。
表4b中显示了该实验的结果。结果显示即使在大规模的对比学习预训练之后,大的图像区域描述数据集也可以显著提高性能。这表明了设计一种可扩展的数据集创建方法的重要性。
3)模型规模
研究者测试了改变图像编码器大小的影响。该实验共训练了两个模型:ViT-B/16(85M)v/s SO-ViT/14(428M)。就像数据缩放实验一样,这两个实验都是在 WebLI数据集上以对比的方式进行预训练的。对于这两个实验,文本解码器保持相同的架构。表4c中报告了这个实验的结果。结论比较符合常识:模型越大,性能越好。
图10|FlexCap生成的长度控制描述数据示例©️【深蓝AI】编译
4)可塑性
我们观察到,我们的模型以可控的方式产生图像描述,且偏差很小。图10展示了FlexCap模型为同一个bbox生成不同长度描述的定性示例。
7. 结论
FlexCap是一种灵活的图像描述模型,可以可控地描述图像中的局部区域。为了训练FlexCap,研究者生成了一个大规模的<图像,bbox,描述>数据集,该数据集具有丰富的视觉描述及其长度的多样性。研究者展示了FlexCap提供的图像描述如何将图像和视频连接到大语言模型,并在视觉问答和密集图像描述任务上实现强大的性能。
编译|Lip
审核|Los
移步公众号【深蓝AI】,第一时间获取自动驾驶、人工智能与机器人行业最新最前沿论文和科技动态。