超越CVPR 2024方法,DynRefer在区域级多模态识别任务上,多项SOTA

关注公众号,发现CV技术之美

本文转自机器之心。

为了实现高精度的区域级多模态理解,本文提出了一种动态分辨率方案来模拟人类视觉认知系统。

本文作者来自于中国科学院大学LAMP实验室,其中第一作者赵毓钟是中国科学院大学的2023级博士生,共同一作刘峰是中国科学院大学2020级直博生。他们的主要研究方向是视觉语言模型和视觉目标感知。

简介

DynRefer 通过模拟人类视觉认知过程,显著提升了区域级多模态识别能力。通过引入人眼的动态分辨率机制,DynRefer 能够以单个模型同时完成区域识别、区域属性检测和区域字幕生成(region-level captioning)任务,并在上述任务都取得 SOTA 性能。其中在 RefCOCOg 数据集的 region-level captioning 任务上取得了 115.7 CIDEr,显著高于 RegionGPT,GlaMM,Osprey,Alpha-CLIP 等 CVPR 2024 的方法。

fd57970a0f7b9e2aa0a973006c20c937.png

  • 论文标题:DynRefer: Delving into Region-level Multi-modality Tasks via Dynamic Resolution

  • 论文链接:https://arxiv.org/abs/2405.16071

  • 论文代码:https://github.com/callsys/DynRefer

9985d6d805662535cc2907a4248a27f8.png

动机

区域级多模态任务致力于将指定的图像区域转换为符合人类偏好的语言描述。人类完成区域级多模态任务时具有一种分辨率自适应能力,即关注区域是高分辨率的,非关注区域是低分辨率的。然而,目前的区域级多模态大语言模型往往采用固定分辨率编码的方案,即对整张图像进行编码,然后通过 RoI Align 将区域特征提取出来。这种做法缺乏人类视觉认知系统中的分辨率自适应能力,对关注区域的编码效率和能力较低。为了实现高精度的区域级多模态理解,我们提出了一种动态分辨率方案来模拟人类视觉认知系统,如下图所示。

426698d94136bde74c401ff7c928c401.png

图 1:传统的区域级多模态方法(左)与 DynRefer 方法(右)的比较。

方法

1、模拟动态分辨率的图像(Multi-view construction)。由于主流的预训练视觉语言模型(CLIP)只能接收均匀分辨率的输入,我们通过构造多个均匀分辨率的视图来模拟一幅动态分辨率图像。该图像在指代区域具有高分辨率,而在非指代区域低分辨率。具体流程如图 2 上。原始图像 x 被裁剪并调整大小为多个候选视图。裁剪区域的计算方式为 efbdba495d2d5f485b9b695e24ec7199.png,其中21082ac33cfeffb4bc0c115d561d0017.png。这里的4c0aa98232f0bab4849fd785c9f0542e.png表示参考区域的边界框,4905e67649ee88c79171a24925860186.png表示整个图像的尺寸,t 表示插值系数。在训练过程中,我们从候选视图中随机选择 n 个视图,以模拟由于注视和眼球快速运动而生成的图像。这些 n 个视图对应于插值系数 t,即233376e92f8954670056a4bb7701fc15.png。我们固定保留仅包含参考区域的视图(即41bf9058254c886949f1f77e32e01263.png)。经实验证明该视图有助于保留区域细节,对于所有区域多模态任务都至关重要。

e422b190e0d9c53e5f08b7eb7ed4ab9d.png

图 2:DynRefer 训练(上)与 推理(下)。

2、随机动态视图嵌入(Stochastic Multi-view Embedding)。具体流程如图 3 所示。采样的 n 个视图通过冻结的 CLIP 编码成空间特征,然后经过 RoI-Align 模块处理,以获取区域嵌入,即1b82cd4cae6d9d477beb163e6c8d9c41.png。如图 3 左侧所示。由于裁剪、调整大小和 RoI-Align 引入的空间误差,这些区域嵌入在空间上并不对齐。受 deformable convolution 操作启发,我们提出了一个对齐模块,通过将 17285ad2baee5ceb6868f58b1a597c90.png对齐到 08955166cee327bfdc531da0561909e1.png来减少偏差,其中 910613ce608d705208ebc8785823d125.png是仅包含参考区域的视图编码的区域嵌入。对于每个区域嵌入2cce8d488bb3747446d4fe737aed6cd0.png,首先将其与 c47404cb4fcb7056b4b8f81679b3d7fc.png连接,然后通过卷积层计算一个二维偏移图。a1698604cfaf65cfc5d4cecc3cfcffaf.png的空间特征然后根据二维偏移重新采样。最后,对齐后的区域嵌入沿通道维度连接并通过 linear 层进行融合。输出进一步通过视觉重采样模块,即 Q-former,进行压缩,从而提取原始图像 x 的参考区域 7a27bcc6dadc66d70c1538f0f5f895f9.png的区域表示(图 3 中的81e69c53cb1c490199469390041882cc.png)。

b329f1b44a5a2ba2fce3718e3a545eeb.png

图 3:DynRefer 网络结构

3、视觉语言对齐 (Vision-language Alignment)。通过随机多视图嵌入模块计算得到的区域表示a445e1c76205bc00db57f94aa980fa60.png,由三个解码器71389784e8cc72a868ad3e027592f843.png解码,如图 3(右)所示,分别受三个多模态任务的监督:

i) 图像区域标签生成。我们采用基于查询的轻量级识别解码器进行区域标签生成。解码器 6a29e8d408a987dc29500204b6cb36ef.png 如图 3(右侧)所示。通过使用标签作为查询,46afb23ba080f047bd29eb6b0fb118ee.png作为键和值,计算预定义标记的置信度来完成标记过程。我们从真值字幕中解析出标签,以监督识别解码器。ii) 区域 - 文本对比学习。类似于区域标记解码器,解码器 f063a4a4ba6e3ca1ea4e8c355455773f.png定义为基于查询的识别解码器。该解码器计算字幕与区域特征之间的相似性分数,使用 SigLIP loss 进行监督。iii) 语言建模。我们采用预训练的大语言模型 b701601fa9c22509600ee3bab37db8c8.png将区域表示 95b6964a9724bd74560639327e8a6cc3.png转换为语言描述。

f81cef6b70ae67613e5494fd2b124006.png

图 4:双视图(n=2)DynRefer 模型在区域级多模态任务上的表现。在不同的插值系数 t 下,47b5df61a9d044fdd0b1a76effba018b.png。视图一是固定的(f6e02b30f308064a1a618f4a8fd1f428.png),视图二随机选择或固定。

4、在推理过程中,经过训练的 DynRefer 模型通过动态分辨率在图像上执行多模态任务。通过调整采样的 n 个视图的插值系数694843137002b8900aec6af59fa99edc.png,我们可以得到具有动态分辨率特性的区域表示。为了评估不同动态分辨率下的特性,我们训练了一个双视图(n=2)的 DynRefer 模型,并在四个多模态任务上进行评估。从图 4 中的曲线可以看出,对于没有上下文信息的视图(3dad2964e597b77047f5229e3fb3c20e.png),属性检测(Attribute detection)获得了更好的结果。这可以解释为这种任务通常需要详细的区域信息。而对于区域级字幕(Region-level captioning)和密集字幕生成(Dense captioning)任务,需要上下文丰富的视图( 78b9ce05e6f7319b00b36475f0fce5de.png),以便完整理解参考区域。需要注意的是,过多上下文的视图(1ee5c3ba57a7b812ee034fd9e7e0aa21.png)会降低所有任务的性能,因为它们引入了过多与区域无关的信息。当已知任务类型时,我们可以根据任务特性采样适当的视图。当任务类型未知时,我们首先构建一组在不同插值系数 t 下的候选视图集合,4d3563193cbfccff7899f8ba6d13b97f.png。从候选集中,通过贪婪搜索算法采样 n 个视图。搜索的目标函数定义为:

a4ed7bcb1c3850e0c25b10e306adecdc.png

其中edb9c3b817401046b4e89b3c9329dc72.png表示第 i 个视图的插值系数,5423f8353550a53a2c361888aff4c86b.png表示第 i 个视图,pHASH (・) 表示感知图像哈希函数,96133b4350fab90c1327786343d362ba.png表示异或操作。为了从全局视角比较视图的信息,我们利用 "pHASH (・)" 函数将视图从空间域转换到频域,然后编码成哈希码。对于fe47e0fff6230a5430e8dae44d6006eb.png这一项,我们减少上下文丰富视图的权重,以避免引入过多冗余信息。

实验

Region-level Captioning

c06c457620fdfdc12eaf854d3a24a765.png

在区域字幕生成任务,DynRefer 以更小的模型(4.2B v.s. 7B),在 RefCOCOg 和 VG 两个数据集上、在 METEOR 和 CIDEr 两个指标上都显著超过了 CVPR 2024 中的众多方法,如 RegionGPT,GlaMM,Alpha-CLIP 和 Osprey 等,展现出 DynRefer 巨大的性能优势。

Dense Captioning

395dbb8501b4d0fdecbdb210b1b9bb52.png

在密集字幕生成任务,在 VG1.2 数据集,DynRefer 相较之前的 SOTA 方法 GRiT 提升了 7.1% mAP。

Open Vocabulary Attribute Detection

31173905197de6d1ba9ed9955b9fb1d2.png

在区域属性检测任务,DynRefer 也取得了 SOTA 的性能。

Open Vocabulary Region Recognition

6210d796d65ade132dff5ed6a01f0581.png

在区域识别任务,DynRefer 比 CVPR 24 的 RegionGPT 提升了 15% mAP 和 8.8% Accuracy,比 ICLR 24 的 ASM 高 15.7% mAP。

消融实验

63022cb54dd00aceb0127a2b0ceaa2a2.png

  • Line 1-6:随机动态多视图要优于固定视图。

  • Line 6-10:通过最大化信息选择视图优于随机选择视图。

  • Line 10-13:多任务训练可以学习得到更好的区域表征。

可视化

下面几张图展示了 DynRefer 的推理结果,DynRefer 可以用一个模型同时输出区域字幕、标签、属性和类别。

819f0df2f00f0aedb6232dc669096ee5.png

7b3805a43c42d0f0294bb8ea45886891.png

7adafdc851121239ac49097e75ea6603.jpeg

END

欢迎加入「CV交流群👇备注:CV

8765ac631de09be0437539fff8ac5466.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
完整版:https://download.csdn.net/download/qq_27595745/89522468 【课程大纲】 1-1 什么是java 1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3-1 java语言基础入门 3-2 数据的分类 3-3 标识符、关键字和常量 3-4 运算符 3-5 表达式 3-6 顺序结构和选择结构 3-7 循环语句 3-8 跳转语句 3-9 MyEclipse工具介绍 3-10 java基础知识章节练习 4-1 一维数组 4-2 数组应用 4-3 多维数组 4-4 排序算法 4-5 增强for循环 4-6 数组和排序算法章节练习 5-0 抽象和封装 5-1 面向过程的设计思想 5-2 面向对象的设计思想 5-3 抽象 5-4 封装 5-5 属性 5-6 方法的定义 5-7 this关键字 5-8 javaBean 5-9 包 package 5-10 抽象和封装章节练习 6-0 继承和多态 6-1 继承 6-2 object类 6-3 多态 6-4 访问修饰符 6-5 static修饰符 6-6 final修饰符 6-7 abstract修饰符 6-8 接口 6-9 继承和多态 章节练习 7-1 面向对象的分析与设计简介 7-2 对象模型建立 7-3 类之间的关系 7-4 软件的可维护与复用设计原则 7-5 面向对象的设计与分析 章节练习 8-1 内部类与包装器 8-2 对象包装器 8-3 装箱和拆箱 8-4 练习题 9-1 常用类介绍 9-2 StringBuffer和String Builder类 9-3 Rintime类的使用 9-4 日期类简介 9-5 java程序国际化的实现 9-6 Random类和Math类 9-7 枚举 9-8 练习题 10-1 java异常处理 10-2 认识异常 10-3 使用try和catch捕获异常 10-4 使用throw和throws引发异常 10-5 finally关键字 10-6 getMessage和printStackTrace方法 10-7 异常分类 10-8 自定义异常类 10-9 练习题 11-1 Java集合框架和泛型机制 11-2 Collection接口 11-3 Set接口实现类 11-4 List接口实现类 11-5 Map接口 11-6 Collections类 11-7 泛型概述 11-8 练习题 12-1 多线程 12-2 线程的生命周期 12-3 线程的调度和优先 12-4 线程的同步 12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-11 zip文件流 13-12 练习题 14-1 图形用户界面设计 14-2 事件处理机制 14-3 AWT常用组件 14-4 swing简介 14-5 可视化开发swing组件 14-6 声音的播放和处理 14-7 2D图形的绘制 14-8 练习题 15-1 反射 15-2 使用Java反射机制 15-3 反射与动态代理 15-4 练习题 16-1 Java标注 16-2 JDK内置的基本标注类型 16-3 自定义标注类型 16-4 对标注进行标注 16-5 利用反射获取标注信息 16-6 练习题 17-1 顶目实战1-单机版五子棋游戏 17-2 总体设计 17-3 代码实现 17-4 程序的运行与发布 17-5 手动生成可执行JAR文件 17-6 练习题 18-1 Java数据库编程 18-2 JDBC类和接口 18-3 JDBC操作SQL 18-4 JDBC基本示例 18-5 JDBC应用示例 18-6 练习题 19-1 。。。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值