PANet-图像复原的金字塔自注意力网络 | Pyramid Attention Networks for Image Restoration

应该是投向ECCV2020的文章,Non-local与多尺度特征结合的第二篇(第一篇见https://blog.csdn.net/weixin_42096202/article/details/106222582),不过本质上是不一样。第一篇论文是在不同尺度特征上分别应用Non-Local然后进行融合,比较机械化。这篇论文是在多个尺度特征上应用一个Non-Local,即挖掘索引像素点与对应多尺度特征的响应,突破了自注意力只能捕获单一尺度的特征依赖缺陷

论文地址:https://arxiv.org/pdf/2004.13824.pdf
Github:https://github.com/SHI-Labs/Pyramid-Attention-Networks

在这里插入图片描述

Abstract:

自相似性是指在图像复原算法中广泛使用的图像先验,在不同的位置和尺度上往往会出现小的但相似的图案。但是,最近的基于深度卷积神经网络的先进图像复原方法依靠仅处理相同尺度信息的自注意神经模块无法充分利用自相似性。为了解决这个问题,我们提出了一种新颖的金字塔注意力模块用于图像复原,该模块从多尺度特征金字塔中捕获远j距离特征对应关系。受到诸如噪声或压缩伪影之类的损坏在较粗糙的图像尺度下急剧下降这一事实的启发,我们的注意力模块被设计为能够从较粗的级别的“干净”对应中借用干净的信号。一个通用的构建块,可以灵活地集成到各种神经体系结构中。通过对多种图像恢复任务的广泛实验来验证其有效性:图像去噪,去马赛克,压缩伪像减少和超分辨率。我们的PANet(金字塔形)具有简单网络骨干的注意力关注模块)可以产生具有卓越准确性和视觉质量的最新结果。

Introduction:

在这里插入图片描述
当前的自注意力机制存在以下问题:

1.如Non-Local模块等都是集中在单一尺度特征提取全局先验。因此未能捕获发生在不同尺度上的有用的特征依赖关系。

2.在自注意力模块中使用的逐像素匹配通常对低级视觉任务很嘈杂,从而降低了性能。 从直觉上讲,扩大搜索空间会增加寻找更好匹配的可能性,但对于现有的自注意模块而言并非如此。 与采用大量降维操作的高级特征图不同,图像复原网络通常会保持输入的空间大小。 因此,特征仅与局部区域高度相关,因此容易受到噪声信号的影响。 这与传统的非局部滤波方法相一致,在传统的非局部滤波方法中,逐像素匹配的效果比块匹配要差得多。

因此本文提出的自注意力机制充分利用了传统的Non-Local操作的优势,但旨在更好地符合图像复原的性质。 特别是,原始搜索空间在很大程度上从单个要素图扩展到了多尺度要素金字塔。

Methods:

1.Scale Agnostic Attention && Pyramid Attention
在这里插入图片描述
如上图所示:

1.图(a)为Non-Local注意力,在单一尺度上捕获像素的全局响应;
2.图(b)为Scale agnostic注意力,可以捕获两个尺度上的全局像素响应;
3.图(c))Pyramid注意力,捕获多个尺度上的全局响应。

在这里插入图片描述
具体实现方式:Pyramid Attention是先提取得到多个尺度特征,然后按照bottom-up的方式逐次对相邻两个尺度特征应用Scale Agnostic Attention实现。其中,Scale Agnostic Attention是以分块匹配的自注意力操作代替Non-Local中的逐像素匹配操作

接下来从代码的角度看一下Pyramid Attention的实现方式:
1.使用双三次插值方式构建5个尺度的特征金字塔

2.分别对每个尺度特征提取两次图像块,分别用于重建f与转换的g(用于图像块匹配),分别对应raw_w与w

3.对在不同尺度提取到的块特征w,进行拼接作为核函数权重与输入xi进行卷积匹配,并应用Softmax函数得到自相似性特征图

4.对在不同尺度提取到的块特征raw_w进行拼接作为转置卷积核权重,与自相似性特征图进行反卷积得到输入特征

class PyramidAttention(nn.Module):
    def __init__(self, level=5, res_scale=1, channel=64, reduction=2, ksize=3, stride=1, softmax_scale=10, average=True, conv=common.default_conv):
        super(PyramidAttention, self).__init__()
        self.ksize = ksize
        self.stride = stride
        self.res_scale = res_scale
        self.softmax_scale = softmax_scale
        self.scale = [1-i/10 for i in range(level)]
        self
### PANet 实现风格及其在计算机视觉中的应用 PANet 是一种增强特征金字塔网络 (Feature Pyramid Network, FPN) 的架构,旨在通过改进特征融合机制来提升目标检测性能。它最初由 Liu 等人在 Mask R-CNN 基础上提出,并广泛应用于实例分割和目标检测任务中[^1]。 #### 特征融合策略 PANet 的核心在于其独特的自底向上路径增强(Bottom-up Path Augmentation),这补充了传统的自顶向下路径(Top-down Path)。这种双向路径设计使得低层的高分辨率特征能够更有效地传递到高层,从而增强了模型对小物体的检测能力。具体来说: - **自顶向下路径**:继承自 FPN,用于将高层次语义信息传播至低层次。 - **自底向上路径**:新增部分,负责将低层次的空间细节信息反向传播给高层次。 此结构显著提升了多尺度目标尤其是小目标的识别精度。 #### 计算机视觉中的典型应用场景 PANet 已被成功部署于多个主流的目标检测框架之中,例如 Mask R-CNN 和 RetinaNet。以下是几个主要的应用场景: 1. **实例分割** 在实例分割领域,PANet 提供了一种有效的解决方案,可以更好地捕捉不同大小对象的边界框以及掩码预测结果。由于引入额外的上下文信息流,最终输出更加精确。 2. **目标检测优化** 对于常规目标检测任务而言,无论是单阶段还是两阶段方法都可以受益于 PANet 所带来的更强表达力特性。特别是在处理复杂背景下的小型物品时表现尤为突出。 3. **跨模态学习扩展** 虽然原始论文专注于 RGB 图像分析,但该理念同样适用于其他数据形式如红外图像或者医学影像等领域内的相似问题解决过程当中。 下面展示了一个简单的 PyTorch 风格实现片段作为参考: ```python import torch.nn as nn class BottomUpPath(nn.Module): def __init__(self, in_channels_list, out_channel=256): super(BottomUpPath, self).__init__() layers = [] for i in range(len(in_channels_list)-1): # 不含最后一层 conv = nn.ConvTranspose2d( in_channels=in_channels_list[i], out_channels=out_channel, kernel_size=3, stride=2, padding=1, output_padding=1) relu = nn.ReLU(inplace=True) layers.extend([conv, relu]) self.bottom_up_layers = nn.Sequential(*layers) def forward(self, features): bottom_up_feature = None outputs = [] for feature_map in reversed(features[:-1]): # 排除最底层feature map if bottom_up_feature is not None: upsampled = self.bottom_up_layers(bottom_up_feature) combined = upsampled + feature_map else: combined = feature_map bottom_up_feature = combined outputs.insert(0, combined) # 插入列表前端保持顺序一致 return outputs + [features[-1]] # 加回原最低层feature map ``` 上述代码定义了一个简化版的 `Bottom-Up` 路径模块,实际项目可能还需要考虑更多因素比如批量归一化操作等。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值