■ 简介:
microsoft团队针对多模态预训练范式发表了《grounded language-image pre-training(glip)》,在此我们对相关内容做一个解读。首先该篇文章提出了phrase grounding(短语定位)与object detection(目标检测)实际是等价的概念,使得自然语言在目标检测任务中获得了更大的用武之地。同时提出了基于语言-图像的预训练(glip)模型[1],打破了文字-图片对和目标检测的边界,使得易于获得的文字-图片对数据可以用于目标检测任务训练。该方法不仅在coco[2]、lvis等多个任务中刷新了历史最好成绩,还在定性测试中展现出了极高的零样本预测能力。
■ 模型:
从模型输入层面来说,glip 创造性地将目标检测任务转换为短语定位任务。即,对待任意一张训练图片,把标签用句号隔开,拼接成一句话。通过这种方式,所有的目标检测数据集都可转化为短语定位数据集。至此,我们便有了文字-重点区域对(word-region pair)。然后,通过对文字和图片分别进行编码,获得了文字与图片各自的特征。
在这以后,作者引入了“深度融合”(deep fusion)的概念:区别于前期融合(early fusion)和后期融合(late fusion),深度融合对两个模态的特征向量计算交叉注意力(cross attention),从而让模型可以在较浅的模型阶段就开始进行跨模态的特征学习。
最终,我们得到了文字-重点区域对所对应的各自特征表示。类似于clip[3]中的contrastive image-text alignment loss,这里,我们对重点区域和对应文字进行alignment loss的计算。整体过程可以表示为:
其中,enc_i即为图片编码器(例如swin transformer),enc_l即为文本编码器(例如bert);通过目标检测中的位置损失 (localization loss) 和分类损失 (classification loss),从而优化对应区域与文本之间相似度,达到学习区域预测的最终目的。
■ 效果:
直接迁移:
经过预训练后,glip可以轻松地应用于grounding和检测任务。作者在三个已建立的基准上展示了强大的直接迁移性能:
1) 包含80个常见对象类别的ms-coco对象检测(coco);
2) 包含1000多个对象类别的lvis[4];
3) 用于phrase grounding的flickr30k[5]。作者通过以下三种方法训练了5种glip变体(table 2):
1) 统一的grounding损失;
2) 语言感知深度融合;
3) 以及使用2种类型的数据进行预训练。
作者首先在 ms-coco 上进行了实验来评估模型向常见类别的转移能力,实验结果列于table 3。
评估实验在2种设置下进行:
1) 零样本域迁移;
2) 使用标准设置微调预训练模型的监督迁移。作者加入了一个额外的基线:在 objects365[6]上预训练的 dyhead。由于objects365 完全包含了coco 80个类别。
因此,作者以“零样本”的方式评估在 objects365 上训练的 dy-head:在推理期间, dy-head不是从 365 个类别进行预测,而是被限制为仅从 coco 80 个类别进行预测。
作者不仅列出了标准的coco检测模型,还列出了两个用额外数据预训练的最先进的模型。
总体而言,glip模型实现了强大的零样本和监督性能。零样本glip模型达到甚至超过了监督模型的性能。最好的glip-t达到46.7 ap,超越faster rcnn;glip-l 达到 49.8 ap,超过 dyhead-t。 在监督设置下,最好的glip-t比标准dy-head(55.2 vs 49.7)带来 5.5 ap 的改进。借助 swin-large 主干,glip-l 在 coco 上超过了当前的sota,在2017val上达到 60.8 ap,test-dev性能达到61.5ap。相对之前的sota模型(如ema),glip没有一些额外的操作(如mix-up、标签平滑 ,或者soft-nms)。
通过分析 glip 的“零样本”性能,作者发现了3个影响因素:objects365 和 coco 之间紧密的重叠域、深度融合和grounding数据。 由于 objects365 覆盖了 coco 中的所有类别,因此objects365 预训练的 dyhead-t 在coco上表现优异,达到了43.6ap; 若将模型重新构建为grounding模型,性能略有下降 (glip-t (a)); 添加深度融合将性能提升 2ap (glip-t (b)); goldg数据对性能的提升贡献最大,glip-t (c) 达到 46.7 ap。 虽然添加图像-文本数据对 coco 有轻微或没有改进(glip-t 与 glip-t (c)),作者发现它对于推广到稀有种类至关重要,并在lvis 实验中进一步展示了这一现象。
然后作者评估了模型在“零样本”下识别lvis上多样化和稀有物体的能力,实验结果列于table 4。
在所有类别中,glip表现优异。glip-t 与有监督的 mdetr 相当,而 glip-l 大大优于有监督的 rfs。gold grounding数据使 mini-val apr (glip-t(a) 与 glip-t (b)) 相比提高了 4.2 个点。这进一步表明grounding数据对性能的提升有显著的贡献。另外,添加图像-文本数据进一步提高了 3.1 个点的性能。因此,基础数据的语义丰富性可能有助于模型识别稀有物体。
最后,在flickr30k上,作者评估了模型以自然语言定位实体的能力,实验结果列与table 5。
带有 goldg 的 glip-t(第 3 行)与带有 goldg 的 mdetr 实现了类似的性能。作者认为这可能是由于引入了swin transformer[7]、dyhead[8] 模块和深度融合。更有趣的是,检测数据的添加也有助于grouding(第 4 行与第 3 行),再次显示了两个任务之间的协同作用以及统一损失的有效性。 图像-文本数据也有帮助(第 5 行与第 4 行)。glip-l可以达到 87.1r@1,比之前的 sota 高 2.8 个百分点。
多场景物体检测(object detection in the wild):
为了评估 glip 对各种现实世界任务的可迁移性,作者设计了一个“野外对象检测”(odinw)实验。
glip 可以在两个维度上轻松转移到如此多样化的任务。
(1) glip 提供了出色的数据效率,达到了相同的性能,但特定于任务的数据明显少于基线。
(2) glip 启用新的域迁移策略:在适应新任务时,可以简单地更改文本提示,保持整个接地模型不变。这大大降低了部署成本,其中一个集中式模型可以服务于各种下游任务。
如figure 3 所示,统一grounding重构、深度融合、grounding数据和模型放大都有助于提高数据效率(从底部红线(dyhead-t) 到向上- 每条紫线 (glip-l))。 因此,glip 展现出变革性的数据效率。0-shot glip-t 优于 5-shot dyhead-t,而 1-shot glip-l 与完全监督的 dyhead-t 相比具有竞争力。
基础数据带来了显著的改进,特别是在测试新概念的某些任务上。figure 4 中绘制了 5 个选定数据集的每个数据集的性能。在包含 objects365 中不存在的类别的 pothole 和 egohands 上,没有grounding数据的模型 (glip-t a&b)的ap值小于5,而具有grounding数据的模型的 ap 值分别超过 17 和 45。
适用于所有任务的模型:
随着神经模型变得越来越大,部署成本引起了极大的研究兴趣。最近在语言模型 、图像分类和对象检测方面的工作已经探索了将预训练模型适应新领域但只改变最少数量的参数。这样的设置通常表示为线性探测、快速调整或高效的任务适配器。最终目标是让一个模型同时服务于多个任务,每个任务只保留少量的任务特定参数或不保留参数。这降低了训练和存储成本。
人工提示调整(manual prompt tuning):
由于glip 的输出在很大程度上取决于语言输入,因此glip进行任务转移的有效方法为:对于任何新颖的类别,用户可以在文字提示,添加属性或语言上下文,加入领域知识,从而帮助glip进行知识迁移。例如,在图 5的左侧,模型无法定位所有出现的新实体“黄貂鱼”。然而,通过在提示中添加属性,即“flat and round”,模型成功地定位了所有出现的黄貂鱼。这类似于 gpt-3中的即时设计技术,并且在现实中很有吸引力,因为它不需要注释数据或模型重新训练。
提示调整(prompt tuning):
作者在3种设置下评估模型的性能(figure 6):linear probing、快速调整(仅适用于 glip)和全模型调整。对于dyhead-t,提示调优不适用,因为传统的物体检测模型无法接受语言输入;线性探测和全模型调整之间的差距很大。glip-t (a) 没有语言感知深度融合;因此,即时调优和线性调优具有相似的性能,但明显落后于全模型调优。然而,对于 glip-t 和 glip-l,即时调整几乎与完全调整结果匹配,而无须更改任何接地模型参数。有趣的是,随着模型和数据量的增长,全模型调优和即时调优之间的差距变得越来越小(glip-l与glip-t)。
■ 总结
glip 统一了对象检测和短语定位任务,以学习对象级、语言感知和语义丰富的视觉表示。经过预训练后,glip 在已建立的数据集和 13 个下游任务的零样本和微调设置上显示出可喜的结果。
■ references
[1] li, l. h. , zhang, p. , zhang, h. , yang, j. , li, c. , & zhong, y. , et al. (2021). grounded language-image pre-training.
[2] lin, t. y. , maire, m. , belongie, s. , hays, j. , & zitnick, c. l. . (2014). microsoft coco: common objects in context. springer international publishing.
[3] radford, a. , kim, j. w. , hallacy, c. , ramesh, a. , goh, g. , & agarwal, s. , et al. (2021). learning transferable visual models from natural language supervision.
[4] gupta, a. , p dollár, & girshick, r. . (2019). lvis: a dataset for large vocabulary instance segmentation. ieee.
[5] plummer, b. a. , & l wang…. (2017). flickr30k entities: collecting region-to-phrase correspondences for richer image-to-sentence models. international journal of computer vision, 123(1), 1-20.
[6] shao, s. , li, z. , zhang, t. , c p eng, & sun, j. . (2020). objects365: a large-scale, high-quality dataset for object detection. 2019 ieee/cvf international conference on computer vision (iccv). ieee.
[7] liu, z. , lin, y. , cao, y. , hu, h. , wei, y. , & zhang, z. , et al. (2021). swin transformer: hierarchical vision transformer using shifted windows.
[8] dai, x. , chen, y. , xiao, b. , chen, d. , liu, m. , & yuan, l. , et al. (2021). dynamic head: unifying object detection heads with attentions.