论文阅读:LDA-AQU:Adaptive Query-guided Upsampling via Local Deformable Attention

ops/2025/1/12 18:49:25/

论文地址:arxiv

摘要

提出了一种上采样的模块,有着较好的效果。

正文

常见的上采样方法有最近邻插值和双线性插值,通过手动的范式从邻近点聚合特征。之后又提出了可学习的上采样方法,比如反卷积,像素洗牌等。但是这些方法通常学习一组固定的上采样核参数,对输入特征图的所有空间位置应用相同的操作,这会导致上采样结果不理想。之后又提出了动态滤波器,但是这些要么缺乏特定的特征引导,要么需要高分辨率图像的干预,奶牛了其应用场景和性能。

大多数现有的上采样操作可以被视为对上采样点周围局部邻域内特征的加权聚合(即特征重组)。注意到,这与局部自注意力机制的概念一致,后者涉及确定注意力权重,然后从均匀的邻近点中获取必要的上下文信息。不同之处在于,局部自注意力机制自然融入了引导机制(即查询引导),这与上采样任务的性质非常契合。这涉及根据上采样点的属性自适应地聚合邻域特征,从而形成明确的点关联。

作者提出了一种将局部自注意力机制引入特征上采样任务的方法。

从上图中可以看出,使用固定且均匀的邻近点的效果并不好,所以作者引入了变形的机制,根据查询点(上采样点)的特征及其上下文信息动态调整邻近点的位置。

与二次线性插值的区别:

优势:

  • 在单层上操作,不需要高分辨率特征图作为输入
  • 具有查询引导能力,能够利用查询点及其邻近点的特征交互生成动态上采样核
  • 具有局部变形能力,允许根据查询点的上下文信息动态调整邻近点的位置

总体结构

首先使用以下的公式生成 Q, K, V:
( Q , K , V ) = ( W X Q , X W K , X W V ) (Q, K, V) = (WX^Q, XW^K, XW^V) (Q,K,V)=(WXQ,XWK,XWV)
,然后使用双线性插值将 Q ∈ R H ∗ W ∗ C Q \in R^{H * W * C} QRHWC 变成 Q ′ ∈ R α H ∗ α W ∗ C Q' \in R^{\alpha H* \alpha W * C} QRαHαWC。然后使用 m e s h g r i d meshgrid meshgrid 函数,就可以为上采样特征图生成均匀矩阵 P ∈ R α H ∗ α W ∗ 1 ∗ 2 P \in R^{\alpha H * \alpha W *1 *2} PRαHαW12,这里矩阵 P P P 的意思为表示待插值点的坐标的集合。再使用以下的公式,就可以通过将 P 投影到输入特征图上得到参考点坐标矩阵 P ′ P' P
p ′ = ψ ( p ) = ( x W α W − 1 , y H α H − 1 ) p' = \psi(p) = \left( x\frac{W}{\alpha W - 1} , y\frac{H}{\alpha H - 1} \right) p=ψ(p)=(xαW1W,yαH1H)
设,领域采样的核大小为 k u k_u ku,领域点的初始偏移 Δ P \Delta P ΔP 可以表示为
Δ P = { ( − ⌊ k u 2 ⌋ , − ⌊ k u 2 ⌋ ) , … , ( ⌊ k u 2 ⌋ , ⌊ k u 2 ⌋ ) } \Delta P = \left\{ \left( -\left\lfloor \frac{k_u}{2} \right\rfloor, -\left\lfloor \frac{k_u}{2} \right\rfloor \right), \ldots, \left( \left\lfloor \frac{k_u}{2} \right\rfloor, \left\lfloor \frac{k_u}{2} \right\rfloor \right) \right\} ΔP={(2ku,2ku),,(2ku,2ku)}
此时,就可以提到上采样点的领域点坐标矩阵 R ∈ R α H ∗ α W ∗ k u 2 ∗ 2 R \in R^{\alpha H * \alpha W *k^2_u *2} RRαHαWku22 R = P ′ + Δ P R = P'+\Delta P R=P+ΔP

同时,为了可以让领域点能动态调整位置,引入了一个子网络 ζ ( ∗ ) \zeta(*) ζ(),查询特征生成查询引导的采样点偏移矩阵 Δ R \Delta R ΔR。基于均匀领域点坐标矩阵 R 和预测的偏移矩阵 Δ R \Delta R ΔR,最终的可变形领域点坐标矩阵 R ′ R' R 可以通过以下公式获得:
R ′ = R + Δ R = R + ζ ( Q ) R'=R+\Delta R = R + \zeta(Q) R=R+ΔR=R+ζ(Q)
这里的 R ′ R' R 是与上采样后的 Q ′ Q' Q 的图像大小一样。在代码中,会使用 R ′ R' R K , V K,V K,V 进行采样,从而得到了 K , V K,V K,V 的上采样图像 K ~ , V ~ \widetilde{K}, \widetilde{V} K ,V

最后,使用矩阵 Q ′ Q' Q 的点特征与 K K K, V V V 的局部点特征进行交互,即可完成上采样任务。可以表示为
( Q ~ , K ~ , V ~ ) = ( Reshape ( Q ′ ) , Φ ( K , R ′ ) , Φ ( V , R ′ ) ) (\widetilde{Q}, \widetilde{K}, \widetilde{V}) = \left( \text{Reshape}(Q'), \Phi(K, R'), \Phi(V, R') \right) (Q ,K ,V )=(Reshape(Q),Φ(K,R),Φ(V,R))
Y = Softmax ( Q ~ K ~ T d k ) V ~ Y = \text{Softmax}\left( \frac{\widetilde{Q} \widetilde{K}^T}{\sqrt{d_k}} \right) \widetilde{V} Y=Softmax(dk Q K T)V
Q ~ ∈ R α H ∗ α W ∗ 1 ∗ C \widetilde{Q} \in R^{\alpha H * \alpha W *1 * C} Q RαHαW1C 表示经过 Reshape 后的查询,而 K ~ , V ~ ∈ R α H ∗ α W ∗ k u 2 ∗ C \widetilde{K}, \widetilde{V} \in R^{\alpha H * \alpha W * k_u^2 * C} K ,V RαHαWku2C 是经过领域采样后的键和值。 Φ ( ∗ , ∗ ) \Phi(*,*) Φ(,) 表示非整数偏移的双线性插值采样

R' 的作用是动态调整每个像素点的上采样采样区域,而 extract_feats 函数(公式中为 Φ ( ∗ ) \Phi(*) Φ())通过解析 R' 并使用双线性插值完成上采样操作。对于超出图像边界的区域,代码使用 0 填充。所以上采样这个操作,并不是可学习的,而是上采样的范围是可学习的。上采样这个操作还是使用的是二次线性插值而不是像反卷积这种。

Pytorch 中的grid_sample 的使用方法

torch.nn.functional.grid_sample(input, grid, mode='bilinear', padding_mode='zeros', align_corners=None)
  • grid: 采样网格,形状为 (N, H_out, W_out, 2),其中 H_outW_out 是输出的高度和宽度。grid 的最后一个维度是 (x, y) 坐标,表示在输入张量中的采样位置。grid 中的坐标是归一化的,范围在 [-1, 1] 之间。

而文本中的 R ′ R' R 学习的就是这个范围。

偏移预测器

用于生成采样点偏移矩阵 Δ R \Delta R ΔR。结构如下:

使用 3 ∗ 3 3*3 33 的深度卷积来扩展查询的感知范围,使用核大小为 k e k_e ke 的卷积层来预测 k u 2 k_u^2 ku2 个点的偏移。

偏移分组

为了增强模型感知不同通道特征的能力,并提高其在多样化场景中的适应性,我们在偏移预测器 ζ ( ∗ ) \zeta(*) ζ() 中对输入特征图的通道进行分组,为不同的特征组使用不同的邻域点。

局部变形范围

为了加快收敛速度,我们对偏移预测器的结果应用 T a n h Tanh Tanh 函数,将其限制在 [ − 1 , 1 ] [−1, 1] [1,1] 范围内。此外,我们使用因子 θ \theta θ 来调节邻域点的变形范围。

与其他的上采样的方法

作者证明了LDA-AQU能够涵盖大多数上采样方案(如双线性插值、最近邻插值、CARAFE 和 DySample),并通过查询引导机制实现更灵活和高效的特征上采样。同时,由于没有 pixelShuffle 操作,可以实现任意倍数的特征上采样。

复杂度分析

LDA-AQU 的计算复杂与输入 token 数(图像的分辨率)呈线性关系。

实验

在 MS COCO 2017 数据集上进行目标检测、实例分割、语义分割和全景分割实验

目标检测

即使FLOPs和参数相似,LDA-AQU仍保持了优越的性能

实例分割

效果变好了

全景分割

LDA-AQU以显著优势超越了所有先前的方法,并保持了相似的参数数量。

语义分割

通过在UperNet的特征金字塔网络(FPN)和多级特征融合(FUSE)中用LDA-AQU替换上采样器,基线模型的mIoU从39.78提高到42.31,超越了CARAFE的1.31 mIoU和DySample的1.23 mIoU。

消融实验

在MS COCO上使用Faster R-CNN和Mask R-CNN进行消融研究,以验证LDA-AQU中超参数的影响。

局部变形范围

在 Faster R-CNN 中的效果。

θ \theta θ 设置为 11 时,模型达到了最佳的性能。当其变小时,性能逐渐下降。作者认为这是因为少数邻近点中心覆盖足够的信息以及确保准确的插值。所以模型倾向于寻找更广泛的上下文信息作为辅助项来优化上采样结果。

在 Mask R-CNN 中的效果。

当mask head的 θ \theta θ 设置为5时,模型达到了最佳性能。原因是mask head的输入特征图大小为14×14,因此使用较大的 θ \theta θ 会使模型难以聚焦于局部细节。

偏移组

当组数设置为2时,模型达到了最佳性能。过多的分组将导致用于预测偏移的特征尺寸减小,从而阻碍模型学习。

通道大小缩减因子

通过减少通道缩减因子,模型的性能逐渐提高。为了平衡模型的性能和计算复杂度,作者将LDA-AQU的通道缩减因子设置为4。


http://www.ppmy.cn/ops/149528.html

相关文章

Keil C51 与 Keil MDK(ARM-stm32?):嵌入式开发的利器

Keil C51 与 Keil MDK(ARM):嵌入式开发的利器 引言 在嵌入式系统开发领域,Keil 软件套件是广受开发者欢迎的工具之一。Keil 提供了多种开发环境,其中最著名的两个是 Keil C51 和 Keil MDK(Microcontrolle…

arcgis中用python脚本批量给多个要素类的相同字段赋值

1、python脚本 import arcpy# 设置工作空间路径 arcpy.env.workspace = r"D:\test.gdb"# 要素集名称 feature_dataset = "test"# 线要素类名称列表,初始化为空 line_feature_classes = []# 遍历要素集获取所有线要素类 for fc in arcpy.ListFeatureClass…

【C语言学习】——命令行编译运行 C 语言程序的完整流程,理解C语言编译的底层实现和编译原理相关知识

今天要学习的内容是 命令行编译运行 C 语言程序,更好的学习理解C语言编译运行的底层实现和编译原理相关知识,下面介绍命令行编译运行 C 语言程序的完整流程 一、理论讲解 1. 编译原理概述 1.1 编译过程的四个主要阶段 源代码 (.c) → 预处理 → 编译 …

设计模式简介

设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。…

【NLP 19、词的向量化和文本向量化】

祝我们都能在各自的选择中渐入佳境 —— 25.1.8 一、向量化 向量对于机器学习非常重要 大量的算法都需要基于向量来完成 1.文本向量化 对于机器来说,字符是没有含义的,只是有区别 只使用字符无法去刻画字与字、词与词、文本与文本之间的关系 文本转…

12 USART串口通讯

1 串口物理层 两个设备的“DB9接口”之间通过串口信号建立连接,串口信号线中使用“RS232标准”传输数据信号。由于RS232电平标准的信号不能直接被控制器直接识别,所以这些信号会经过“电平转换芯片”转换成控制器能识别的“TTL校准”的电平信号&#xff…

新活动平台建设历程与架构演进

01 前言 历时近两年的重新设计和迭代重构,用户技术中心的新活动平台建设bilibili活动中台终于落地完成!并迎来了里程碑时刻 —— 接过新老迭代的历史交接棒,从内到外、从开发到搭建实现全面升级,开启了活动生产工业化新时代&#…

RabbitMQ介绍与使用

RabbitMQ官网 RabbitMQ 介绍 RabbitMQ 是一个开源的消息代理和队列服务器,基于 AMQP(高级消息队列协议)标准,使用 Erlang 编程语言构建。它是消息队列(MQ)的一种,广泛应用于分布式系统中&#x…