当前位置: 首页 > news >正文

【Image Captioning】DynRefer

DynRefer是由中国科学院大学于2024年提出的用于1种用于区域级多模态任务的模型。DynRefer 通过模拟人类视觉认知过程,显著提升了区域级多模态识别能力。通过引入人眼的动态分辨率机制, 能够以同时完成区域识别、区域属性检测和区域字幕生成任务。

文章链接:https://arxiv.org/abs/2405.16071

代码链接:https://github.com/callsys/DynRefer

一.介绍

区域级多模态任务模仿人类认知过程,根据特定的任务要求(开放词汇检测、属性识别、字幕生成等)将参考的图像区域翻译为语言输出。现有的方法以固定的分辨率作为输入,限制模型对于丰富分辨率的处理能力且难以捕获上下文信息。

人类的认知系统可以根据特定的语言描述(任务要求)通过注视和调整眼动的过程来调整视觉输入,形成非均匀的分辨率。现存的多模态大语言模型不具备视觉区域选择能力,导致应用于具体任务时缺乏特异性。

受视觉认知机制的启发,即增加聚焦区域的分辨率,同时抑制不相关的背景区域,提出动态分辨率方法,如下图所示。

DynRefer在训练时引入随机视觉-语言对齐,首先,对参考区域的周围进行采样,构建随机分辨率的图像;然后,将图像嵌入于具体任务的语言描述对齐。在推理时,执行动态多模态参考,形成与图像和语言描述先验相对应的动态分辨率图像。

二.相关工作

视觉语言模型

根据训练目标,Vision-Language Models(VLMs)可以分为图文对比学习、图文匹配、语言建模3种类型。应用于区域级任务时,模型在区域-文本对上进行训练以获取区域级理解能力。

区域级多模态任务

(1) 检测

基于对比学习的方法通过计算图像划定区域的特征与文本特征之间的相似度确定检测类别;基于语言建模的方法借助大语言模型,得到开放集中和图像区域最可能的类别。

(2) 属性

一些研究基于COCO Attributes、VAW等属性数据集,训练多分类网络实现属性预测;一些研究受到CLIP 、OVAD模型的启发,从字幕中得到属性类别(开集预测)。

(3)字幕生成

使用多模态模型生成区域级字幕的方法被研究者广泛采用。GRiT通过将对象类别看作为简短的字幕来统一分类和字幕生成任务;CapDet则是在预训练设置中将字幕与开放集检测结合起来。

视觉认知动态分辨率

视觉认知领域的研究表明,人类视觉系统具有动态分辨率。相比之下,计算机视觉系统缺乏动态机制,只能捕获静态视图。

三.方法

3.1 随机视觉-语言对齐

3.1.1 多视图构建

原始图像 x 被裁剪为多个候选视图。裁剪区域的计算方式为

其中,b_{r}表示参考区域的边界框,b_{x}表示整个图像的尺寸,t 表示插值系数。在训练过程中,从候选视图中随机选择 n 个视图,以模拟由于注视和眼球快速运动而生成的图像。 n 个视图对应于插值系数 t,即t=\left [ t_{1},t_{2},..., t_{n}\right ]

3.1.2 随机多视图嵌入

采样的n个视图,经过ViT模块获得空间特征并后接RoI Align模块得到区域嵌入\left \{ r_{i} \right \}_{i=1,2,..,n},如下图左侧所示。

由于crop、resize和 RoI-Align 操作引入的空间误差,区域嵌入在空间上并不对齐。受 deformable convolution 启发,提出了1个对齐模块Align module,通过将\left \{ r_{i} \right \}_{i=2,3,..,n}r_{1}对齐来减少偏差,其中,r_{1} 是仅包含参考区域的视图的区域嵌入。对于每个区域嵌入r_{i},首先,将其与 r_{1}连接,然后通过Conv计算2D偏移图;然后,𝑟𝑖的空间特征然后根据2D偏移重新采样;最后,对齐后的区域嵌入r_{i}沿通道维度连接并通过 MLPs 层进行融合。输出进一步通过视觉重采样模块,即 Q-former进行压缩,得到区域表示x_{v}

3.1.3 视觉语言对齐

通过随机多视图嵌入模块计算得到的区域表示x_{v},由3个解码器D_{x}进行解码,如上图右侧所示,分别受到3个多模态任务的监督。

i) 图像区域标签生成。采用基于查询的轻量级识别解码器进行区域标签生成。解码器  D_{tag}通过使用标签作为query,x_{v}作为key和value,计算预定义标记的置信度来完成标记过程。从字幕中解析出标签,以监督解码器,采用非对称损失。

ii) 区域 - 文本对比学习。解码器 D_{rtc}是基于查询的识别解码器,计算字幕与区域特征之间的相似性分数,使用Sigmoid损失。

iii) 语言建模。采用预训练的大语言模型 D_{llm}将区域表示x_{v} 转换为语言描述,采用cross-entropy损失。

3.2 动态多模态参考

在推理过程中,通过调整插值系数t=\left [ t_{1},t_{2},..., t_{n}\right ],得到具有动态分辨率的区域表示。在3个多模态任务上评估动态分辨率的影响,n=2,结果如下图所示。

可以看出,属性检测在t_{2}=0.1时(无上下文视图)可以获得更好的结果;字幕生成任务则在t_{2}=0.4t_{2}=0.5时(需要上下文来理解参考的区域)表现更佳,在t_{2}> 0.5时表现下降。

当任务已知时,可以根据任务特性采样合适的视图;当任务未知时,需要根据插值系数t,t\in \left \{ 0.1,0.1,...,1.0 \right \}构建候选视图。通过贪婪搜索算法从候选中选择n个视图,搜索目标为:

其中,t_{i}表示第i个插值系数,x\left ( t_{i} \right )表示第i个视图,pHASH(\cdot )表示感知图像哈希函数,\oplus表示异或操作。

3.3  多种视图

DynRefer学习多个区域表示x_{v}\left ( t \right ),如下图所示。

四.实验

DynRefer基于LAVIS框架实现,LLM模型采用Flan-T5XL,视觉重采样采用Q-former,采样视图呗调整为224*224分辨率,模型在VG V1.2上进行训练。

4.1 性能

区域级字幕

在区域级字幕任务中,与SOTA方法的对比结果如下。

在密集字幕中,与SOTA方法的对比结果如下。

开放词汇属性识别

在OVAD数据集上的表现如下表所示。

开放词汇区域识别

在COCO-2017数据集上的表现如下表所示。

多任务能力

DynRefer模型可以实现多模态多任务处理(字幕、标签、属性、类别),如下图所示。

相关文章:

【Image Captioning】DynRefer

DynRefer是由中国科学院大学于2024年提出的用于1种用于区域级多模态任务的模型。DynRefer 通过模拟人类视觉认知过程,显著提升了区域级多模态识别能力。通过引入人眼的动态分辨率机制, 能够以同时完成区域识别、区域属性检测和区域字幕生成任务。 文章链…...

Midjourney基础-常用修饰词+权重的用法大全

用好修饰词很关键 Midjourney要用除了掌握好提示词的写法,按照上一篇《做Midjourney最好图文教程-提示词公式以及高级参数讲解》画面主体 场景氛围 主体行为 构图方式 艺术风格 图像质量。 要画出有质感的内容我们必须要掌握好“修饰词”,这些修饰…...

没有屋檐的房子-023粪堆旁边的舞蹈

爱美是天性,贫苦的农村人也一样,贫苦的时代也一样。 本世纪,广场舞在华夏大地遍地开花,甚至都传到了外面。但是广场舞这种舞蹈形式并不是互联网时代的特产,也不是电声设备日益高级和普及时代的特产,更不是大…...

基于Docker的Kafka分布式集群

目录 1. 说明 2. 服务器规划 3. docker-compose文件 kafka{i}.yaml kafka-ui.yaml 4. kafka-ui配置集群监控 5. 参数表 6. 测试脚本 生产者-异步生产: AsyncKafkaProducer1.py 消费者-异步消费: AsyncKafkaConsumer1.py 7. 参考 1. 说明 创建一个本地开发环境所需的k…...

【博客之星】年度总结:在云影与墨香中探寻成长的足迹

🐇明明跟你说过:个人主页 🔖行路有良友,便是天堂🔖 目录 一、年度回顾 1、创作历程 2、个人成长 3、个人生活与博客事业 二、技术总结 1、赛道选择 2、技术工具 3、实战项目 三、前景与展望 1、云原生未来…...

SpringBoot的Swagger配置

一、Swagger配置 1.添加依赖 <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>3.0.2</version> </dependency> 2.修改WebMvcConfig Slf4j Configurat…...

machine learning knn算法之使用KNN对鸢尾花数据集进行分类

通过导入必要的scikit-learn导入必要的库&#xff0c;加载给定的数据&#xff0c;划分测试集和训练集之后训练预测和评估即可 具体代码如下&#xff1a; import numpy as np from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split f…...

C语言练习(16)

猴子吃桃问题。猴子第一天摘下若干个桃子&#xff0c;当即吃了一半&#xff0c;还不过瘾&#xff0c;又多吃了一个。第二天早上又将剩下的桃子吃掉一半&#xff0c;又多吃了一个。以后每天早上都吃了前一天剩下的一半加一个。到第10天早上想再吃时&#xff0c;见只剩一个桃子了…...

SOAFEE 技术研讨会:汽车软件定义与自动驾驶技术探讨

在本次技术研讨会上&#xff0c;来自汽车与科技领域的专家们围绕汽车软件定义及自动驾驶技术展开了深入交流与探讨。从 SOAFEE 蓝图计划的创新性理念&#xff0c;到 Autoware 开源项目及 Open AD Kit 在实际应用中的探索&#xff0c;再到 Edge Workload Abstraction and Orches…...

R语言学习笔记之开发环境配置

一、概要 整个安装过程及遇到的问题记录 操作步骤备注&#xff08;包含遇到的问题&#xff09;1下载安装R语言2下载安装RStudio3离线安装pacman提示需要安装Rtools4安装Rtoolspacman、tidyfst均离线安装完成5加载tidyfst报错 提示需要安装依赖&#xff0c;试错逐步下载并安装…...

多版本并发控制:MVCC的作用和基本原理

多版本并发控制&#xff1a;MVCC的作用和基本原理 1、MVCC简介1.1 快照读与当前读的区别1.1.1 快照读1.1.2 当前读 1.2 数据库的读写问题1.3 MVCC的作用 2、MVCC实现原理之ReadView2.1 什么是ReadView2.2 ReadView的设计思路2.3 MVCC整体操作流程 1、MVCC简介 1.1 快照读与当前…...

ubuntu18.04安装nvm管理本机node和npm

ubuntu18.04安装nvm管理本机node和npm nvm的使用方法1. 安装nvm2. 加载nvm3. 安装执行版本4. 设置默认版本(可选)5. 检查:6. 将配置加入到shell配置文件中(默认已经加入) 如果系统全局的 Node.js 存在&#xff0c;但被 nvm 覆盖了&#xff0c;可以通过禁用或卸载 nvm 恢复到系统…...

【数据结构进阶】红黑树超详解 + 实现(附源码)

&#x1f31f;&#x1f31f;作者主页&#xff1a;ephemerals__ &#x1f31f;&#x1f31f;所属专栏&#xff1a;数据结构 目录 前言 一、红黑树介绍 二、红黑树原理详解 三、红黑树的实现 1. 节点定义 2. 红黑树类型定义及接口声明 3. 红黑树的插入&#xff08;重点&a…...

leetcode_3092. 最高频率的 ID

https://leetcode.cn/problems/most-frequent-ids/description/ 看到这个数据范围 最极端情况 如果nums全为一个数 并且数量取到最大 那么范围是10的10次方 需要longlong储存 这题主要运用了哈希表配合multiset实现 哈希表主要用作存储某个数的出现次数 mst则用于记录出现次…...

鸿蒙仓颉环境配置(仓颉SDK下载,仓颉VsCode开发环境配置,仓颉DevEco开发环境配置)

目录 ​1&#xff09;仓颉的SDK下载 1--进入仓颉的官网 2--点击图片中的下载按钮 3--在新跳转的页面点击即刻下载 4--下载 5--找到你们自己下载好的地方 6--解压软件 2&#xff09;仓颉编程环境配置 1--找到自己的根目录 2--进入命令行窗口 3--输入 envsetup.bat 4--验证是否安…...

数据统计–图形报表(day11)

Apache ECharts 介绍 Apache ECharts 介绍 Apache ECharts 是一款基于 Javascript 的数据可视化图表库&#xff0c;提供直观&#xff0c;生动&#xff0c;可交互&#xff0c;可个性化定制的数据可视化图表。 官网地址&#xff1a;Apache ECharts 入门案例 Apache Echarts官方…...

源码分析之Openlayers样式篇CircleStyle类

访问Openlayers网站(https://jinuss.github.io/Openlayers_map_pages/&#xff0c;网站是基于Vue3 Openlayers&#xff0c;里面有大量的实践和案例。觉得还不错&#xff0c;可以 给个小星星Star&#xff0c;鼓励一波 https://github.com/Jinuss/OpenlayersMap哦~ 概述 在 Ope…...

解决CentOS9系统下Zabbix 7.2图形中文字符乱码问题

操作系统&#xff1a;CentOS 9 Zabbix版本&#xff1a;Zabbix7.2 问题描述&#xff1a;主机图形中文字符乱码 解决方案&#xff1a; # 安装字体配置和中文语言包 sudo yum install -y fontconfig langpacks-zh_CN.noarch # 检查是否已有中文字体&#xff1a; fc-list :lan…...

AF3 FourierEmbedding类源码解读

FourierEmbedding 是一个用于扩散条件的傅里叶嵌入类,其核心是将输入的时间步噪声强度或控制参数(timestep)转换为高维的周期性特征。 源代码: class FourierEmbedding(nn.Module):"""Fourier embedding for diffusion conditioning."""de…...

vsftpd虚拟用户部署

vsftpd虚拟用户部署 案例提供两个用户如下,使用centos7验证可行。 test *AO9ih&7 ftp DTx4zp_shell脚本运行一键安装vsftp #!/bin/bash yum -y install vsftpd ftp >/etc/vsftpd/vsftpd.conf cat <<EOL >> /etc/vsftpd/vsftpd.conf anonymous_enableNO l…...

MySQL 容器已经停止(但仍然存在),但希望重新启动它,并使它的 3306 端口映射到宿主机的 3306 端口是不可行的

重新启动容器并映射端口是不行的 由于你已经有一个名为 mysql-container 的 MySQL 容器&#xff0c;你可以使用 docker start 启动它。想要让3306 端口映射到宿主机是不行的&#xff0c;实际上&#xff0c;端口映射是在容器启动时指定的。你无法在容器已经创建的情况下直接修改…...

汇编实验·顺序程序设计

一、实验目的: 1.能够熟练的进行顺序程序的编写,掌握基本的汇编语言指令的用法 2.通过程序设计理解掌握不同类型的数据混合运算的基本规则 3.熟练掌握各种寻址方式,深入理解逻辑地址和物理地址的相关概念 二、实验内容 有三个长度分别为1、2、4个字节的数据,编写程序求…...

AIGC视频扩散模型新星:Video 版本的SD模型

大家好&#xff0c;这里是好评笔记&#xff0c;公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本文详细介绍慕尼黑大学携手 NVIDIA 等共同推出视频生成模型 Video LDMs。NVIDIA 在 AI 领域的卓越成就家喻户晓&#xff0c;而慕尼黑大学同样不容小觑&#xff0c;…...

HarmonyOS:通过(SQLite)关系型数据库实现数据持久化

一、场景介绍 关系型数据库基于SQLite组件&#xff0c;适用于存储包含复杂关系数据的场景&#xff0c;比如一个班级的学生信息&#xff0c;需要包括姓名、学号、各科成绩等&#xff0c;又或者公司的雇员信息&#xff0c;需要包括姓名、工号、职位等&#xff0c;由于数据之间有较…...

10. SpringCloud Alibaba Sentinel 规则持久化部署详细剖析

10. SpringCloud Alibaba Sentinel 规则持久化部署详细剖析 文章目录 10. SpringCloud Alibaba Sentinel 规则持久化部署详细剖析1. 规则持久化1.1 Nacos Server 配置中心-规则持久化实例 2. 最后&#xff1a; 1. 规则持久化 规则没有持久化的问题 如果 sentinel 流控规则没有…...

STM32更新程序OTA

STM32的OTA&#xff08;Over-The-Air&#xff09;更新程序是一种通过无线通信方式&#xff0c;为设备分发新软件、配置甚至更新加密密钥的技术。以下是关于STM32 OTA更新程序的详细介绍&#xff1a; 一、OTA升级流程 STM32的OTA升级流程通常包括以下几个关键步骤&#xff1a;…...

MarsCode青训营打卡Day10(2025年1月23日)|稀土掘金-147.寻找独一无二的糖葫芦串、119.游戏队友搜索

资源引用&#xff1a; 147.寻找独一无二的糖葫芦串 119.游戏队友搜索 今日小记&#xff1a; 回乡聚会陪家人&#xff0c;休息一天~ 稀土掘金-147.寻找独一无二的糖葫芦串&#xff08;147.寻找独一无二的糖葫芦串&#xff09; 题目分析&#xff1a; 给定n个长度为m的字符串表…...

vue(33) : 安装组件出错解决

1. request to https://registry.npm.taobao.org/semver/download/semver-6.1.1.tgz?cache0&other_urlshttps%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.1.1.tgz failed, reason: certificate has expired 这个错误提示表明你在尝试从https://reg…...

ChatGPT结合Excel辅助学术数据分析详细步骤分享!

目录 一.Excel在学术论文中的作用✔ 二.Excel的提示词✔ 三. 编写 Excel 命令 四. 编写宏 五. 执行复杂的任务 六. 将 ChatGPT 变成有用的 Excel 助手 一.Excel在学术论文中的作用✔ Excel作为一种广泛使用的电子表格软件&#xff0c;在学术论文中可以发挥多种重要作用&a…...

stm32f103 单片机(一)第一个工程

先看一个简单的 系统上已经安装好了keil5 与ARM包&#xff0c;也下载好了STM32固件库 新建一个工程&#xff0c;添加三个组 加入如下文件 在options 里作如下配置 准备在main.c 中写下第一个实验&#xff0c;点亮一个小灯。 像51单片机一样直接对引脚赋值是行不通的 在…...