Grounded Language-Image Pre-training论文笔记

news2025/2/25 6:42:11
Title:Grounded Language-Image Pre-training
Code

文章目录

  • 1. 背景
  • 2. 方法
    • (1)Unified Formulation
      • 传统目标检测
      • grounding目标检测
    • (2)Language-Aware Deep Fusion
    • (3)Pre-training with Scalable Semantic-Rich Data
  • 3. 实验
    • (1)数据集简介
    • (2)GLIP消融实验
  • 参考

1. 背景

目前的视觉识别任务通常是在一个预先定义好的类别范围内进行的,这样限制了其在真实场景中的扩展。CLIP的出现打破了这一限制,CLIP利用image-text对进行训练,从而使得模型可以根据文字prompt识别任意类别。CLIP适用于分类任务,而GLIP尝试将这一技术应用于目标检测等更加复杂的任务中。

在本文中,作者提出了phrase grounding的概念,意思是让模型去学习图片和句子短语之间更加精细的联系。

GLIP的主要贡献如下:

  • 将phrase grounding和目标检测任务统一,将image和text prompt同时输入到目标检测网络中,prompt中带有图片中所有类别的详细描述。
  • GLIP采用了丰富的预训练数据,使得它的预训练模型可以更轻松地迁移到下游任务中。预训练的GLIP在COCO数据集上finetune之后达到了60.8 AP(2017val)和61.5AP(test-dev),超过了目前的SOTA模型。
  • One model for all,GLIP可以迁移到多样化的任务中。它在不使用额外标注的情况下,在coco val2017和LVIS数据集上分别达到了49.8AP和26.9AP。

2. 方法

在这里插入图片描述

(1)Unified Formulation

传统目标检测

一个典型的目标检测网络的结构如下:

  • 将图片输入到visual encoder E n c I Enc_I EncI 中提取特征 O O O,visual encoder通常是CNN、Transformer等backbone;
  • 将特征 O O O 输入到classifier C C C 和bbox regressor R R R 中得到分类结果和bbox回归结果;
  • 分别计算分类损失和框回归损失,整体Loss公式: L = L c l s + L l o c L=L_{cls}+L_{loc} L=Lcls+Lloc

上述计算分类Loss的流程可以用公式表达为:

在这里插入图片描述
其中 T T T 代表target; W W W 是分类器参数。

grounding目标检测

与上述分类器不同,GLIP将目标检测任务与phrash grounding统一,将目标检测中的每个region/bboxtext prompt进行匹配以实现分类效果。

举例来说,假设我们有[person, bicycle, car, ..., toothbrush]等类别,我们可以设计一个这样的prompt,其中每一个类别名字都是一个phrase:

在这里插入图片描述

grounding模型中的分类流程可以用公式表示为:

在这里插入图片描述
其中 P P P 是language encoder得到的文字特征, S g r o u n d S_{ground} Sground 的计算过程如下如图示:计算图像的region和prompt中的word之间的对齐分数:
在这里插入图片描述

然而,在计算对齐分数时,一个短语(phrase)可能包含多个word tokens,这就导致一个类别可能对应多个子单词(sub-words)。针对这个问题,本文是这样做的:当这些sub-words的phrase与目标region匹配时,每个positive sub-word都与目标region所匹配。**例如,吹风机的phrase是“Hair dryer”,那么吹风机的region就会与“Hair”和“dryer”这两个词都匹配,**如下图所示:

在这里插入图片描述

(2)Language-Aware Deep Fusion

在CLIP等算法中,image和text特征通常只在最后用于计算对比学习的loss,我们称这样的算法为late-fusion model。在本文中,作者在image和text特征之间引入了更深层次的融合(deep fusion),在最后几个encoder layer中进行了image和text的信息融合,如下图所示:

在这里插入图片描述

deep-fused encoder可以用以下公式来表示:

在这里插入图片描述
其中, X-MHA代表跨模态多头注意力模块(multi-head attention module),L代表DyHead中DyHeadModule的个数,BERTLayer是额外添加在预训练BERT模型之上的层, O 0 O^0 O0 是vision backbone提取的图像特征, P 0 P^0 P0 是language backbone提取的文字特征。

X-MHA是用于跨模态信息融合的关键模块 (cross attention) ,它的公式如下所示:
在这里插入图片描述
deep-fused有两个优点:

  • 提升了phrase grounding的表现;
  • 使得图像特征的学习与文字特征产生关联,从而让text prompt可以影响到检测模型的预测。

(3)Pre-training with Scalable Semantic-Rich Data

  • 同时使用目标检测和grounding数据;
  • 另外通过利用gold data训练教师GLIP,使用这个教师模型来预测24M web image-text数据,为image caption数据得到了检测伪标签;
  • 也就是说,GLIP可以同时利用目标检测数据集,grounding数据集,image caption数据集,极大丰富了训练数据量;

3. 实验

(1)数据集简介

在这里插入图片描述

  • COCO:目标检测数据集,包含80个常见对象类别;
  • LVIS:目标检测和实例分割数据集,涵盖1203个对象类别;
  • Object365:是一个大规模的目标检测数据集,总共包含63万张图像,覆盖365个类别,高达1000万框数;
    Microsoft COCO Captions 数据集:该数据集为超过 33 万张图片提供了超过 150 万条人工生成的图片描述。
  • Flickr30k:给定了31783张图像以及158915个文本注释,一张图片对应5个注释,并将它们与 276K 个手动标注的边界框关联起来。
  • Visual Genome(VG)是斯坦福大学李飞飞组于2016年发布的大规模图片语义理解数据集,数据集汇总最主要的构成是Region Description,每个region/bbox都有与其对应的一句自然语言描述。
  • GQA数据集包含22,669,678个问题和113,018张图片,数据集中覆盖的词汇量有3,097个,答案类型有1,878个,同时也包含对应的bbox注释;
  • Conceptual Captions (CC)是一个数据集,由约 330 万张带有字幕注释的图像组成。
  • SBU Captions数据集最初将图像字幕作为一个检索任务,包含 100 万个图片网址 + 标题对。

最后使用的数据集有:

  • FourODs (2.66M data): 4 detection datasets including Objects365, OpenImages, Visual Genome (excluding COCO images), and ImageNetBoxes
  • GoldG (0.8M): human-annotated gold grounding data curated by
    MDETR, including Flickr30K, VG Caption and GQA.
  • Cap4M / Cap24M

(2)GLIP消融实验

作者设计了多个版本的GLIP用于对比试验:

  • GLIP-T(A):基于SoTA模型Dynamic Head,将其中的分类损失替换为GLIP的alignment loss,预训练数据为Objects365(66万人工标注数据);
  • GLIP-T(B):在GLIP-T(A)的基础上加入deep fusion;
  • GLIP-T©:在预训练数据中加入GoldG(80万人工标注数据);
  • GLIP-T:加入更多数据:Cap4M(400万网上爬取的数据);
  • GLIP-L:基于Swin-Large,并采用更大量的数据集,包含:FourODs(2.66M)、GoldG(0.8M)、Cap24M(24M);

在这里插入图片描述

由于 Objects365 覆盖了 COCO 中的所有类别,因此Objects365 预训练的 DyHead-T 在COCO上表现优异,达到了43.6AP; 若将模型重新构建为grounding模型,性能略有下降 (GLIP-T (A)); 添加深度融合将性能提升 2AP (GLIP-T (B)); GoldG数据对性能的提升贡献最大,GLIP-T © 达到 46.7 AP。 虽然添加图像-文本数据对 COCO 有轻微或没有改进(GLIP-T 与 GLIP-T ©),作者发现它对于推广到稀有种类至关重要,并在LVIS 实验中进一步展示了这一现象。

在这里插入图片描述

Gold grounding数据使 Mini-Val APr (GLIP-T© 与 GLIP-T (B)) 相比提高了 4.2 个点。这进一步表明grounding数据对性能的提升有显著的贡献。另外,添加图像-文本数据进一步提高了 3.1 个点的性能。因此,基础数据的语义丰富性可能有助于模型识别稀有物体。

参考

  • 如何看待微软的Grounded Language-Image Pre-training(GLIP)?

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

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

相关文章

【JavaEE基础学习打卡06】JDBC之进阶学习PreparedStatement

目录 前言一、PreparedStatement是什么二、重点理解预编译三、PreparedStatement基本使用四、Statement和PreparedStatement比较1.PreparedStatement效率高2.PreparedStatement无需拼接参数3.PreparedStatement防止SQL注入 总结 前言 📜 本系列教程适用于JavaWeb初学…

Kali Linux中的SQL注入攻击如何进行

Kali Linux中的SQL注入攻击如何进行? 什么是SQL注入攻击? SQL注入是一种常见的Web应用程序漏洞,攻击者可以通过恶意构造的SQL查询字符串,绕过应用程序的验证和过滤,进而访问或操纵数据库中的数据。这可能导致泄露敏感…

Linux 命令大全(看这一篇就足够)

目录 第一章:Linux目录结构 第一节:基本介绍 第二节:Linux具体目录结构 第二章:Linux常用命令 第一节:目录处理命令 2.1.1 命令格式 2.1.2 列出目录的内容:ls 命令 2.1.3 创建目录:mkdi…

Wlan——锐捷智分网络解决方案及其配置

目录 智分解决方案 一代智分解决方案 二代智分解决方案 三代智分解决方案 智分解决方案 技术原理 隧道建立 智分方案的配置 配置基础信息 配置微AP的无线信号 调整微AP的射频参数 宿舍场景特点:房间小,单个房间用户少,房间密集&am…

第 5 章 栈(1)(介绍,应用场景,入门)

5.1栈的一个实际需求 请输入一个表达式 计算式:[722-51-53-3] 点击计算【如下图】 请问: 计算机底层是如何运算得到结果的? 注意不是简单的把算式列出运算,因为我们看这个算式 7 * 2 * 2 - 5, 但是计算机怎么理解这个算式的(对计算机而言,它接收到的就…

用名字来杀,杀不死的进程

杀死进程 这是进程的名字 docker-prox pkill -f "docker-prox"查看是否杀死 netstat -tlnp | grep :7006

echarts 的dataZoom滑块两端文字被遮挡

问题: 期望: 解决方案: 1:调整宽度(4版本的没有width属性) 2. 参考:echarts图标设置dataZoom拖拽时间轴时自动调整两侧文字的位置_datazoom 位置_乌栖曲的博客-CSDN博客 设置文字的定位 cons…

RT-Thread内核学习

内核框架 内核是操作系统最基础也是最重要的部分,内核处于硬件层之上,内核部分包括内核库、实时内核实现。 内核库是为了保证内核能够独立运行的一套小型的类似C库的函数实现子集。这部分根据编译器不同自带C库的情况也会不同。 当使用GNU GCC编译器时&…

2023年高教社杯 国赛数学建模思路 - 复盘:光照强度计算的优化模型

文章目录 0 赛题思路1 问题要求2 假设约定3 符号约定4 建立模型5 模型求解6 实现代码 建模资料 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 问题要求 现在已知一个教室长为15米,宽为12米&…

基于旗鱼算法优化的BP神经网络(预测应用) - 附代码

基于旗鱼算法优化的BP神经网络(预测应用) - 附代码 文章目录 基于旗鱼算法优化的BP神经网络(预测应用) - 附代码1.数据介绍2.旗鱼优化BP神经网络2.1 BP神经网络参数设置2.2 旗鱼算法应用 4.测试结果:5.Matlab代码 摘要…

pandas 将单元格是列表的DataFrame拆成多列

方法: pd.DataFrame(df[col].values.tolist()) 将单元格元素是列表的列拆成多列 如果要与原来的其他列合并 pd.concat([pd.DataFrame(df[col].values.tolist()), df[其他列]], axis1) 示例: points数组如下: 生成DataFrame如下 处理结…

S7-300 PLC 模拟量采集(从硬件组态到软件FC编写)

S7-300PLC属于退市产品,很多老的生产线仍然沿用,所以这篇博客我们一步步介绍如何从硬件组态到软件FC的编写,首先我们组态模拟量模块。 1、硬件组态 组态好硬件后,我们开始设计软件FC,模拟量采集往往都会有很多回路,下面我们介绍如何在STEP7中创建模拟量采集FC,S_ITR,有关…

mysql sql_mode数据验证检查

sql_mode 功能 sql_mode 会影响MySQL支持的sql语法以及执行的数据验证检查。通过设置sql_mode ,可以完成不同严格程度的数据校验,有效地保障数据准确性 sql_mode 严格模式 VS 宽松模式 宽松模式 比如,插入的数据不满足 表的数据类型,也可能…

国际象棋上放马--夏令营

题目 tips: 1、分类讨论,从最小的数1开始试,再逐一增大,这种会是有规律的 其次,既然要分类讨论就要比大小 2、输入m,n的同时,在m,n同为0时程序停止怎么写 while(scanf("")!EOF&&(m||…

微信小程序开发教学系列(1)- 开发入门

第一章:微信小程序简介与入门 1.1 简介 微信小程序是一种基于微信平台的应用程序,可以在微信内直接使用,无需下载和安装。它具有小巧、高效、便捷的特点,可以满足用户在微信中获取信息、使用服务的需求。 微信小程序采用前端技…

Docker常见配置实验

1、使用mysql:5.6和 owncloud 镜像,构建一个个人网盘。 1、拉取mysql5.6与owncloud的镜像 docker pull mysql:5.6 docker pull mysql:5.6 2、生成容器实例,构建个人网盘 docker run -d --name mydb1 --env MYSQL_ROOT_PASSWORD123456 mysql:5.6 docker …

mysql 开启远程连接(windows)

mysql版本:MySQL Server 5.7 1、开放防火墙端口 2、 配置 MySQL 服务的用户权限 打开 cmd 输入以下命令登录 mysql,接着输入密码,回车 mysql -u root -p 接着输入命令 use mysql; 查看mysql 数据库当前 root 用户的相关信息 select host,user…

打开软件报错mfc100u.dll缺失是什么意思?简单式修复mfc100u.dll问题

首先,我们需要了解什么是MFC100U.dll文件以及它的作用。MFC100U.dll是一个Microsoft Foundation Class (MFC)库文件,它是Visual C应用程序开发的一部分。MFC库提供了许多通用的功能,如窗口管理、消息处理等,可以帮助开发者更快速地…

C++信息学奥赛1137:加密的病历单

#include<bits/stdc.h> using namespace std; int main() {string arr;// 输入一行字符串getline(cin, arr);string btt;for(int iarr.length()-1;i>0;i--){char aarr[i]3; // 对当前字符进行加密&#xff0c;向后移动三位if(arr[i]>88 and arr[i]<90) { // 如果…

无代码之舞:当非开发者也成为创作者

无代码/低代码开发的崛起 定义与背景 无代码/低代码开发是指通过图形界面、拖放等简单操作&#xff0c;而不需要编写代码来创建应用程序的方法。这种方法的出现&#xff0c;使得非专业开发者也能轻松地创建和部署应用程序。在过去的几十年里&#xff0c;软件开发一直是一个复杂…