Visual grounding-视觉定位任务介绍

🎀个人主页: https://zhangxiaoshu.blog.csdn.net
📢欢迎大家:关注🔍+点赞👍+评论📝+收藏⭐️,如有错误敬请指正!
💕未来很长,值得我们全力奔赴更美好的生活!

前言

为了解决多模态人工智能系统中语言理解与视觉感知之间的交互与融合问题,以实现更智能、更灵活的多模态数据处理和理解能力。视觉定位通过将自然语言描述与图像内容相匹配,实现了对图像中对象、场景和行为的准确理解,为图像标注、视觉问答等任务提供了基础。本文对视觉定位的常用方法进行简单介绍。


文章目录

  • 前言
  • 视觉定位是什么
  • 常用数据集合评价指标
  • 常用方法
    • 两阶段算法
    • 单阶段算法
    • 基于Transformer的方法
  • 总结


视觉定位是什么

视觉定位(Visual grounding) 是一种在计算机视觉和自然语言处理领域中的概念,指的是将自然语言描述与图像中的特定视觉内容相匹配的过程。听上去和目标检测非常类似,区别在于输入多了语言信息,在对物体进行定位时,要先对语言模态的输入进行理解,并且和视觉模态的信息进行融合,最后利用得到的特征表示进行定位预测。

它可以帮助计算机理解自然语言描述与图像之间的关系,从而实现更智能的多模态数据处理和理解。视觉定位旨在建立自然语言描述与图像内容之间的联系,为多模态智能系统提供更准确、更自然的交互和理解能力。
在这里插入图片描述

常用数据集合评价指标

  1. 常用数据集:
  • Flickr30k:Flickr30k是一个广泛用于视觉定位和图像标注任务的数据集。它由Flickr图像共享平台上的30,000张图像组成,每张图像都有5个人工标注的描述。这些描述涵盖了图像中的主要对象、场景和动作等信息。

  • RefCOCO:RefCOCO数据集是COCO数据集的一个子集,用于指代解析任务。它提供了自然语言描述和指向图像中对象的标注。

  • RefCOCO+:这是RefCOCO数据集的扩展版本,包含了更多复杂的自然语言描述和更精细的目标标注。

  • RefCOCOg:RefCOCOg数据集是对于游戏情境中的指代解析任务而设计的,其中包含了复杂的自然语言描述和图像中对象的标注。

  1. 评价指标:
  • mAP(mean Average Precision):平均精度的平均值,用于衡量模型在不同类别上的检测精度。

  • RefCOCO评价指标:RefCOCO数据集通常使用Top-K Accuracy、Recall@K等指标来评价模型在指代解析任务上的性能。

常用方法

两阶段算法

两阶段方法在第一阶段生成区域提议和区域特征提取,然后在第二阶段利用语言表达来选择最匹配的区域。

在这里插入图片描述
在第一阶段,区域提议是使用无监督方法或预训练的目标检测器生成的。

  • 无监督方法通常基于图像中的低级特征和相似性来生成候选区域,而不需要使用任何标注的训练数据(包括基于图像分割、边缘检测、纹理特征或颜色直方图等技术来提取图像中可能包含目标的区域)。

  • 预训练的目标检测器是在大规模标注数据集上预先训练好的模型,例如 Faster R-CNN、YOLO 或 SSD 等。

在第二阶段,应用二元分类或最大边缘排序的训练损失,以最大化正对象-查询对之间的相似性。

  • 对于每个正对象-查询对,将其标记为正例,而对于其他对象-查询对,将其标记为负例。然后训练一个二元分类器,使其能够正确地将正例与负例区分开来。

  • 将对象和查询表示为特征向量,并使用余弦相似度来衡量它们之间的相似性,定义一个损失函数,使得正对象-查询对的相似性得分尽可能高,同时确保与负对象的相似性得分之间有足够大的边缘。

问题:

  • 受到来自现成区域提议方法的严重依赖;
  • 对象提议生成和区域特征提取具有较高的计算密集;

单阶段算法

一阶段方法对语言上下文与视觉特征密集融合,并进一步利用融合的特征图以生成密集的候选框(滑动窗口等方式)执行边界框预测。

在这里插入图片描述

  • 文本嵌入和编码:将文本中的单词映射到高维向量空间中做文本嵌入处理(Word2Vec),将文本嵌入的向量序列输入到RNN或Transformer中进行文本编码。以捕捉文本的语言上下文信息。
  • 图像特征提取:使用CNN或视觉Transformer对图像进行特征提取,得到图像的视觉特征表示。
  • 特征融合:将图像特征和文本特征进行融合,以获取联合的语言-视觉表示特征。融合的方式可以包括拼接、相乘、加权求和等操作,或者使用注意力机制来动态地融合不同模态的特征。
  • 候选框生成(滑动窗口):以固定的步幅在特征图上进行滑动窗口操作,在每个滑动窗口位置,使用一个边界框预测器来预测该窗口中是否存在目标对象,并且预测目标对象的边界框。对于每个边界框,计算其得分,表示该边界框中是否包含目标对象的置信度。使用非极大值抑制算法来消除重叠边界框,保留得分最高的边界框作为最终检测结果。

*一阶段方法摆脱了两阶段范式中计算密集的区域提议生成和区域特征提取;

问题:

  • 通常包括复杂的多模态融合和关系学习模块;
  • 依赖手工设计的候选框生成;

基于Transformer的方法

基于Transformer的方法将图像和语言表达式分别应用视觉Transformer和语言Transformer来建模视觉和语言的全局特征,然后利用视觉-语言Transformer融合视觉和语言特征,执行跨模态关系推理。最后,直接回归对象的框坐标以进行定位。

在这里插入图片描述

  • 视觉-语言Transformer模型是一个多头注意力机制的变体(包括两个线性投影层(分别用于每个模态)和一个视觉-语言Transformer(包含6个Transformer编码器层的堆栈)),它能够同时处理视觉和语言输入,并学习它们之间的复杂关系。

  • 在视觉-语言Transformer模型中执行跨模态关系推理,模型会学习如何从图像和文本的表示中推断出它们之间的语义关系。

*一/二阶段算法依赖于复杂的模块和手动设计的机制来进行查询推理和多模态融合。这些机制往往导致在特定数据集上过拟合,并限制了视觉和语言上下文之间的交互。基于Transformer的方法用简单的Transformer编码器层的堆叠取代了复杂的融合模块,从而提高了性能,此外,将视觉定位定义为直接坐标回归问题,避免依赖候选区域提案、减少了后处理步骤(如非极大值抑制(NMS)或边界框的合并)。


总结

  1. 两阶段方法在第一阶段生成区域提议和区域特征提取,然后在第二阶段利用语言表达来选择最匹配的区域。其不仅过度依赖现成区域提议方法的性能和表现,而且对象提议生成和区域特征提取具有较高的计算密集。

  2. 一阶段方法对语言上下文与视觉特征密集融合,并进一步利用融合的特征图以生成密集的候选框(滑动窗口等方式)执行边界框预测。 其在很大程度上摆脱了两阶段范式中计算密集的区域提议生成和区域特征提取。然而,一阶段方法往往具有较为复杂的多模态融合和关系学习模块,另外,一阶段方法对手工设计的候选框生成具有较大的依赖性。

  3. 基于Transformer的方法将图像和语言表达式分别应用视觉Transformer和语言Transformer来建模视觉和语言的全局特征,然后利用视觉-语言Transformer融合视觉和语言特征,执行跨模态关系推理。 最后,直接回归对象的框坐标以进行定位。基于Transformer的方法用简单的Transformer编码器层的堆叠取代了复杂的融合模块,从而提高了性能,此外,将视觉定位定义为直接坐标回归问题,避免依赖候选区域提案、减少了后处理步骤(如非极大值抑制(NMS)或边界框的合并),极大的改善了一阶段方法的两个问题。

参考:
Visual grounding系列–领域初探

文中图片大多来自论文和网络,如有侵权,联系删除,文中有不对的地方欢迎指正、补充。

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

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

相关文章

Spring Cloud Alibaba微服务从入门到进阶(一)

Springboot三板斧 1、加依赖 2、写注解 3、写配置 Spring Boot Actuator Spring Boot Actuator 是 Spring Boot 提供的一系列用于监控和管理应用程序的工具和服务。 SpringBoot导航端点 其中localhost:8080/actuator/health是健康检查端点,加上以下配置&#xf…

基于element-plus的Dialog选择控件

翻看之前工程师写的vue2的代码,很多都是复制、粘贴,也真是搞不懂,明明可以写一个控件,不就可以重复使用。很多前端总喜欢element搞一下,ant-design也搞一下,有啥意义,控件也不是自己写的&#x…

Python递归函数你用对了吗?

1.递归函数 递归函数:函数自己调用自己 2.需求 使用函数的方式,计算数字n的阶乘 # 5! """ 5! 1 * 2 * 3 * 4 * 5 4! 1 * 2 * 3 * 4 3! 1 * 2 * 3 2! 1 * 2 1! 1综上可以总结出:n! n * (n - 1) "&qu…

什么是防静电晶圆隔离膜?一分钟让你了解抗静电晶圆隔离纸

防静电晶圆隔离膜,也被称为防静电蓄积纸、硅片纸、半导体晶圆盒内缓冲垫片等多种名称,是半导体制造和运输过程中的一种重要辅助材料。 该隔离膜具备多种特性,如防静电、无尘、不掉屑、强韧耐用等,这些特性使其在半导体制造和运输中…

网络安全之从原理看懂XSS

01、XSS的原理和分类 跨站脚本攻击XSS(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆 故将跨站脚本攻击缩写为XSS,恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页面时&#xff0c…

Word转PDF保持图片原有清晰度

目录 1、需要的软件 2、配置Acrobat PDFMaker 3、配置Acrobat Distiller 4、更改Acrobat PDFMaker中的首选项 5、将word转换成pdf 1、需要的软件 利用Adobe Acrobat DC工具。 打开word,选择Acrobat的插件,选择首选项。 如果没有出现Acrobat插件也…

java并发编程知识点汇总

文章目录 1. Java8新特性1.1 Lambda表达式1.2 函数式接口1.3 Stream流式计算,应用了上述函数式接口能力1.4 接口增强 2. 常用原子类3. 多线程与高并发-juc3.1 谈一谈对volatile的理解3.2 谈一谈对JMM的理解3.3 谈一谈对CAS及底层原理的理解3.4 谈一谈对ABA问题及原子…

【恒源智享云】conda虚拟环境的操作指令

conda虚拟环境的操作指令 由于虚拟环境经常会用到,但是我总忘记,所以写个博客,留作自用。 在恒源智享云上,可以直接在终端界面输入指令,例如: 查看已经存在的虚拟环境列表 conda env list查看当前虚拟…

C语言 编译和链接

1. 翻译环境和运⾏环境 在ANSI?C的任何⼀种实现中,存在两个不同的环境。 第1种是翻译环境,在这个环境中源代码被转换为可执⾏的机器指令。 第2种是执⾏环境,它⽤于实际执⾏代码。 我们来看一下过程: 2. 翻译环境 那翻译环境是…

《幻兽帕鲁》新手入门 幻兽帕鲁新手开荒攻略 幻兽帕鲁配置要求

2024年1月,讨论热度最高的新游无疑是Pocketpair出品的《幻兽帕鲁》。这部作品发售两周即在Steam游戏平台售出超过1200万份,且Xbox/XGP玩家规模超过700万。不仅如此,该游戏同时在线玩家人数超过200万,在Steam的游戏史上仅次于《绝地…

java中几种对象存储(文件存储)中间件的介绍

一、前言 在博主得到系统中使用的对象存储主要有OSS(阿里云的对象存储) COS(腾讯云的对象存储)OBS(华为云的对象存储)还有就是MinIO 这些玩意。其实这种东西大差不差,几乎实现方式都是一样&…

深入理解Java中的ConcurrentSkipListMap:高效并发的有序映射

码到三十五 : 个人主页 心中有诗画,指尖舞代码,目光览世界,步履越千山,人间尽值得 ! 摘要:本文将详细介绍Java中的ConcurrentSkipListMap,一个支持高效并发操作的有序映射。我们将深入探讨其数…

xilinx SDK 2018.3 undefined reference to `f_mount‘,`f_open‘等等

用xilinx SDK 写SD的读写实验时,已经添加了头文件ff.h并且没有报错,但是当用到内部的函数f_mount,f_open’等等时却显示未定义。 很可能是漏掉了在ZYNQ中定义SD的MIO接口,在下方图示中进行定义(需要查找自己板子的原理…

Java零基础入门到精通_Day 1

01 Java 语言发展史 Java语言是美国Sun公司(StanfordUniversity Network)在1995年推出的 计算机语言Java之父:詹姆斯高斯林(ames Gosling) 重要的版本过度: 2004年 Java 5.0 2014年 Java 8.0 2018年 9月 Java 11.0 (目前所使用的) 02 J…

函数的说明文档

函数是纯代码语言,想要理解其含义,就需要一行行去阅读理解代码,效率比较低。 我们可以给函数添加说明文档,辅助理解函数的作用。 语法如下: 通过多行注释的形式,对函数进行说明解释 内容应写在函数体之前…

leetcode 25、k个一组翻转链表

给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 你不能只是单纯的改变节点内部的值…

SPEL表达式及注入漏洞

SPEL,全称为Spring表达式语言,是一个由 Spring 框架提供的表达式语言。它是一种基于字符串的表达式语言,可以在运行时对对象进行查询和操作。 SpEL 支持在XML和注解配置中使用,它可以在Spring框架的各种组件中使用,如Spring MVC …

springboot261高校专业实习管理系统的设计和开发

基于spring boot的高校专业实习管理系统的设计与实现 摘 要 随着国内市场经济这几十年来的蓬勃发展,突然遇到了从国外传入国内的互联网技术,互联网产业从开始的群众不信任,到现在的离不开,中间经历了很多挫折。本次开发的高校专…

制造行业大数据应用:四大领域驱动产业升级与智慧发展

一、大数据应用:制造行业的智慧引擎 随着大数据技术的不断突破与普及,制造行业正迎来一场前所未有的变革。大数据应用,如同智慧引擎一般,为制造行业注入了新的活力,推动了产业升级与创新发展。 二、大数据应用在制造行…

外贸人要加油努力,到底怎么做

我们说要加油,要努力,那做外贸我们的力气到底应该往哪里使?想要把外贸做好容易吗? 其实没有一件事情背后他是真正容易的,如果发现自己迷茫了,很有可能是你既要又要,没有自己的一个满足感&#…