GLIPv2

news2024/11/17 1:34:05
GLIPv2

论文《GLIPv2: Unifying Localization and Vision-Language Understanding》、代码

3.3.1简介

在这里插入图片描述
  GLIPv2和GLIPv1架构基本一样,只是融合了更多的任务和数据集。从论文题目 Unifying Localization and Vision-Language Understanding可以看出,其统一了所有的定位任务(比如分割和检测)和Vision-Language任务。

Vision-Language:语言-视觉任务,包括:

  • vision Caption:图像描述生成,根据一张图片生成描述性文本;
  • VQA:给定一张图片和一个与该图片相关的自然语言问题,计算机能产生一个正确的回答。文本QA即纯文本的回答,与之相比,VQA把材料换成了图片形式,所以这是一个典型的多模态问题;
  • Vision grounding:根据短语定位图片中对应的物体。

  通过下图可以看到,比起GLIPv1,GLIPv2加了一些text encoder的训练任务,使其表征更加丰富。比如定位任务不光有目标检测还有实例分割,Understanding任务包含了Vision groundingvision CaptionVQA任务。
  然后就是图片特征和文本特征做Deep Fusion,后面就是一样的处理了。像这样在统一框架下囊括更多任务更多数据集更多模态也是当前的一种趋势,比如去年的OFA、今年的Unified-IO等等。
在这里插入图片描述

3.3.2损失函数

在GLIPv2 当中对损失函数做了改进,在原有ground损失的基础上加入两种损失:
L G L I P v 2 = L l o c + L i n t r a ⏟ L g r o u n d + L i n t e r + L m l m {L_{GLIPv2}=\underset{L_{ground}}{\underbrace {L_{loc}+L_{intra}}}+L_{inter}+L_{mlm}} LGLIPv2​=Lground​  Lloc​+Lintra​​​+Linter​+Lmlm​

  1. 添加MLM 损失:添加这一损失可以强化模型的语言特性。能够使得训练出来的模型能够扩展到 VQA / ImageCaption 任务上。

  2. 图片间的对比学习损失 L i n t e r L_{inter} Linter​。
    原先的image-text pair,只能看到pair内部的信息。比如一对数据是一个人抱着猫的照片和对应的文本描述。按照原先的 loss 设计,图片中的只能够做到和 ‘person’ 相似, 和 ‘cat” 不相似,但是没有办法和所有其它图片中各种各样的实体进行区分。所以在此考虑加入图片间的对比损失。

对比损失的计算方法:

  • 对一个batch 当中所有的pair ,抽取其未交互的图片特征和文本特征 O ∘ = E n c V ( I m g ) , P ∘ = E n c L ( T e x t ) \overset{{\circ }}{O}=Enc_{V}(Img),\overset{{\circ }}{P}=Enc_{L}(Text) O∘=EncV​(Img),P∘=EncL​(Text)
  • 计算一个batch内,所有图片特征和文本特征的相似度 S g r o u n d b a t c h [ i , j ] = O ∘ i ( P ∘ j ) T S_{ground}^{batch}[i,j]=\overset{{\circ }}{O}{_{}}^{i}(\overset{{\circ }}{P}{_{}}^{j})^{T} Sgroundbatch​[i,j]=O∘​i(P∘​j)T,这样就可以通过跨图像匹配的方式,使得每一个object/token 都能够看到更多的负样本。所以我们不仅仅对图片和文字交互后的特征建模,也要对于图片和文本交互前的特征建模,类似loopiter。
  • 跨样本匹配的时候,图片A 当中的‘人’这个物体,和图片B 对应的prompt 当中的 ‘person’类别,也应该是匹配的
    在这里插入图片描述
3.3.3 模型结构

模型总览图如下:
在这里插入图片描述

3.3.4 模型效果
  1. 我们将GLIPv2和下表中当前的目标检测和vision-language预训练模型,在8个下游任务上进行对比。
    实验结果表明,单个 GLIPv2 模型(所有模型权重共享)在各种定位和理解任务上实现了接近 SoTA 的性能。该模型还展示了在开放词汇目标检测任务上的强大的zero-shot和few-shot性能以及在 VL 理解任务上的出色的grounding能力。
    在这里插入图片描述

SOTA:state-of-the-art ,当前最好/最先进的模型

  1. 下面是不同规格的GLIPv1/GLIPv2模型,在直接推理和 prompt tuning时的对比结果:(灰色表示训练时用了这个数据集,所以无法进行zero-shot推理)
    在这里插入图片描述
  2. 消融试验
  • 左侧x轴表示使用不同数量的下游任务样本,y轴是13个数据集上的平均AP;
  • 右侧是使用不同结构的loss时在 ODinW数据集上的的消融试验结果;
  • zero-shot GLIPv2-T (48.5) 超过了5-shot DyHead-T (46.4)
  • one-shot GLIPv2-H (61.3) 超过了用所有数据(ALL)进行有监督微调的DyHead-T (60.8).
    在这里插入图片描述原文链接:李沐论文精读系列四:CLIP和改进工作串讲(LSeg、GroupViT、VLiD、 GLIPv1、 GLIPv2、CLIPasso)_计算机视觉_神洛华-GitCode 开源社区 (csdn.net)

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

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

相关文章

精密机械代加工的特点和优势

在现代工业生产中,精密机械代加工扮演着至关重要的角色。它为众多企业提供了高质量、高精度的机械零部件加工服务,满足了不同行业对精密机械产品的需求。以下是时利和将详细介绍精密机械代加工的特点和优势。 一、特点 1.高精度加工 精密机械代加工的首要…

DK5V100R10SL贴片TO252功率12V4.3A同步整流芯片

概述DK5V100R10SL是一款简单高效率的同步整流芯片,只有A,K两个功能引脚,分别对应肖特基二极管PN管脚。芯片内部集成了100V功率NMOS管,可以大幅降低二极管导通损耗,提高整机效率,取代或替换目前市场上等规的…

ResNet50V2:口腔癌分类

本文为为🔗365天深度学习训练营内部文章 原作者:K同学啊 一 ResNet和ResNetV2对比 改进点:(a)original表示原始的ResNet的残差结构,(b)proposed表示新的ResNet的残差结构,主要差别就是(a)结构先卷积后进行BN和激活函数…

栈及笔试题

目录 栈的实现 1、数组栈 2、链式栈 栈的创建 栈的打印 内存泄漏 栈溢出 练习 有效的括号 栈的实现 栈后入先出 1、数组栈 (最佳实现,且访问数据的时候CPU告诉访存命中率比较高,因为地址连续存放,访问时CPU从cache里一…

货币单位换算 - 华为OD统一考试(E卷)

2024华为OD机试(E卷+D卷)最新题库【超值优惠】Java/Python/C++合集 题目描述 记账本上记录了若干条多国货币金额,需要转换成人民币分(fen),汇总后输出。 每行记录一条金额,金额带有货币单位,格式为数字+单位,可能是单独元,或者单独分,或者元与分的组合。 要求将这些…

解决QT开发由于中文导致的编译错误以及输出内容乱码问题

在进行QT程序开发时,大家可能或者一定会遇到的问题就是中文乱码问题,这个乱码问题可能是在你看代码的显示上,也可能在程序的输出上,甚至还有可能导致你的代码直接编译失败,都有可能和中文编码有关,还有一些…

力扣(leetcode)每日一题 2207 字符串中最多数目的子序列

题干 2207. 字符串中最多数目的子序列 给你一个下标从 0 开始的字符串 text 和另一个下标从 0 开始且长度为 2 的字符串 pattern ,两者都只包含小写英文字母。 你可以在 text 中任意位置插入 一个 字符,这个插入的字符必须是 pattern[0] 或者 pattern…

提升论文质量必备!2024年顶尖8款AI写作工具!

各位好!在这个信息化迅速发展的年代,AI技术已经成为我们学术探索的重要辅助力量。本次,我将向大家展示2024年八款必备的尖端AI应用。这些工具不仅能极大提升我们撰写学术论文的效率,还能改善研究的质量。 首先我们来看“梅子AI论…

Langgraph 的 Planning Agent 深度解析

在人工智能领域,智能代理(agent)的设计愈发重要。尤其在面对复杂任务时,规划(planning)技术成为智能代理的核心能力之一。Langgraph 是一个专为构建智能代理而设计的框架,结合了自然语言处理&am…

2024年项目经理不容错过的资源:全面测试管理工具指南与精选实例

随着软件开发的快速发展,测试管理工具在项目经理的日常工作中扮演着越来越重要的角色。2024年,哪些测试管理工具是项目经理不能错过的呢?本文将为您带来一份全面指南,帮助您找到最佳选择。 在软件开发过程中,测试是确保…

鸿蒙开发(NEXT/API 12)【硬件(接入手写套件)】手写功能开发

接入手写套件后,可以在应用中创建手写功能界面。界面包括手写画布和笔刷工具栏两部分,手写画布部分支持手写笔和手指的书写效果绘制,笔刷工具栏部分提供多种笔刷和编辑工具,并支持对手写功能进行设置。接入手写套件后将自动开启一…

机器学习方法实现水果分类(零基础小白向),手工提取水果图片特征,不一样的特征提取方法

文章目录 零、前言:一、什么是特征向量?二、数据准备三、构建数据集1、什么是数据集?2、图片对应的标签?3、特征提取方法(1)生成固定正方形(2)特征提取实现 四、建立模型五、自定义数…

【Python】遇见的问题:为项目选择的 Python 解释器无效

一、问题说明 导入项目文件后,提示“为项目选择的 Python 解释器无效” 二、问题原因 暂时不知道 三、解决办法 第一步:添加本地解释器 第二步:点击确定 位置:当前项目所在目录 基础解释器:python.exe所在目录 第三…

五子棋双人对战项目(2)——登录模块

目录 一、数据库模块 1、创建数据库 2、使用MyBatis连接并操作数据库 编写后端数据库代码 二、约定前后端交互接口 三、后端代码编写 文件路径如下: UserAPI: UserMapper: 四、前端代码 登录页面 login.html: 注册页面…

C++语法—引用

引用变量 概念 简单理解就是对一个已存在的变量起别名,与那个已存在的变量共用一块内存空间。 用法:已存在变量的类型 & 引用变量名 (引用实体)已存在变量 int main() {int a 1;int& b a;return 0; }在上面这个示例…

minio 快速入门+单机部署+集群

目录 原理 概念 名词解释 Set /Drive 的关系 MinIO部署 单机 单机单盘 单机多盘 集群 多机单盘 多机多盘 配置负载均衡 调优 原理 MinIO是一个S3兼容的高性能对象存储,其主要特点如下: 适合存储大容量非结构化的数据,如图片&…

骨传导耳机品牌排行榜分享:360度实测分析10款抢手骨传导耳机!

随着科技的不断进步和人们生活方式的变化,骨传导耳机以其独特的传声方式和开放式设计,逐渐成为运动爱好者、户外活动家以及听力障碍人士的新宠。不同于传统耳机将声音直接导入耳道,骨传导耳机通过振动颅骨将声音传递至内耳,不仅能…

数据结构与算法——Java实现 20.习题——二叉树层序遍历

认真的人改变自己,执着的人改变命运 —— 24.9.27 102. 二叉树的层序遍历 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]]示例 2: 输入:root [1] 输出:[[1]]示例 3&…

Java单体服务和集群分布式SpringCloud微服务的理解

单体应用存在的问题 1.随着业务的发展开发变得越来越复杂。 2.修改或者新增,需要对整个系统进行测试、重新部署。 3.一个模块出现问题,很可能导致整个系统崩溃。 4.多个开发团队同时对数据进行管理,容易产生安全漏洞。 5.各个模块使用同…

Spring Session学习

系列文章目录 JavaSE基础知识、数据类型学习万年历项目代码逻辑训练习题代码逻辑训练习题方法、数组学习图书管理系统项目面向对象编程:封装、继承、多态学习封装继承多态习题常用类、包装类、异常处理机制学习集合学习IO流、多线程学习仓库管理系统JavaSE项目员工…