【图像超分辨率重建】——SAN论文精读笔记

提出一种二阶注意力网络(SAN),用于单图像超分辨率任务。SAN通过非局部增强残差组捕获长距离依赖关系,并利用二阶通道注意力增强特征表示。

2019-Second-order Attention Network for Single Image Super-Resolution(SAN)

基本信息

作者: Tao Dai, Jianrui Cai, Yongbing Zhang, Shu-Tao Xia,Lei Zhang
期刊: CVPR
引用:
摘要: 近年来,深度卷积神经网络(CNN)在单图像超分辨率(SISR)中得到了广泛的研究,并取得了显著的性能。然而,大多数现有的基于CNN的SISR方法主要侧重于更广泛或更深入的架构设计,而忽略了中间层的特征相关性,因此阻碍了CNN的代表能力。为了解决这个问题,在本文中,我们提出了一种二阶注意力网络(SAN),用于更强大的特征表达和特征相关性学习。具体而言,开发了一种新的可训练二阶信道注意(SOCA)模块,通过使用二阶特征统计来自适应地重新调整信道方向特征,以获得更具鉴别性的表示。此外,我们提出了一种非局部增强的残差组(NLRG)结构,它不仅结合了非局部操作来捕获长距离空间上下文信息,还包含重复的局部源残差注意组(LSRAG)来学习日益抽象的特征表示。实验结果表明,在定量度量和视觉质量方面,我们的SAN网络优于最先进的SISR方法。

1.简介

介绍了单幅图像超分辨的发展大致过程(插值、基于示例、CNN等),目前基于CNN的SR具有的限制如下:

  1. 大多数基于CNN的图像SR方法没有充分利用原始LR图像的信息,从而导致相对较低的性能
  2. 大多数现有的基于CNN的SR模型主要集中于设计更深或更宽的网络,以学习更具鉴别性的高级特征,而很少利用中间层的固有特征相关性,从而阻碍了CNN的表示能力

本文

### 基于注意力机制的图像超分辨率重建算法及其实现 #### 背景介绍 图像超分辨率重建(Super-Resolution, SR)是一种通过增强低分辨率(Low Resolution, LR)图像来生成高分辨率(High Resolution, HR)图像的技术。近年来,基于深度学习的方法逐渐取代传统方法,在性能上取得了显著提升。然而,传统的卷积神经网络(CNN)在处理局部特征时容易忽略全局依赖关系,从而导致重建图像缺乏细节纹理[^3]。 为了克服这一缺陷,研究者引入了注意力机制(Attention Mechanism),使模型能够聚焦于重要区域并更好地捕捉空间和通道上的长期依赖关系。以下是几种典型的基于注意力机制的图像超分辨率重建算法及其核心思想: --- #### RCAN (Residual Channel Attention Network) RCAN 是一种经典的基于注意力机制的超分辨率重建网络,首次提出于 ECCV 2018。该方法的核心在于其残差结构以及通道注意力模块的设计。 ##### 核心组件 1. **残差块(Residual Block)** - 使用多个残差连接以缓解梯度消失问题,并加速收敛过程。 2. **通道注意力模块(Channel Attention Module)** - 利用平均池化和最大池化提取全局信息,随后通过全连接层压缩维度,最终得到权重向量用于调整各通道的重要性[^1]。 ##### 实现流程 ```python import torch.nn as nn class ChannelAttention(nn.Module): def __init__(self, num_channels, reduction=16): super(ChannelAttention, self).__init__() self.avg_pool = nn.AdaptiveAvgPool2d(1) self.max_pool = nn.AdaptiveMaxPool2d(1) self.fc = nn.Sequential( nn.Linear(num_channels, num_channels // reduction), nn.ReLU(inplace=True), nn.Linear(num_channels // reduction, num_channels) ) def forward(self, x): avg_out = self.fc(self.avg_pool(x).view(x.size(0), -1)) max_out = self.fc(self.max_pool(x).view(x.size(0), -1)) out = avg_out + max_out return out.view(x.size(0), x.size(1), 1, 1).sigmoid() class ResidualBlockWithCA(nn.Module): def __init__(self, channels): super(ResidualBlockWithCA, self).__init__() self.conv1 = nn.Conv2d(channels, channels, kernel_size=3, padding=1) self.relu = nn.ReLU() self.ca = ChannelAttention(channels) def forward(self, x): residual = x out = self.conv1(x) out = self.relu(out) out = self.ca(out) * out return out + residual ``` --- #### SAN (Spatially-Aligned Network) SAN 提出了空间对齐注意模块(Spatial Aligned Attention, SAA),进一步增强了模型的空间感知能力。它不仅关注不同位置之间的相互作用,还考虑到了上下文信息的影响。 ##### 关键特性 - 空间注意力模块允许模型动态分配权值给输入特征图的不同部分。 - 结合自适应滤波器生成策略,有效提升了边缘保持能力和噪声抑制效果。 --- #### CBAM (Convolutional Block Attention Module) CBAM 同样是一个轻量化且高效的注意力框架,可以嵌入到任意 CNN 架构中作为附加模块使用。它的主要特点是同时包含了通道注意力分支与空间注意力分支。 ##### 工作原理 1. 首先计算每个通道的重要程度得分; 2. 接着评估像素点在整个二维平面内的分布情况; 3. 将两者融合后乘回原始特征图完成加权操作。 --- #### 总结比较 | 方法 | 主要特点 | 参数规模 | 计算成本 | |------|----------|-----------|------------| | RCAN | 强调通道间的关联性 | 较大 | 中等偏高 | | SAN | 注重空间布局的一致性 | 中等 | 较高 | | CBAM | 可扩展性强,适配多种场景 | 小型 | 低 | 以上三种方案各有优劣,具体选择需依据实际应用场景需求决定。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值