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

devtools/2025/1/12 9:27:18/

论文地址: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/devtools/149838.html

相关文章

如何优化爬虫效率?

以下是一些优化爬虫效率和避免被网站封锁的技巧: 优化爬虫效率 使用并发技术: 多线程:适用于I/O密集型任务,如网络请求,通过Java的Thread或ExecutorService实现并发请求,提高数据抓取速度。多进程&#x…

Git 常用命令指南

Git 常用命令指南 基础命令 git init # 初始化Git仓库 git clone <url> # 克隆远程仓库 git status # 查看仓库状态 git add <file> # 添加文件到暂存区 git add . # 添加所有修改到暂存区 git commit …

Docker Compose etcd 服务

目录 /usr/etcd vim docker-compose.yml version: 3.7services:etcd:image: quay.io/coreos/etcd:v3.5.7container_name: etcdenvironment:- ETCD_DATA_DIR/etcd-data- ETCD_LISTEN_PEER_URLShttp://0.0.0.0:2380- ETCD_LISTEN_CLIENT_URLShttp://0.0.0.0:2379- ETCD_ADVERTI…

一个很实用的语音处理工具ClearerVoice-Studio

阿里巴巴刚刚开源了一个很实用的语音处理工具&#xff1a;ClearerVoice-Studio&#xff0c;它可以语音增强、语音分离和音视频说话人提取&#xff0c;可以用来处理会议录音、电话录音等等 功能&#xff1a; 1、语音降噪&#xff0c;把嘈杂的语音转成高质量、清晰的音频信号 2、…

多模态人工智能在零售业的未来:通过GPT-4 Vision和MongoDB实现智能产品发现

多模态人工智能在零售业的未来&#xff1a;通过GPT-4 Vision和MongoDB实现智能产品发现 引言 想象一下&#xff0c;顾客在购物时只需上传一张他们所期望的服装或产品的照片&#xff0c;几分钟内便能收到来自他们最喜欢的商店的个性化推荐。这就是多模态人工智能在零售领域所带…

Openstack持久存储-Swift,Cinder,Manila三者之间的区别

总结不易&#xff0c;给个三连吧&#xff01;&#xff01;&#xff01; 补充&#xff1a; 文件共享存储服务Manila 在OpenStack生态系统中&#xff0c;Cinder和Manila分别提供了两种不同类型的存储服务&#xff0c;类似于传统的SAN&#xff08;存储区域网络&#xff09;和NAS&…

人工智能学习路线全链路解析

一、基础准备阶段&#xff08;预计 2-3 个月&#xff09; &#xff08;一&#xff09;数学知识巩固与深化 线性代数&#xff08;约 1 个月&#xff09;&#xff1a; 矩阵基础&#xff1a;回顾矩阵的定义、表示方法、矩阵的基本运算&#xff08;加法、减法、乘法&#xff09;&…

操作系统之系统调用

系统调用 从上文简介得知&#xff0c;操作系统是计算机硬件和软件之间的桥梁&#xff0c;通过管理计算机软件和硬件资源&#xff0c;最终为我们用户提供服务。就如同一个管家帮助我们对CPU&#xff08;进程&#xff09;的管理、内存的管理、设备的管理、文件的管理。而我们如何…