RAM: Residual Attention Module for Single Image Super-Resolution
1. 摘要
注意力机制是深度神经网络的一个设计趋势,其在各种计算机视觉任务中都表现突出。但是,应用到图像超分辨领域的注意力模型大都没有考虑超分辨和其它高层计算机视觉问题的天然不同。
作者提出了一个新的注意力模型,由针对 SR 问题优化的新的通道和空间注意力机制以及将这两者结合起来的融合机制组成。基于此,作者设计了一个残差注意力模块(RAM)以及用来超分辨的 SRRAM 网络。
2. 介绍
通常,大多数基于 CNN 来进行图像超分辨的方法在内部同等地处理所有类型的信息,这可能无法有效地区分内容的详细特征(例如低频和高频信息)。换句话说,网络选择性地使用特征的能力有限。
最近,注意力机制是各种计算机视觉问题中值得注意的网络结构之一。它允许网络重新校准提取的特征图,从而可以进行更加自适应和有效的训练。许多研究者也尝试了将注意力模型引入图像超分辨领域,但却都是从其他视觉任务(比如分类)中直接借鉴来的,针对超分辨问题则可能不是最优的。
因此,作者提出了一个新的注意力模型,可以有效地将通道注意力和空间注意力融合起来,并且是专门针对图像超分辨问题设计的。将这个注意力模型和基于 ResNet 的结构相结合,作者设计了一个 SRRAM 网络取得了比以往方法更好的效果。
3. 网络结构
3.1. 一些相关的注意力机制
RCAB 只有通道注意力,CBAM 以顺序的方式引入通道注意力和空间注意力,而 CSAR 则以并行的方式引入通道注意力和空间注意力。具体细节可参阅每篇论文阅读笔记。
3.2. RAM
在以前的方法中,通道注意力(CA)大多采用平均池化或者最大池化。但是,作者认为超分辨问题旨在恢复出图像的高频成分,因此利用通道的高频特性来学习注意力更加合理。所以,这里采取方差池化,也就是求得每个通道大小为 W×H 的特征图的方差。后续步骤与之前方法类似,通过两层神经网络来预测注意力图。
在空间注意力(SA)中,每个通道代表着一种滤波器,不同的滤波器负责提取图像的不同特征。例如,在提取到的边缘或复杂纹理特征图中,更详细的信息,即来自复杂滤波器的信息更重要。另一方面,在该区域几乎没有诸如天空或漫画图像的均匀区域之类的高频分量的情况下,相对较不详细的信息更重要并且需要被关注。也就是说,我们需要区别对待不同的通道,而不是像之前的注意力机制那样直接对通道维度进行压缩。这里,作者采用了深度可分离卷积,针对每个通道的特征分别卷积得到注意力图。
最后,将通道注意力图和空间注意力图相加后经过一个 Sigmoid 函数再与原特征相乘即可,与残差网络结合便得到了上图所示的 RAM 结构。其一个 TensorFlow 实现如下。
def RAM(input, reduction):
"""
@Residual Attention Module for Single Image Super-Resolution
Residual Attention Module
"""
_, width, height, channel = input.get_shape() # (B, W, H, C)
u = tf.layers.conv2d(input, channel, 3, padding='same', activation=tf.nn.relu) # (B, W, H, C)
u = tf.layers.conv2d(u, channel, 3, padding='same') # (B, W, H, C)
# channel attention
_, x = tf.nn.moments(u, axes=[1, 2], keep_dims=True) # (B, 1, 1, C)
x = tf.layers.conv2d(x, channel // reduction, 1, activation=tf.nn.relu) # (B, 1, 1, C // r)
x = tf.layers.conv2d(x, channel, 1) # (B, 1, 1, C)
# spatial attention
filter = tf.random_normal([3, 3, int(channel), 1], stddev=0.01)
y = tf.nn.depthwise_conv2d(u, filter, strides=[1, 1, 1, 1], padding='SAME') # (B, W, H, C)
z = tf.add(x, y) # (B, W, H, C)
z = tf.nn.sigmoid(z)
z = tf.multiply(u, z)
z = tf.add(input, z)
return z
3.3. SRRAM
整体网络结构由特征提取和上采样组成,特征提取由 R 个 RAM 模块以及长跳跃连接组成,上采样网络负责提高图像的分辨率。
4. 实验结果
4.1. Ablation studies
引入 CA 后模型在所有数据集上的平均表现比基线模型要高出 0.1 dB,同时引入 CA 和 SA 后模型表现继续有更大提升,而且在大部分情况下也都优于其他注意力机制。
4.2. 客观和主观评价对比
获取更多精彩,请关注「seniusen」!
RAM: Residual Attention Module for Single Image Super-Resolution的更多相关文章
- 【论文学习】A Fuzzy-Rule-Based Approach for Single Frame Super Resolution
加尔各答印度统计研究所,作者: Pulak Purkait (pulak_r@isical.ac.in) 2013 年 代码:CodeForge.cn http://www.codeforge.cn/ ...
- [论文阅读] Residual Attention(Multi-Label Recognition)
Residual Attention 文章: Residual Attention: A Simple but Effective Method for Multi-Label Recognition ...
- Paper | Residual Attention Network for Image Classification
目录 1. 相关工作 2. Residual Attention Network 2.1 Attention残差学习 2.2 自上而下和自下而上 2.3 正则化Attention 最近看了些关于att ...
- [论文理解] CBAM: Convolutional Block Attention Module
CBAM: Convolutional Block Attention Module 简介 本文利用attention机制,使得针对网络有了更好的特征表示,这种结构通过支路学习到通道间关系的权重和像素 ...
- Residual Attention Network for Image Classification(CVPR 2017)详解
一.Residual Attention Network 简介 这是CVPR2017的一篇paper,是商汤.清华.香港中文和北邮合作的文章.它在图像分类问题上,首次成功将极深卷积神经网络与人类视觉注 ...
- 【论文笔记】CBAM: Convolutional Block Attention Module
CBAM: Convolutional Block Attention Module 2018-09-14 21:52:42 Paper:http://openaccess.thecvf.com/co ...
- CBAM: Convolutional Block Attention Module
1. 摘要 作者提出了一个简单但有效的注意力模块 CBAM,给定一个中间特征图,我们沿着空间和通道两个维度依次推断出注意力权重,然后与原特征图相乘来对特征进行自适应调整. 由于 CBAM 是一个轻量级 ...
- CBAM(Convolutional Block Attention Module)使用指南
转自知乎 这货就是基于 SE-Net [5]中的 Squeeze-and-Excitation module 来进行进一步拓展 具体来说,文中把 channel-wise attention 看成是教 ...
- ASRWGAN: Wasserstein Generative Adversarial Network for Audio Super Resolution
ASEGAN:WGAN音频超分辨率 这篇文章并不具有权威性,因为没有发表,说不定是外国的某个大学的毕业设计,或者课程结束后的作业.或者实验报告. CS230: Deep Learning, Sprin ...
随机推荐
- python 元组及操作
# 元组是'不可变'的 list 使用小括号 创建后不允许修改 # 创建# t = ('a','b','c',1,2,3)# print(t)# print(type(t))# # 3# print( ...
- Python yield用法浅析(stackoverflow)
这是stackoverflow上一个关于python中yield用法的帖子,这里翻译自投票最高的一个回答,原文链接 here 问题 Python中yield关键字的用途是什么?它有什么作用?例如,我试 ...
- 能够打开国内网络,比如百度微信,但是打不开外国网站,该怎么解决(主要是DNS的问题)
(1)公司设置局域网外网打不开解决方法一: 如果是代理服务器上网,是因为服务上没有映射好外网访问网页的!解决方法是在服务器上开一个端口映射软件! 如果是路由器上网,就是路由器上没有映射外网访问的端口, ...
- [51Nod1623] 完美消除
link $solution:$ 首先我们可以发现一个结论,对于一个数 $x$ ,它的最低修改次数为它每位与前去中是否都比此位上的数大,有则答案 $-1$ .因为若有小数则没有办法将其答案贡献变低. ...
- Paper Reading_Computer Architecture
最近(以及预感接下来的一年)会读很多很多的paper......不如开个帖子记录一下读paper心得 Computer Architecture Last level cache (llc) perf ...
- rabitMQ-centos7安装
1.安装rabitMq之前需要安装Erlang cd /usr/local/ wget http://erlang.org/download/otp_src_18.3.tar.gz tar -zxvf ...
- nohup - 使程序运行时不挂起, 不向 tty 输出信息
总览 (SYNOPSIS) nohup COMMAND [ARG]... nohup OPTION 描述 (DESCRIPTION) 执行 COMMAND 命令, 忽略 hangup (挂起) 信号. ...
- 算法trick
数组从头到尾的循环遍历: index=(index+1)%length 索引值增加定长,对长度取余,则形成头尾循环.
- windows无法安装.net framework 3.5解决方法
windows server 12r2 或 win10 安装.netframework 3.5方法: 一. 直接在“启用或关闭windows功能”中可以启用,需联网.但是经常会出错,可能安装过程中需要 ...
- Zabbix--02 自定义监控主机
目录 一. Zabbix 监控基础架构 二. zabbix 快速监控主机 1.安装zabbix-agent 2.配置zabbix-agent 3.启动zabbix-agent并检查 4.zabbix- ...