论文阅读-(GLIP)Grounded Language-Image Pre-training (目标检测+定位)

2023-11-12

Paper:Grounded Language-Image Pre-training

Code:https://github.com/microsoft/GLIP

简介:

  • 定位任务与图像检测任务非常类似,都是去图中找目标物体的位置,目标检测为给出一张图片找出bounding box,定位为给出一个图片和文本,根据文本找出物体。GLIP 模型统一了目标检测(object detection)和定位(grounding)两个任务,构建了一个统一的训练框架,从而将两个任务的数据集都利用起来。再配合伪标签的技术来扩增数据,使得训练的数据量达到了前所未有的规模。在训练完成之后,直接以 zero-shot 的方式在 COCO 数据集上进行测试,达到了 49.8 AP。

  • GLIP 进行 zero-shot 测试的结果如下图所示,不管是给定几个类别(如 person、pistol、apple等)还是给定一段话(如 ‘there are some holes on the road’)作为文本编码器的输入,GLIP 模型都能从图像中找到对应物体的位置。

 如何统一两个任务:

detection 和 grouding 任务的目标函数都是由两部分损失组成,即分类损失和定位损失。定位损失不必多说,直接去计算与标注中的 GT 框的距离即可。

 1、而对于分类损失,则有所不同。对于 detection 任务来说,分类的标签是一个类别单词,在计算分类损失时,每个区域框特征与分类头计算得到 logits,输出 logits 经过 nms 筛选之后,与 GT 计算交叉熵损失即可。

 对于目标检测,给定一个图片Img,通过图像的backbone得到region embedding,O是N*d的一个region embedding,即如果有n个bounding box 每个bounding box embedding的维度就是d。之后再接一个分类头,判断bounding box里的物体是哪个类,分类头W是一个矩阵,维度为c*d,c是有多少个类别,将region embedding与W相乘得最后分类的logits S,之后用mns把bounding box筛选一下再跟groundtruth算交叉熵得到最终的loss。

2、对于 vision grounding 任务来说,标签是一个句子,不是用分类头,而是通过文本编码器得到文本特征,计算文本特征与区域框特征的相似度,得到匹配分数,想看看图像区域和句子里的单词是怎么匹配的。

 给定一个图片Img,通过图像的backbone得到region embedding,接下来输入一个句子至文本编码器得到文本embedding,之后文本embedding与图像的region embedding算相似性。

3、作者提出,只要判断一下两个任务中什么时候是 positive match,什么时候是 negative match,就能将两个任务统一起来了。理论分析后,作者使用统一过后的框架验证了在 COCO 数据集上的指标,与之前的目标检测框架持平,因此从实验上也验证了自己的想法。

数据集:

既然统一了 detection 和 grounding 两个任务,最直接的一个利好就是两边的数据集都可以拿来训练这个统一的框架。即下图中所示的 O365 和 GoldG 两个数据集。这些数据集都是有标注的,规模还不够大。想要进一步获得更大量的数据,必须像 CLIP 那样借助无标注的图像文本对数据。但是,目标检测任务的训练必须要 GT 框,单独的图文对数据没法直接用。作者这里使用了 self-training 中伪标签的方式,使用 O365 和 GoldG 上训练好的 GLIP-T(c) 去在图文对数据 Cap4M/ Cap24M 上生成伪标签,直接当做 GT 框给 GLIP-T/L 进行训练。生成的伪标签肯定有错误,但是实验表明,经过扩充大量伪标签数据训练得到的 GLIP-L 模型仍然会有性能提高。

 模型结构:

1、GLIP 模型结构及训练目标如下图所示,模型是以有监督的方式进行训练,计算得到文本特征和图像特征的相似度之后,直接与 GT 计算对齐损失(alignment loss)即可,定位损失(Localization loss)也是直接与GT 框计算。

2、模型中间的融合层(fusion)是为了增加图像编码器和文本编码器之间的特征交互,使得最终的图像-文本联合特征空间训练得更好。

 定量实验结果:

    GLIP 的定量实验结果如下图所示,GLIP 模型可以做 zero-shot 的目标检测,并且能够达到 49.8 AP。如果再在 COCO 上进行微调,GLIP 的 AP 能够超过当前最好的一些有监督方法。

 GLIPv2

Paper:GLIPv2: Unifying Localization and Vision-Language Understanding

Code:https://github.com/microsoft/GLIP

GLIP 的进一步拓展工作 GLIPv2 融合了更多定位相关的任务(如检测、实例分割)和更多的多模态相关的任务(如问答、字幕生成)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

论文阅读-(GLIP)Grounded Language-Image Pre-training (目标检测+定位) 的相关文章

  • excel编写的测试用例转成xmind格式

    软件开发过程中 测试工程师必不可少的一项工作就是编写测试用例 进行测试评审 设计评审 用例评审 写用例常用的几种方法无非就是用excel写 或者xmind这种思维导图形式 而xmind具有条理清晰的特点 所以测试评审时为了提高效率 很多团队

随机推荐

  • 2023华为od机试 Python【不包含回文串】

    前言 本题使用python解答 如果需要Java版本代码 请参考 点我 题目 什么是回文串呢 就是将原字符串翻转过来 和原始字符串一样的字符串 我们现在有一个不包含回文串的字符串 并且 字符串的字符在英语字母的前N个 且字符串不包含任何长度
  • 【网络游戏同步技术】帧同步的一致性

    参考博文 GAD 网络游戏同步技术 引言 帧同步的形式很泛 根据不同游戏 使用的技术范围又不一样 所以大家都在讲方法论 要全面覆盖可能需要较大的篇幅 所以 我简单描述下 假定大家对帧同步和状态同步有一定的认识 理论上的问题 我就不作过多解释
  • 从pandas dataframe中随机删除n个某一列是某个值的元素

    从pandas dataframe中随机删除n个某一列是某个值的元素 import pandas as pd 创建示例 DataFrame data A 1 2 3 4 5 6 B 6 7 8 9 10 11 C X Y Z X Y X d
  • 基本排序算法(直接排序,选择排序,冒泡排序)

    一 直接排序 思路 首先需要两个嵌套的for循环 外层for循环控制轮数 内层for循环控制每轮比较的次数 这里来演示一下遍历的过程 第一轮 首先让i指向数组的首部 让j指向i的后一个元素 两者比较 2比1大 所以交换2跟1的位置 然后j后
  • git proxy

    git config global https proxy http 127 0 0 1 7890 git config global https proxy https 127 0 0 1 7890
  • tar命令的详细解释

    tar命令 root linux tar cxtzjvfpPN 文件与目录 参数 c 建立一个压缩文件的参数指令 create 的意思 x 解开一个压缩文件的参数指令 t 查看 tarfile 里面的文件 特别注意 在参数的下达中 c x
  • CSS 水平居中

    1 若元素内容为文字时 元素设置text align center text align属性指定元素文本的水平对齐方式 center 把文本排列到中间 p 这里是文本内容 p 2 父子元素宽度固定 父元素设置text align cente
  • SQL实用功能手册

    SQL实用功能手册 SQL基础复习 SQL结构化查询语言 是一种访问和处理数据库的计算机语言 对数据库操作 对表操作 对数据进行CRUD操作 操作视图 存储过程 索引 环境基础操作 安装mysql 启动mysql 配置环境变量 检查mysq
  • 搞懂java类加载机制和类加载器

    搞懂java类加载机制和类加载器 类加载概述 一个类从被加载到虚拟机内存中开始 到卸载出内存为止 它的整个生命周期将会经历加载 验证 准备 解析 初始化 使用和卸载七个阶段 其中验证 准备 解析三个部分统称为连接 如下图所示 其中加载 验证
  • Android学习——Adapter适配器

    AdapterView 容器控件 其整体效果由每一个子元素内容决定 子元素的形式由Adapter决定 AdapterView的子视图对象 ListView 以垂直滑动列表形式显示一组数据 GridView 以网格形式显示一组数据 Spinn
  • GPUView的使用

    本文翻译自GPUView的开发者Matt的blog https graphics stanford edu mdfisher GPUView html GPUview可以在 https docs microsoft com en us wi
  • 10个经典的C语言面试基础算法及代码

    本文是码农网原创整理 转载请看清文末的转载要求 谢谢合作 算法是一个程序和软件的灵魂 作为一名优秀的程序员 只有对一些基础的算法有着全面的掌握 才会在设计程序和编写代码的过程中显得得心应手 本文是近百个C语言算法系列的第二篇 包括了经典的F
  • C语言(Head First C)-5_1:使用多个源文件:数据类型和使用头文件声明函数

    该系列文章系个人读书笔记及总结性内容 任何组织和个人不得转载进行商业活动 5 1 使用多个源文件 数据类型和头文件 大程序不等于大源文件 只有一个源文件的话 维护耗时且困难 如何把源文件分解为易于管理的小模块 然后合成一个大程序 正是本章的
  • Append-only及其使用

    Append only 维基百科 Append only 是计算机数据存储的一种属性 将新数据附加到存储中 但现有数据是不可变的 许多数据结构和数据库实现了不可变对象 有效地使它们的数据结构只能追加 实现仅追加数据结构有很多好处 例如确保数
  • android 播放raw音频文件格式,Android 使用mediaplayer播放res/raw文件夹中的音乐的实例...

    Android 使用mediaplayer播放res raw文件夹中的音乐的实例 1 在res文件夹中新建一个文件夹重命名为raw 并且将要播放的音乐放到raw文件夹里面 2 修改layout目录下的xml布局文件 添加3个按钮空间和一个文
  • 计算机硬盘启动设置方法,bios设置硬盘启动,详细教您bios设置硬盘启动操作步骤...

    我们在操作电脑的时候 会遇到要重装系统的情况 每当这种时候我们就会想到通过bios设置来进行系统的重装 所以今天小编就来重点给你们说说关于bios设置硬盘启动的操作步骤 重装系统是我们在使用电脑的时候会经常在遇到问题时采用的解决方法 但说到
  • spring boot 获取yaml配置的对象和数组对象

    一 获取对象 例子 yaml中的配置 permission method POST path auth login spring boot 中 在需要使用到该配置的controller或者service或者专门的配置类中 添加method和
  • 磁盘加新盘扩容

    注 如果有磁盘超过2T 如下调整 使用parted来对GPT磁盘操作 进入交互式模式 没有的话yum安装下 parted dev sdb 将MBR磁盘格式化为GPT parted mklabel gpt 到这就可以进行下面的了 先查看下新磁
  • QT UI不能索引控件

    原因 Qt程序使用的UI h文件并不是最新的UI文件 最新的ui h在bulid文件夹里面了 软件依旧使用旧的ui h文件 简单讲就是先要从 ui生成ui h然后再编译 所以界面未更新实际上是因为ui h这个文件没有更新导致的 解决办法 1
  • 论文阅读-(GLIP)Grounded Language-Image Pre-training (目标检测+定位)

    Paper Grounded Language Image Pre training Code https github com microsoft GLIP 简介 定位任务与图像检测任务非常类似 都是去图中找目标物体的位置 目标检测为给出