【论文笔记】Florence-2: Advancing a Unified Representation for a Variety of Vision Tasks

基本信息

标题: Florence-2: Advancing a Unified Representation for a Variety of Vision Tasks
作者: Bin Xiao, Haiping Wu, Weijian Xu, Xiyang Dai, Houdong Hu, Yumao Lu, Michael Zeng, Ce Liu, Lu Yuan
发表: CVPR 2024
arXiv: https://arxiv.org/abs/2311.06242

基本信息

摘要

我们介绍了Florence-2,这是一种新型的视觉基础模型,具有统一、基于提示的表示,适用于各种计算机视觉和视觉-语言任务。

尽管现有的大型视觉模型在迁移学习方面表现出色,但它们在执行简单指令的多样化任务时遇到了困难,这种能力意味着需要处理各种空间层次和语义粒度的复杂性。

Florence-2被设计为以文本提示作为任务指令,并以文本形式生成期望的结果,无论是描述、目标检测、定位还是分割。

这种多任务学习设置需要大规模、高质量的标注数据。

为此,我们共同开发了FLD-5B,它包含对1260万张图像的54亿个综合视觉标注,采用自动图像标注和模型优化的迭代策略。

我们采用了序列到序列的结构来训练Florence-2执行多功能的综合视觉任务。

在众多任务上的广泛评估表明,Florence-2是一个强大的视觉基础模型竞争者,具有前所未有的零样本和微调能力。

We aim to build a vision foundation model to enable extensive perception capabilities including spatial hierarchy and semantic granularity

Model

我们提出了Florence-2基础模型,该模型旨在实现通用表示学习,能够通过单一权重集和统一架构处理各种视觉任务。

Florence-2 consists of an image encoder and standard multi-modality encoder-decoder

如图2所示,Florence-2采用序列到序列学习范式,将描述、目标检测、定位、分割等任务整合在一个共同的语言建模目标下。

该模型将图像与任务提示作为任务指令,并以文本形式生成期望的结果。

它使用视觉编码器将图像转换为视觉token嵌入,然后将这些嵌入与文本嵌入连接,并由基于transformer的多模态编码器-解码器处理以生成响应。

Task formulation

任务公式化。我们采用序列到序列框架以统一的方式解决各种视觉任务。

Supported Tasks and annotations used for Florence-2 pretraining

如表13所示,我们将每个任务公式化为一个翻译问题:给定一个输入图像和一个任务特定的提示,我们生成相应的输出响应。

根据任务的不同,提示和响应可以是文本或区域:

  • 文本:当提示或答案是无特殊格式的纯文本时,我们保持其在最终的序列到序列格式中。
  • 区域:对于区域特定任务,我们向分词器的词汇表列表中添加位置token,表示量化坐标。我们创建1000个box,类似于[10, 11, 55, 79],并使用针对任务需求的格式表示区域:
    • 矩形表示x0,y0,x1,y1x_0, y_0, x_1, y_1):在诸如物体检测和密集区域描述的任务中使用,位置token对应于矩形坐标。位置token是矩形左上角和右下角的坐标。
    • 四边形表示x0,y0,,x3,y3x_0, y_0, \ldots, x_3, y_3):对于文本检测和识别任务,使用位置token表示文本的四边形包围框的每个坐标。位置token是四边形包围框每个角的坐标,从左上角开始顺时针排列。
    • 多边形表示x0,y0,,xn,ynx_0, y_0, \ldots, x_n, y_n):对于指代分割任务,位置token表示多边形的顶点。位置token是多边形顶点的坐标,按顺时针顺序排列。

通过扩展分词器的词汇表以包含位置token,我们使模型能够以统一的学习格式处理特定区域的信息。

这消除了为不同任务设计特定任务头部的需求,并允许采用更以数据为中心的方法。

Vision encoder

我们采用DaViT作为视觉编码器。

它处理输入图像IRH×W×3\mathbf{I} \in \mathbb{R}^{H \times W \times 3}(其中HHWW 分别表示高度和宽度)生成展平的视觉token嵌入VRNv×Dv\mathbf{V} \in \mathbb{R}^{N_v \times D_v},其中NvN_vDvD_v 分别表示视觉token的数量和维度。

Multi-modality encoder decoder

我们使用标准的编码器-解码器Transformer架构来处理视觉和语言token嵌入。

首先,我们使用扩展的语言分词器和词嵌入层获得提示文本嵌入TpromptRNt×D\mathbf{T}_{prompt} \in \mathbb{R}^{N_t \times D}

然后,我们将视觉token嵌入与提示嵌入连接起来,形成多模态编码器模块的输入X=[V,Tprompt]\mathbf{X} = [\mathbf{V}', \mathbf{T}_{prompt}],其中VRNv×D\mathbf{V}' \in \mathbb{R}^{N_v \times D} 是通过对V\mathbf{V} 应用线性投影和LayerNorm层获得的,以进行维度对齐。

Optimization objective

给定由图像和提示组合而成的输入xx 以及目标yy,我们使用标准的语言建模与交叉熵损失来处理所有任务。

L=i=1ylogPθ(yiy<i,x)\mathcal{L} = -\sum_{i=1}^{|y|} \log P_\theta(y_i | y_{<i}, x)

其中θ\theta 是网络参数,y|y| 是目标token的数量。

Data Engine

为了训练我们的Florence-2模型,我们需要一个全面、大规模、高质量的跨任务数据集,涵盖各种图像数据方面。

鉴于此类数据的稀缺性,我们开发了一个新的跨任务图像数据集。

该数据集FLD-5B包含1.26亿张图像,5亿个文本标注,以及13亿个文本区域标注,以及36亿个文本短语区域标注,涵盖不同任务。

我们详细阐述了我们的数据收集和标注流程,包括针对各种标注类型的适应性。

Florence-2 data engine consists of three essential phrases

Image Collection

我们通过收集来自各种来源的图像来构建我们的数据集。

我们首先确定了三个关键任务,这些任务作为我们图像语料库的主要来源:图像分类、目标检测和图像描述。

因此,我们精心挑选并组合了来自上述任务的五个不同数据集:ImageNet-22k、Object 365、Open Images、Conceptual Captions和LAION,然后经过筛选。

这种组合最终形成了一个包含1260万张图像的总数据集。

Data Annotation

我们的主要目标是生成能够有效支持多任务学习的全面标注。

因此,我们的标注努力涵盖了广泛的任务,分为三个独立的标注类别:文本、区域-文本对和文本-短语-区域三元组,如图4所示。

An illustrative example of an image and its corresponding annotations in FLD-5B dataset

数据标注工作流程包括三个基本阶段,每个阶段都确保了标注的准确性和质量:

  1. 使用专业模型进行初始标注
  2. 数据过滤以纠正错误并移除无关标注
  3. 数据精炼的迭代过程

Initial annotation with specialist models

为了启动每种标注类型的标注过程,我们使用从专业模型获得的合成标签。这些专业模型是结合了在多种公开可用数据集上训练的离线模型和托管在云平台上的在线服务。它们专门设计以在各自的标注类型中表现出色。

值得注意的是,某些图像数据集可能已经包含某些标注类型的部分标注。例如,Object 365数据集已经包含了由人工标注的边界框和相应的类别作为区域文本标注。在这种情况下,我们将现有的标注与由专家模型生成的合成标签合并。这种方法增强了标注的覆盖范围和多样性。

此外,特定标注,如文本标注类型中的详细描述,由相当小的数据集表示。这本身在获取高性能专业模型时提出了挑战。因此,我们在初始标注阶段选择省略这些任务。这些任务的标注将在迭代数据精炼过程中生成。

总结来说,通过严格的初始标注程序,我们确保了1.26亿图像的聚合数据集在大多数标注类型上得到了全面标注。

Data filtering and enhancement

最初从专业模型获得的标注虽然全面,但易受噪声和不精确性的影响。

针对这一挑战,我们实施了一个多方面的过滤过程以精炼和消除不希望的标注。

我们的通用过滤协议主要关注标注中的两种数据类型:文本和区域数据。

首先,关于文本标注,我们受到DiHT的启发,并基于SpaCy开发了一个解析工具来提取对象、属性和动作。

我们过滤掉包含过多对象的文本,因为它们往往会引入噪声,并且可能无法准确反映相应图像中的实际内容。

此外,我们通过测量它们在依存句法分析树中的节点度来评估动作和对象的复杂性。

我们保留具有一定最小动作和对象复杂性的文本,以确保图像中视觉概念的丰富性。

其次,关于区域标注,特别是边界框,我们移除低于置信度阈值的有噪声的边界框。

此外,我们还采用非极大值抑制来减少冗余或重叠的边界框。

Iterative data refinement

使用我们筛选后的初始标注,我们训练了一个处理数据序列的多任务模型。

在将该模型与我们的训练图像进行评估后,我们发现其预测能力有了显著提升,尤其是在原始标签因不准确或噪声(如alt-texts中的噪声)而受损的情况下。

受这些发现启发,我们将这些更新后的标注与原始标注相结合,并对模型进行了另一轮训练。

这种循环优化过程逐步提高了我们训练数据集的质量。

在最初由于缺乏训练稳健专家模型所需数据而跳过的任务中,我们利用了迭代训练的模型进行预训练。

随后,使用稀疏数据集对预训练模型进行微调,其性能优于从同一数据从头开始训练的模型。

因此,我们利用微调后的模型作为专家来标注我们庞大的数据集,该数据集包含1.26亿张图像,确保了全面的标注覆盖。

Annotation-specific Variations

在上文中,我们介绍了我们的通用标注工作流程。

本节深入探讨了每种标注类型及其相应的标注程序变体。

Text

图像文本标注采用三种粒度类型对图像进行分类:简短、详细和更详细。

简短文本仅包含一个句子,展示最显著的对象和活动,类似于COCO caption。

相比之下,详细文本和更详细文本包含多个句子,用更丰富的对象、属性和动作来描述图像。

对于简短文本,训练了一个Florence-2模型作为公开图像caption和图像文本数据集的专家,创建了一个图像到文本模型进行初步标注。

使用迭代优化来最小化这些文本中的噪声。对于详细文本,将包括简短文本和区域文本标注在内的现有图像标注作为提示输入到大型语言模型(LLMs)或大型多模态模型(LMMs)中,以生成全面的描述。

由于大型模型成本高昂,仅生成少量详细文本和更详细文本。

这些用于微调caption专家,开发详细描述专家以进行进一步标注。

Region-text pairs

该区域-文本对为图像中的语义区域提供描述性文本标注。

语义区域包括视觉对象区域以及文本区域。

区域由一个紧密的边界框表示,包围该区域。

此外,每个区域都可以用不同粒度的标注进行标注,包括短语和句子,有助于更深入地理解该区域。

区域-文本对在文本区域和视觉对象区域上的标注方式不同。

文本区域使用Azure AI服务的OCR API进行标注,而视觉对象最初使用在公共数据集上训练的DINO对象检测器进行标注。

数据过滤,包括置信度阈值和非极大值抑制,移除了噪声框。

视觉对象区域的文本标注进一步通过从图像到文本模型生成的简短文本进行丰富。

每个区域随后接收三个文本标注:来自对象类别的短语、简短文本以及来自简短文本的名词短语块。

Florence-1模型确定每个图像区域的相似文本标注。

Text-phrase-region triplets

文本-区域三元组包含图像的描述性文本、与图像对象相关的名词短语以及这些对象的区域标注。

该文本包括早期生成的简短、详细和更详细的文本。对于每个文本,Grounding DINO模型识别名词短语并为它们创建边界框。

此外,SAM模型为每个框生成分割掩码,提供更精确的对象定位。

在数据过滤过程中,对名词短语和边界框应用置信度分数阈值以确保相关性。

同时,使用黑名单排除不相关的名词短语,如代词和抽象概念。

Dataset

本节介绍了我们使用上文中的Data Engine构建的FLD-5B的统计和分析。

我们首先概述了数据集,并将其与近期的研究成果进行比较。

然后,我们展示了在建立的数据集中对详细标注统计、语义覆盖和空间覆盖的进一步分析。

Overview

在Data Engine之后,我们构建了一个包含1.26亿图像、超过5亿文本标注、13亿区域-文本标注和36亿文本短语-区域标注的大规模训练集(FLD-5B)。

每张图像都标注了文本、区域-文本对和文本-短语-区域三元组,每种标注类型都有多个实例,且具有不同的粒度。

图4展示了图像及其对应标注的示例。

An illustrative example of an image and its corresponding annotations in FLD-5B dataset

我们在表1中提供了与我们数据集和用于训练基础模型常用的现有数据集之间的比较。

Comparison with datasets in vision foundation model training

与之前的数据集相比,我们的数据集具有多个优势,例如总标注量和每张图像的标注量更多。

此外,我们数据集中的标注跨越了多个空间和语义粒度级别,这允许进行更多样化和全面的视觉理解任务。

Data Analysis

Annotation statistics

表2展示了我们数据集中每种标注类型的统计数据。

Annotation statistics of FLD-5B dataset

首先,我们拥有约5亿个文本标注,包括简短、详细以及更详细的文本,长度各异。

值得注意的是,与类似COCO caption的简短文本相比,我们的详细和更详细的文本在token数量上分别是其4倍和9倍。

这些冗长的注释为全面视觉理解提供了更丰富的信息。

此外,我们的数据集包含约13亿个区域-文本标注,这比 OpenImages 和 Object 365 等学术目标检测数据集大30倍以上。

平均而言,每张图像有大约5个区域,每个区域都标注了短语或相对较长的简短文本。

请注意,区域简短文本(平均2.55个标记)比典型的简短文本标注(平均7.95个标记)要短,因为区域简短文本标注实际上包括基于Florence-1得分的短语、名词块和简短文本的混合。

此外,我们收集了包含超过36亿个短语-区域标注的文本短语区域标注,这些标注针对5亿个文本。

具体来说,简短文本标注的平均短语-区域对为4.27,而详细和更详细的文本标注则超过10对,这表明更丰富的文本标注覆盖了更多的对象及其对应的文本短语。

Semantic coverage

我们的文本标注包括各种文本类型,涵盖不同层次的细节。

为了评估语义覆盖范围,我们采用SpaCy进行分词和解析,受到DiHT的启发。

此过程产生标记的词性(POS)标签和标记之间的依存句法树。

我们根据POS标签建立启发式规则,将标记分类为语义元素类型,例如,对象、属性、动作和专有名词。

此外,我们引入了标记复杂度的概念,通过将标记在依存句法树中的总度数作为无向图来衡量。

这种复杂度反映了语义连接的丰富性。

在我们的研究中,我们专注于测量对象和动作的复杂度。

表3展示了平均语义元素数量及其对应复杂性的统计数据。

Statistics of the average number of semantic elements and corresponding complexity in FLD-5B dataset

结果表明,随着文本注释中细节的增加,所有测量值均有所上升。

值得注意的是,平均动作经历了最显著的提升,详细和更详细的文本分别比简短文本增加了7倍和15倍。

这突显了传统简短文本注释在描述图像动作方面的局限性。

相反,专有名词的增加相对较低,这可能是由于专家通常比使用特定的专有名词更倾向于用更一般的术语来描述对象。

在复杂度测量方面,无论是对象还是动作,在详细文本注释中都显示出更多的语义联系。

动作的复杂度显示出更高的提升,这与我们观察到的动作数量增加相一致。

Spatial coverage

我们的区域文本和文本短语区域注释,通过边界框和掩码表示,捕捉图像中视觉概念的位置。

如图5a所示,框面积分布揭示了区域文本对中更多的小框和文本短语区域三元组中均匀的框尺寸分布。

Distributions of bounding boxes in FLD-5B dataset

这种差异源于这些框的不同来源:区域文本对的物体检测器和文本短语区域三元组的基座模型,该模型将框与代表局部和整体图像概念的文本短语对齐。

如图5b所示,展示了长宽比的对数格式分布。区域文本对和文本短语区域三元组表现出相似的对称分布,覆盖了广泛的长宽比范围。

如图5c和5d所示的每个注释类型的框中心的热图表明存在中心偏差,区域文本对的分布比文本短语区域三元组更均匀。

实验

主实验

Zero-shot performance of generalist vision foundation models

Performance of specialist and generalist models on captioning and VQA tasks

Performance of specialist and generalist models on region-level tasks

Training efficiency on COCO object detection and segmentation, and ADE20K semantic segmentation tasks

COCO object detection and instance segmentation  results using Mask-RCNN framework, and COCO object detection results using DINO-4scale framework

Downstream task fine-tuning on COCO and ADE20K dataset

ADE20K semantic segmentation results using UperNet

消融实验

Multitask transfer

Model scaling

Data scaling

Basic components

总结

Florence项目致力于开发一个具有多样化感知能力的底层视觉模型,包括空间层次和语义粒度。

为此,我们构建了包含1.26亿张图像及其5亿条全面标注的FLD-5B数据集,这些数据由Florence Data engine收集。

随后,我们通过统一的多任务学习方式,在丰富数据集上对Florence-2进行预训练。

Florence-2展现出卓越的零样本能力,涵盖了广泛的视觉任务,如图像描述、目标检测、视觉定位和引用分割等。

实验结果强调了Florence-2预训练的通用表示能力,揭示了其在提升众多下游任务中的重大贡献。