首页 > 其他分享 >GLIP:Grounded Language-Image Pre-training

GLIP:Grounded Language-Image Pre-training

时间:2023-12-05 20:02:44浏览次数:32  
标签:Pre training Grounded 模型 GLIP grounding 图像 视觉 文本

Grounded Language-Image Pre-training

目录

GLIPv1: Grounded Language-Image Pre-training

GLIPv2: Unifying Localization and VL Understanding

代码地址: https://github.com/microsoft/GLIP

论文地址1: https://paperswithcode.com/paper/grounded-language-image-pre-training

论文地址2:https://arxiv.org/abs/2206.05836

翻译1 https://zhuanlan.zhihu.com/p/638842771

简介

CLIP利用image-text对进行训练,从而使得模型可以根据文字prompt识别任意类别。

CLIP适用于分类任务,而GLIP尝试将这一技术应用于目标检测等更加复杂的任务中。

在本文中,提出了phrase grounding的概念,利用指定描述的语句进行标定图片中所显示的物体),属于visual grounding(视觉基础训练)的一种。phrase grounding的任务是输入句子和图片,对于给定的sentence,要定位其中提到的全部物体然后框出来。

标准的 object detection 模型只能推理固定的对象类别,如COCO,而这种人工标注的数据扩展成本很高。GLIP将 object detection 定义为 phrase grounding,可以推广到任何目标检测任务。

CLIP和ALIGN在大规模图像-文本对上进行跨模态对比学习,可以直接进行开放类别的图像分类。GLIP继承了这一研究领域的语义丰富和语言感知的特性,实现了SoTA对象检测性能,并显著提高了对下游检测任务的可迁移能力。

摘要

本文提出了一种基础语言图像预训练(GLIP)模型,用于学习对象级、语言感知和语义丰富的视觉表示。 GLIP 统一了预训练的对象检测和短语基础。这种统一带来了两个好处:1)它允许 GLIP 从检测和接地数据中学习,以改进这两项任务并引导一个良好的接地模型; 2)GLIP可以通过以自我训练的方式生成接地框来利用大量的图像文本对,使学习到的表示具有丰富的语义。在我们的实验中,我们在 2700 万个基础数据上预训练 GLIP,其中包括 300 万个人工注释和 2400 万个网络抓取的图像文本对。学习到的表征展示了对各种对象级识别任务的强大的零样本和少样本可迁移性。 1) 当直接在 COCO 和 LVIS 上进行评估时(在预训练期间没有在 COCO 中看到任何图像),GLIP 分别达到 49.8 AP 和 26.9 AP,超越了许多监督基线。1 2) 在 COCO 上进行微调后,GLIP在 val 上达到 60.8 AP,在 test-dev 上达到 61.5 AP,超过了之前的 SoTA。 3) 当转移到 13 个下游目标检测任务时,1-shot GLIP 可以与完全监督的动态头相媲美。

Introduction

视觉识别模型通常被训练来预测一组固定的预先确定的对象类别,这限制了它们在实际应用中的可用性,因为需要额外的标记数据来概括新的视觉概念和领域。

CLIP模型证明了,可以在大量的原始图像-文本对上有效地学习图像级视觉表示。因为配对文本包含的视觉概念集比任何预定义的概念池都多。预训练的CLIP模型语义丰富,可以很容易地转移到下游的图像分类和文本图像检索任务中。

对于复杂的任务,如目标检测、图像分割、人体姿势估计、场景理解、动作识别、视觉语言理解,要获得对图像的细粒度理解,非常需要object-level的视觉表示。

GLIP模型,采用phrase grounding,即识别句子中的短语与图像中的object(或region)之间的细粒度对应关系的任务。统一了phrase grounding和object detection任务,object detection可以被转换为上下文无关的phrase grounding,而phrase grounding可以被视为置于context背景下的的object detection任务。

1、将object detection 表述成 grounding, 统一了detection与grounding 模型不仅仅接受图像输入,还要描述检测目标的text prompt

2、 结构和CLIP相似,为双编码器结构。在最后一点乘融合时不同。 GLIP采用的是深度跨模态融合

3、使用大量的图像-文本数据扩展,现通过教师模型 自动为大量图像-文本配对数据生成grounding boxes来增强GLIP预训练数据

4、迁移学习:GLIP可以在很少甚至不需要人工注释的情况下转移到各种任务中。

统一的损失函数

\[L=L_{cls}+L_{loc} \]

其中,\(L_{cls}\) 是分类损失,\(L_{loc}\)是定位损失, 其中分类损失:图文匹配上的尽可能为1,匹配不上去为0

\[O=E_{ncI}(Img),S_{cls}=OW^T,l_{cls}=loss(S_{cls};T) \]

其中,\(O\)是输入图像的特征,\(W\)是二阶段分类头的权重,\(S_{cls}\)是输出的分类概率,\(T\)是一个表示目标匹配结果的数据结构或矩阵

通过模型获取图片特征O,进而通过与权重矩阵W做点积得到S(cls)为输出logit结果,最后再与真实标签及坐标T(NxC)做损失函数进行拟合

grounding模型中的对齐分数

\[O=E_{ncI}(Img),P=E_{ncl}(Prompt),S_{ground}=OP^T \]

P来自语言编码器的上下文word/token特征其作用类似于权重W矩阵,\(S_{ground}\)是图像区域与提示符中的单词之间的对齐分数

对于混合模型,一方面基于视觉模型获取图片特征O,另一方面基于nlp模型获取文本特征P,再将文本特征与图片特征对应的区域做匹配得分S(ground),因为在提示词中,由于有以下多种原因造成模型输出的特征维度大于真实目标维度,使得S(ground)(NxM)的维度大于T(NxC)的维度。M((sub-word tokens数量)总是大于短语数c,原因有四:

  • 一个短语总是包含很多单词
  • 一个单词可以分成几个子词,比如toothbrush分成了 tooth#, #brush
  • 还有一些添加词added tokens,像是“Detect:”,逗号等,或者是语言模型中的特殊token
  • tokenized序列末尾会加入token [NoObj]

V2版本的损失函数

  • 与V1的区别,v1的负样本在同一张图片中
  • V2 正负样本跨图片进行
  • 扩大的数据集

方法

img

和CLIP双encoder结构,差异是增加了深度跨模态前融合(这个对学习到高质量语言对齐的视觉表征很重要)

引入了“深度融合”deep fusion的概念:区别于前期融合(early fusion)和后期融合(late fusion),深度融合对两个模态的特征向量计算交叉注意力(cross attention),从而让模型可以在较浅的模型阶段就开始进行跨模态的特征学习。

视觉和文本多模态多头注意力融合:

  • 文本的 Q K V,视觉Q K V
  • 视觉加权求和文本
  • 文本加权求和视觉

img

这里直接参考 https://blog.csdn.net/qq_56591814/article/details/127421979

将 object detection 定义为 phrase grounding,并短语连接到一起。

例如,COCO对象检测的文本提示 是一个由80个短语组成的文本字符串,即80个COCO对象类名称,以“.”连接。 如图。任何对象检测模型都可以通过用单词区域对齐分数替换其框分类器中的对象分类逻辑来转换为基础模型,即区域(或框)视觉特征和标记(或短语)的点积)语言特征,。语言特征是使用语言模型计算的,这为新的检测(或基础)模型提供了双编码器结构。与仅在最后点积层融合视觉和语言的 CLIP 不同,我们表明 GLIP 应用的深度跨模态融合,对于学习高质量的语言感知至关重要视觉表示并实现卓越的迁移学习性能。检测和接地的统一还允许我们使用两种类型的数据进行预训练,并且对这两项任务都有好处。在检测方面,由于基础数据,视觉概念池显着丰富。在接地方面,检测数据引入了更多的边界框注释,并帮助训练新的 SoTA 短语接地模型。

总结

  • 借鉴CLIP模型,将文本和视觉统一到一个空间,本质是向量匹配,不是目标分类。

  • GLIP 创造性地将目标检测任务转换为短语定位任务。对任意一张训练图片,把标签用句号隔开,拼接成一句话。通过这种方式,所有的目标检测数据集都可转化为短语定位数据集。

  • 统一的数据集和数据格式:image+box+prompt,grounding格式数据

  • 没有类别概率,扩大了数据集,可以0样本学习。

  • 模型结构统一,增加了深度跨模态前融合,使用DyHead作为图像编码器,BERT作为文本编码器,后续进行融合编码。

  • cv混合模型分为两部分,一部分是基于NLP模型对提示词的编码并获取提示词相应的特征(语义信息),这里的提示词可以是单个的英文单词,也可以是一整段话语,NLP模型采用主流的bert。另一部分是采用视觉模型对图片特征的提取,这里的视觉模型采用vit transformer,对图片完成编码后,进而与经过bert模型编码的提示词特征进行多层的特征融合(fusion)

  • Loss 统一,目标检测损失函数。

参考资料

https://zhuanlan.zhihu.com/p/662670305 讲解挺详细

https://zhuanlan.zhihu.com/p/638842771

https://zhuanlan.zhihu.com/p/633352647

https://blog.csdn.net/qq_40629612/article/details/132788499 讲解详细及其训练代码

标签:Pre,training,Grounded,模型,GLIP,grounding,图像,视觉,文本
From: https://www.cnblogs.com/tian777/p/17878039.html

相关文章

  • Fine-grained Visual Classification with High-temperature Refinement and Backgrou
    摘要细粒度视觉分类是一项具有挑战性的任务,因为类别之间的相似性很高,单个类别中数据之间的差异不同。为了应对这些挑战,以前的策略侧重于定位类别之间的细微差异并理解其中的判别特征。然而,背景还提供了重要信息,可以告诉模型哪些特征对于分类是不必要的甚至有害,并且过于依赖细微特......
  • 大数据实验(MapReduce编程2)
    代码参考:MapReduce实验-CodeDancing-博客园(cnblogs.com)编程实现总代码:编译工具:IDEA说明:1.完成不同的任务的时候,需要修改cmd的值2.conf.set("fs.default.name","hdfs://node1:8020");换上自己的连接路径3.System.setProperty("HADOOP_USER_NAME","root");不加上这个......
  • SQL Pretty Printer for SSMS 很不错的SQL格式化插件
    写SQL语句或者脚本时,看到凌乱的格式就头大了,于是决心找一款SQL语句格式化的工具。功夫不负有心人还真的被我找到一款很好用,很方便的SQLServer插件:SQLPrettyPrinterfor SSMS。安装SQLPrettyPrinter以后你可以在SSMS(SQLServerManagementStudio)的菜单栏看到菜单SQLB......
  • 【今日收获】Representation Collapse
    在深度学习中,对预训练模型进行fine-tuning可能会引发一种称为"RepresentationCollapse"的现象。RepresentationCollapse指的是模型在fine-tuning过程中失去了原始预训练模型所具有的多样性和丰富性的特征表示,导致最终模型的表示能力受到限制,无法充分适应新的任务或数据。......
  • 界面控件DevExpress WPF导航组件,助力升级应用程序用户体验!(上)
    DevExpressWPF的SideNavigation(侧边导航)、TreeView、导航面板组件能帮助开发者在WPF项目中添加Windows样式的资源管理器栏或OutlookNavBar(导航栏),DevExpressWPFNavBar和Accordion控件包含了许多开发人员友好的功能,专门设计用于帮助用户构建极佳的应用功能。P.S:DevExpressWPF......
  • vscode自动保存设置为afterDelay后prettier不生效
    "files.autoSave":"afterDelay""editor.formatOnSave":true这两个配置不能一起使用解决方法:1.将"afterDelay"修改为“onFocusChange"2.设置成onFocusChange或者onWindowChange3.关闭重启vscode 参考文件:files.autoSaveandeditor.formatOnSave  ......
  • 2023ICCV_Feature Modulation Transformer: Cross-Refinement of Global Representati
    一.Motivation1.transformer的工作主要集中在设计transformer块以获得全局信息,而忽略了合并高频先验的潜力2. 关于频率对性能的影响的详细分析有限(Additionally,there islimiteddetailedanalysisoftheimpactoffrequencyon performance.)注: (1) 图说明:随着高......
  • pipreqs 自动找到项目的所有组件和模块版本
    pipinstallpipreqs(适用于djangoFlask等)pipreqs./--encoding=utf-8找到当前项目目录下的所有组件和依赖H:\MyFlask>pipreqs./--encoding=utf-8十六.Flask基本项目目录搭建和pipreqs模块(组件和模块版本)virtualenv模块(创建虚拟环......
  • ip ip-prefix
    Ip ip-prefix ip-prefix-name [index index-number {permit|deny} ipv4-address mask-length  [ match-network ] [ greater-equal greater-equal-value ][ less-equal less-equal-value ]详细说明:ip-prefix-name:前缀列表名称index-number:索引号1~4294967295pe......
  • 大数据 - MapReduce:从原理到实战的全面指南
    本文深入探讨了MapReduce的各个方面,从基础概念和工作原理到编程模型和实际应用场景,最后专注于性能优化的最佳实践。关注【TechLeadCloud】,分享互联网架构、云服务技术的全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验......