论文引言
标题: VinVL: Revisiting Visual Representations in Vision-Language Models (VinVL: 重新审视视觉-语言模型中的视觉表示)
作者: Pengchuan Zhang, Xiujun Li, Lijuan Wang, Xiaowei Hu, Yejin Choi, Jianwei Yang, Jianfeng Gao, Lei Zhang
发表: CVPR 2021
这篇论文的核心论点是,在视觉-语言(Vision-Language, VL)研究领域,先前的工作主要集中在改进融合视觉和语言信息的模型上,而很大程度上忽略了视觉特征本身质量的重要性 。作者们通过详细的实验证明,提升视觉表示的质量,能够极大地推动VL各项任务的性能,并创造新的性能水平(State-of-the-Art, SOTA)。
核心问题
在VinVL论文发表之前,大多数视觉-语言预训练(Vision-Language Pre-training, VLP)模型普遍采用一个固定的、预训练好的物体检测(Object Detection, OD)模型来提取图像特征 。其中,由Anderson等人 开发的、在Visual Genome (VG) 数据集上训练的"Bottom-up and Top-down"模型是应用最广泛的特征提取器 。这个OD模型在许多VL研究中被当作一个“黑盒”使用,其本身在近三年内未得到改进 。
研究者们将精力主要投入到设计更复杂的跨模态融合架构上(例如,各种基于Transformer的融合模型),而视觉模块的性能瓶颈却被忽视了 。VinVL正是要解决这一“重语言、轻视觉”的失衡问题,系统地探究并证明了视觉特征在VL模型中至关重要 。
核心贡献
这篇论文的主要贡献可以概括为以下三点:
- 开发了更强大的物体检测模型:作者构建了一个专为VL任务设计的、更大、更优的物体检测模型。该模型在四个大型公开数据集上进行预训练,能够识别更丰富的物体类别和属性 。
- 刷新七项VL任务的SOTA记录:通过将新的视觉特征输入到一个改进的VL融合模型(OSCAR+)中,VinVL在VQA、GQA、图像描述、图像-文本检索等七个主流VL任务上均取得了显著的性能提升,全面超越了以往的SOTA模型 。
- 提供了详尽的消融实验与分析:论文通过一系列严谨的消融研究,深入分析了不同设计选择(如模型架构、数据规模、物体/属性词汇量等)对最终性能的影响,为“为什么高质量视觉特征如此重要”提供了坚实的证据 。
方法论详解
VinVL的整体框架遵循两阶段模式:一个强大的视觉理解模块 (Vision) 用于提取特征,以及一个跨模态理解模块 (VL) 用于融合信息 。论文的重点是对前者进行了根本性的改进。
1. 视觉表示的改进 (The “Vin” in VinVL)
作者没有使用现成的OD模型,而是从数据、架构和训练策略上构建了一个全新的模型。
-
数据集的构建与统一:
- 数据源: 融合了四个互补的公开数据集:COCO、Visual Genome (VG)、Objects365 和 OpenImages 。这些数据集在规模、类别词汇和标注质量上各有优劣(例如,VG有丰富的类别但标注有噪声,而COCO标注质量高但类别少)。
- 数据整合: 为了平衡不同数据集的贡献并增强尾部类别的学习,作者采用了加权复制和类别感知采样(class-aware sampling)策略 。
- 词汇统一: 通过将不同数据集的类别名与VG的词汇进行匹配和合并,最终创建了一个包含1848个物体类别的统一词汇表 。
-
模型架构选择 (C4 vs. FPN):
- 尽管Feature Pyramid Network (FPN) 在通用物体检测中通常优于C4架构,但作者通过实验发现,对于VL任务,C4架构能提供更有效的区域特征 。
- 原因主要有两点:1) C4的区域特征提取层可以直接受益于ImageNet预训练的权重,而FPN的MLP头需要从头训练,这在数据量相对不足的VG上训练效果不佳 。2) C4的卷积头比FPN的全连接(MLP)头具有更好的归纳偏置(inductive bias),更适合编码视觉信息 。
-
训练策略:
- 预训练: 在整合后的海量数据集上预训练一个基于ResNeXt-152 C4的OD模型 。
- 属性注入与微调: 在预训练后,模型在Visual Genome (VG) 数据集上进行微调,并额外增加一个属性分支,使其能够检测524个属性类别。微调时增大了属性损失的权重,以侧重于学习属性信息 。
-
高效的特征提取:
- 为了解决因类别增多导致的非极大值抑制(NMS)耗时过长的问题,作者用类别无关(class-agnostic)NMS替换了传统的类别感知(class-aware)NMS,极大地提升了特征提取的速度,且不影响下游任务的精度 。
2. 视觉-语言预训练 (OSCAR+)
在获得了高质量的视觉特征后,作者将其输入到一个改进版的VL模型OSCAR+中进行预训练 。
- 预训练数据: OSCAR+的预训练语料库包含885万个“文本-标签-图像”三元组,来源广泛,包括图像描述、视觉问答和图像标注数据集 。
- 创新的3路对比损失 (3-way Contrastive Loss):
- 与OSCAR中使用的二元对比损失不同,OSCAR+提出了一种新颖的3路对比损失 ( L C L 3 \mathcal{L}_{CL3} LCL3) 。
- 该损失函数将模型训练成一个3路分类器,需要判断输入的三元组是“匹配的”,还是“文本被污染的”,或是“标签/答案被污染的” 。
- 这种设计巧妙地统一了“图文匹配”任务和“VQA”任务的学习目标,使得预训练模型能够更好地迁移到这两种不同类型的下游任务上 。
实验结果与分析
主实验结果
VinVL在参与评测的全部七个VL基准测试中,均取得了SOTA成绩,并且在多数任务上实现了大幅度的性能提升 。
- VQA (视觉问答): 单个VinVL大模型(OSCAR+L)的准确率达到了76.60% (test-std),超越了当时VQA排行榜上所有的模型,包括集成模型 。
- GQA (组合式问答): VinVL是第一个超越专门为GQA设计的、包含复杂推理模块的NSM模型的VLP模型 。
- 图像描述 (Image Captioning): 在COCO在线测试中,VinVL的单个模型在提交时排名第一,超过了263个其他模型(包括许多集成模型)。
- NoCaps (新物体描述): 即使不经过VL预训练,仅使用VinVL的新视觉特征进行训练,其性能已经超过了人类在CIDEr指标上的表现 。
- 统一提升: 一个关键的发现是,仅仅将基线模型(如OSCAR)的视觉特征替换为VinVL的特征,就能在所有七个任务上带来一致且显著的性能提升 。
消融实验分析
消融实验是这篇论文的精华所在,它清晰地揭示了性能提升的来源。
- 视觉 vs. VL预训练的贡献:在VQA任务上,从基线OSCAR模型到最终的VinVL模型,总性能提升中约95%归功于改进的视觉特征,而改进的VL预训练方法(OSCAR+)的贡献约为5% 。这强有力地证明了视觉表示是性能的主要贡献者。
- 数据和模型规模的重要性:实验表明,使用四个数据集整合后的大规模数据进行训练,比仅使用VG数据集训练的模型性能要好得多,并且模型尺寸越大,性能提升越明显 。
- 物体和属性词汇的重要性:
- 与仅包含常见物体(如COCO 80类)的词汇表相比,包含更丰富概念(如天空、山脉、水等)的VG词汇表能带来更好的性能 。这说明VL任务需要比传统OD任务更丰富的视觉语义来与语言对齐 。
- 增加了属性信息(如颜色、状态等)后,模型性能得到显著提升,证明属性对于精细化的视觉理解至关重要 。
论文意义与影响
VinVL的发表对视觉-语言领域产生了重要的影响:
- 范式转变: 它将社区的研究焦点从单纯追求更复杂的融合模型,拉回到了重视和提升视觉特征质量这一根本问题上。它证明了高质量的视觉基础是实现更高层次跨模态智能的关键。
- 新的基准: VinVL提供的预训练OD模型和提取出的特征,成为了后续许多VL研究的新基准和强大工具,推动了整个领域的发展。
- 实践指导: 论文详尽的分析为后续研究者提供了清晰的指导,即通过整合更多样化的数据、使用更丰富的语义词汇和优化模型设计,可以有效地提升视觉表示的能力。
这篇论文的核心本质在于,它指出了过去视觉-语言(VL)研究领域的一个根本性误区:大家过度专注于设计日益复杂的模型来融合视觉和语言信息,却普遍忽视了作为输入源头的“视觉表示”本身的质量瓶颈 。VinVL的解决方案是“返璞归真”,不再将视觉特征提取器视为一个固定的“黑盒” ,而是投入巨大努力从根本上对其进行革新 。作者为此构建了一个全新的、规模空前的物体-属性检测模型,它融合了四个大型数据集(COCO、OpenImages、Objects365、VG) ,能够识别和理解多达1848类物体和524类属性 ,从而为下游任务提供前所未有地丰富、细粒度的视觉输入。
其最终的贡献和价值在于,通过无可辩驳的实验证明了这一“重视觉”策略的巨大成功。当把这些高质量的新视觉特征输入到VL模型后,所有七项主流任务(如VQA、GQA、图像描述等)的性能均获得了大幅提升,全面刷新了业界纪录 。论文中最具冲击力的结论来自其消融分析:在VQA任务的性能提升中,约95%的功劳都来自于这个更强大的视觉模型,而对融合算法的改进仅占5% 。这一发现一针见血地揭示了论文的本质:在视觉-语言任务中,高质量的视觉基础(看懂图像)远比后续花哨的融合技巧(理解图文关系)更为重要,为整个领域未来的发展指明了方向——必须首先建立在坚实可靠的视觉理解之上。
《VinVL》是一篇里程碑式的工作。它通过无可辩驳的实验结果,清晰地传达了一个核心信息:在通往更高水平的视觉-语言智能之路上,高质量的视觉表示不是一个可选项,而是一个必需品。通过构建一个在更大规模、更多样化数据上训练的、拥有更丰富语义词汇的物体-属性检测模型,VinVL为整个领域设立了新的性能标杆,并深刻地影响了后续的研究方向。
可以将其拆解为两个核心部分:第一部分是构建更强大的“眼睛”(即视觉模型),第二部分是训练更聪明的“大脑”(即图文融合模型)。
第一部分:如何构建更强大的视觉模型(The “Vin” in VinVL)
这是整篇论文的基石和最大创新点。作者不再使用旧的“黑盒”视觉模型,而是从数据、架构、训练和效率四个方面,精心打造了一个专为视觉-语言(VL)任务设计的物体-属性检测模型。
A. 数据集:从单一食材到“满汉全席”
过去的方法通常只在Visual Genome (VG) 这一个数据集上训练,食材单一。VinVL则像一位大厨,融合了四种顶级食材,创造出营养更丰富的“数据大餐”。
-
四大食材来源:
- COCO: 标注质量极高,但物体类别较少(80个物体+91个“物品”类)。
- Visual Genome (VG): 核心食材,提供了极为丰富的物体(1594类)和属性(524类)词汇,但标注存在噪声和缺失问题 。
- Objects365: 提供中等规模的物体类别(365类),数据量较大 。
- OpenImages V5 (OI): 提供另外500个物体类别,数据量巨大 。
-
烹饪手法(数据处理技术):
- 类别感知采样 (Class-aware Sampling): 针对Objects365和OpenImages中常见类别样本过多、稀有类别样本过少(即“长尾问题”)的情况,进行特殊采样,确保每个类别至少有2000个训练实例,让模型能“雨露均沾”,看见更多样的物体 。
- 数据集加权平衡: 为了防止OpenImages等超大数据集在训练中“喧宾夺主”,作者对数据量较小的COCO和VG进行了8倍复制,Objects365则复制2倍,从而平衡了不同数据源在每个训练周期中的贡献 。
- 统一词汇表: 以VG的丰富词汇为基础,通过类别名和别名匹配,将其他三个数据集的类别融入进来,无法匹配的则作为新类别添加。最终,打造了一个包含1848个物体类别的庞大词汇库 。
B. 模型架构:为何选择“过时”的C4而非更流行的FPN?
这是一个非常关键且反直觉的技术选择。当时,FPN(特征金字塔网络)在通用物体检测领域已是主流且性能更优,但VinVL坚持使用了看似“过时”的C4架构。
- C4架构的优势在于VL任务:
- 更充分地利用预训练知识: 在C4架构中,用于提取区域特征的卷积层全部继承自ImageNet预训练的权重,基础非常扎实 。而FPN的检测头包含一些新建的MLP(全连接层),这部分需要从头开始训练,但VG数据集本身还不够大,不足以将这些新层训练得足够好 。简单来说,C4的“家底”更厚实。
- 更好的归纳偏置 (Inductive Bias): C4的检测头是卷积结构,天然适合处理具有空间结构的视觉信息 。而FPN的检测头是MLP结构,对于视觉任务来说,其内在的结构假设不如卷积头有效 。好比处理图像,卷积头是“专业工具”,MLP则更像“通用工具”。
最终,作者选用了ResNeXt-152 C4作为骨干网络,这是一个既深且强大的C4变体 。
C. 训练策略:两阶段学习法
作者采用了“先学通用物体,再学精细属性”的两阶段策略 。
- 第一阶段:物体预训练: 在前面整合好的、包含1848个物体类别的“数据大餐”上,从一个在ImageNet-5K上预训练过的模型开始,进行长达180万步的训练 。这个阶段让模型学会识别海量的、通用的物体。
- 第二阶段:属性注入与微调: 在预训练好的模型上,增加一个专门的“属性分支”,然后在VG数据集上进行微调,目标是学会识别524个属性类别(如“蓝色的”、“木制的”、“站立的”等)。这里的技术关键是,他们将属性损失的权重设得非常高(1.25),远超之前工作的0.5,这等于在告诉模型:“这个阶段别的不用太管,请集中精力学习属性!” 。
D. 效率优化:让模型跑得更快
模型能识别的类别多了,一个实际问题是推理速度会变慢,尤其是在“非极大值抑制”(NMS)这一步,它需要剔除重叠的检测框。
- 解决方案: 使用类别无关(Class-agnostic)NMS 。传统方法是按类别逐一进行NMS,1848个类别就要做1848次。而类别无关NMS则不管框是什么类别,把所有检测框放在一起,一次性完成去重。这极大地加快了特征提取的速度,并且实验证明对下游任务的精度没有负面影响 。
第二部分:如何更好地融合图文(OSCAR+)
有了强大的“眼睛”,还需要一个聪明的“大脑”来理解图文关系。作者改进了当时先进的OSCAR模型,提出了OSCAR+。
创新的预训练目标:3路对比损失 (3-way Contrastive Loss)
这是OSCAR+最核心的技术创新,旨在让模型同时擅长两种不同类型的VL任务:图文匹配和视觉问答。
- 传统二元损失: 之前的模型(如OSCAR)通常只学习一个二元分类任务:判断输入的{图,文}对是“匹配”还是“不匹配” 。
- VinVL的三元损失: OSCAR+将任务升级为一个更复杂的三分类问题。对于一个输入的三元组{文本w, 标签q, 图像v},模型需要判断其属于以下哪一类 :
- 正常样本 (c=0): 原始、完全匹配的三元组。
- 文本被污染 (c=1): 图像和标签是匹配的,但文本(如caption)被随机替换了 。这个任务迫使模型学习精确的图文匹配。
- 标签/答案被污染 (c=2): 图像和文本(如question)是匹配的,但标签或答案被随机替换了 。这个任务则模拟了视觉问答(VQA)中的答案选择 。
通过这种方式, L C L 3 \mathcal{L}_{CL3} LCL3损失函数让模型在预训练阶段就同时“演练”了两种核心下游任务的模式,因此在微调时能更好地适应这两种任务,泛化能力更强 。
VinVL通过极致的数据工程、精准的模型选型、巧妙的训练策略和高效的系统优化,打造了强大的VL视觉编码器,并配合一个更具泛化能力的融合模型,最终实现了全面的性能突破。
VinVL是一个 基于区域(region-based) 的视觉语言模型。
它的核心方法论就是先使用一个强大的物体检测(Object Detection, OD)模型来识别图像中的关键物体和有意义的区域,然后从这些区域中提取特征,再将这些区域特征与文本进行融合。
- 目标:论文开篇就提到,其目标是开发一个改进的物体检测模型,以提供以物体为中心的图像表示(object-centric representations of images) 。
- 特征提取方式:模型首先会检测出图像中的一系列边界框(bounding boxes) ,然后为每一个框(即区域)生成一个高维的特征向量 。论文明确指出,“我们交替使用‘区域’和‘框’这两个术语” 。
- 输入到融合模块: 视觉模块的输出
v
就是一组区域特征的集合 。每个区域特征不仅包含了该区域的视觉内容表示(一个2048维的向量),还包含了该区域的位置编码(一个6维的向量,包括边界框坐标、高度和宽度) 。这些区域特征(例如,每张图片最多50个)随后被输入到跨模态融合模型中 。 - 与网格特征的对比: 这种方法与基于网格(grid-based)的方法不同,后者将图像均匀切分成网格并为每个网格提取特征。VinVL的方法更为聚焦,因为它只关注图像中被认为在语义上重要的区域 。
因此,VinVL的整个流程——从物体检测到区域特征提取,再到跨模态融合——完全符合基于区域的视觉语言模型的定义。实际上,这篇论文的核心论点就是通过大幅提升这些“区域特征”的质量来推动整个视觉语言模型性能的提升 。
与基于区域 (Region-based) 的方法相对应,另一种主流的视觉语言模型方法是基于网格 (Grid-based) 的。
这两种方法的核心区别在于如何将图像转换成一系列可供Transformer模型处理的视觉“词汇”(tokens)。
基于网格特征 (Grid-based Features)
这种方法不依赖于一个独立的物体检测器来寻找特定物体。它的工作方式如下:
- 提取特征图:将整张图片输入一个标准的预训练卷积神经网络(CNN,如在ImageNet上训练的ResNet)。
- 获取网格:不取最终的分类结果,而是从网络的最后一个或某一个中间的卷积层输出中,提取一个二维的特征图(feature map)。这个特征图可以看作是一个包含了丰富空间信息的网格。
- 转换成序列:将这个二维的特征图“拍平”,变成一个一维的特征序列。网格中的每一个“格子”都对应一个高维特征向量,这个向量就代表了图像上相应位置的视觉信息。在VinVL论文的实验中,作者也使用了这种方法作为对比,从一个ImageNet分类模型中提取了最多273个网格特征 。
简单来说,这种方法就像是把图片切成一块块规则的“小方砖”,然后分别描述每一块“方砖”的样子,而不去特意识别这块方砖里到底是个“眼睛”还是“鼻子”。
与基于区域特征 (Region-based) 的核心区别
特征 | 基于网格 (Grid-based) | 基于区域 (Region-based) - VinVL所用 |
---|---|---|
分割方式 | 将图像分割成统一、规则的网格或图块 。 | 通过物体检测器识别出不规则、有语义的物体区域 。 |
特征含义 | 每个特征代表图像上的一个固定空间位置,不一定与特定物体对齐。 | 每个特征都明确对应一个被检测到的物体或有意义的部分(如一只猫、一片天空、一个人的脸) 。 |
依赖模型 | 依赖于一个通用的CNN(如分类模型)。 | 强依赖于一个专门训练的、强大的物体检测模型。 |
所以,当您想不起来时,可以记住这个对应关系:区域 (Region) 的对立面是 网格 (Grid)。前者关注的是“图里有什么东西”,而后者关注的是“图里每个位置是什么样子”。
像ALBEF(Align Before Fuse)这样的模型代表了视觉语言模型的另一个重要分支,它属于基于图块 (Patch-based) 的类别,可以看作是基于网格 (Grid-based) 方法的一种现代化和端到端的演进。
它与VinVL的基于区域(Region-based)方法有根本性的不同。
ALBEF 的方法:基于图块 (Patch-based)
ALBEF不使用一个独立的、预训练好的物体检测器。它的工作流程如下:
- 使用视觉Transformer (ViT):ALBEF的核心是采用Vision Transformer (ViT) 作为其视觉骨干 。
- 图像分块:ViT直接将原始输入图像分割成一个固定大小的网格,网格中的每一个单元被称为一个“图块”(Patch),例如16x16像素的方块 。
- 端到端学习:这些图块被当作视觉“词汇”(tokens),然后直接输入到Transformer编码器中进行学习。整个过程是端到端的,意味着模型从原始图像像素开始,直接学习如何提取和对齐视觉与文本特征,而不需要一个预先定义物体类别的检测器 。
ALBEF看图的方式,就像我们看一幅画,它直接处理每一块(Patch),并从中学习整体的视觉表示。
ALBEF 与 VinVL 的核心区别
ALBEF的设计正是为了解决VinVL这类基于区域模型的一些固有局限性。
特征 | VinVL (基于区域) | ALBEF (基于图块/网格) |
---|---|---|
视觉主干 | 物体检测器 (如 Faster R-CNN) | 视觉Transformer (ViT) |
图像处理 | 两阶段:先运行一个沉重的检测器找到物体,再从这些物体区域提取特征 。 | 端到端:直接将原始图像切分成图块并输入模型进行处理 。 |
视觉词汇 | 离散的、有明确语义的物体区域。 | 连续的、没有明确语义的图像图块。 |
主要限制 | 1. 受限于检测器预设的物体词汇表,无法识别新物体 。2. 两阶段流程计算成本高 。 | 1. 缺乏明确的物体级别概念,对于需要精细物体对齐的任务可能是个弱点。2. 需要在超大规模数据集上预训练才能学好。 |
- VinVL 走的是“先检测,再理解”的路线,它的视觉输入是“一堆被识别出的物体”。
- ALBEF 走的是“直接看,直接学”的端到端路线,它的视觉输入是“一堆原始的图像小方块”。
因此,ALBEF属于与VinVL并列的另一条技术路线,它代表了更简洁、更灵活的端到端视觉语言模型设计思想。
BEIT-3是视觉语言模型领域一个非常前沿和强大的模型,它在分类上属于基于图块 (Patch-based) 的范畴,并且将这一路线的思想推向了一个新的高度。
BEIT-3的核心特点是统一的多模态架构 (Unified Multimodal Architecture)。它不仅是基于图块的,更是试图用一个模型来统一处理所有不同类型的信息(视觉、语言等)。
BEIT-3 的方法:统一的、基于图块的模型
-
视觉处理方式: 与ALBEF一样,BEIT-3使用视觉Transformer (ViT) 来处理图像。它将原始图像分割成一系列的固定大小的图块(Patches),这些图块作为视觉输入。
-
核心创新点 - 统一骨干网络 (Unified Backbone):
- VinVL和ALBEF在结构上都属于“双流”或“双塔”模型,即它们有各自独立的编码器来分别处理视觉和语言信息,然后再进行信息交互和融合。
- BEIT-3则是一个“单流”或“单塔”模型。它开创性地使用了一个**单一、共享的骨干网络(称为Multiway Transformer)**来同时处理图像图块和文本词汇(tokens)。这意味着无论是图片的小方块还是文本里的单词,都被输入到同一个模型里进行编码。
与 VinVL 和 ALBEF 的进化关系
我们可以将这三者看作视觉语言模型在如何处理视觉信息上的一个进化路径:
特征 | VinVL (基于区域) | ALBEF (基于图块) | BEIT-3 (基于图块) |
---|---|---|---|
视觉处理 | 物体检测器 (两阶段) | ViT (端到端) | ViT (端到端) |
核心架构 | 双流 (Dual-stream):独立的视觉模型和语言模型 | 双流 (Dual-stream):独立的视觉编码器和语言编码器 | 单流 (Single-stream):统一的、共享的多模态骨干网络 |
设计哲学 | “专家”模式:让视觉专家(检测器)先处理好图像,再交给融合专家。 | “协作”模式:视觉和语言两个专家并行工作,在中间阶段进行对齐和协作。 | “通才”模式:训练一个全能的通才模型,它本身就学会了理解不同模态的语言。 |
BEIT-3属于基于图块 (Patch-based) 的类别,它完全摒弃了VinVL的物体检测器。但它比ALBEF更进一步,通过一个统一的骨干网络实现了架构上的优雅和高效,为构建能够处理更多模态(如语音、视频等)的通用基础模型铺平了道路。
VinVL的物体检测器不属于技术上定义的“开放词汇物体检测器”(Open-Vocabulary Object Detector),但它的设计思想和最终效果在一定程度上模拟了开放词汇的能力。
VinVL使用的物体检测器是一个基于 ResNeXt-152 C4 架构定制和训练的模型 。它并不是一个现成的、可以直接调用的检测器,而是作者为了视觉语言(VL)任务专门构建和优化的。
VinVL的检测器是一个“封闭集”(Closed-set)检测器:这意味着它只能检测和识别在其训练数据中预先定义好的类别。根据论文,这个预先定义的“封闭集”极其庞大,包含了1848个物体类别和524个属性类别 。模型的所有知识都来自于对这个固定词汇表的监督学习。
1. 什么是真正的“开放词汇”检测器?
一个真正的“开放词汇”检测器,是指在推理(或测试)阶段,你可以给它任意一段文字描述(比如一个新的词汇“折耳猫”或者一个短语“一个戴着草帽的男人”),它就能在图片中定位出对应的物体,即使“折耳猫”或“草帽”这些词汇从未在其物体类别训练集中出现过。这通常是通过将图像区域特征和任意文本的特征嵌入到同一个空间进行实时匹配来实现的。
2. VinVL的检测器是如何工作的?
VinVL的检测器不具备上述的实时匹配能力。它的工作方式更像是一个拥有 “超大规模固定词汇” 的检测器。
- 封闭的词汇库:如前所述,它是在一个预先定义好、固定不变的词汇库上训练的 。这个词汇库包含了1848个物体和524个属性 。在推理时,它只能从这个固定的“菜单”中选择它认识的词汇来标记物体。
- 不处理任意文本输入:你不能在检测阶段给VinVL的检测器输入一个新词“无人机”,然后期望它去寻找无人机。它的检测模块和任意文本输入是解耦的。
3. 为什么VinVL看起来像是“开放词汇”的?
尽管技术上是封闭的,但VinVL之所以表现出惊人的能力,让人感觉它词汇是“开放”的,原因在于它的固定词汇库极其庞大和细致。
这个包含了两千多个概念的词汇库,已经远远超出了传统物体检测的范畴,覆盖了大量常见、不常见、背景、部件甚至抽象的属性概念 。因此,当需要描述一个场景时,它总能从自己庞大的“字典”里找到足够多、足够精确的词汇来组合,从而达到类似用自然语言自由描述的效果。
VinVL的检测器并非一个真正的“开放词汇”模型,因为它不能在推理时处理任意新词汇。它更像是一个拥有超大字典的“封闭词汇”专家。它通过“量变引起质变”的方式——即用一个极其庞大的固定词汇库——在效果上逼近了“开放词汇”的灵活性。
这一步是具有深度语义指导的,而远不止是检测最显著的物体。
其目标是捕捉尽可能丰富的、能与自然语言中的复杂语义对齐的视觉概念,这包括了主要物体、背景元素、物体部件以及它们的属性。
-
极其庞大的词汇库:VinVL的物体检测器被训练来识别一个包含1848个物体类别和524个属性类别的庞大词汇库 。这远远超出了只检测几十或几百个“显著”物体的范畴。
-
覆盖背景和上下文信息:模型被特意训练来识别那些对于理解整个场景至关重要,但可能并不“显著”的元素。论文中明确提到,与传统物体检测任务不同,VL任务需要识别像“天空 (sky)、水 (water)、山 (mountain)”等背景概念 。在示例图(Figure 1)中,模型也成功检测出了“波浪 (wave)、影子 (shadow)、沙子 (sand)、海滩 (beach)”等 。
-
丰富的属性检测:模型不仅仅是识别出一个“男孩”,而是能够附加上“年轻的、赤脚的、没穿上衣的、站立的、冲浪的、微笑的、金发的”等多种属性描述 。这种对属性的细粒度识别是深度语义理解的体现,而非简单的显著性检测。
-
语义丰富度优先于检测精度:论文中的一个关键实验(Table 16)表明,即使用COCO数据集中“完美”的、位置绝对准确的物体框(只包含80或171个类别),其在下游VQA任务上的表现反而不如VinVL检测器生成的、语义更丰富的检测框 。论文就此得出结论:视觉语言中的物体检测需要“远比传统OD任务更丰富的视觉语义,以匹配语言中丰富的语义” 。
因此,VinVL的物体检测步骤是一种以服务下游语言任务为目标的、全面的场景语义解析过程。它试图将图像分解为一系列带有丰富语义标签的区域,而不仅仅是挑出几个最吸引眼球的大物体。
VinVL模型中丰富的语义指导,其源头完全来自于其训练所使用的大规模、人工标注的数据集。
模型之所以“认识”一个概念,是因为研究人员给它“看”了成千上万个由人类标记好该概念的图片。这个指导主要来自以下两个层面:
-
物体语义指导的来源:四个大型公开数据集的融合
- VinVL的物体识别能力并非来自单一来源,而是通过一个“集大成”的方法,融合了四个业界知名的大型数据集 :
- COCO
- OpenImages V5
- Objects365 V1
- Visual Genome (VG)
- 研究人员将这四个数据集中所有物体的标注(即边界框和类别名称)进行合并和去重,创建了一个包含1848个物体类别的庞大词汇库 。因此,当模型学习识别“天空”、“影子”或“脚”时,它的指导就来自于这些数据集中由人类标注的无数“天空”、“影子”和“脚”的样本。
- VinVL的物体识别能力并非来自单一来源,而是通过一个“集大成”的方法,融合了四个业界知名的大型数据集 :
-
属性语义指导的来源:Visual Genome (VG) 数据集
- 识别物体的属性(如颜色、状态、姿势等)是更高层次的语义理解。在上述四个数据集中,只有 Visual Genome (VG) 提供了大规模、密集的属性标注 。
- VinVL的训练策略是分两步走的:首先,在融合后的大数据集上完成对1848个物体的预训练;然后,专门在VG数据集上对模型进行微调(fine-tune),以注入识别524个属性类别的能力 。因此,模型能识别出“赤脚的”、“湿的”、“蓝色的”等属性,其指导完全来自于VG数据集中人类标注的这些属性标签。
VinVL的语义指导并非凭空产生,也不是某种无监督的发现,而是通过监督学习(Supervised Learning)的方式,从海量的人工标注数据中习得的。物体的识别能力来自四个数据集的知识总和,而属性的精细识别能力则主要归功于Visual Genome数据集独特的、丰富的属性标注。