zoukankan      html  css  js  c++  java
  • CSAR——Channel-wise and Spatial Feature Modulation Network for Single Image Super-Resolution

    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」!

  • 相关阅读:
    【VB编程】05.MsgBox与InputBox函数
    【VBA编程】04.使用自定义数据类型
    【VBA编程】03.判断输入年份是否是闰年
    ubuntu终端颜色设置
    常用命令
    adbd cannot run as root in production builds的解决方法
    camera table表编译
    [Linux]history 显示命令执行的时间
    ubuntu下动态链接库的编译和使用实例
    xxx is not in the sudoers file.This incident will be reported.的解决方法
  • 原文地址:https://www.cnblogs.com/seniusen/p/10860625.html
Copyright © 2011-2022 走看看