1. 摘要

CNN 中的特征包含着不同类型的信息,它们对图像重建的贡献也不一样。然而,现在的大多数 CNN 模型却缺少对不同信息的辨别能力,因此也就限制了模型的表示容量。

另一方面,随着网络的加深,来自前面层的长期信息很容易在后面的层被削弱甚至消失,这显然不利于图像的超分辨。

作者提出了一个通道和空间特征调制(CSFM)网络,其中一系列特征调制记忆(FMM)模块级联在一起来将低分辨率特征转化为高信息量的特征。而在每个 FMM 内部,则集成了许多通道和空间注意力残差块(CSAR)以及一个用来保留长期信息的门控融合节点(GF)。

2. 网络结构

2.1. CSAR(Channel-wise and Spatial Attention Residual )

进来一个特征 Hi,先经过卷积-ReLU-卷积得到特征 U,卷积核都为 3×3。

CA 单元包含全局空间池化-卷积-ReLU-卷积-Sigmoid,卷积核都为 1×1,第一层卷积通道数变为 C/r,第二层卷积通道数为 C。

SA 单元包含卷积-ReLU-卷积-Sigmoid,卷积核都为 1×1,第一层卷积通道数变为 C*i,第二层卷积通道数为 1。

得到通道和空间的两个 mask 后,分别和特征 U 相乘,然后再将两个结果拼接起来经过一个 1×1 的卷积将通道数变为 C,最后和 Hi 相加得到输出特征 Ho。

在论文中,作者设置 r=16,i=2,CSAR 的一个 TensorFlow 实现如下所示。

def CSAR(input, reduction, increase):
"""
@Channel-wise and Spatial Feature Modulation Network for Single Image Super-Resolution
Channel-wise and spatial attention residual block
""" _, 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.reduce_mean(u, axis=(1, 2), keepdims=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, activation=tf.nn.sigmoid) # (B, 1, 1, C)
x = tf.multiply(u, x) # (B, W, H, C) # spatial attention
y = tf.layers.conv2d(u, channel * increase, 1, activation=tf.nn.relu) # (B, W, H, C * i)
y = tf.layers.conv2d(y, 1, 1, activation=tf.nn.sigmoid) # (B, W, H, 1)
y = tf.multiply(u, y) # (B, W, H, C) z = tf.concat([x, y], -1)
z = tf.layers.conv2d(z, channel, 1, activation=tf.nn.relu) # (B, W, H, C)
z = tf.add(input, z) return z

2.2. FFM(Feature Modulation Memory)

一个 FFM 模块由 B 个 CSAR 块叠加而成,最后面是一个门控融合节点,借鉴 DenseNet 的思想,将其前面所有 FFM 模块的输出特征拼接在一起再经过一个 1×1 的卷积。

2.3. CSFM(Channel-wise and Spatial Feature Modulation)

整个网络结构包含三部分,第一部分为初始特征提取网络(IFENet),第二部分为特征转化网络(FTNet),包含数个 FMM 模块和一个跳跃连接,第三部分为上采样网络(UpNet),负责上采样得到高分辨率图片。

3. 实验结果

3.1. Ablation studies

作者对比了只有 CA 单元和只有 SA 单元情况下模型的表现情况,结果如下所示。

可以看到,单单引入 CA 、SA 或者 GF 都会改善模型的性能,而将三者组合在一起则可以得到最大的性能提升。

网络中 FMM 模块的数量以及每个 FMM 模块中 CSAR 块的数量对模型的性能影响如下图所示,M=8,B=16 时模型取得了最好的表现。

3.2. 实验对比

在 PSNR 和 SSIM 指标上,CSFM 在所有的数据集上都取得了最好的效果。

主观上也可以看到,CSFM 恢复出了图片中更多的细节和纹理。

相较于之前表现最好的模型 EDSR,模型的参数量也大大减少。

获取更多精彩,请关注「seniusen」!

CSAR——Channel-wise and Spatial Feature Modulation Network for Single Image Super-Resolution的更多相关文章

  1. Paper | Recovering Realistic Texture in Image Super-resolution by Deep Spatial Feature Transform

    目录 故事背景 空域特征转换 超分辨率网络 发表在2018年CVPR. 摘要 Despite that convolutional neural networks (CNN) have recentl ...

  2. Parallel Feature Pyramid Network for Object Detection

    Parallel Feature Pyramid Network for Object Detection ECCV2018 总结: 文章借鉴了SPP的思想并通过MSCA(multi-scale co ...

  3. 《Hyperspectral Image Classification With Deep Feature Fusion Network》论文笔记

    论文题目<Hyperspectral Image Classification With Deep Feature Fusion Network> 论文作者:Weiwei Song, Sh ...

  4. ASRWGAN: Wasserstein Generative Adversarial Network for Audio Super Resolution

    ASEGAN:WGAN音频超分辨率 这篇文章并不具有权威性,因为没有发表,说不定是外国的某个大学的毕业设计,或者课程结束后的作业.或者实验报告. CS230: Deep Learning, Sprin ...

  5. Speech Super Resolution Generative Adversarial Network

    博客作者:凌逆战 博客地址:https://www.cnblogs.com/LXP-Never/p/10874993.html 论文作者:Sefik Emre Eskimez , Kazuhito K ...

  6. 【论文阅读】Second-order Attention Network for Single Image Super-Resolution

    概要 近年来,深度卷积神经网络(CNNs)在单一图像超分辨率(SISR)中进行了广泛的探索,并获得了卓越的性能.但是,大多数现有的基于CNN的SISR方法主要聚焦于更宽或更深的体系结构设计上,而忽略了 ...

  7. 2016CVPR论文集

    http://www.cv-foundation.org/openaccess/CVPR2016.py ORAL SESSION Image Captioning and Question Answe ...

  8. CVPR2016 Paper list

    CVPR2016 Paper list ORAL SESSIONImage Captioning and Question Answering Monday, June 27th, 9:00AM - ...

  9. 基于COCO数据集验证的目标检测算法天梯排行榜

    基于COCO数据集验证的目标检测算法天梯排行榜 AP50 Rank Model box AP AP50 Paper Code Result Year Tags 1 SwinV2-G (HTC++) 6 ...

随机推荐

  1. xss过滤与单例模式(对象的实例永远用一个)

    kindeditor里面可以加入script代码,使用re可以过滤掉python有个专门的模块可以处理这种情况,beautifulsoup4 调用代码: content = XSSFilter().p ...

  2. js随机验证码

    随机验证码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <ti ...

  3. css渐变色兼容性写法

    background: -webkit-linear-gradient(left, #0f0f0f, #0c0c0c, #272727); /* Safari 5.1 - 6.0 */ backgro ...

  4. 表单提交 multipart/form-data 和 x-www-form-urlencoded的区别

    表单提交表单有两种提交方式,POST和GET.通常我们会使用POST方式,一是因为形式上的安全 :二是可以上传文件. 我之前经常忽略掉表单的编码类型,觉得它特别长比较难记,而且不设置也似乎不影响什么. ...

  5. 33. Search in Rotated Sorted Array (JAVA)

    Implement next permutation, which rearranges numbers into the lexicographically next greater permuta ...

  6. IDEA tomcat热部署方法

    项目开发过程中,我们一般希望在修改完代码之后不重启项目即可提现出修改的结果,那么热部署项目就显得十分必要了.在idea中将项目热部署至tomcat中的方法如下: 首先打开tomcat配置界面,在ser ...

  7. alex说:一切皆bytes

    一.ASCII ASCII(American Standard Code for Information Interchange),是一种单字节的编码.计算机世界里一开始只有英文,而单字节可以表示25 ...

  8. 08java进阶——异常

    1.异常的概念 package cn.jxufe.java.chapter08.demo01; public class Test01ArithmeticException { public stat ...

  9. 写了一个简单可用的IOC

    根据<架构探险从零开始写javaweb框架>内容写的一个简单的 IOC 学习记录    只说明了主要的类,从上到下执行的流程,需要分清主次,无法每个类都说明,只是把整个主线流程说清楚,避免 ...

  10. python List 常用方法

    list是python常用的数据类型,属于可变的数据类型.用[]表示,里面的元素用','隔开,并且里面的元素类型可以不同,对于每个元素,list都有一个索引一一对应,第一个元素的索引是0,第二个是1, ...