【AIGC】14、GLIPv2 | 在 GLIP 上扩展 negative phrase 并新增分割功能

news2024/12/19 19:02:31

在这里插入图片描述

文章目录

    • 一、背景
    • 二、方法
      • 2.1 A Unified VL Formulation and Architecture
      • 2.2 GLIPv2 pre-training
      • 2.3 将 GLIPv2 迁移到 Localization 和 VL task
    • 三、结果
      • 3.1 One model architecture for all
      • 3.2 One set of model parameters for all
      • 3.3 GLIPv2 as a strong few-shot learner
      • 3.4 Analysis

论文:GLIPv2: Unifying Localization and Vision-Language Understanding

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

出处:NIPS2022 | 华盛顿大学 | Meta | Microsoft | UCLA

时间:2022.10

一、背景

视觉基础模型在近来引起了人们很大的兴趣,其能够同时解决多个视觉任务,如图像分类、目标检测、图文理解等

这些任务可以统一如下:

  • 定位任务:目标检测、语义分割
  • Vision-Language 理解任务:图文问答、图像检索等

现在比较流行的训练方法是先训练定位任务,再训练 VLP,也就是两阶段的预训练策略

但这样无法将两个任务联合训练,如何将这两个任务联合起来让其互利互惠很重要

  • 定位任务:仅仅是视觉任务,需要很精细的输出
  • VL 理解任务:更关注两个模态之间的融合,需要更高级的语义信息输出

之前的方法是怎么进行两个任务统一的:

  • 使用共享的 low-level visual encoder ,只是关于视觉的任务,无法从丰富语义信息的 VL 数据中获益
  • 后面接两个并行的高级分支分别进行定位和 VL 理解

GLIPv2 是什么:grounded VL understanding 模型,是 localization 和 VL understanding 任务的统一模型

1、 grounded VL understanding = Localization + VL understanding

  • Localization:同时涉及到定位和语义分类,可以使用 classification-to-matching 来将 classification 任务转换为 VL understanding 任务,所以 localization 任务可以看做 VL grounding 任务,language input 就是所有类别的合集。使用 self-training 方法就可以很方便的将大量 VL understanding data 转换为 grounding data。所以 GLIPv2 将所有任务统一为 grounding 任务
  • VL understanding

2、A stronger VL grounding task:inter-image region-word 对比学习(跨 image 的对比学习)

GLIP 中提出了 phrase grounding 任务作为预训练任务,作者认为这个任务比较简单而且没有利用到全部信息。

在这里插入图片描述

如图 1 所示的 VL grounding 任务,phrase grounding 任务只需要模型能够将给定的图片区域匹配到 text 中的一个单词即可(如 green, pink striped, or plain white umbrella),也就是相当于 1-in-3 选择任务,是比较简单的。因为这个 sentence 中只涉及到了三个颜色,没有涉及到其他颜色(如绿色、黑色、黄色等),目标物体只涉及到了雨伞,没有其他类别。在对比学习层面,phrase grouding 任务只有两个 negative,其他的 negative 并没有输入到该对比学习中。

在 GLIPv2 中,作者引入了一个新的 inter-image region-word (inter 表示图像间)对比训练任务,能从同一 batch 的不同句子中拿到潜在的负样本,让 GLIPv2 能够学习更有区分力的 region-word 特征,并且能够提高下游任务的效果

3、GLIPv2 可以让定位任务和 VL 理解任务互惠互利

  • 如表 2 所示,展示了单个 GLIPv2 模型能够达到接近 SOTA 的效果
  • 受益于语义信息丰富的 image-text 标注数据,GLIPv2 展示了很强的零样本和少样本迁移到开放世界的目标检测和语义分割任务的能力
  • GLIPv2 具有 language-guided 的检测和分割能力,并且获得了很好的效果
  • 在 grounding model 内部,GLIPv2 能够让 VL 理解模型有很强的 grounding 能力。

4、GLIPv2 和 GLIP 的不同

  • GLIP 展示了 grounded pre-training 提升定位的能力,GLIPv2 进一步证明了 grounded pre-training 能够提升 VL 理解能力,并且能将两个任务进行统一
  • GLIPv2 引入了 inter-image region-word 对比学习 loss,能够提供更强的 grounding 能力

在这里插入图片描述

二、方法

Unifying Localization and VL Understanding

2.1 A Unified VL Formulation and Architecture

GLIPv2 统一结构的中心思想:

  • classification-to-matching trick
  • 该 trick 的目标:将固定类别的分类问题重构为了一个开集(open-vocabulary)vision-language 匹配问题
  • 一个很好的例子就是 CLIP 将分类任务重构为了 image-text 匹配任务,可以让模型从大量的 image-text 数据中学习到很多,并且提升在开集分类任务上的零样本迁移能力
  • GLIPv2 如何实现:将 vision model 中的语义分类的 linear layer 替换为 vision-language matching dot-product layer

如图 1 所示,GLIPv2 基于通用的框架将 VL 结构进行了统一:

  • dual encoder: E n c V Enc_V EncV E n c L Enc_L EncL

  • fusion encoder: E n c V L Enc_{VL} EncVL

  • 模型输入:image-text pair (Img, Text)

  • 抽取特征: ( O o , P o ) (O^o, P^o) (Oo,Po) 表示 fusion 之前的特征, ( O , P ) (O, P) (O,P) 表示 fusion 之后的特征

    在这里插入图片描述

1、Vision-Language understanding task

Arch II 是常见的 VL understanding 任务的框架:

  • 输入跨模态融合后的特征表达 ( O , P ) (O, P) (O,P),直接相加
  • 如 GLIPv2 在 text feature P 之前添加了一个 two-layer MLP ,作为 masked language modeling(MLM)head,来进行 MLM pre-training

2、(Language-guided) object detection and phrase grounding

  • GLIPv2 和 GLIP 使用的相同,使用 classification-to-matching 方法来对 detection 和 grounding 任务进行统一
  • 对于 detection:使用 S g r o u n d = O P T S_{ground}=OP^T Sground=OPT 来代替 class logits S c l s = O W T S_{cls}=OW^T Scls=OWT,text feature P 是经过 language encoder 编码后的文本特征。detection 任务的 text input 是 label 组成的句子
  • phrase grounding:text input 是自然描述语言

3、(Language-guided) instance segmentation and referring image segmentation

  • 得到检测结果后,添加了实例分割 head

2.2 GLIPv2 pre-training

在这里插入图片描述

GLIPv2 的训练包括三个 pre-training loss:

在这里插入图片描述

1、phrase grounding loss: L g r o u n d L_{ground} Lground,由两部分组成:

  • L l o c L_{loc} Lloc:定位 loss

  • L i n t r a L_{intra} Lintra: 单个图像内的 intra-image region-word alignment loss,也就是每个 region 的语义分类 loss,给定一个 image-text pair (Img, Text),在对 O 和 P 融合后获得图像和 text 的特征, L i n t r a L_{intra} Lintra 如下:

    在这里插入图片描述

    • 其中 O P T OP^T OPT 是 image region 和 word token 的相似性得分
    • T T T 是 target affinity matrix,由 gt annotations 确定。
    • 这里的 l o s s loss loss 在两阶段检测器中一般是 cross-entropy loss,在单阶段检测器中一般是 focal loss
    • 图像间的 region-word 对比学习能力比较弱,因为可以捕捉的可用的 phrases 很有限
    • GLIP 中通过添加一些 negative sentence 来让网络接收到更多 negative phrases,但由于 token 的长度限制为 256,也只能增加很少的 negative sentences

2、Inter-image region-word contrastive loss: L i n t e r L_{inter} Linter,图像间的 region-word 对比学习

在 GLIPv2 中,作者提出了从同一 batch 中的其他 image-text pairs 来提取 negative examples 的方法,这样能提高 negative examples 到 1000 倍,且不会带来很多额外的计算量

在这里插入图片描述

inter-image region-word contrastive loss 如下:

在这里插入图片描述

3、masked language modeling loss: L m l m L_{mlm} Lmlm


预训练方式:同时使用 detection 和 paired-image-text data 进行 预训练

  • 预训练数据:image-text-target triplet format (Img,Text,T)
  • target affinity matrix T 包括 box-label localization 标注结果

分割头的两级预训练:

  • GLIPv2 支持两阶段的 language-guided 分割头的预训练

2.3 将 GLIPv2 迁移到 Localization 和 VL task

1、一个模型结构适用所有任务

GLIPv2 可以通过 fine-tuning 来迁移到很多下游任务:

  • 检测和分割任务:不需要 task-specific head ,因为结构本来就可以实现检测和分割
  • VL task:
    • 对 VQA,需要增加一个分类头
    • 对 caption generation:使用 unidirectional language modeling loss 训练

2、一个权重参数适用所有任务

如表 2 所示

在这里插入图片描述

3、Grounded VL understanding

在这里插入图片描述

clearer illustration:

在这里插入图片描述

三、结果

在这里插入图片描述

模型结构:

  • E n c V Enc_V EncV: image encoder( Swin Transformer)
  • E n c L Enc_L EncL:text transformer
  • E n c V L Enc_{VL} EncVL:fusion encode,Dynamic Head
  • instance segmentation head:Hourglass network

模型尺寸:

  • GLIPv2-T:Swin-Tiny 和 BERT-Base 作为两个 encoder,数据:O365、GoldG 、Cap4M(4M image-text pairs collected from the web with boxes generated by GLIP-T [41])
  • GLIPv2-B:Swin-Base 和 pre-layernorm text transformer [18] 作为两个 encoder,数据:
    • FiveODs (2.78M data)
    • GoldG as in MDETR [30]
    • CC15M+SBU, 16M public image-text data with generated boxes by GLIP-L [41]
    • Segmentation head 的预训练:模型其他参数都冻结,只基于 COCO、 LVIS 、PhraseCu 训练 head
  • GLIPv2-H:Swin-Huge 和 pre-layernorm text transformer [18] 作为两个 encoder,数据:
    • FiveODs (2.78M data)
    • GoldG as in MDETR [30]
    • CC15M+SBU, 16M public image-text data with generated boxes by GLIP-L [41]
    • Segmentation head 的预训练:模型其他参数都冻结,只基于 COCO、 LVIS 、PhraseCu 训练 head

在这里插入图片描述

3.1 One model architecture for all

在这里插入图片描述

在这里插入图片描述

3.2 One set of model parameters for all

在这里插入图片描述

3.3 GLIPv2 as a strong few-shot learner

在这里插入图片描述

3.4 Analysis

1、pre-training losses

在这里插入图片描述

2、pre-training data

在这里插入图片描述
3、Grounded VL understanding

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/612484.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Latex使用algorithm2e包写伪代码

用Latex写伪代码我们需要用到一个包,Algorithm2e,这个工具包的使用手册下载地址为(http://mlg.ulb.ac.be/files/algorithm2e.pdf)CSDN的链接为() 准备 导入该包 \usepackage[ruled,linesnumbered]{algor…

上海亚商投顾:沪指小幅震荡微涨 AI应用端持续活跃

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 市场情绪 大小指数今日走势分化,沪指全天窄幅震荡,创业板指低开低走,盘中一度跌超1.6%&a…

【Java基础】I/O流 —— Java中的流都需要关闭吗?

目录 一、为什么要关闭流?二、close方法和flush方法1.使用close方法2.使用flush方法 三、流按指向分类四、不用关闭的流 一、为什么要关闭流? 涉及到对外部资源的读写操作,包括网络、硬盘等等的I/O流,如果在使用完毕之后不关闭&a…

Unity基础框架从0到1(六)对象池模块

索引 这是Unity基础框架从0到1的第六篇文章,框架系列的项目地址是:https://github.com/tang-xiaolong/SimpleGameFramework 文章最后有目前框架系列的思维导图,前面的文章和对应的视频我一起列到这里: 文章 Unity基础框架从0到…

算力不竭如江海,天翼云“息壤”如何助力千行百业算力智能调度?

科技云报道原创。 数字时代下,算力已成为新型生产力,并朝着多元泛在、安全可靠、绿色低碳的方向演进。以算力为核心的数字信息基础设施,是国家战略性布局的关键组成部分,也成为数字经济时代的“大国重器”。 作为云服务国家队&am…

报表生成器FastReport .Net教程:“Text“对象、文本编辑

FastReport .Net是一款全功能的Windows Forms、ASP.NET和MVC报表分析解决方案,使用FastReport .NET可以创建独立于应用程序的.NET报表,同时FastReport .Net支持中文、英语等14种语言,可以让你的产品保证真正的国际性。 FastReport.NET官方版…

es elasticsearch 十四 各种机制 评分机制 正序索引 解决跳跃结果问题 解决耗时过长问题 解决相同属性值都到一个地方

目录 评分机制 机制 查看评分实现如何算出来的explaintrue 分析能否被搜索到 Doc value 正排序索引 Query phase Fetch phase Preference 问题 解决跳跃结果问题 Timeout 到达时间直接返回,解决耗时过长问题 Routing 数据准确分配到某地,解决相…

这才叫软件测试工程师,你那最多是混口饭吃罢了....

前些天和大学室友小聚了一下,喝酒喝大发了,谈天谈地谈人生理想,也谈到了我们各自的发展,感触颇多。曾经找工作我迷茫过、徘徊不,毕业那会我屡屡面试失败,处处碰壁;工作两年后我一度想要升职加薪…

006+limou+C语言“堆的实现”与“树的相关概念”

0.前言 这里是limou3434的一篇个人博文,感兴趣可以看看我的其他内容。本次我给您带来的是树的相关只是,并且把堆这一数据结构做了实现,后面还有大量的oj题目。但是树重点也就在这十多道oj题目中,您可以尝试着自己做一下&#xff…

我的创作纪念日|写在CSDN创作第512天

机缘 今天无意中发现CSDN后台给我发送私信,才发觉原来我的第一篇博客更新已经过去512天了,512天一晃而过居然还有点恍然。 作为一名网络专业的在校大学生,最初开始查找相关的资料其实更习惯于从外站进行查找,却总是在不经意中进入…

人事管理项目-前端实现

人事管理项目-前端实现 引入Element和Axios开发Login页面配置路由配置请求转发启动前端项目 引入Element和Axios 前端UI使用Element,网络请求则使用Axios,因此首先安装Element和Axios依赖,代码如下: 依赖添加成功后,接…

N-propargyloxycarbonyl-L-lysine,1215204-46-8,是一种基于赖氨酸的非天然氨基酸 (UAA)

产品描述: N-ε-propargyloxycarbonyl-L-lysine (H-L-Lys(Poc)-OH) 是一种基于赖氨酸的非天然氨基酸 (UAA)。 广泛用于多种生物体中荧光探针的生物偶联。 N- ε- Propargyloxycarbonyl-L-lysine (H-L-Lys (Poc) - OH) is a non natural amino acid (UAA) based on …

Kotlin Channel系列(一)之读懂Channel每一行源码

文章目录 有话说概述初识ChannelChannel种类Channel五大金刚SendReceiveClosedQueueBuffer Channel的行为Channel源码分析发送数据大动脉接收数据大动脉父类默认实现方式(RendezvousChannel)发送流程send()函数onSend()函数 接收流程receiveCatching()函数onReceiveCatching()函…

基于图像处理的圆检测与深度学习

基于图像处理的圆检测与深度学习 摘 要一、 绪论二 、图像预处理2.1 滤波算法2.2 边缘检测 三 、圆识别与定位算法3.2 定位算法3.2.1 迭代算法 4.1 数据处理 五、深度学习介绍:参考文献 摘 要 本文主要论述在图像处理的的基础上,为了克服图像背景中的亮…

SpringBootWeb案例-2(下)

3. 修改员工 需求:修改员工信息 在进行修改员工信息的时候,我们首先先要根据员工的ID查询员工的信息用于页面回显展示,然后用户修改员工数据之后,点击保存按钮,就可以将修改的数据提交到服务端,保存到数据…

面试专题:java虚拟机(2)

8.垃圾收集有哪些算法,各自的特点? 标记清除 直接将要回收的对象标记,发送gc的时候直接回收:特点回收特别快,但是回收以后会造成 很多不连续的内存空间,因此适合在老年代进行回收,CMS(current…

Linux--ServerProgramming--(4)详解 I/O复用

1. I/O 复用功能 I/O 复用能同时监听多个文件描述符。 I/O 复用本身是阻塞的。 当有多个文件描述符同时就绪时:若不采取额外措施,程序就只能按顺序一次处理其中的每一个文件描述符,这使得服务器程序看起来是串行工作的。若要实现并发&#…

ChatGPT市场营销指南震撼出炉,你错过了?!

ChatGPT是一种基于AI技术的语言模型,它可以与用户进行对话和交互。它被广泛应用于各个领域,包括市场营销。作为一名市场营销人员,您可以使用ChatGPT来获得创意、解决问题和生成内容。 下面是190个ChatGPT提示,可帮助营销人员更好…

oracle自定义函数 for in loop示例

1、新建type,就是返回结果集有什么,这里就写什么(相当于表的字段) CREATE OR REPLACE TYPE "TYPE_NQ_FORM_STATISTICS" as object (recordid varchar2(500),form_name varchar2(200),sortone varchar2(100),sorttwo …

华为od机试题目回顾

今天去做了华为机试&#xff0c;两道一星题&#xff0c;一道二星题。 一星题 1&#xff1a; 题目主要大意&#xff1a; 输入一串字符串&#xff0c;里面可能包含有(x,y)的坐标。 0<x<1000&#xff0c;0<y<1000&#xff0c;类似(01,1)、(1,01)、(0,100)的都是非法坐…