「收录情况」:NeurIPS-2022 「论文链接」:https://arxiv.org/abs/2206.05836 「代码链接」:https://github.com/microsoft/GLIP
问题 建立一个通用的,可以同时处理
vision localization
任务(image classification、object detection和segmentation等等)和VL understanding
任务(VQA和image captioning等等)的vision language systems
在过去一两年广为关注,这需要模型能够有效的统一localization
和understanding
任务。 然而,这两种任务有很大的区别:localization是仅视觉
的任务,需要细粒度的输出(例如,bounding boxes或pixel masks),而VL understanding强调不同模态信息之间的融合
,需要高级的语义输出(例如,answers或captions)。 方案 本论文提出grounded VL understanding模型GLIPv2
,既适用于localization任务(例如,对象检测,实例分割),也适用于VL understanding任务(例如,VQA,image captioning)。GLIPv2将localization预训练和视觉语言预训练(VLP)有效的结合,包含三个预训练任务:phrase grounding
作为VL任务以重构检测任务,region-word
对比学习任务和MLM
任务。这种统一不仅简化了以往的多阶段VLP模型,而且实现了localization和understanding之间的互利共赢。 实验表明,无集成的GLIPv2模型(权值共享
)在各种localization和understanding任务中都能达到接近SoTA的性能。该模型对open-vocabulary对象检测
任务具有很强的zero/few-shot适应能力,对VL理解任务也具有很强的grounding能力。 主要贡献 「a、Localization + VL understanding = grounded VL understanding」 Localization任务包括定位和语义分类,其中分类可以使用classification-to-matching
方法将其转换为VL understanding的问题。因此,作者将Localization任务重新定义为VL grounding任务,其中语言输入是一个由类别名称拼接的合成的sentence。大规模的VL understanding数据(图像文本对)可以通过self-training的方式转化为VL grounding数据,因此,GLIPv2具有统一的预训练过程:将所有任务的数据转化为grounding数据,对GLIPv2进行预训练,进行grounded VL understanding
。 「b、A stronger VL grounding task: inter-image region-word contrastive learning」 作者引入了图像之间的region-word
对比学习任务,利用同一batch中的其他sentences中的phrases作为潜在的负例,这使得GLIPv2能够学习到更多的region-word的判别特征。
Localization models 传统目标检测和分割等任务是单个模态的任务,输出bounding box或pixel masked进行分类,这些模型难以泛化到新的类别。GLIPv2建立在
MDETR
和GLIP
基础上,使用classification-to-matching技巧将localization任务转换为一个grounded vision-language任务。因此,GLIPv2可以从语义丰富的图文对数据中学习,在open-vocabulary localization任务表现出强大的性能,GLIPv2简化了预训练架构,并支持grounded VL understanding,以获得更好的解释性。 Unifying localization and understanding Localization任务被视为单模态任务,而VL任务涉及两种模态。GLIPv2将grounded VL understanding定义为localization和理解的meta-task,任务的统一带来了体系结构的统一。GLIPv2 vs GLIP:1)GLIP的grounded pre-training提高了localization的性能和提高了VL understanding的能力,从而形成了localization和VL understanding的统一模型;2)GLIPv2 引入了图像间region-word的对比损失,这是另一个比GLIP中预训练任务更强的grounding任务。
GLIPv2: Unifying Localization and VL Understanding 在GLIP中将目标检测重新定义为广义的
phrase grounding
任务的基础上,将localization任务和VL understanding任务统一为grounded vision-language
任务,将图像和文本同时输入,并输出object-level
理解结果(例如,检测、分割)和image-level
理解结果(例如,VQA、image captioning)。
a、 A Unified VL Formulation and Architecture
GLIPv2的关键是classification-to-matching
技巧,它将任何task-specific fixed-vocab分类问题重新表述为task-agnostic open-vocabulary视觉语言匹配问题,例如CLIP中将图像分类重新表述为图像-文本匹配
,使模型可以直接从原始的大量的图像-文本对数据中学习,实现了强大的zero-shot效果。在GLIPv2中,将传统视觉模型中的语义分类线性层替换为视觉语言匹配点积层。
如图1,GLIPv2由一个双编码器
和
以及一个融合编码器
组成,以图像-文本对(Img, Text)作为输入,提取视觉和文本特征如下,其中
和
分别表示VL融合前和融合后的图像/文本特征:
「Vision-Language understanding tasks」 GLIPv2在文本特征
的基础上增加了一个两层MLP作为MLM head
,用于MLM预训练。「(Language-guided) object detection and phrase grounding」 继GLIP之后,GLIPv2采用classification-to-matching
的方法,实现了detection与grounding的统一。具体来说,只需将类别的概率
(其中W是box分类器的权重矩阵)替换为task-agnostic region-word相似度分数
(其中文本特征
是来语言编码器的label嵌入),即原本的目标检测为分类为k个类别,转化为region和word的匹配分数,words里不仅包含原本所有的目标检测类别,同样包含更多的新的视觉概念。「(Language-guided) instance segmentation and referring image segmentation」 给定目标检测的结果,添加一个实例分割head
,将box内的每个像素分类为一个语义类。同样,GLIPv2使用classification-to-matching的技巧,为标准的实例分割任务和referring图像分割任务生成统一的实例分割head,并利用这两种类型的数据进行预训练。
b、GLIPv2 Pre-training
GLIPv2采用三种预训练损失进行预训练:来自目标检测任务的视觉语言重构的phrase grounding
损失
,region-word
对比损失
,以及MLM
损失
:
与检测任务中的损失类似,
由两部分组成:由边界框监督的
,例如RPN损失、box regression损失和centerness损失,
本质上是每个区域的语义分类/检索损失。 「Intra-image region-word alignment loss」 给定一个图像-文本对(Img, Text),通过跨模态融合得到图像和文本特征
和
,计算图像内部region-word
对齐损失:
其中
为单个
图像区域与单词之间的相似度分数,
为真值注释确定的目标矩阵,损失函数损失通常为两阶段模型的交叉熵损失和一阶段模型的Focal-loss。然而,由于一个caption所能包含的phrase数量有限,这种单个图像内部region-word的对比学习在对比学习的意义上是相当薄弱的。GLIP通过添加几个否定句来形成包含更多(否定)phrase的较长的文本输入,从而缓解了这个问题,但是,受限于文本token的最大长度(GLIP和GLIPv2中为256),只能添加少量的否定句,否定phrase的数量保持在10的数量级,当输入文本不能包含检测数据集(例如Objects365)中的所有类别名称时,在目标检测数据集中也存在这个仅有少量负例的问题。
「Inter-image region-word contrastive loss」 GLIPv2使用同一batch
中的其他图像-文本对中的phrase作为负例,有效地将负例的数量增加到1000数量级,而额外的计算成本几乎可以忽略不计。如图1,给定一批图像-文本对
和真值
,模型跨模态融合前后的图像和文本特征,分别记为
和
。然后如图2(左),考虑整个batch
中的所有图像区域和文本短语,构造一个batch的相似矩阵
和一个batch的目标矩阵
,
计算如下:
然后将图像间region-word对比损失
定义为应用于该batch所有图像region和phrase的标准双向对比损失:
与单个图像内部的对比损失相比,图像之间对比损失中的负例数量大小要乘以batch大小
,要注意的是:1) GLIPv2使用VL融合前的图像文本特征,而不是融合后的特征,避免模型看到成匹配对的信息(因为模型可以很容易地从不匹配的图像文本中剔除负例);2)不像CLIP简单地将所有来自不匹配的图像-文本的区域和文本都归为负例,而是通过label propagation来确定目标矩阵
中的非对角块。如图2(左),如果一个region被标注为“person”,那它应该与检测类型文本中的所有“person”短语为正匹配。「Pre-training with both detection and paired-image-text data」 GLIPv2预训练数据是图像-文本-目标
三元组格式(Img, Text, T),其中目标矩阵T包含box-label localization注释。作者还使用大量的图像-文本对数据(Img, Text)对进行预训练,极大地提高了GLIPv2的视觉概念多样性。「Second-stage pre-training of the segmentation head」 GLIPv2在实例分割和图像引用分割数据上进行二次语言引导的分割head的预训练
,同时固定模型的所有其他部分。
c、Transfer GLIPv2 to Localization and VL Tasks
「One model architecture for all」 通过使用(可选的)task-specific的head对模型进行微调,GLIPv2可以迁移到下游任务:1)检测和分割任务
,不需要额外的head,因为预训练架构本身就可以执行检测和分割;2)VL任务
:对于VQA,添加一个分类头即可;对于caption生成,使用单向语言模型进行训练,在跨模态融合层中,使用单向attention mask来防止图像关注到文本。
「One set of weight for all」 GLIPv2可以在zero-shot
或prompt-tuning
中迁移到localization任务,其中每个任务只保留少量或不保留参数,对于prompt-tuning的所有localization任务,所有输入图像的文本prompt都是相同的。
「Grounded VL understanding」 GLIPv2还支持grounded VL understanding
,在对模型进行下游VL任务微调时,保留了执行grounding的能力,增加了模型的可解释性。
One Model Architecture for All
在表1中,GLIPv2与现有的对象检测和视觉语言预训练方法进行了广泛的比较,在8个不同的下游任务上微调模型。 One Set of Model Parameters for All
预训练的GLIPv2可以在任何对象检测任务和visual grounding任务上直接推理,而无需进一步微调。表2中对COCO、ODinW、LVIS和Flickr30这4种定位任务进行了评估。 GLIPv2 as a Strong Few-Shot Learner
本文提出了一个统一的VL表示学习框架GLIPv2,它既适用于localization任务,也适用于VL理解任务,实验验证了统一模型和region-word对比学习的有效性,与现有的方法相比,GLIPv2在各种localization和understanding任务上具有接近SoTA的竞争力。