GLIPv2
论文《GLIPv2: Unifying Localization and Vision-Language Understanding》、代码
3.3.1简介
GLIPv2和GLIPv1架构基本一样,只是融合了更多的任务和数据集。从论文题目 Unifying Localization and Vision-Language Understanding可以看出,其统一了所有的定位任务(比如分割和检测)和Vision-Language任务。
Vision-Language:语言-视觉任务,包括:
vision Caption
:图像描述生成,根据一张图片生成描述性文本;VQA
:给定一张图片和一个与该图片相关的自然语言问题,计算机能产生一个正确的回答。文本QA即纯文本的回答,与之相比,VQA把材料换成了图片形式,所以这是一个典型的多模态问题;Vision grounding
:根据短语定位图片中对应的物体。
通过下图可以看到,比起GLIPv1,GLIPv2加了一些text encoder
的训练任务,使其表征更加丰富。比如定位任务不光有目标检测还有实例分割,Understanding任务包含了Vision grounding
、vision Caption
和VQA
任务。
然后就是图片特征和文本特征做Deep Fusion
,后面就是一样的处理了。像这样在统一框架下囊括更多任务更多数据集更多模态也是当前的一种趋势,比如去年的OFA、今年的Unified-IO等等。
3.3.2损失函数
在GLIPv2 当中对损失函数做了改进,在原有ground
损失的基础上加入两种损失:
L G L I P v 2 = L l o c + L i n t r a ⏟ L g r o u n d + L i n t e r + L m l m {L_{GLIPv2}=\underset{L_{ground}}{\underbrace {L_{loc}+L_{intra}}}+L_{inter}+L_{mlm}} LGLIPv2=Lground Lloc+Lintra+Linter+Lmlm
-
添加
MLM
损失:添加这一损失可以强化模型的语言特性。能够使得训练出来的模型能够扩展到 VQA / ImageCaption 任务上。 -
图片间的对比学习损失 L i n t e r L_{inter} Linter。
原先的image-text pair
,只能看到pair
内部的信息。比如一对数据是一个人抱着猫的照片和对应的文本描述。按照原先的 loss 设计,图片中的人
只能够做到和 ‘person’ 相似, 和 ‘cat” 不相似,但是没有办法和所有其它图片中各种各样的实体进行区分。所以在此考虑加入图片间的对比损失。
对比损失的计算方法:
- 对一个batch 当中所有的pair ,抽取其未交互的图片特征和文本特征 O ∘ = E n c V ( I m g ) , P ∘ = E n c L ( T e x t ) \overset{{\circ }}{O}=Enc_{V}(Img),\overset{{\circ }}{P}=Enc_{L}(Text) O∘=EncV(Img),P∘=EncL(Text)
- 计算一个batch内,所有图片特征和文本特征的相似度 S g r o u n d b a t c h [ i , j ] = O ∘ i ( P ∘ j ) T S_{ground}^{batch}[i,j]=\overset{{\circ }}{O}{_{}}^{i}(\overset{{\circ }}{P}{_{}}^{j})^{T} Sgroundbatch[i,j]=O∘i(P∘j)T,这样就可以通过跨图像匹配的方式,使得每一个object/token 都能够看到更多的负样本。所以我们不仅仅对图片和文字交互后的特征建模,也要对于图片和文本交互前的特征建模,类似loopiter。
- 跨样本匹配的时候,图片A 当中的‘人’这个物体,和图片B 对应的prompt 当中的 ‘person’类别,也应该是匹配的
3.3.3 模型结构
模型总览图如下:
3.3.4 模型效果
- 我们将
GLIPv2
和下表中当前的目标检测和vision-language预训练模型,在8个下游任务上进行对比。
实验结果表明,单个 GLIPv2 模型(所有模型权重共享)在各种定位和理解任务上实现了接近 SoTA 的性能。该模型还展示了在开放词汇目标检测任务上的强大的zero-shot和few-shot性能以及在 VL 理解任务上的出色的grounding能力。
SOTA
:state-of-the-art ,当前最好/最先进的模型
- 下面是不同规格的
GLIPv1
/GLIPv2
模型,在直接推理和 prompt tuning时的对比结果:(灰色表示训练时用了这个数据集,所以无法进行zero-shot推理) - 消融试验
- 左侧x轴表示使用不同数量的下游任务样本,y轴是13个数据集上的平均AP;
- 右侧是使用不同结构的loss时在
ODinW
数据集上的的消融试验结果; zero-shot GLIPv2-T
(48.5) 超过了5-shot DyHead-T (46.4)one-shot GLIPv2-H
(61.3) 超过了用所有数据(ALL)进行有监督微调的DyHead-T (60.8).
原文链接:李沐论文精读系列四:CLIP和改进工作串讲(LSeg、GroupViT、VLiD、 GLIPv1、 GLIPv2、CLIPasso)_计算机视觉_神洛华-GitCode 开源社区 (csdn.net)