[论文笔记]Grounded Language-Image Pre-training
论文地址:GLIPv1,GLIPv2
项目地址:https://github.com/microsoft/GLIP
摘要
- GLIP提供了一个预训练模型,综合了目标检测和phase grounding两个任务,并且以自训练的方式为大量的图像文本对生成框,获取富语义知识
- training data: 27million (3M human-annotated + 24M web-crawled 图像文本对)
- 在coco和lvis数据集上进行zero shot, fintune和one shot验证,性能超过SOTA
引言
- GLIP应细粒度视觉理解的相关任务需求而生,诸如目标检测、分割、人体姿态估计、场景理解、动作识别等
- 将目标检测和和phase grounding两个任务相结合,因为目标检测可以视为上下文无关的phase grounding任务,以及phase grounding可视为上下文的目标检测任务
- 任务统一训练:用词-区域对齐的分数(比如区域(或框)视觉特征和标记(或短语)语言特征的点积)替换其框分类器中的目标分类逻辑;并且使用语言模型来提取语言特征,形成一个双编码器结构。在检测这一侧,grounding数据的引入丰富了视觉概念库。在grounding侧,检测数据引入了更多的边界框注释,有助于预训练新的SoTA模型。
- 通过大量图像文本对扩展视觉概念库:利用一个训练好的grounding模型,为大量图像文本对生成候选框来增广GLIP的预训练数据,其中名词短语由NLP Parser 生成。24M web-crawled 图像文本对数据中,包含78.1M
high-confidence (> 0.5) phrase-box 伪标签, 其中58.4M 为唯一名词短语。
方法: Grounded Language Image Pre-training
统一“度量衡”
Object detection as phrase grounding
目标检测的框分类器损失调整为
S
g
r
o
u
n
d
S_{ground}
Sground为框中的视觉特征与通过文本prompt提取的文本特征之间的点积, 但是存在一个问题是token数量通常大于prompt中词的数量,原因如下:
(1) phrases 通常包含多个单词
(2) 单词的拆分
(3) special added token, 比如说"Detect: "或者 [NoObj]
做法:扩展 c c c 的长度为 M M M,如果该词为正样本,则其补充的sub words为正样本,添加的tokens全都视为负样本
Equivalence between detection and grounding
可信度验证:SoTA DyHead detector with Swin-Tiny backbone 在目标检测和上述做法中在COCO val2017数据集上得到的性能是一致的
Grounding Formulation
来源于MDETR’s fine-grained contrastive loss
Visual-Language“深度融合”
image encoder: DyHead (swin transformer tiny as backbone)
text encoder: Bert
BERTLayer: 在预训练的Bert模型后新加的bert layers
X-MHA 模块通过与另一个模态的交互,计算该模态下的上下文向量
基于“富语义数据”的预训练
先在目标检测和phase grounding的数据集上进行预训练,然后对大量的图像文本对输出预测框和对应的短语