【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 被裁剪为多个候选视图。裁剪区域的计算方式为
其中,表示参考区域的边界框,
表示整个图像的尺寸,t 表示插值系数。在训练过程中,从候选视图中随机选择 n 个视图,以模拟由于注视和眼球快速运动而生成的图像。 n 个视图对应于插值系数 t,即t=
。
3.1.2 随机多视图嵌入
采样的n个视图,经过ViT模块获得空间特征并后接RoI Align模块得到区域嵌入,如下图左侧所示。
由于crop、resize和 RoI-Align 操作引入的空间误差,区域嵌入在空间上并不对齐。受 deformable convolution 启发,提出了1个对齐模块Align module,通过将与
对齐来减少偏差,其中,
是仅包含参考区域的视图的区域嵌入。对于每个区域嵌入
,首先,将其与
连接,然后通过Conv计算2D偏移图;然后,𝑟𝑖的空间特征然后根据2D偏移重新采样;最后,对齐后的区域嵌入
沿通道维度连接并通过 MLPs 层进行融合。输出进一步通过视觉重采样模块,即 Q-former进行压缩,得到区域表示
。
3.1.3 视觉语言对齐
通过随机多视图嵌入模块计算得到的区域表示,由3个解码器
进行解码,如上图右侧所示,分别受到3个多模态任务的监督。
i) 图像区域标签生成。采用基于查询的轻量级识别解码器进行区域标签生成。解码器 通过使用标签作为query,
作为key和value,计算预定义标记的置信度来完成标记过程。从字幕中解析出标签,以监督解码器,采用非对称损失。
ii) 区域 - 文本对比学习。解码器 是基于查询的识别解码器,计算字幕与区域特征之间的相似性分数,使用Sigmoid损失。
iii) 语言建模。采用预训练的大语言模型 将区域表示
转换为语言描述,采用cross-entropy损失。
3.2 动态多模态参考
在推理过程中,通过调整插值系数t=,得到具有动态分辨率的区域表示。在3个多模态任务上评估动态分辨率的影响,n=2,结果如下图所示。
可以看出,属性检测在时(无上下文视图)可以获得更好的结果;字幕生成任务则在
或
时(需要上下文来理解参考的区域)表现更佳,在
时表现下降。
当任务已知时,可以根据任务特性采样合适的视图;当任务未知时,需要根据插值系数构建候选视图。通过贪婪搜索算法从候选中选择n个视图,搜索目标为:
其中,表示第i个插值系数,
表示第i个视图,
表示感知图像哈希函数,
表示异或操作。
3.3 多种视图
DynRefer学习多个区域表示,如下图所示。
四.实验
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导入必要的库,加载给定的数据,划分测试集和训练集之后训练预测和评估即可 具体代码如下: import numpy as np from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split f…...

C语言练习(16)
猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半加一个。到第10天早上想再吃时,见只剩一个桃子了…...

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

R语言学习笔记之开发环境配置
一、概要 整个安装过程及遇到的问题记录 操作步骤备注(包含遇到的问题)1下载安装R语言2下载安装RStudio3离线安装pacman提示需要安装Rtools4安装Rtoolspacman、tidyfst均离线安装完成5加载tidyfst报错 提示需要安装依赖,试错逐步下载并安装…...

多版本并发控制:MVCC的作用和基本原理
多版本并发控制: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 存在,但被 nvm 覆盖了,可以通过禁用或卸载 nvm 恢复到系统…...

【数据结构进阶】红黑树超详解 + 实现(附源码)
🌟🌟作者主页:ephemerals__ 🌟🌟所属专栏:数据结构 目录 前言 一、红黑树介绍 二、红黑树原理详解 三、红黑树的实现 1. 节点定义 2. 红黑树类型定义及接口声明 3. 红黑树的插入(重点&a…...

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

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

数据统计–图形报表(day11)
Apache ECharts 介绍 Apache ECharts 介绍 Apache ECharts 是一款基于 Javascript 的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。 官网地址:Apache ECharts 入门案例 Apache Echarts官方…...

源码分析之Openlayers样式篇CircleStyle类
访问Openlayers网站(https://jinuss.github.io/Openlayers_map_pages/,网站是基于Vue3 Openlayers,里面有大量的实践和案例。觉得还不错,可以 给个小星星Star,鼓励一波 https://github.com/Jinuss/OpenlayersMap哦~ 概述 在 Ope…...

解决CentOS9系统下Zabbix 7.2图形中文字符乱码问题
操作系统:CentOS 9 Zabbix版本:Zabbix7.2 问题描述:主机图形中文字符乱码 解决方案: # 安装字体配置和中文语言包 sudo yum install -y fontconfig langpacks-zh_CN.noarch # 检查是否已有中文字体: 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…...

linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...

如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...

回溯算法学习
一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...

【笔记】WSL 中 Rust 安装与测试完整记录
#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统:Ubuntu 24.04 LTS (WSL2)架构:x86_64 (GNU/Linux)Rust 版本:rustc 1.87.0 (2025-05-09)Cargo 版本:cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...

宇树科技,改名了!
提到国内具身智能和机器人领域的代表企业,那宇树科技(Unitree)必须名列其榜。 最近,宇树科技的一项新变动消息在业界引发了不少关注和讨论,即: 宇树向其合作伙伴发布了一封公司名称变更函称,因…...

计算机基础知识解析:从应用到架构的全面拆解
目录 前言 1、 计算机的应用领域:无处不在的数字助手 2、 计算机的进化史:从算盘到量子计算 3、计算机的分类:不止 “台式机和笔记本” 4、计算机的组件:硬件与软件的协同 4.1 硬件:五大核心部件 4.2 软件&#…...
【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案
目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后,迭代器会失效,因为顺序迭代器在内存中是连续存储的,元素删除后,后续元素会前移。 但一些场景中,我们又需要在执行删除操作…...