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

news2024/9/20 16:35:52

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 融合了更多定位相关的任务(如检测、实例分割)和更多的多模态相关的任务(如问答、字幕生成)。

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

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

相关文章

07react+echart,大屏代码开发

react框架引入第三方插件原链接gitHub:GitHub - hustcc/echarts-for-react: ⛳ Apache ECharts components for React wrapper. 一个简单的 Apache echarts 的 React 封装。import ReactECharts from echarts-for-react;import * as echarts from echarts;一、软件简介echarts-…

微机原理和计算机组成原理复习

1:冯诺依曼机器的主要特点? 1)计算机由运算器、存储器、控制器、输入设备和输出设备五大部分组成; 2)指令和数据存储在存储器中,并可以按地址访问; 3)指令和数据均以二进制表示&…

2023年软考中级信息安全工程师考什么?

信息安全工程师是属于软考中级科目,含金量很高的,信息安全工程师在社会上的需求是蛮大的。 信息安全工程师主要涉及计算机信息安全方面,在计算机软硬件、网络、应用相关领域从事安全系统设计、安全产品开发、产品集成、信息系统安全检测与审计…

小程序容器作为软件中间件技术不可忽视的价值

随着移动互联网的不断发展,越来越多的应用程序被广泛应用于各种行业和领域中。然而,不同的平台和设备之间的差异性和复杂性,给应用程序的开发和部署带来了很大的挑战。这时,小程序容器作为软件中间件技术的其中一环,成…

格密码学习笔记(三):闵可夫斯基第一定理

文章目录NNN维超球体体积结论闵可夫斯基凸体定理闵可夫斯基第一定理闵可夫斯基第二定理致谢NNN维超球体体积结论 在nnn维空间中,对半径为rrr的超球体(Ball),有vol(B(0,r))≥(2rn)n\mathrm{vol}(\mathcal{B}(0, r)) \geq \left( \…

java基础:浅聊实例化和初始化

其实如果了解python的化,其在生成一个实例对象的时候会调用两个系统方法__new__ 和__init__。 这个可以通过看生成的class文件看到,比如创建一个test.java,然后通过jclasslib这个软件查看class文件,当然ide也可以安装这个软件的插…

ggplot2的组图拓展包(1):patchwork(上篇)

专注系列化、高质量的R语言教程推文索引 | 联系小编 | 付费合集patchwork是ggplot绘图系统的拓展包,主要功能是将多个ggplot格式的图形组合成一幅大图,即组图。patchwork工具包十分好用,它主要利用几个类似四则运算符号的操作符进行组图&…

Python——函数(重点内容)

函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。 函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫…

Linux 常用软件安装(jdk,redis,mysql,minio,kkFileView)

1.jdk安装 查询所有跟Java相关的安装的rpm包 rpm -qa | grep java卸载所有跟openjdk相关的包: 执行命令。删除以上除了noarch 结尾的所有文件 rpm -e --nodeps java-1.8.0-openjdk-1.8.0.252.b09-2.el8_1.x86_64 rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0…

钉钉端H5开发调试怎么搞

H5开发本地调试教程 作为一名前端开发,大家平时工作中或多或少都有接触或需要开发H5页面的场景,在开发过程中,如何像PC端页面一样有有丝滑的体验呢? 不同的情况需要在不同的端调试更方便有效: 1. 在画UI的时候,更适合在PC端调试,更改代码或者直接在浏览器调试,都是实…

LeetCode链表(单链表,双链表,反转链表)

文章目录前言1.链表定义2.链表操作3.技巧链表常见操作1.lc203 移除链表元素2.lc2 两数相加3.lc328 奇偶链表反转链表1.lc206 反转链表2.lc92 反转链表II链表双指针1.lc19 删除链表的倒数第 N 个结点2.lc21 合并两个有序链表3.lc24 两两交换链表中的节点4.lc234 回文链表前言 本…

Vue3倒计时组件(Countdown)

可自定义设置以下属性: 倒计时数值(countdown),单位s,必传倒计时标题(title),默认Countdown,string | v-slot格式化倒计时展示(format)&#xff…

“操作无法完成,因为其中的文件或文件夹一再另一程序打开”解决方法

windows系统中,有时时候我们想要修改某个文件,就出现出现如下提示:操作无法完成,因为其中的文件或文件夹已在另一程序打开请关闭该文件或文件夹,然后重试出现这个上面提示的原因是,我们要修改的文件或文件夹…

网络基础(1)

目录1. 网络1.1 网络是什么1.2 网络在哪里2. 协议3. TCP/IP五层(或四层)模型3.1 分层细节3.2 报头3.2.1 封装与解包4. 数据传输4.1 局域网4.2 IP地址与Mac地址1. 网络 1.1 网络是什么 网络本质是一个软件,软件是可以进行分层的。例如STL库,实际上分为了…

文件包含漏洞1 | iwebsec

文章目录00-文件包含漏洞原理环境01-本地文件包含读取敏感文件信息配合文件上传getshell配合日志文件getshell配合SSH日志配合运行环境00-文件包含漏洞原理 为什么要文件包含? 为什么会有文件包含漏洞? 因为将被包含的文件设置为变量,用来进行动态调用…

169_技巧_Power BI 依据促销日历计算销售金额

169_技巧_Power BI 依据促销日历计算销售金额 一、背景 在各位表格表姐们计算销售金额的时候,有一个绕不开的问题:商品有促销的问题,需要使用对应的促销价来计算销售额。 按照惯例还是先来看看结果 Power BI 公共 web 效果:htt…

使用docker进行Mongoyapi安装,Mongo重启yapi重启

在这里我使用Linux虚拟机作为docker服务器,本机通过xshell进行远程操作。 Mongo安装:docker run -d --name mongo-yapi mongo; yapi安装:1)拉取yapi docker pull registry.cn-hangzhou.aliyuncs.com/anoy/yapi 2)初…

2023款欧拉好猫上市,12.98万起

上周,2023款欧拉好猫焕新上市。2023款好猫共推出5个车型: •401km标续航,舒享型/豪华型/尊贵型,分别是12.98/13.98/14.98万元; •501km长续航,豪华型/尊贵型,分别是15.58/16.58万元;…

00后整顿职场,当摸鱼测试员遇上了内卷00后。

在程序员职场上,什么样的人最让人反感呢? 是技术不好的人吗?并不是。技术不好的同事,我们可以帮他。 是技术太强的人吗?也不是。技术很强的同事,可遇不可求,向他学习还来不及呢。 真正让人反感的,是技术平平&…

【PaddleOCR-kie】一、关键信息抽取:使用VI-LayoutXLM模型推理预测(SER+RE)

背景:在训练自己数据集进行kie之前,想跑一下md里面的例程,但md教程内容混乱,而且同一个内容有多个手册,毕竟是多人合作的项目,可能是为了工程解耦,方便更新考虑……需要运行的模型和运行步骤散落…