首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

ScanFormer:逐层抵达目标,基于特征金字塔的指代表达理解框架 | CVPR'24

编程知识
2024年09月23日 10:45

指代表达理解(REC)旨在在图像中定位由自由形式自然语言描述指定的目标对象。尽管最先进的方法取得了令人印象深刻的性能,但它们对图像进行了密集感知,包含与语言查询无关的多余视觉区域,导致额外的计算开销。这启发论文探讨一个问题:能否消除与语言无关的多余视觉区域,以提高模型的效率?现有的相关方法主要侧重于基本的视觉任务,在视觉语言领域的探索有限。为了解决这一问题,论文提出了一个称为ScanFormer的粗到细的迭代感知框架。该框架逐层利用图像尺度金字塔,从上到下提取与语言相关的视觉图像块。在每次迭代中,通过设计的信息预测方法丢弃不相关的图像块。此外,论文提出了一个用于加速推断的被丢弃图像块的选择策略。在广泛使用的数据集RefCOCORefCOCO+、RefCOCOgReferItGame上的实验证明了该框架有效性,可以在准确性和效率之间取得平衡。

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

论文: ScanFormer: Referring Expression Comprehension by Iteratively Scanning

Introduction


   作为视觉语言理解中的基本任务,指代表达理解(REC)依赖于自由形式的自然语言描述来识别所指对象。REC的发展不仅可以支撑各种视觉语言任务,还有可能有助于实际应用,如人机交互。

   在指代表达理解(REC)中,与高度简洁和信息密集的语言查询形成对比的是,图像通常包含大量冗余信息。例如,如图1所示,图像中存在大量与语言查询弱相关甚至不相关的冗余视觉区域,例如目标捕手周围的人物以及大面积的低信息背景区域。然而,最先进的方法采用密集感知形式来获取用于后续跨模态交互的视觉特征。这些方法使用诸如ResNetDarkNetSwin Transformer等的视觉编码器,并使用滑动窗口或非重叠图像块遍历图像的所有空间位置以提取特征,如图1(a)所示。尽管取得了令人印象深刻的性能,但密集感知的形式带来大量冗余信息,并增加了整个模型的计算开销。特别是在基于Transformer的模型中,多头自注意力的计算复杂度是二次的。这引出一个研究问题:是否可能丢弃与语言无关的冗余视觉区域,以提升模型的效率?

   值得注意的是,目前出现了一种探索消除冗余视觉特征的新趋势。典型的自下而上融合方法最初将图像分割成细粒度图像块,并逐渐在后续多个阶段中合并这些图像块以减少视觉标记。然而,初始标记的丰富性不可避免地导致了早期阶段的巨大计算成本,特别是在处理高分辨率图像时。此外,自上而下的粗到细方法从粗粒度分割开始,使用大的图像块尺寸,并逐渐减小图像块尺寸以获取细粒度的视觉标记。例如,DVT级联多个Transformer,并利用高置信预测来确定是否使用较小的图像块尺寸将整个图像划分为更细粒度的图像块。然而,这种方法通常会带来大量冗余的视觉区域,并增加计算开销。CF-ViT引入了一个粗到细的两阶段视觉Transformer,该模型在粗阶段识别信息丰富的图像块,并在第二阶段进一步将它们重新分割为更细的图像块。尽管在分类任务中表现出色,但基于类别注意力的启发式信息丰富区域识别限制了其扩展以及在没有[CLS]标记的情况下的建模。此外,由于它是非可学习的,应用正则化来控制标记的稀疏性是具有挑战性的。因此,现有的高效Transformer方法仍然存在局限性,并侧重于视觉任务,而忽视了对视觉语言领域的探索。

   为了解决这个问题,论文提出了一种粗到细的迭代感知框架,称为ScanFormer,如图1(b)所示。具体而言,利用预构建的图像尺度金字塔,模型从金字塔顶部的粗粒度低分辨率图像开始进行视觉感知。通过预测下一次迭代中更细粒度图像块的信息量,模型自适应地消除冗余的视觉区域,最终达到金字塔底部的细粒度高分辨率图像。此外,通过将先前的标记保留在缓存中而不进行进一步的更新(KVCache),从而减少计算资源。在每次迭代中提取的新标记,通过自注意力和交叉注意力分别与自身和缓存中包含的先前标记交互。在这个过程中,多尺度图像块分区使模型能够从不同空间位置聚合与尺度相关的信息。此外,论文提出了一种针对被丢弃图像块的图像块选择策略以加速推理。一个可学习的标记参与粗到细的迭代感知过程,并最终用于坐标回归,直接预测目标框。大量实验证明了ScanFormer的有效性,在广泛使用的数据集上取得了最先进的方法,即RefCOCORefCOCO+,RefCOCOgReferItGame

   主要贡献可以总结如下:

  1. 提出了ScanFormer,这是一个粗到细的迭代感知框架,每次迭代逐渐丢弃与语言无关的冗余视觉区域,以增强模型的效率。

  2. 为了实现图像块选择,提出通过常数标记替换来选择标记,其中未被选中的标记将被常数标记替换,最终合并以真正加速处理。

  3. 广泛的实验证明了ScanFormer的有效性,与最先进的方法相比,在准确性和效率之间取得了平衡。

Method


Framework

   ScanFormer利用一种统一的类Transformer结构,用于语言和视觉模态,如图2所示。具体地,该框架由词嵌入、图像块嵌入、位置-尺度嵌入和编码器组成。词嵌入和图像块嵌入分别从文本和图像中提取特征。位置-尺度嵌入用于编码每个图像图像块的空间位置和尺度大小。编码器由N个层组成,每个层包括一个多头注意力(MHA)层和一个前馈网络(FFN)。

   此外,每个编码器层都配备有一个缓存来存储输出特征。MHA的查询来自输入特征,而键和值由输入特征和先前缓存特征组成,如图3所示。尺度上的因果性不仅减少了计算量,还利用了先前的语言和多尺度视觉信息来更新特征。

   语言模态的输入首先由该框架进行编码,并提取的语言特征被存储在缓存中。随后,对于视觉模态,基于输入图像 \(I\) 构建了一个包含 \(S\) 个尺度的图像尺度金字塔。自顶向下,对于每次迭代,选择的图像块被提取并通过框架进行处理,中间特征用于生成下一个金字塔层中子图像块的选择。此外,每个编码器层的缓存存储每次迭代后获得的视觉特征。每次迭代中与[REG]标记对应的特征用于预测对应尺度上指代对象的坐标。对于金字塔顶部的图像,选择所有图像块以确保模型捕获全局信息。随着尺度的增加,ScanFormer融合了更精细的特征以实现准确的预测,同时丢弃不相关的图像块以节省大量计算资源。

   具体而言,对于语言模态,指代文本 \(t\in\mathbb{R}^{L\times|V|}\) 被嵌入到词嵌入矩阵 \(T\in\mathbb{R}^{|V|\times d}\) 中,前置[CLS]嵌入 \(T^{cls}\in\mathbb{R}^d\) ,然后与文本位置嵌入矩阵 \(T^{pos}\in\mathbb{R}^{(L+1)\times d}\) 和类型嵌入 \(T^{type}\in\mathbb{R}^d\) 相加。嵌入的语言特征首先被送入框架中,更新后的语言特征将存储在编码器每层的缓存中。对于视觉模态,在图像尺度金字塔的自顶向下,以第 \(i\) 层为例,首先从具有 \((P, P)\) 分辨率和 \(C\) 通道的 \(N_i\) 个选择的图像块被平铺为 \(v\in\mathbb{R}^{N_i\times (P^2\cdot C)}\) ,然后通过线性投影层投影到 \(E\in\mathbb{R}^{N_i \times d}\) 。之后,图像块特征与空间嵌入 \(E^{spatial}\in\mathbb{R}^{N_i\times d}\) 和类型嵌入 \(E^{type}\in\mathbb{R}^d\) 相加。 \(E^{spatial}\) 由位置-尺度嵌入 \(PSE: [0,1]^3 \rightarrow \mathbb{R}^d\) 生成,使用规范化的图像块坐标和尺度 \([cx, cy, s]\) 作为输入。之后,附加[REG]标记的嵌入 \(E^{reg}\in\mathbb{R}^d\) 用于回归第 \(i\) 层对象的边界框 \([cx_i, cy_i, w_i, h_i]\)

Patch Selection by Constant Replacement

   为了通过反向传播学习选择信息图像块,为第 \(i\) 个图像块生成了选择因子 \(s_i\) 。关于如何使用 \(s_i\) 有两个选择:(1)将 \(s_i\) 应用于每个Transformer层上MHA的每个头,通过对键和值进行加权实现。逐渐将 \(s_i\) 衰减为 \(0.0\) ,以最小化其对其余标记的影响。然而,对于具有 \(N\) 层和 \(H\) 头的Transformer,获得清晰的梯度信号以优化 \(s_i\) 是具有挑战性的,使得难以实现理想的学习选择。(2)将 \(s_i\) 直接加权地应用于Transformer的输入,即图像块嵌入。由于 \(s_i\) 仅在此位置使用,因此更容易训练。因此,本文采用了第二种选择。

   此外,值得注意的是,即使将输入图像块嵌入设置为零,由于FFNMHA的偏置项以及点积注意力,它在后续层中仍会变为非零。幸运的是,当标记序列包含许多相同的标记时,MHA的计算可以被简化,从而实现实际推理加速。为了提高模型的适应性,论文建议将图像块嵌入替换为可学习的常数标记,而不是直接将其设置为零。因此,图像块选择问题被转化为图像块替换问题。

  • Constant Token Replacement

   为了实现标记替换,引入了一个常数标记 \(E^{const}\in\mathbb{R}^d\) ,并从Transformer中产生第 \(i\) 个图像块的选择值 \(r_i\in \mathbb{R}\) 。遵循改进的语义哈希方法,通过反向传播学习 \(r_i\) 。为了鼓励探索,将噪声添加到 \(r_i\) 中,即 \(r_i^n=r_i+n\) 。在训练过程中, \(n\sim \mathcal{N}(0,1)\) ,而在评估和推断时 \(n=0\) 。然后,计算两个变量 \(v_1=\sigma{'}(r_i^n)\)\(v_2=\mathbb{I}(r_i^n\geq 0)\)

\[\begin{equation} \sigma{'}(x) = clamp(1.2\sigma(x)-0.1, 0, 1), \end{equation} \]

   其中, \(\mathbb{I}(\cdot)\)\(\sigma(\cdot)\) 分别为指示函数和 \(sigmoid\) 函数。在训练过程中,在前向传播中,均匀抽样 \(v_1\)\(v_2\) 作为选择因子 \(s_i\)

\[\begin{equation} \label{equ:select} s_i = \mathbb{I}(n_s\geq0.5)\cdot v_1 +\mathbb{I}(n_s < 0.5)\cdot v_2, \end{equation} \]

   这里, \(n_s\sim Uniform[0, 1]\) 表示随机采样权重。在反向传播中,梯度始终流向 \(v_1\) ,即使在前向计算中使用了 \(v_2\) 。加权图像块嵌入 \(\overline{E}_i\) 计算如下:

\[\begin{equation} \overline{E}_i = s_i\cdot E_i + (1-s_i)\cdot E^{const}. \end{equation} \]

   在训练过程中, \(s_i\) 被规范化为 \(0\) ,即第 \(i\) 个标记被常量标记 \(E^{const}\) 替换。

  • Merging Constant Tokens

   尽管冗余标记被常量标记替换后仍然包含在编码器的前向计算中,但它们不能直接被丢弃而不产生任何影响。然而,这些常量标记可以合并以有效减少计算量。对于一个包含 \(N\) 个标记和 \(N_c\) 个常量标记的键和值序列:

\[\begin{equation} \label{equ:orig_kv} \begin{split} &K=[\underbrace{k_1, k_2, \cdots, k_i}_{N-N_c}, \underbrace{k^c,\cdots, k^c}_{N_c}] \\ &V=[\underbrace{v_1, v_2, \cdots, v_i}_{N-N_c}, \underbrace{v^c,\cdots, v^c}_{N_c}] \end{split} \end{equation} \]

   通过将一个常量向量连接到键上, \(N_c\) 个标记的键和值可以减少到仅一个键和一个值,这可以通过以下方式来说明:

\[\begin{equation} \label{equ:merge_kv} \begin{split} &K^{'}=concat([\underbrace{k_1, k_2, \cdots, k_i}_{N-N_c}, k^c], [\underbrace{0, 0, \cdots, 0}_{N-N_c}, log(N_c)]) \\ &V^{'}=[\underbrace{v_1, v_2, \cdots, v_i}_{N-N_c}, v^c] \end{split} \end{equation} \]

   根据缩放点积注意力机制,相对于 \(K\) 的一个查询 \(q\in\mathbb{R}^{d}\) 的注意力值 \(A\in\mathbb{R}^{N}\) 可以计算为:

\[\begin{equation} \label{equ:attn} A = softmax(\frac{qK^T}{\sqrt{d}}). \end{equation} \]

   根据公式4和公式5,可以得出同样的注意力加权值,如公式6所示。因此, \(N_c-1\) 个标记最终被丢弃,由它们带来的计算可以节省。

Prediction Head

   被指代的对象可能存在于各种尺度上。类似于目标检测方法,其中在不同特征级别进行多尺度预测。对于ScanFormer中的每个尺度级别,应用直接坐标回归来预测被指代对象的边界框,通过回归标记[REG]来搜集Transformer中图像图像块的特征。与[REG]标记对应的输出特征被馈送到共享的多层感知器(MLP),随后使用Sigmoid函数来预测被引用对象的归一化边界框 \(\hat{b}=(\hat{x},\hat{y},\hat{w},\hat{h})\)

Training Objectives

   通过端到端的方式优化所提出的粗到细的迭代感知框架。对于第 \(l\) 个图像尺度,可以获得预测的边界框 \(\hat{b}_l=(\hat{x}_l,\hat{y}_l,\hat{w}_l,\hat{h}_l)\) 。给定真实边界框 \(b=(x,y,w,h)\) ,检测损失函数定义如下:

\[\begin{equation} \label{equ:loss_bbox} \mathcal{L}_{bbox} = \sum_{l=0}^{2} \lambda_{L1}^l\mathcal{L}_{L1}(b,\hat{b}_l) + \sum_{l=0}^{2} \lambda_{giou}^l\mathcal{L}_{giou}^l(b,\hat{b}_l), \end{equation} \]

   其中, \(\mathcal{L}_{L1}(\cdot,\cdot)\)\(\mathcal{L}_{giou}(\cdot,\cdot)\) 分别代表L1损失和广义IoU损失,而 \(\lambda_{L1}^l\)\(\lambda_{giou}^l\) 分别是相对权重,用于控制第 \(l\) 个图像尺度上的检测损失惩罚。

   此外,为了控制所选图像块的稀疏性,添加正则化损失函数如下:

\[\begin{equation} \label{equ:loss_sparse} \mathcal{L}_{sparse} = \lambda_{sparse}\sum_{l=1}^{2}(\frac{1}{N_l}\sum_{i=1}^{N_l}s_i^l-\beta^l)^2, \end{equation} \]

   其中, \(\lambda_{sparse}\) 代表相对权重,用于控制稀疏性惩罚, \(s_i^l\) 代表第 \(l\) 个图像尺度中公式2中的第 \(i\) 个图像块的选择因子。 \(\beta^l\) 是用于控制从第 \(l\) 个图像尺度选择的标记比例的超参数。

   ScanFormer的总损失函数定义如下:

\[\begin{equation} \mathcal{L}_{total} = \mathcal{L}_{bbox} + \mathcal{L}_{sparse}, \end{equation} \]

   经过训练的ScanFormer可以在准确性和效率之间取得平衡。

Experiment




如果本文对你有帮助,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】

work-life balance.

From:https://www.cnblogs.com/VincentLee/p/18426792
本文地址: http://www.shuzixingkong.net/article/2226
0评论
提交 加载更多评论
其他文章 2024 年 C# 高效开发:精选实用类库
前言 在平时开发中,好的类库能帮助我们快速实现功能,C#有很多封装好的类库。 本文将介绍一些2024年特别受欢迎的C#类库,并分析各自的优点让我们编程写代码变的更轻松、更快捷。 快来看一看有没有大家常用的类库,欢迎各位小伙伴留言补充。 1、Entity Framework Core Entity F
2024 年 C# 高效开发:精选实用类库
idea运行java项目main方法报build failure错误的解决方法
本文简要介绍了当在使用 IntelliJ IDEA 运行 Java 项目的 main 方法时遇到 'Build Failure' 错误,这通常意味着在项目的构建过程中遇到了问题。解决这类问题通常需要系统地检查和调整项目设置、代码、依赖项等多个方面。
GZY.Quartz.MUI(基于Quartz的UI可视化操作组件) 2.7.0发布 新增各项优化与BUG修复
前言 时隔大半年,终于抽出空来可以更新这个组件了 (边缘化了,大概要被裁员了) 2.7.0终于发布了~ 更新内容: 1.添加API类任务的超时时间,可以通过全局配置也可以单个任务设置 2.设置定时任务日志查看默认按开始时间倒序 3.添加是否显示控制台日志的全局配置 目前支持两个参数&#160;Sho
GZY.Quartz.MUI(基于Quartz的UI可视化操作组件) 2.7.0发布 新增各项优化与BUG修复 GZY.Quartz.MUI(基于Quartz的UI可视化操作组件) 2.7.0发布 新增各项优化与BUG修复 GZY.Quartz.MUI(基于Quartz的UI可视化操作组件) 2.7.0发布 新增各项优化与BUG修复
使用 fabric.js 开发移动端 H5 图片编辑器
移动端 H5 图片图片编辑编辑器开发实践细节,包括自定义字体、模板切换、特效字体、文字排版等功能,手把手教你开发图片编辑器。
使用 fabric.js 开发移动端 H5 图片编辑器 使用 fabric.js 开发移动端 H5 图片编辑器 使用 fabric.js 开发移动端 H5 图片编辑器
acme+cloudflare生成免费证书(自动续期)
title: acme+cloudflare生成免费证书(自动续期) author: ivhu date: 2024-09-23 08:42:58 categories: - 计算机 - 运维 tags: - acme证书 - cloudflare description: acme DNSapi
acme+cloudflare生成免费证书(自动续期) acme+cloudflare生成免费证书(自动续期) acme+cloudflare生成免费证书(自动续期)
用C#写个PDF批量合并工具简化日常工作
一. 前言 由于项目需要编写大量的材料,以及各种签字表格、文书等,最后以PDF作为材料交付的文档格式,过程文档时有变化或补充,故此处理PDF文档已经成为日常工作的一部分。 网上有各种PDF处理工具,总是感觉用得不跟手。最后回顾自己的需求总结为以下几项: 1.可以便捷、快速的对多份PDF进行合并。 2
用C#写个PDF批量合并工具简化日常工作
2024 IDEA开发者部署lilishop的manager模块(详尽版)
一、环境整合 构建工具(参考工具部署方式) 软件名称 版本 相关文章推荐 Git 13.5.0 https://www.cnblogs.com/liuyangfirst/p/15996063.html NodeJS 16.0.0 https://www.cnblogs.com/liuyangfirs
2024  IDEA开发者部署lilishop的manager模块(详尽版) 2024  IDEA开发者部署lilishop的manager模块(详尽版) 2024  IDEA开发者部署lilishop的manager模块(详尽版)
从0到1搭建权限管理系统系列三 .net8 JWT创建Token并使用
说明 该文章是属于OverallAuth2.0系列文章,每周更新一篇该系列文章(从0到1完成系统开发)。 该系统文章,我会尽量说的非常详细,做到不管新手、老手都能看懂。 说明:OverallAuth2.0 是一个简单、易懂、功能强大的权限+可视化流程管理系统。 结合上一篇文章使用,味道更佳:从0到1
从0到1搭建权限管理系统系列三 .net8 JWT创建Token并使用 从0到1搭建权限管理系统系列三 .net8 JWT创建Token并使用 从0到1搭建权限管理系统系列三 .net8 JWT创建Token并使用