来源:晓飞的算法工程笔记 公众号,转载请注明出处

论文: Visual Grounding with Multi-modal Conditional Adaptation

创新点


  • 提出了多模态条件适应(MMCA)方法,该方法从一种新颖的权重更新视角改善了视觉引导模型中视觉编码器的特征提取过程。
  • 将提出的MMCA应用于主流的视觉引导框架,并提出了灵活的多模态条件变换器和卷积模块,这些模块可以作为即插即用组件轻松应用于其他视觉引导模型。
  • 进行广泛的实验以验证该方法的有效性,在四个具有代表性的数据集上的结果显示出显著的改善,且成本较小。

内容概述


视觉定位旨在将传统的物体检测推广到定位与自由形式文本描述相对应的图像区域,已成为多模态推理中的核心问题。现有的方法通过扩展通用物体检测框架来应对这一任务,使用独立的视觉和文本编码器分别提取视觉和文本特征,然后在多模态解码器中融合这些特征以进行最终预测。

视觉定位通常涉及在同一图像中定位具有不同文本描述的物体,导致现有的方法在这一任务上表现不佳。因为独立的视觉编码器对于相同的图像生成相同的视觉特征,从而限制了检测性能。最近的方法提出了各种语言引导的视觉编码器来解决这个问题,但它们大多仅依赖文本信息,并且需要复杂的设计。

LoRA在适应不同下游任务的高效性的启发,论文引入了多模态条件适配(MMCA),使视觉编码器能够自适应更新权重,专注于与文本相关的区域。具体而言,首先整合来自不同模态的信息以获得多模态嵌入,然后利用一组从多模态嵌入生成的权重系数,来重组权重更新矩阵并将其应用于视觉定位模型的视觉编码器。

MMCA


MMCA遵循典型的端到端编码器-解码器范式:

  1. 给定一幅图像和一个语言表达作为输入将其输入到编码器部分,以生成相应的特征嵌入。

    1. 在语言分支中,语言主干将经过分词的语言表达作为输入,并提取文本特征 \(f_t\in \mathbb{R}^{N_t\times C_t}\) ,其中 \(N_t\) 是语言标记的数量。
    2. 在视觉分支中,CNN主干首先提取一个二维特征图,然后经过一系列变换器编码器层,生成一个展平的视觉特征序列 \(f_v\in \mathbb{R}^{N_v\times C_v}\) 。
    3. 多模态条件适应(MMCA)模块以层级方式应用于卷积层和变换器层的参数矩阵。该模块同时接受视觉和文本特征作为输入,并动态更新视觉编码器的权重,以实现基于语言的视觉特征提取。
  2. 将视觉和文本特征嵌入连接在一起,并在多模态解码器(视觉-语言变换器)的输入中添加一个可学习的标记 [REG],该解码器将来自不同模态的输入标记嵌入对齐的语义空间,并通过自注意力层执行模态内和模态间的推理。
  3. 回归头使用 [REG] 标记的输出状态来直接预测被指对象的四维坐标 \(\hat b = (\hat{x}, \hat{y}, \hat{w}, \hat{h})\) 。与真实框 \(b = (x, y, w, h)\) 的训练损失可以表述为:
\[\begin{equation}
\mathcal L=\mathcal L_{smooth-l1}(\hat b, b)+L_{giou}(\hat b, b)
\end{equation}
\]

条件适应

对于视觉引导任务,论文希望不同的指代表达能够控制视觉编码器的一组权重更新,从而引导编码器的注意力集中在与文本相关的区域。然而,直接生成这样的矩阵带来了两个缺点:(1)这需要一个大型参数生成器。(2)没有约束的生成器可能在训练中对表达式过拟合,而在测试期间却难以理解表达式。

LoRA的启发,让网络学习一组权重更新的基矩阵并使用多模态信息重新组织更新矩阵。这使得参数生成器变得轻量,并确保网络的权重在同一空间内更新。

具体而言,先对权重更新矩阵进行分解,并将其重新表述为外积的和,通过 \(B_i, A_i\) 并使用加权和来控制适应的子空间:

\[\begin{equation}
\Delta Wx=BAx={\textstyle \sum_{i=1}^{r}} B_i\otimes A_i
\label{eq3}
\end{equation}
\]
\[\begin{equation}
h=W_0x+\Delta Wx=W_0x+{\textstyle \sum_{i=1}^{r}} w_iB_i\otimes A_i
\label{eq4}
\end{equation}
\]

为了简化并且不引入其他归纳偏差,使用线性回归来生成这一组权重:

\[\begin{equation}
[w_1, w_2, ..., w_r]^T
=W_gE_{mm}+
[b_1, b_2, ..., b_r]^T
\label{eq5}
\end{equation}
\]

其中 \(W_g\in \mathbb{R}^{r\times d}, [b_1, b_2, ..., b_r]^T\) 是参数矩阵, \(E_{mm}\in \mathbb{R}^{d}\) 是特定层的多模态嵌入,它是由文本特征和从前一层输出的视觉特征生成的。

与迁移学习任务不同,这里并不打算微调一小部分参数以适应特定的下游任务,而是希望视觉编码器能够适应各种表达。因此,所有参数矩阵 \(W_0, B, A, W_g, [b_1, b_2, ..., b_r]^T\) 在训练阶段都是可学习的。

多模态嵌入

仅依赖文本信息来引导视觉编码器可能会在某些应用中限制灵活性,并且性能可能会受到文本信息质量的影响。为了缓解这些问题,采用门控机制来调节文本信息的输入。

给定文本特征 \(F_t\in \mathbb{R}^{N_t\times C_t}\) 和展平的视觉特征 \(F_v\in \mathbb{R}^{HW\times C_v}\) ,使用简单门控机制来融合视觉和文本嵌入:

\[\begin{equation}
E_{t} = W_tF_t, E_{v}=W_vF_v
\end{equation}
\]
\[\begin{equation}
\alpha =\sigma[W^1_g\delta(W^2_g(E_{t}+E_{v}))]
\end{equation}
\]
\[\begin{equation}
E_{mm} = \alpha E_{t} + E_{v}
\end{equation}
\]

最后,融合嵌入 \(E_{mm}\) 被用来生成系数,从而指导视觉编码器的权重更新。

适配视觉定位

基于视觉编码器(卷积层和Transformer层),进一步提出了多模态条件Transformer和多模态条件卷积,用于将MMCA应用于视觉定位中。

  • 多模态条件Transformer

视觉主干中的Transformer编码器层主要由两种类型的子层组成,即MHSAFFN。通过应用多模态条件适应,MHSAFFN的计算变为:

\[\begin{equation}
\begin{split}
h'=softmax(\frac{(W'_q)XX^T(W'^T_k)} {\sqrt{d_k}})W_vX + X\\
W'_q = W_q + \Delta W_{q}, W'_k = W_k + \Delta W_{k}
\end{split}
\label{eq8}
\end{equation}
\]
\[\begin{equation}
X_{output}=LN(MLP(h')+\Delta W_{m}h'+h')
\label{eq9}
\end{equation}
\]

其中 \(\Delta W_{q}, \Delta W_{k}, \Delta W_{m}\) 是查询、关键和MLP块的线性投影的条件权重更新。

  • 多模态条件卷积

为了便于应用多模态条件适应,将卷积权重更新展开为一个2-D矩阵并用两个矩阵 \(B\in \mathbb{R}^{c_{in}\times r}, A\in \mathbb{R}^{r\times c_{out}k^2}\) 进行近似,秩为 \(r\) 。于是,卷积块的多模态条件适应可以通过两个连续的卷积层 \(Conv_B\) 和 \(Conv_A\) 来近似:

\[\begin{equation}
X_{output}=Conv_{k \times k}(X)+Conv_A(W_{mm} \odot Conv_B(X))
\label{eq10}
\end{equation}
\]

其中 \(X\) 和 \(W_{mm}=[w_1, w_2, ..., w_r]^T\) 分别是来自前一卷积层的视觉特征和从多模态嵌入生成的权重系数。在通道维度上计算系数与 \(Conv_B\) 输出的点积,并将输出输入到 \(Conv_A\) ,这相当于重新组织权重更新。

主要实验






如果本文对你有帮助,麻烦点个赞或在看呗~

更多内容请关注 微信公众号【晓飞的算法工程笔记】

MMCA:多模态动态权重更新,视觉定位新SOTA | ACM MM'24 Oral的更多相关文章

  1. hystrix(一) 简单使用, 以及动态配置更新

    本文转载自https://my.oschina.net/u/1169457/blog/1787414 hystrix 简单使用, 以及动态配置更新 概述 只介绍同步模式下简单的使用, 有助于快速接入, ...

  2. 论文:利用深度强化学习模型定位新物体(VISUAL SEMANTIC NAVIGATION USING SCENE PRIORS)

    这是一篇被ICLR 2019 接收的论文.论文讨论了如何利用场景先验知识 (scene priors)来定位一个新场景(novel scene)中未曾见过的物体(unseen objects).举例来 ...

  3. Hystrix 如何在不引入 Archaius 的前提下实现动态配置更新

    Hystrix 简介 Hystrix 是 Netflix 开源的一个限流熔断降级组件,防止依赖服务发生错误后,将调用方的服务拖垮.这里对 Hystrix 本身不做过多介绍. Hystrix 目前处于维 ...

  4. 即使用ADO.NET,也要轻量级动态生成更新SQL,比Ormlite性能更高

    先上测试结果: //测试1000次针对同一个表同一个字段更新,比Ormlite平均快2.34倍 //生成SQL+ExecuteNonQuery Ormlite 倍数 //6513ms 15158ms ...

  5. 《zw版·Halcon-delphi系列原创教程》航母舰载机·视觉定位标志的识别代码

    <zw版·Halcon-delphi系列原创教程>航母舰载机·视觉定位标志的识别代码 航母舰载机机身上的黄黑圆圈的标志是什么意思,辐射?核动力?战术核弹? <百度百科>介绍如下 ...

  6. 这里已不再更新,访问新博客请移步 http://www.douruixin.com

    这里已不再更新,访问新博客请移步 http://www.douruixin.com

  7. 仿联想商城laravel实战---5、无刷新的增删改查(动态页面更新的三种方式(html))

    仿联想商城laravel实战---5.无刷新的增删改查(动态页面更新的三种方式(html)) 一.总结 一句话总结: 直接js增加删除修改html 控制器直接返回处理好的页面 用双向绑定插件比如vue ...

  8. SpringBoot+springDataJpa实现单表字段动态部分更新

    写在前面 所谓的动态部分更新是指:并非对数据记录的所有字段整体更新,而是知道运行时才确定哪个或者哪些字段需要被更新. 1)Spring Data Jpa对于Entity的更新,是对数据表中Entity ...

  9. Edge Beta Android版更新已启用新图标

    导读 微软Edge Beta Android版更新已启用新图标设计 IT之家消息 适用于Android的Microsoft Edge Beta已于近日获得更新,最显著的特征就是使用了新图标设计.该图标 ...

  10. VisonPro · 视觉定位工具包示例

    一.概述 视觉定位工具包一般包含: 1.相机取像: 2.图像九点标定: 3.Mark点粗定位: 4.建立粗定位坐标系: 5.Mark点精定位 6.输出Mark点坐标,角度等信息. 二.分类 1.单特征 ...

随机推荐

  1. mybatis坑之数字字符串比对

    在mybatis开发过程中有需要在sql中判断查询哪张表,如下sql: SELECT a.tag_name, a.tag_id, count( 0 ) AS base_total FROM mm_dd ...

  2. 树莓派CM4(三): 定制自己的树莓派镜像

    1. 镜像下载 使用树莓派最新的镜像Raspberry Pi OS Lite,内核版本6.6 下载链接 https://downloads.raspberrypi.com/raspios_lite_a ...

  3. Linux程序之可变参数&&选项那些事!

    一.linux应用程序如何接收参数? 1. argc.argv Linux应用程序执行时,我们往往通过命令行带入参数给程序,比如 ls /dev/ -l 其中参数 /dev/ .-l都是作为参数传递给 ...

  4. thymeleaf学习问题整理

    使用配置 <properties> <java.version>1.8</java.version> <thymeleaf.version>3.0.9. ...

  5. SciPy从入门到放弃

    目录 SciPy简介 拟合与优化模块 求最小值 曲线拟合 线性代数模块 统计模块 直方图和概率密度函数 统计检验 SciPy简介 SciPy是一种以NumPy为基础,用于数学.工程及许多其他的科学任务 ...

  6. Comfyui 基础教程(一) —— 本地安装部署

    前言 前面一篇文章已经介绍过,ComfyUI 和 Stable Diffusion 的关系.不清楚的朋友,看传送门 Stable Diffusion 小白的入坑铺垫 . WebUI 以及 ComfyU ...

  7. how to log iptables events

    warning level: iptables -A INPUT -j LOG --log-prefix "BAD_INPUT: " --log-level 4 iptables ...

  8. C# 中的 AEAD_AES_256_GCM

    注意:AEAD_AES_256_GCM Key的长度必须是32位,nonce的长度必须是12位,附加数据有可能为空值.AEAD_AES_128_GCM Key的长度必须是16位,nonce的长度必须是 ...

  9. Qt连连看(一)需求分析

    虽然开发经验并不多,但是结合以往的一点实践项目和理论学习,自认为不管是开发什么工程项目,只要遵循软件工程的构建原则,如选择一个合理的架构体系,再掌握一门语言,利用数据结构组织数据,算法实现想法和功能, ...

  10. 搭建本地nginx-rtmp服务,初体验rtmp推流、拉流

    实验环境说明: ubuntu 16.04 进行本实验的前提:需要在ubuntu上搭建好ffmpeg环境,参考我的另一篇博文 ffmpeg编译过程经历的99八十一难 下面开始本文内容 PART1 编译安 ...