摘要
大多数视觉识别研究在深度神经网络(DNN)训练中严重依赖于人工标注的数据,且通常为每个单一的视觉识别任务训练一个DNN,导致这种视觉识别范式既繁琐又耗时。为解决这两个挑战,近年来对视觉语言模型(VLMs)进行了深入研究。VLM通过从网络规模的图像-文本对中学习丰富的视觉-语言关联,并能够以单一模型实现对多种视觉识别任务的零样本预测。本文系统性地综述了VLM在各类视觉识别任务中的应用,包括:(1) 介绍视觉识别范式的发展背景;(2) 总结VLM的基础知识,包括广泛使用的网络架构、预训练目标和下游任务;(3) 列举VLM预训练与评估中广泛使用的数据集;(4) 对现有的VLM预训练方法、迁移学习方法以及知识蒸馏方法进行分类与回顾;(5) 对所综述方法进行基准测试、分析和讨论;(6) 提出了未来VLM在视觉识别领域研究中可能面临的挑战和研究方向。与本综述相关的项目已发布在 https://github.com/jingyi0000/VLM_survey
Index Terms—Visual recognition, vision-language model, pre-training, transfer learning, knowledge distillation, image classification, object detection, semantic segmentation, deep neural network, deep learning, big model, big data
introduction
视觉识别(例如图像分类、目标检测和语义分割)是计算机视觉研究中长期存在的难题,也是众多计算机视觉应用(如自动驾驶、遥感、机器人等)的基石。随着深度学习的发展,视觉识别研究通过利用端到端可训练的深度神经网络(DNN)取得了巨大的成功。然而,从传统机器学习转向深度学习也带来了两个新的重大挑战:一是经典的从零开始深度学习训练(Deep Learning from Scratch)的设置下,DNN训练的收敛速度较慢;二是DNN训练需要大规模、任务特定且由人群标注的数据,这一数据收集过程非常繁琐。
近期,一种新的学习范式——预训练、微调和预测(Pre-training, Fine-tuning and Prediction)在许多视觉识别任务中展示了极大的有效性。在这种范式下,首先使用现成的大规模训练数据(可以是标注的或非标注的)对DNN模型进行预训练,然后用任务特定的标注训练数据对预训练模型进行微调,如图2(a)和(b)所示。通过在预训练模型中学习到的全面知识,这一学习范式能够加速网络的收敛,并为各种下游任务训练出性能优异的模型。
尽管如此,“预训练、微调和预测”范式仍然需要一个额外阶段——为每个下游任务使用标注的训练数据进行任务特定的微调。受到自然语言处理(NLP)领域的进展的启发,最近一种名为视觉-语言模型预训练与零样本预测(Vision-Language Model Pre-training and Zero-shot Prediction)的新深度学习范式引起了广泛关注。在这种范式中,视觉-语言模型(VLM)使用几乎无限量的互联网图像-文本对进行预训练,而预训练后的VLM可以直接应用于下游视觉识别任务,而无需进一步的微调,如图2(c)所示。
VLM的预训练通常受到特定视觉-语言目标的指导,这些目标能够从大规模的图像-文本对中学习图像-文本对应关系。例如,CLIP采用了一种图像-文本对比目标,通过在嵌入空间中将成对的图像和文本拉近,同时将其他不相关的图像和文本拉远的方式进行学习。通过这种方式,预训练的VLM能够捕捉丰富的视觉-语言对应知识,并通过匹配任意给定图像和文本的嵌入进行零样本预测。这种新的学习范式能够有效利用网络数据,并允许在无需任务特定微调的情况下进行零样本预测。
这种方法简单易用,但性能非常出色。例如,预训练的CLIP在36项视觉识别任务中实现了卓越的零样本性能,这些任务涵盖了从经典的图像分类到人类行为识别和光学字符识别的广泛范围。
在视觉-语言模型(VLM)预训练与零样本预测取得巨大成功之后,研究人员进一步在两个方向上对VLM展开了深入研究。第一个方向是探索VLM的迁移学习。这一方向包括多种迁移方法,例如提示调优(prompt tuning)、视觉适配(visual adaptation)等,这些方法都旨在有效地将预训练的VLM适配到各种下游任务中。第二个方向是探索VLM的知识蒸馏,例如,一些研究探讨了如何将VLM中的知识提炼到下游任务中,以实现目标检测、语义分割等任务的更优性能。
尽管近年来大量论文表明研究者对从VLM中挖掘丰富知识表现出浓厚兴趣(如图1所示),但研究界仍缺乏一份能够系统梳理基于VLM的视觉识别研究、面临的挑战以及未来研究方向的全面综述。为填补这一空白,我们系统性地回顾了VLM在各种视觉识别任务(包括图像分类、目标检测、语义分割等)中的研究成果。本综述从多个角度展开,包括背景、基础、数据集、技术方法、基准测试和未来研究方向。我们相信,这份综述将为研究者提供清晰的全景图,展示当前的研究成就以及未来可能取得的进展,从而进一步推动这一新兴且极具前景的研究方向。
总而言之,我们的主要贡献包括以下三个方面:
- 全面回顾:对VLM在视觉识别任务中的应用进行系统综述,包括图像分类、目标检测和语义分割。据我们所知,这是首个专注于视觉识别的VLM综述,为该研究领域提供了现有研究的全景图以及全面的总结与分类。
- 最新进展:研究了VLM在视觉识别领域的最新进展,包括对多项公共数据集上的现有工作的全面基准测试和讨论。
- 研究方向:提出了VLM在视觉识别中的若干研究挑战和潜在研究方向。
本综述的其余部分组织如下:
- 第2节介绍了视觉识别范式的发展以及相关综述;
- 第3节描述了VLM的基础知识,包括广泛使用的深度网络架构、预训练目标、预训练框架和下游任务;
- 第4节介绍了VLM预训练和评估中常用的数据集;
- 第5节回顾并分类了VLM的预训练方法;
- 第6和第7节系统性回顾了VLM的迁移学习和知识蒸馏方法;
- 第8节对多项广泛采用的数据集上的方法进行了基准测试;
- 第9节分享了VLM研究的一些有前景的方向。
background
本节首先介绍视觉识别训练范式的发展历程及其如何逐步演变为视觉-语言模型(VLM)预训练与零样本预测的范式。随后,我们将介绍用于视觉识别的视觉-语言模型的发展历程,并讨论一些相关的综述,以突出本文的范围和贡献。
2.1 视觉识别的训练范式
视觉识别训练范式的发展大致可分为以下五个阶段:(1) 传统机器学习与预测,(2) 从零开始深度学习与预测,(3) 监督预训练、微调与预测,(4) 无监督预训练、微调与预测,以及 (5) 视觉-语言模型预训练与零样本预测。以下将详细介绍、比较并分析这五种训练范式。
2.1.1 传统机器学习与预测
在深度学习时代之前,视觉识别研究主要依赖特征工程,即通过人工设计的特征,结合轻量级学习模型,将手工设计的特征分类为预定义的语义类别。然而,这种范式需要领域专家为特定的视觉识别任务设计有效的特征,这对复杂任务的适应性较差,且缺乏良好的扩展性。
2.1.2 从零开始深度学习与预测
随着深度学习的出现,视觉识别研究通过利用端到端可训练的深度神经网络(DNN)取得了巨大成功。这种方法规避了复杂的特征工程,让研究者能够专注于神经网络架构的设计,以学习更有效的特征。例如,ResNet通过跳跃连接设计实现了非常深的网络,并能够利用大规模人工标注数据在具有挑战性的ImageNet基准上取得前所未有的性能。然而,从传统机器学习向深度学习的转变也带来了两大挑战:
- 在从零开始深度学习训练的经典设置下,DNN的训练收敛速度较慢;
- 训练DNN需要大规模、任务特定且由人工标注的数据。
2.1.3 监督预训练、微调与预测
随着研究发现从标注的大规模数据集中学习到的特征可以迁移到下游任务,从零开始深度学习与预测的范式逐渐被监督预训练、微调与预测的范式所取代。该新范式(如图2(a)所示)通过监督损失在大规模标注数据(如ImageNet)上对DNN进行预训练,然后使用任务特定的训练数据对预训练模型进行微调【11】。由于预训练的DNN已经学习了某些视觉知识,这种方法可以加速网络的收敛,并帮助在有限的任务特定数据上训练出性能优异的模型。
2.1.4 无监督预训练、微调与预测
尽管监督预训练、微调与预测在许多视觉识别任务上取得了最先进的性能,但其在预训练阶段需要大规模标注数据。为减少这一限制,研究者提出了一种新的学习范式:无监督预训练、微调与预测【12】【13】,该方法探索了自监督学习,通过未标注数据学习有用且可迁移的表示,如图2(b)所示。为此,提出了各种自监督训练目标【12】【41】,包括用于建模跨图像块关系的掩码图像建模(masked image modelling)【41】和通过对比样本来学习判别特征的对比学习(contrastive learning)【12】等。自监督预训练的模型随后通过标注的任务特定数据进行微调。由于这种范式在预训练中不需要标注数据,可以利用更多的训练数据来学习有用且可迁移的特征,从而在性能上优于监督预训练【12】【13】。
2.1.5 VLM预训练与零样本预测
尽管监督或无监督的预训练与微调方法可以改善网络的收敛速度,但仍然需要通过标注的任务特定数据进行微调,如图2(a)和(b)所示。受到自然语言处理领域的巨大成功【14】【15】【16】的启发,一种新的深度学习范式——视觉-语言模型预训练与零样本预测被提出用于视觉识别,如图2©所示。在这种范式中,通过从几乎无限量的网络图像-文本对中学习,VLM利用特定的视觉-语言目标【10】【18】【19】进行预训练,捕获丰富的视觉-语言知识,并能通过匹配任何给定图像和文本的嵌入来实现零样本预测(无需微调)。
与预训练与微调范式相比,这种新范式能够有效利用大规模的网络数据,并在不进行任务特定微调的情况下实现零样本预测。现有研究主要从以下三个方面改进VLM:
- 收集大规模且有信息量的图像-文本数据;
- 设计高容量模型以从大数据中进行有效学习;
- 设计新的预训练目标以学习更有效的VLM。
本文通过系统综述这一新的视觉-语言学习范式,旨在为现有的VLM研究提供清晰的全景图,讨论所面临的挑战以及未来的发展方向,从而推动这一充满挑战但极具前景的研究领域。
2.2 用于视觉识别的VLM发展
自CLIP【10】的提出以来,与视觉识别相关的VLM研究取得了显著进展。我们从以下三个方面概述VLM在视觉识别中的发展,如图3所示:
- 预训练目标:从“单一目标”到“多目标混合”。早期的VLM【10】【17】通常采用单一的预训练目标,而近期的VLM【18】【42】引入了多种目标(例如对比、对齐和生成目标),通过探索这些目标之间的协同作用,开发出更稳健的VLM并在下游任务中实现更好的性能。
- 预训练框架:从“多独立网络”到“统一网络”。早期的VLM【10】【17】采用了双塔式(two-tower)预训练框架,而近期的VLM【43】【44】尝试使用单塔式(one-tower)预训练框架,在一个统一的网络中对图像和文本进行编码,这种方法不仅减少了GPU内存的使用,还提高了跨模态数据的通信效率。
- 下游任务:从简单任务到复杂任务。早期的VLM【10】【17】主要专注于图像级别的视觉识别任务,而近期的VLM【45】【46】则更加通用化,能够应用于复杂的密集预测任务,这些任务通常需要定位相关的知识。
2.3 相关综述
据我们所知,这是第一篇针对多种视觉识别任务综述VLM的文章。已有的一些相关综述集中在VLM用于视觉-语言任务方面,例如视觉问答【47】、视觉推理中的自然语言处理【48】和短语定位【49】。例如,Li等人【50】讨论了视觉-语言任务的进展,包括VLM在多种任务特定方法中的预训练。Du等人【51】和Chen等人【52】对视觉-语言任务中的VLM预训练进行了综述【47】【48】【49】。Xu等人【53】和Wang等人【54】分享了多模态学习在多模态任务上的最新进展。
与上述综述不同,我们针对视觉识别任务综述了VLM的研究进展,主要涵盖以下三个方面:
- VLM预训练在视觉识别任务中的最新进展;
- 从VLM到视觉识别任务的两种典型迁移方法;
- VLM预训练方法在视觉识别任务上的基准测试。
3 VLM 基础
VLM预训练【10】【17】旨在通过预训练学习图像与文本之间的关联,从而实现对视觉识别任务的高效零样本预测【6】【55】【56】。在图像-文本对【20】【21】的基础上,VLM首先使用文本编码器和图像编码器提取图像和文本特征【6】【14】【57】【58】,然后通过特定的预训练目标学习视觉-语言关联【10】【17】。因此,VLM可以通过匹配任意给定图像和文本的嵌入,以零样本方式评估在未见数据上的性能【10】【17】。本节介绍了VLM预训练的基础内容,包括用于提取图像和文本特征的常见网络架构、建模视觉-语言关联的预训练目标、VLM预训练框架以及VLM评估的下游任务。
3.1 网络架构
VLM预训练依赖于深度神经网络从预训练数据集 D = { x n I , x n T } n = 1 N D = \{x^I_n, x^T_n\}^N_{n=1} D={xnI,xnT}n=1N 中提取图像和文本特征,其中 x n I x^I_n xnI 和 x n T x^T_n xnT 分别表示一个图像样本和其配对的文本样本。深度神经网络包含一个图像编码器 f θ f_\theta fθ 和一个文本编码器 f ϕ f_\phi fϕ,分别将图像和文本(来自图像-文本对 { x n I , x n T } \{x^I_n, x^T_n\} {xnI,xnT})编码为图像嵌入 z n I = f θ ( x n I ) z^I_n = f_\theta(x^I_n) znI=fθ(xnI) 和文本嵌入 z n T = f ϕ ( x n T ) z^T_n = f_\phi(x^T_n) znT=fϕ(xnT)。本节介绍了VLM预训练中广泛采用的深度神经网络架构。
3.1.1 图像特征学习的架构
用于学习图像特征的网络架构主要包括两类:基于卷积神经网络(CNN)的架构和基于Transformer的架构。
CNN架构:不同的卷积网络(如VGG【5】、ResNet【6】和EfficientNet【59】)被设计用于学习图像特征。其中,ResNet【6】作为VLM预训练中最受欢迎的卷积网络之一,通过在卷积块之间引入跳跃连接来缓解梯度消失和爆炸问题,从而支持非常深的网络。为了更好地提取特征并建模视觉-语言关系,一些研究【10】对原始网络架构【6】【59】进行了改进。例如,改进ResNet时,引入了ResNet-D【60】,采用了抗锯齿的rect-2模糊池化【61】,并用Transformer多头注意力【58】中的注意力池化替代了全局平均池化。
Transformer架构:近年来,Transformer在图像分类【57】、目标检测【62】和语义分割【63】等视觉识别任务中得到了广泛应用。作为一种标准的图像特征学习Transformer架构,ViT【57】由多层Transformer模块堆叠而成,每个模块由一个多头自注意力层和一个前馈网络组成。输入图像首先被分割为固定大小的图像块,经过线性投影和位置嵌入后送入Transformer编码器。一些研究【10】【18】【64】通过在Transformer编码器之前增加归一化层对ViT进行了改进。
3.1.2 文本特征学习的架构
Transformer及其变体【14】【16】【58】被广泛用于学习文本特征。标准的Transformer【58】采用了编码器-解码器结构,其中编码器包含6个模块,每个模块包括一个多头自注意力层和一个多层感知机(MLP);解码器也由6个模块组成,每个模块包含一个多头注意力层、一个掩码多头注意力层和一个MLP。大多数VLM研究(如CLIP【10】)采用了标准的Transformer【58】,并在GPT2【16】的基础上稍作修改,从头开始训练,而未使用GPT2权重进行初始化。
3.2 VLM 预训练目标
VLM预训练的核心是设计多种视觉-语言预训练目标【10】【12】【14】【19】【42】【65】【66】【67】,以学习丰富的视觉-语言关联。预训练目标主要分为三大类:对比目标(Contrastive Objectives)、生成目标(Generative Objectives)和对齐目标(Alignment Objectives)。
3.2.1 对比目标
对比目标通过拉近配对样本、拉远其他样本在特征空间中的距离,训练VLM学习判别性表征【10】【12】【65】。
图像对比学习:旨在通过使查询图像与其正样本(如数据增强后的图像)更接近,同时与负样本(如其他图像)更远,来学习判别性图像特征【12】【13】。给定一批大小为 ( B ) 的图像,对比学习目标(如InfoNCE【68】及其变体【12】【13】)的公式如下:
L
I
InfoNCE
=
−
1
B
∑
i
=
1
B
log
exp
(
z
i
I
⋅
z
+
I
/
τ
)
∑
j
=
1
,
j
≠
i
B
+
1
exp
(
z
i
I
⋅
z
j
I
/
τ
)
(
1
)
L_{I}^{\text{InfoNCE}} = -\frac{1}{B} \sum_{i=1}^{B} \log \frac{\exp(z_i^I \cdot z_+^I / \tau)}{\sum_{j=1, j \neq i}^{B+1} \exp(z_i^I \cdot z_j^I / \tau)} (1)
LIInfoNCE=−B1i=1∑Blog∑j=1,j=iB+1exp(ziI⋅zjI/τ)exp(ziI⋅z+I/τ)(1)
其中, z i I z_i^I ziI 是查询嵌入, z j I z_j^I zjI 是关键嵌入, z I z_I zI 表示 z i I z_i^I ziI 的正样本,其他样本为负样本。 τ \tau τ 是控制表征密度的温度超参数。
图像-文本对比学习:通过拉近成对图像和文本的嵌入,同时拉远其他样本,实现判别性图像-文本表征的学习【10】【17】。通常通过最小化对称的图像-文本InfoNCE损失来实现:
L
I
T
InfoNCE
=
L
I
→
T
+
L
T
→
I
,
L_{IT}^{\text{InfoNCE}} = L_{I \to T} + L_{T \to I},
LITInfoNCE=LI→T+LT→I,其中
L
I
→
T
L_{I \to T}
LI→T比较查询图像和文本关键特征,
L
T
→
I
L_{T \to I}
LT→I比较查询文本和图像关键特征:
L
I
→
T
=
−
1
B
∑
i
=
1
B
log
exp
(
z
i
I
⋅
z
i
T
/
τ
)
∑
j
=
1
B
exp
(
z
i
I
⋅
z
j
T
/
τ
)
,
(
2
)
L_{I \to T} = -\frac{1}{B} \sum_{i=1}^B \log \frac{\exp(z_i^I \cdot z_i^T / \tau)}{\sum_{j=1}^B \exp(z_i^I \cdot z_j^T / \tau)},(2)
L