Florence-2的威力

文摘   2024-07-06 14:05   新加坡  

声明:本文为基于如下论文的阅读笔记


与本文对应的Florence-2测试和验证代码,我会放置于:https://github.com/davidsajare/david-share.git

下的Multimodal-Models/Florence-2-Inference


欢迎您点亮repo的Star。


一、Florence-2简介

微软的 Florence-2 是最先进的视觉语言模型 (VLM),旨在使用基于提示的方法解决大量视觉和视觉语言任务。这些模型非常小,Florence-2 比其他大 100 倍的 VLM 更好。有两个版本:230M 和 770M。此外微软还发布了微调版本,这些在HF上都可以看到:


Florence-2 以图像和描述要完成的任务的提示作为输入。现有的大型视觉模型在迁移学习方面表现出色,但它们难以用简单的指令完成各种任务。这种能力意味着要处理各种空间层次和语义粒度的复杂性。


CV迁移学习训练-PyTorch学习系列29


Florence-2 的设计目的是将文本提示作为任务指令并以文本形式生成理想的结果,无论是image captioning,segmentation, OCR还是object detection.

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

 
Florence-2的目标是建立一个视觉基础模型,以实现广泛的感知能力,包括空间层次(Spatial Hierarchy)和语义粒度(Semantic Granularity)。为此,一个统一的模型 Florence-2 在我们的 FLD-5B 数据集上进行了预训练。我们的 FLD-5B 数据集包含 1.26 亿张图像,总计 540 亿个综合注释,这些数据由我们的 Florence 数据引擎收集。

计算机视觉主要是处理复杂的视觉数据,如对象位置、遮蔽轮廓和属性等。在计算机视觉中实现通用表征需要对一系列二维组织的复杂任务进行处理。

  • 空间层次 Spatial Hierarchy

 
模型必须辨别不同尺度的空间细节,理解图像级概念和细粒度像素细节。适应视觉中错综复杂的空间层次结构需要模型熟练处理不同的粒度级别。

  • 语义粒度 Semantic Granularity

 计算机视觉中的通用表示应跨越语义粒度。该模型可从高级到细致入微的描述,从而为不同的应用提供多方面的理解。


同时实现空间层次和语义力度有两个主要的挑战:

  • 全面视觉注释的稀缺,这阻碍了能够捕捉空间层次和语义粒度复杂细微差别的基础模型的发展。现有的数据集,如 ImageNet 、COCO 和 Flickr30k Entities ,针对专门应用进行了广泛的人为标注。为了克服这一限制,必须在更大规模上为每张图像生成广泛的注释。

  • 缺乏一个统一的预训练框架,具有单一的网络架构,能够在计算机视觉中无缝集成空间层次和语义粒度。传统模型在物体检测 、语义分割  和图像描述 等任务中表现出色,但这些任务设计是特定的。然而,开发一个能够在各种视觉任务中适应的全面统一模型是至关重要的,即使是新的任务也能通过最少或不需要特定任务的微调来适应。

    模型 Florence开创了通过统一预训练和网络架构在计算机视觉中集成空间、时间和多模态方面的先河。其第一个进化版本通过使用噪声文本-图像对进行预训练和使用专门适配器进行任务特定微调,在迁移学习中表现出色。然而,它依赖于大型任务特定数据集和适配器,未能解决上述两个关键挑战。


    多任务学习需要大规模、高质量的注释数据。我们的数据引擎不依赖于劳动密集型的手动注释,而是自动生成一个名为 FLD-5B 的全面视觉数据集,包含 1.26 亿张图像的 54 亿个注释。该引擎由两个高效的处理模块组成。

  •  第一个模块使用专门的模型协作和自动注释图像,摆脱了传统的单一和手动注释方法。多个模型共同工作以达成共识,类似于群体智慧的概念 ,确保更可靠和无偏见的图像理解。

  • 第二个模块使用训练良好的基础模型迭代地改进和过滤这些自动注释。

    通过利用这个广泛的数据集,我们的模型采用了序列到序列(seq2seq)架构,集成了图像编码器和多模态编码器-解码器。该设计适应了各种视觉任务,无需任务特定的架构修改,符合 NLP 社区开发具有一致基础结构的多功能模型的精神。数据集 FLD-5B 中的所有注释都统一标准化为文本输出,促进了统一的多任务学习方法,并使用相同的损失函数作为目标进行一致优化。结果是一个多功能的视觉基础模型 Florence-2,能够在单一模型中执行各种任务,如物体检测、图像描述和定位,所有这些任务都由一组统一的参数控制。任务激活通过文本提示实现,反映了大型语言模型。

    我们的方法实现了通用表示,展示了在各种视觉任务中的广泛适用性。主要结果包括:

  • 作为一个多功能的视觉基础模型,Florence-2 在 COCO上的图像描述、Flick30k上的视觉定位和 RefCOCO/+/g上的指代表达理解等任务中实现了新的零样本性能的最先进水平。

  • 在使用公共人工标注数据进行微调后,尽管 Florence-2 体积紧凑,但与更大的专业模型竞争。值得注意的是,微调后的 Florence-2 在 RefCOCO/+/g 基准测试中建立了新的最先进结果。

  • 预训练的 Florence-2 骨干网络提高了下游任务的性能,例如 COCO 物体检测和实例分割,以及 ADE20K 语义分割,超越了监督和自监督模型。与 ImageNet 上的预训练模型相比,我们的模型提高了 4 倍的训练效率,并在使用 Mask-RCNN [26]、DINO [97] 和 UperNet [82] 框架的 COCO 和 ADE20K数据集上分别实现了 6.9、5.5 和 5.9 分的显著改进。


二、.重新思考视觉模型的预训练

 
为了追求一个多功能的视觉基础模型,我们重新审视了三种主要的预训练范式:

  • 监督学习(例如,ImageNet 分类 )

  • 自监督学习(例如,SimCLR、MoCo、BEiT、MAE )

  • 弱监督学习(例如,CLIP、Florence 、SAM)。


每种范式都捕捉了视觉数据的独特方面,但本质上受限于单任务学习框架的约束。监督预训练在物体识别方面表现出色,但缺乏适应性;自监督算法揭示了复杂特征,但可能过度强调某些属性;弱监督方法利用非结构化的文本注释,但仅能产生图像级别的理解。为了构建一个适用于各种应用的统一视觉基础模型,我们必须探索创新的预训练策略,克服单任务的局限性,并整合文本和视觉语义。

图像理解需要捕捉从全局语义到局部细节的多个层次的粒度,并理解对象和实体在其语义上下文中的空间关系。为了应对图像理解的这些核心方面,我们的方法结合了多种注释,有效地捕捉了视觉理解的细微差别,并弥合了视觉和语言理解之间的差距。

 全面的多任务学习

为了开发一个多功能的视觉基础模型,我们制定了一系列多任务学习目标,每个目标都针对视觉理解的特定方面。这些目标与我们预定义的标准一致:空间层次和语义粒度,灵感来自于最近关于多任务学习的研究。我们的多任务学习方法结合了三个不同的学习目标,每个目标都针对不同层次的粒度和语义理解:

  • 图像级理解任务:捕捉高级语义,通过语言描述促进对图像的全面理解。它们使模型能够理解图像的整体上下文,并掌握语言领域中的语义关系和上下文细微差别。示例任务包括图像分类、图像描述和视觉问答。

  • 区域/像素级识别任务:促进图像中对象和实体的详细定位,捕捉对象及其空间上下文之间的关系。任务包括物体检测、分割和指代表达理解。

  • 细粒度视觉-语义对齐任务:需要对文本和图像的细粒度理解。涉及定位与文本短语(如对象、属性或关系)对应的图像区域。这些任务挑战捕捉视觉实体及其语义上下文的局部细节,以及文本和视觉元素之间的交互能力。

    通过在多任务学习框架中结合这三个学习目标,我们的基础模型学会处理不同层次的细节和语义理解。这种战略性对齐使我们的模型能够处理各种空间细节,区分理解中的细节层次,并超越表面级别的识别——最终学习到一个用于视觉理解的通用表示。

三. Florence-2 基础模型

 
Florence-2 设计用于通用表示学习,能够使用一组权重和统一架构处理各种视觉任务。如图 2 所示,Florence-2 采用序列到序列学习范式,将第 2 节中描述的所有任务整合在一个共同的语言建模目标下。模型以图像和任务提示作为任务指令,并以文本形式生成理想的结果。它使用视觉编码器将图像转换为视觉标记嵌入,然后将其与文本嵌入连接,并通过基于 Transformer 的多模态编码器-解码器处理以生成响应。在接下来的部分中,我们将详细解释每个模型组件。



任务制定

 
我们采用序列到序列框架以统一的方式处理各种视觉任务。如表 13 所示,我们将每个任务制定为一个翻译问题:给定输入图像和任务特定提示,我们生成相应的输出响应。根据任务的不同,提示和响应可以是文本或区域:

  • 文本:当提示或答案是没有特殊格式的纯文本时,我们在最终的序列到序列格式中保持它。

  • 区域:对于特定区域的任务,我们将位置标记添加到标记器的词汇表中,表示量化坐标。我们创建了 1000 个箱,类似于 [10, 11, 55, 79],并使用适合任务要求的格式表示区域:

    • 框表示 (x0, y0, x1, y1):用于物体检测和密集区域描述等任务,位置标记对应于框的坐标。位置标记是框的左上角和右下角的坐标。

    • 四边形框表示 (x0, y0, ..., x3, y3):用于文本检测和识别任务,使用每个四边形坐标的位置信息。位置标记是四边形每个角的坐标,从左上角开始顺时针方向。

    • 多边形表示 (x0, y0, ..., xn, yn):用于指代分割任务,位置标记表示多边形的顶点。位置标记是多边形顶点的坐标,按顺时针顺序排列。

      通过扩展标记器的词汇表以包含位置标记,我们使模型能够在统一的学习格式中处理特定区域的信息。这消除了为不同任务设计特定任务头的需要,并允许采用更以数据为中心的方法。

视觉编码器

 
我们采用 DaViT 作为视觉编码器。它将输入图像 I ∈ RH×W×3(其中 H 和 W 分别表示高度和宽度)处理成展平的视觉标记嵌入 V ∈ RNv×Dv,其中 Nv 和 Dv 分别表示视觉标记的数量和维度。


DaViT,全称为 Dual Attention Vision Transformers,是一种新的视觉变换器模型。它的创新之处在于从两个正交的角度进行自我注意力(self-attention),分别对空间维度和通道维度进行建模。

具体来说,DaViT的双注意力机制包括以下两种自我注意力方式:

  • 空间自我注意力:对于空间维度上的 tokens,DaViT 将其划分为不同的窗口,这类似于 Swin 中的窗口注意力(spatial window attention)。通过在空间维度上进行自我注意力,DaViT 能够捕捉到不同位置之间的关系。

  • 通道自我注意力:对于通道维度上的 tokens,DaViT 将其划分为不同的组(channel group attention)。通过在通道维度上进行自我注意力,DaViT 能够捕捉到不同特征之间的关系。


通过这两种自我注意力的组合,DaViT 能够同时考虑到空间和通道的信息,从而实现更全面的全局建模。这种双注意力机制使得 DaViT 在 ImageNet1K 数据集上达到了 90.4% 的 Top1 准确率,超过了之前的 SwinV2 模型。


"通道"这个词在计算机视觉和深度学习中通常指的是图像或特征图的一个维度。例如,在RGB图像中,我们有三个通道,分别对应红色、绿色和蓝色。在卷积神经网络的中间层,每个通道通常会学习到输入数据的不同特征或属性。

"通道注意力"则是一种注意力机制,它专注于处理这些通道之间的关系。通过对不同通道的重要性进行建模,通道注意力可以帮助模型更好地理解哪些特征对于当前的任务更为重要。这对于许多计算机视觉任务来说非常有用,因为不同的任务可能需要关注图像的不同特征。


例如,在物体检测任务中,模型可能需要更关注形状和边缘的特征;而在风格迁移任务中,模型可能需要更关注颜色和纹理的特征。通过使用通道注意力,模型可以动态地调整对这些特征的关注度,从而提高任务的性能。


多模态编码器-解码器

 
我们使用标准的编码器-解码器 Transformer 架构来处理视觉和语言标记嵌入。我们首先使用扩展的语言标记器和词嵌入层获得提示文本嵌入 Tprompt ∈ RNt×D。然后,我们将视觉标记嵌入与提示嵌入连接,形成多模态编码器模块输入 X = [V′,Tprompt],其中 V′ ∈ RNv×D 是通过线性投影和 LayerNorm 层 [3] 对 V 进行维度对齐后获得的。

优化目标

 
给定由图像和提示组合而成的输入 x 和目标 y,我们对所有任务使用带有交叉熵损失的标准语言建模。


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

四. 数据引擎

 
为了训练Florence-2 模型,我们需要一个全面、大规模、高质量的多任务数据集,涵盖各种图像数据方面。鉴于此类数据的稀缺性,我们开发了一个新的多任务图像数据集。该数据集 FLD-5B 包括 1.26 亿张图像、5 亿个文本注释、13 亿个文本-区域注释和 36 亿个文本短语-区域注释,涵盖不同任务。我们将详细解释我们的数据收集和注释程序,涵盖各种注释类型的适应。数据引擎管道如图 3 所示,将在后续部分讨论。

图 3. Florence-2 数据引擎由三个基本短语组成:(1)使用专家模型进行初始标注;(2)数据过滤(3) 数据完善的迭代过程。我们的最终数据集(FLD-5B)超过 5B

注释的最终数据集(FLD-5B)包含 1.26 亿张图像、5 亿条文本注释、13 亿条区域-文本注释和 36 亿条文本-短语-区域注释。

4.1. 图像收集

 
我们通过从各种来源收集多样化的图像来构建我们的数据。我们首先确定三个关键任务,作为我们图像语料库的主要来源:图像分类、物体检测和图像描述。因此,我们策划并结合了来自上述任务的五个不同数据集:ImageNet-22k、Object 365 、OpenImages、Conceptual Captions 和 LAION ],由 [45] 过滤。这种组合总共形成了一个包含 1.26 亿张图像的数据集。


4.2. 数据注释

 
我们的主要目标是生成能够有效支持多任务学习的全面注释。因此,我们的注释工作涵盖了广泛的任务,分为三类注释:文本、区域-文本对和文本-短语-区域三元组,如图 4 所示。数据注释工作流程包括三个基本阶段,每个阶段都确保注释的准确性和质量:(1) 使用专业模型进行初始注释,(2) 数据过滤以纠正错误和删除无关注释,以及 (3) 数据精炼的迭代过程。


使用专业模型进行初始注释

 
为了启动每种注释类型的注释过程,我们使用从专业模型获得的合成标签。这些专业模型是基于多种公开可用数据集训练的离线模型和托管在云平台上的在线服务的组合。它们专门针对各自的注释类型进行优化。

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

此外,某些特定注释(如文本注释类型中的详细描述)由相对较小的数据集表示,这本质上对获得高性能的专业模型构成了挑战。因此,我们选择在初始注释阶段省略这些任务。这些任务的注释将在数据精炼的迭代过程中生成。

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

数据过滤和增强

 
尽管从专业模型获得的初始注释是全面的,但它们容易受到噪声和不精确性的影响。为应对这一挑战,我们实施了多方面的过滤过程,以精炼和消除不需要的注释。我们的通用过滤协议主要关注注释中的两种数据类型:文本和区域数据。

首先,关于文本注释,我们受 DiHT 的启发,开发了一个基于 SpaCy的解析工具,用于提取对象、属性和动作。我们过滤掉包含过多对象的文本,因为它们往往会引入噪声,可能无法准确反映相应图像中的实际内容。此外,我们通过测量依存解析树中节点的复杂程度来评估动作和对象的复杂性。我们保留具有一定最低动作和对象复杂性的文本,以确保图像中视觉概念的丰富性。

其次,关于区域注释,特别是边界框,我们在置信度分数阈值下删除噪声框。此外,我们还使用非极大值抑制来减少冗余或重叠的边界框。

数据精炼的迭代过程

 
使用过滤后的初始注释,我们训练了一个处理数据序列的多任务模型。在对训练图像评估该模型时,我们发现其预测显著增强,特别是在原始标签因不准确或多余噪声(如替代文本)而受损的情况下。受这些发现的启发,我们将这些更新的注释与原始注释结合,并对模型进行另一次训练迭代。这个循环精炼过程逐步提高了我们训练数据集的质量。

对于由于缺乏足够数据而在初始注释阶段被绕过的任务,我们利用迭代训练的模型进行预训练。随后使用稀疏数据集对该预训练模型进行微调,展示了比从头开始在相同数据上训练的模型更优的性能。因此,我们利用微调后的模型作为专业模型来注释我们包含 1.26 亿张图像的庞大数据集,确保全面的注释覆盖。

4.3. 注释特定的变体

 
在第 4.2 节中,我们介绍了我们的通用注释工作流程。本节深入探讨每种注释类型及其相应的注释程序变体。

文本

 
文本注释根据三种粒度对图像进行分类:简要、详细和更详细。简要文本仅包含一句话,展示最显著的对象和活动,类似于 COCO caption 。相比之下,详细文本和更详细文本包含多句话,描述图像中的更丰富的对象、属性和动作。

对于简要文本,Florence-2 模型作为专家在公开可用的图像描述和图像文本数据集上进行训练,创建一个图像到文本的模型用于初始注释。迭代精炼用于最小化这些文本中的噪声。对于详细文本,包含现有图像注释(如简要文本和区域-文本注释)的提示被输入到大型语言模型(LLMs)或大型多模态模型(LMMs)中,以生成全面的描述。由于大型模型的高成本,仅生成了一小部分详细文本和更详细文本。这些用于微调描述专家,开发出一个详细描述专家用于进一步注释。

区域-文本对

 
区域-文本对为图像中的语义区域提供描述性文本注释。语义区域包括视觉对象的区域以及文本区域。区域由紧密包围该区域的边界框表示。此外,每个区域可以用不同程度的粒度进行注释,包括短语和句子,从而对该区域有更丰富的理解。

区域-文本对的注释方式因文本区域和视觉对象区域而异。文本区域使用 Azure AI Services 的 OCR API 进行标注,而视觉对象最初使用在公共数据集上训练的 DINO 物体检测器 进行标注。数据过滤,包括置信度阈值和非极大值抑制,去除噪声框。视觉对象区域的文本注释通过从图像到文本模型生成的裁剪图像区域的简要文本进一步丰富。每个区域然后接收三个文本注释:对象类别的短语、简要文本和简要文本中的名词短语块。Florence-1 [95] 模型确定与每个图像区域最相似的文本注释。

文本-短语-区域三元组

 
文本-短语-区域三元组包括图像的描述性文本、与图像对象相关的文本中的名词短语以及这些对象的区域注释。文本包括之前生成的简要、详细和更详细的文本。对于每个文本,Grounding DINO 模型 [50] 识别名词短语并为其创建边界框。此外,SAM 模型 [32] 为每个框生成分割掩码,提供更精确的对象定位。在数据过滤过程中,对名词短语和边界框应用置信度分数阈值以确保相关性。还使用黑名单排除无关的名词短语,如代词和抽象概念。

五. 数据集

 
本节介绍我们使用第 4 节中的数据引擎构建的 FLD-5B 数据集的统计数据和分析。我们首先概述数据集并将其与最近的工作进行比较。然后,我们展示详细注释统计数据、语义覆盖和空间覆盖的进一步分析。

5.1. 概述

 
根据数据引擎,我们构建了一个大规模训练集(FLD-5B),包含 1.26 亿张图像、超过 5 亿个文本注释、13 亿个区域-文本注释和 36 亿个文本短语-区域注释。每张图像都带有文本、区域-文本对和文本-短语-区域三元组注释,每种注释类型都有多个实例,具有不同的粒度。图 4 展示了一个图像及其相应注释的示例。

我们在表 1 中提供了我们的数据集与现有常用于训练基础模型的数据集的比较。我们的数据集在多个方面具有优势,例如总注释数量和每张图像的注释数量更多。此外,我们的数据集中的注释跨越多个空间和语义粒度级别,这使得更为多样和全面的视觉理解任务成为可能。

5.2. 数据分析

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

首先,我们有大约 5 亿个文本注释,包括简要、详细和更详细的文本,长度各不相同。值得注意的是,我们的详细和更详细文本的标记数量分别是简要文本(类似于 COCO captions)的 4 倍和 9 倍。这些冗长的注释为全面的视觉理解提供了更丰富的信息。

此外,我们的数据集有大约 13 亿个区域-文本注释,比学术界的物体检测数据集(如 OpenImages [40] 和 Object365 [70])大 30 倍以上。平均每张图像有大约 5 个区域,每个区域都用短语或相对较长的简要文本进行注释。请注意,区域简要文本(平均 2.55 个标记)比典型的简要文本注释(平均 7.95 个标记)要短,因为区域简要文本注释实际上包括基于 Florence-1 分数的短语、名词块和简要文本的混合。更多细节可以在第 4.3 节 - 区域-文本对中找到。

此外,我们收集了文本-短语-区域注释,包括 36 亿个短语-区域对,用于 5 亿个文本注释。具体来说,简要文本注释平均有 4.27 个短语-区域对,而详细和更详细的文本注释有超过 10 对,表明更丰富的文本注释覆盖了文本中更多的对象及其对应的短语。

语义覆盖

 
我们的文本注释包括各种文本类型,涉及不同层次的细节。为了评估语义覆盖,我们使用 SpaCy进行标记化和解析,灵感来自 DiHT。这个过程生成了词性(POS)标签和标记之间的依存解析树。我们基于 POS 标签建立了启发式规则,将标记分类为语义元素类型,例如对象、属性、动作和专有名词。此外,我们引入了标记复杂性的概念,通过将依存解析树视为无向图来测量标记的总度数。这种复杂性反映了语义连接的丰富性。在我们的研究中,我们重点测量对象和动作的复杂性。

表 3 展示了语义元素的平均数量及其相应复杂性的统计数据。结果表明,随着文本注释中包含更多细节,所有测量值都增加。值得注意的是,动作的平均值显著增加,详细和更详细的文本分别比简要文本增加了 7 倍和 15 倍,这突显了传统简要文本注释在描述图像动作方面的局限性。相反,专有名词的增量相对较低,可能是因为专家通常更一般地描述对象,而不是使用特定的专有名词。在复杂性测量方面,对象和动作在详细文本注释中显示出更多的语义连接。动作的复杂性显示出更高的改进,与我们观察到的动作数量增加一致。

空间覆盖

 
我们的区域-文本和文本-短语-区域注释通过边界框和掩码捕捉图像中视觉概念的位置。图 5a 显示的框面积分布揭示了区域-文本对中更多的小框和文本-短语-区域三元组中均匀的框大小分布。这种差异源于这些框的不同起源:区域-文本对的物体检测器和文本-短语-区域三元组的定位模型,这些模型将框与表示局部和整体图像概念的文本短语对齐。图 5b 显示了纵横比的对数格式分布。区域-文本对和文本-短语-区域三元组显示出相似的对称分布,覆盖了广泛的纵横比范围。图 5c 和 5d 显示的每种注释类型的框中心热图表明中心偏置,区域-文本对显示出比文本-短语-区域三元组更均匀的分布。

六、. 实验

 
 Florence-2 模型在 FLD-5B 上训练,以学习通用的图像表示。我们将实验分为三个主要部分:(1) 我们评估方法在各种任务上的零样本性能,展示其无需额外微调任务特定数据即可处理多任务的内在能力,使用单一通用模型。(2) 我们展示方法的适应性,通过在广泛任务上进一步训练单一通用模型,使用额外的监督数据,达到竞争性的最先进性能。(3) 我们检查所学视觉表示在下游任务中的性能,展示我们预训练方法的优越性。

6.1. 设置

 
我们研究了两个不同大小的模型变体:Florence-2-B 模型(232 百万参数)和 Florence-2-L 模型(771 百万参数)。每个模型的详细架构见表 15。我们分别从 UniCL和 BART 初始化图像编码器和多模态编码器-解码器的权重。

我们采用 AdamW优化器,并使用余弦学习率衰减 进行模型训练。我们利用 Deepspeed  和混合精度来提高训练效率。基础模型的最大学习率设为 1e-4,大模型的最大学习率设为 1e-5。在前 5000 次优化步骤中,应用线性预热到最大学习率。

我们使用 2048/3072(基础/大)的小批量大小和 384×384 的图像大小训练模型,直到达到 30 亿有效训练样本。我们进一步进行高分辨率调优,使用 768×768 的图像大小,基础模型训练 5 亿样本,大模型训练 1 亿样本。

6.2. 跨任务的零样本评估

 
我们展示了一个强大的视觉基础模型,不需要任务特定的监督注释进行微调。表 4 显示了我们模型的零样本性能。对于图像级任务,Florence-2-L 在 COCO caption 基准测试上达到了 135.6 的 CIDEr 分数,使用的参数不到 80B Flamingo模型(84.3 CIDEr 分数)的 1%。对于区域级定位和指代表达理解任务,Florence-2-L 在零样本性能上创下新纪录,在 Flickr30k [61] Recall@1 上提高了 5.7,在 Refcoco、Refcoco+ 和 Refcocog [94] 上分别提高了约 4%、8% 和 8%,相比于 Kosmos-2 [60] 模型(1.6B 参数)。此外,我们的预训练模型在 Refcoco 指代表达分割(RES)[94] 任务中达到了 35.8% 的 mIOU,这是之前的基础模型所不支持的能力。


6.3. 使用公共监督数据的通用模型

 
我们展示了我们模型作为视觉基础模型的多功能性和有效性,可以转移到各种下游任务。我们通过添加覆盖图像级、区域级、像素级任务的公共数据集来微调 Florence-2 模型,生成一个通用模型用于各种视觉任务。数据集集合的详细信息见附录 B。表 5 和表 6 将我们的模型与其他最先进模型进行了比较。我们的主要发现是:

  • 简单设计,强大性能。Florence-2 在标准多模态 Transformer 编码器-解码器中表现出色,无需特殊设计,特别是在区域级和像素级任务中。例如,Florence-2-L 在 RefCOCO REC 任务和 RES 任务中分别比 PolyFormer [49] 高出 3.0 Accuracy@0.5 和 3.54 mIOU,而 PolyFormer [49] 采用了专门设计的基于回归的坐标预测头。Florence-2-L 还在 RefCOCO 上比之前的 SOTA 方法 UNINEXT [84] 高出 0.8 Accuracy@0.5,UNINEXT [84] 基于先进的物体检测器 Deformable DETR [100] 和 DINO [97]。

  • 更少参数,竞争性能。Florence-2-L 在不需要 LLMs 的情况下实现了竞争性能,展示了在处理多样任务时的效率,同时保持紧凑的尺寸。例如,Florence-2-L 在 COCO Caption karpathy 测试集 [30] 上达到了 140.0 的 CIDEr 分数,超过了参数显著更多的模型,如 Flamingo(80B 参数,138.1 CIDEr 分数)。

  • 跨任务级别的适应性泛化。Florence-2 在图像级、像素级和区域级任务中表现出竞争性能,强调了其在应对计算机视觉和自然语言处理中的各种挑战时的适应性和有效性。例如,在 TextVQA 任务中,Florence-2-L 以 81.5 的准确率创下了新的最先进性能,超过了之前的 SOTA 方法 [12, 15],且无需外部 OCR 标记输入。



    这些成就强调了 Florence-2 在处理多样任务时的效率,同时保持紧凑的尺寸,使其在不断发展的 AI 研究和应用领域中成为独特且有价值的资产。



6.4. 下游任务微调

 
在本节中,我们研究了单一模型在下游任务上的微调性能。此实验突显了 Florence-2 预训练的优越性,因为它展示了所学通用图像表示的有效性。我们在实验中使用了约 80M 参数的基础模型,以确保与其他方法的公平比较。

物体检测和分割

 
我们使用 Mask R-CNN进行 COCO 物体检测和实例分割 [48] 实验,并使用 DINO 进行 COCO 物体检测 [48] 实验,以进一步展示 Florence-2 预训练的有效性。我们在 train2017 集上训练,并在 val2017 集上评估。对于 Mask R-CNN [26] 实验,我们遵循 [51, 97] 中使用的常见设置,所有实验使用标准的 1×(12 轮)计划和多尺度训练。学习率在训练轮次的 67% 和 89% 时分别下降 0.1 倍。为了确保公平比较,我们在训练期间不使用任何额外的增强(如随机裁剪、马赛克等)或优化技术(如 EMA、权重归一化)。我们也不使用任何测试时增强(TTA)。得益于 Florence-2 预训练所学的强大通用表示,我们不需要更长的训练轮次,如 [51, 81, 85, 86] 中的 36 轮,或 [46] 中的 100 轮,即可获得更好的结果。

对于 DINO实验,我们使用与 相同的数据增强策略,训练 DINO-4scale 检测器 12 轮(1×)。

语义分割

 
我们在 ADE20k数据集上使用 UperNet 框架进行语义分割实验。我们主要遵循 Swin  的训练和评估协议。具体来说,我们使用 512×512 的输入大小,训练模型 40k 次迭代,批量大小为 64。我们采用 AdamW [54] 优化器,最佳学习率从 {8e-4, 4e-4, 2e-4, 1e-4} 中搜索。

我们的结果显示出与物体检测实验类似的趋势。如表 9 所示,我们的基础模型在单尺度和多尺度测试协议中分别比之前的 SoTA 模型(BEiT 预训练的 ViT-B [4])高出 1.3 和 1.4 分。使用相同的 DaViT-B 骨干架构,Florence-2 预训练模型相比于 ImageNet-1k 预训练的对照模型,展示了显著的 4.9 分提升和 4 倍效率,如表 8 和图 6 所示。



6.5. 消融研究 Ablation Studies

 

“消融研究”(Ablation Studies)是一种在机器学习和深度学习研究中常用的实验方法。这种方法的目标是理解模型的各个部分对最终性能的贡献有多大。

在消融研究中,我们会逐一移除模型的各个部分或者特性,然后观察这些改变对模型性能的影响。例如,我们可能会移除模型的某一层,或者改变模型的某个超参数,然后比较模型的性能是否有所下降。通过这种方式,我们可以了解到哪些部分或者特性对模型的性能至关重要,哪些则不那么重要。


多任务迁移 Multitask transfer.

 
在这项研究中,我们旨在确定最有效的预训练模型,以便在计算机视觉的各种下游任务中进行迁移学习。我们比较了三种不同的模型,每种模型在不同的任务组合上进行了预训练:

  • 图像级模型:仅在图像级任务上预训练

  • 图像-区域模型:在图像级和区域级任务上预训练

  • 图像-区域-像素模型:在图像级、区域级和像素级任务上预训练

    在预训练过程中,我们在 FLD-5B 数据集的一个子集上优化所有模型,使其具有相同数量的有效样本(7200 万)。

    然后,我们将这些模型转移到一个包含四个下游任务的组合数据集,每个任务代表不同的任务粒度级别:COCO caption(图像级任务)、COCO object detection(区域级任务)、Flickr30k grounding(区域级任务)、RefCOCO referring segmentation(像素级任务)。

    结果如图 7 所示。结果表明,在所有三个级别的任务上预训练的图像-区域-像素模型在四个下游任务中始终表现出竞争力。

    对于 COCO caption 任务,图像-区域-像素模型最初表现不如图像级模型和图像-区域模型,但最终达到了 133.4 的 CIDEr 分数,仅略低于其他模型(134.6 CIDEr)。

    对于 COCO object detection 任务,图像-区域-像素模型显著优于图像级模型(28.3 vs. 0.1),仅略低于图像-区域模型(29.7)。

    对于 Flickr30k grounding 任务,图像-区域-像素模型表现出强劲的性能(78.1 recall@1),与图像-区域模型(79.1 recall@1)相当,显著优于图像级模型(62.0 recall@1)。

    对于 RefCOCO referring segmentation 任务,图像-区域-像素模型明显优于图像级模型和图像-区域模型,达到了最高的性能(31.6 mIoU),相比其他模型(28.4 和 18.2 mIoU)。

    我们的研究结果表明,在图像、区域和像素级任务上预训练的图像-区域-像素模型是跨各种计算机视觉任务进行迁移学习的最有效基础模型。该模型在我们评估的所有四个下游任务中表现出强劲的性能,并且在性能上始终优于图像级模型,并且与图像-区域模型相匹配或超过其性能。通过在不同粒度级别的任务上预训练模型,我们可以确保基础模型更好地处理各种下游任务,提供一个多功能且强大的解决方案,用于计算机视觉中的迁移学习。

模型扩展

 
我们旨在研究增加模型容量对计算机视觉中各种下游任务零样本性能的影响。我们比较了两个模型:Florence-2-B 和 Florence-2-L,分别具有 232M 和 771M 参数。模型架构如表 15 所示。我们在表 10 中展示了四个下游任务的零样本性能。大模型在各种下游任务中明显优于基础模型。

数据扩展

 
我们进行了实验,研究预训练数据规模对各种计算机视觉任务零样本性能的影响。我们使用了四种不同的数据规模进行预训练:0.12M、0.36M、1.2M 和 12M 图像。所有模型在 FLD-5B 数据集的一个子集上以相同的有效样本大小(7200 万)进行训练。

表 11 展示了 COCO caption、COCO object detection、Flickr30k grounding 和 RefCoco referring segmentation(RES)任务的零样本性能结果。我们可以观察到,随着预训练数据规模的增加,下游任务的零样本性能呈现出改善的趋势(除了 RES,1.2M 数据的性能略优于 12M)。

我们的数据扩展实验表明,较大的预训练数据规模通常会导致计算机视觉中各种下游任务的零样本性能提高。这一发现表明,投资于更大的预训练数据集可以为处理广泛的下游任务提供更有效和多功能的基础。

我们的数据扩展方法比单纯依赖人工注释更为高效,因为大多数注释生成是通过模型推理完成的。通过利用专业模型生成注释,我们可以大大减少与人工注释相关的时间和成本,这通常涉及劳动密集型过程,并可能受到人为错误或不一致的影响。

此外,利用模型生成的注释使我们能够更快速和高效地扩展预训练数据集,从而探索更大数据规模对模型性能在各种下游任务中的影响。这不仅促进了更有效和多功能的基础模型的发展,还确保了注释过程在高质量标注数据需求不断增长的情况下保持可持续和可扩展。

总之,我们的数据扩展方法通过利用专业模型生成注释,提供了一种比传统人工注释方法更高效的替代方案。这一策略使我们能够加速预训练过程,优化模型性能,并有效管理计算机视觉领域对标注数据日益增长的需求。

训练设置

 
我们分析了模型的两个主要组件,即视觉编码器和多模态编码器-解码器的基本模型训练设置。实验结果如表 12 所示。

我们观察到,冻结视觉编码器不会影响需要图像级理解的任务的性能,但会显著降低需要区域级或像素级理解的任务的性能(例如,COCO object detection 的 AP 从 19.7 降至 6.9)。之前的视觉基础模型预训练方法主要关注图像级任务(例如,图像分类 [27, 38],图像-文本对比学习 [64, 95]),这可能无法为下游任务提供足够的区域级和像素级技能。因此,解冻视觉骨干网络,使其能够学习区域级和像素级特征,对于各种下游任务至关重要。

多模态编码器-解码器任务中语言预训练权重的效果因任务而异。需要更多文本理解的任务(如图像描述和定位)从使用语言预训练权重中略有受益(例如,COCO caption,Flickr30k grounding)。主要以视觉为主的任务(如物体检测和区域分割)从使用语言预训练权重中获益不大(对于 COCO object detection,增益仅为 0.1;对于 RES 任务,仅使用定位标记,下降了 2.91 mIOU)。

我们研究了不同训练配置对基础模型在区域级和像素级任务中性能的影响。我们发现,解冻视觉骨干网络对于增强模型从区域和像素中学习的能力至关重要,这对于转移到各种下游任务非常有利。此外,我们观察到,使用语言预训练权重可以帮助模型在需要文本理解的任务中,但对纯粹基于视觉的任务影响较小。这些结果为选择不同计算机视觉任务的最佳训练设置提供了有用的指导。

七 相关工作

 

7.1. 视觉-语言基础模型

 
最近的视觉-语言预训练模型通过对比学习目标提取的视觉和文本嵌入的对齐,展示了令人印象深刻的零样本迁移能力,适用于视觉-语言对齐和图像分类任务。这些模,在弱监督的大规模图像-文本数据上训练,进一步扩展到更多下游任务,如物体检测,通过任务特定的适应头实现了最先进的性能。

相比之下,其他研究提出使用多模态解码器以自回归方式预测文本,采用语言建模预训练目标。融合视觉和语言嵌入的技术各不相同:GIT将视觉和文本标记连接作为解码器输入,并设计了一个因果注意力掩码;CoCa使用带有可学习查询的注意力池选择任务特定的视觉表示,然后通过解码器进行交叉注意;Flamingo使用 Perceiver Resampler 池化固定数量的视觉标记,并在冻结的预训练视觉编码器和文本解码器上添加新的可学习交叉注意层。

除了图像描述预训练任务外,一些研究 尝试在统一的序列到序列学习范式中制定更多的视觉任务,包括物体检测和图像分割。定制的特殊标记适应了超越纯文本的表示,例如边界框。这种方法在预训练和下游任务中使用相同的架构,可能使用相同的一组权重进行所有任务。我们的方法属于这一类别,旨在获得理解密集信息的基础模型,超越简单的图像级描述。它与其他多模态编码器-解码器模型共享相同的编码器-解码器设计,适应序列到序列学习,但使用我们构建的大规模综合注释数据,而不是结合现有的稀疏注释数据。

7.2. 视觉数据集

 

综合注释

 
对视觉场景的全面理解是计算机视觉的圣杯,已经从关注单一视角的个别数据集(例如图像分类)演变为为每个视觉数据点提供多视角的综合注释。著名的数据集如 MS-COCO 和 Visual Genome集成了各种类型的注释,使得在空间和语义粒度上的理解更加丰富,并且模型在注释之间的交互更好。然而,由于人工验证的高成本,这些注释的规模有限。我们的数据集虽然规模庞大,但保持了覆盖文本、区域-文本对和文本-短语-区域三元组的综合注释,减少了人工参与。

可扩展注释

 
在过去的十年中,视觉数据集迅速从数千 扩展到数十亿,以涵盖更多的视觉概念,从而更好地泛化。这一转变在最近使用大量数据的基础模型中尤为明显 。这些大型数据集通常从网络上收集图像,并从相应的元数据中解析出噪声注释,例如从查询中获取类别标签,从替代文本中获取简短描述,以及从交错文本中获取详细描述。尽管它们多样化,但这些注释存在随机性和类型有限(即仅文本)的缺陷。一些工作尝试使用迭代训练模型生成伪标签来扩展注释,这提供了更高的质量而不会显著丧失多样性。我们的数据管道扩展了这些大规模、网络抓取的噪声注释,使用多个专业模型生成的高质量自主注释。管道迭代地精炼标签并完成缺失部分,最终生成一个可扩展且综合的数据集,用于学习统一的视觉表示。

8. 结论

 
Florence 项目致力于开发一个具备多种感知能力的基础视觉模型,涵盖空间层次和语义粒度。为此,我们构建了包含 1.26 亿张图像和 50 亿个综合注释的 FLD-5B 数据集,这些注释由 Florence 数据引擎收集。随后,我们通过综合多任务学习在这个丰富的数据集上预训练 Florence-2。Florence-2 展示了跨广泛视觉任务(如图像描述、物体检测、视觉定位和指代表达分割等)的显著零样本能力。实验结果强调了 Florence-2 预训练的通用表示的强大,揭示了其对多种下游任务的显著贡献。


大魏分享
https://github.com/davidsajare/david-share.git
 最新文章