GLIP_Grounded Language-Image Pre-training
2022/8/3 23:25:10
本文主要是介绍GLIP_Grounded Language-Image Pre-training,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一句话概括:多模态目标检测
- 1、问题
- 2、介绍和实现
- 2.1 数据统一
- 2.1.1 object detect数据转统一格式,补充prompt
- 2.2.2 grounding数据转统一格式:自动生成box,怎么生成box?
- 2.2 模型结构统一
- 2.2.1 语言感知的融合
- 2.3 loss 统一
- object detect loss转换
- 2.1 数据统一
- 3、效果
- 4、分析和结论
1、问题
1、类似CLIP多模态模型只做到文本图片后融合的对齐,没有图片细粒度的object级别的细粒度语义表征能力
2、MDETR没有统一目标检测和已有的多模态任务grounding
2、介绍和实现
CLIP由于训练集image-text pair比任何已有的anation数据集都包含更丰富的视觉概念,很容易0-shot迁移到下游任务,但是只做文本图片后融合的对齐,由于缺少object级别的细粒度理解,无法应用到到多模态检测任务。
对上面提出目标检测,分割等稠密任务需要text-image细粒度理解问题,现有的grounding任务就是细粒度的text和object的任务,因此这2个任务可以统一:目标检测是上下文无关的grounding任务,grounding是上下文相关语境化的目标检测任务
针对上面提到的目标检测和grounding 2种转换(目标检测是上下文无关的grounding任务,grounding是上下文相关语境化的目标检测任务),本文统一方式是使用目标检测到grounding任务
统一数据内容:输入训练数据的统一,模型的统一, loss统一
2.1 数据统一
统一的数据内容:image+box+prompt
2.1.1 object detect数据转统一格式,补充prompt
所有目标检测数据所有label的集合作为label(用于图中和每个label计算相似度)
2.2.2 grounding数据转统一格式:自动生成box,怎么生成box?
GLIP-T (A) is based on a SoTA detection model, Dynamic Head [10], with our word-region alignment loss replacing the classification loss
GLIP-T (B) is enhanced with language-aware deep fusion but pre-trained only on O365
GLIP-T (C) is pre-trained on 1) O365 and 2) GoldG, 0.8M human-annotated gold grounding data curated by MDETR [23], including Flickr30K, VG Caption [28], and GQA [19]. We have removed COCO images from the dataset. It is designed to verify the effectiveness of gold grounding data
GLIP-T is based on the Swin-Tiny backbone and pretrained on the following data: 1) O365, 2) GoldG as in GLIP-T (C), and 3) Cap4M, 4M image-text pairs collected from the web with boxes generated by GLIP-T (C)
使用self-training;由上面描述,teacher模型是GLIP-T (C)
self-training student模型比teacher性能好的原因是teacher模型根据丰富的语言上下文(比如语法结构)可以作为引导让teacher进行有根据的猜测;而student模型可以将这些猜测的结果作为监督信号进行学习
grounding数据包含丰富的语义:转box数据的优势,teacher模型将image_text对中根据语义生成语句的box, 因此引入了语义丰富的训练数据用于student模型,用来训练语义丰富的模型。
2.2 模型结构统一
和CLIP双encoder结构,差异是增加了深度跨模态前融合(这个对学习到高质量语言对齐的视觉表征很重要)
2.2.1 语言感知的融合
如上图中间部分为语言感知部分的融合结构,具体来说,使用DyHead作为image encoder, BERT作为 text encoder, 后续接深度融合encoder,深度融合encoder表达为:
L为DyHead中DyHeadModules模块数量,BERTLayer为预训练BERT上新增的BERT Layer层;O0为视觉backbone出来的视觉特征,P0为语言模型backbone出来的token特征,跨模态特征通过X-MHA跨模态多头注意力提取;后面接单模态的融合和更新
后融合重要作用:1、提高语句定位性能 2、使视觉特征具有语言感知能力,因此在推理的时候取决于文本提示(根据文本,有不同的输出结果)
2.3 loss 统一
object detect loss转换
bbox分类logits改成word-region/bbox的对齐得分(word 文本特征和region、bbox视觉特征点乘)
grounding和目标检测分类loss计算区别是,目标检测由box特征经过MLP投射成各类别的logit,grounding由box特征word特征对齐作为各类别的logit(没有使用对比loss),并且由于word tokenize可能一个单词会token成多个特征,因此grounding类别数比目标检测类别数多,然后后面接交叉熵部分目标检测和grounding一致。
目标检测Loss计算:
GLIP Loss计算
3、效果
上面部分为全监督,下面部分为GLIP
4、分析和结论
- 1、grouding数据能带来0shot提升
- 2、微调:GLIP和0shot任务理念差异是 模型不需要检出所有的新的object,只需要检出prompt中提到的object; GLIP理念是训练的语义丰富的类别覆盖大部分类别包含稀有类别。当现实场景出现训练集不包含的语义,使用promop tuning就可以达到full tunning的效果。 且prompt tuning在GLIP这种有深度vision-language融合的网络的效果比CLIP这种浅融合的效果更好(如下图所示);且模型越大,prompt tuning数据越多,prompt tuning和full tuning差距越小
这篇关于GLIP_Grounded Language-Image Pre-training的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27顶级情感分析接口:7个高效API推荐
- 2024-12-26从零开始学习贪心算法
- 2024-12-26线性模型入门教程:基础概念与实践指南
- 2024-12-25探索随机贪心算法:从入门到初级应用
- 2024-12-25树形模型进阶:从入门到初级应用教程
- 2024-12-25搜索算法进阶:新手入门教程
- 2024-12-25算法高级进阶:新手与初级用户指南
- 2024-12-25随机贪心算法进阶:初学者的详细指南
- 2024-12-25贪心算法进阶:从入门到实践
- 2024-12-25线性模型进阶:初学者的全面指南