天天看點

RAM: Residual Attention Module for Single Image Super-Resolution

1. 摘要

注意力機制是深度神經網絡的一個設計趨勢,其在各種計算機視覺任務中都表現突出。但是,應用到圖像超分辨領域的注意力模型大都沒有考慮超分辨和其它高層計算機視覺問題的天然不同。
作者提出了一個新的注意力模型,由針對 SR 問題優化的新的通道和空間注意力機制以及将這兩者結合起來的融合機制組成。基于此,作者設計了一個殘差注意力子產品(RAM)以及用來超分辨的 SRRAM 網絡。

2. 介紹

通常,大多數基于 CNN 來進行圖像超分辨的方法在内部同等地處理所有類型的資訊,這可能無法有效地區分内容的詳細特征(例如低頻和高頻資訊)。換句話說,網絡選擇性地使用特征的能力有限。

最近,注意力機制是各種計算機視覺問題中值得注意的網絡結構之一。它允許網絡重新校準提取的特征圖,進而可以進行更加自适應和有效的訓練。許多研究者也嘗試了将注意力模型引入圖像超分辨領域,但卻都是從其他視覺任務(比如分類)中直接借鑒來的,針對超分辨問題則可能不是最優的。

是以,作者提出了一個新的注意力模型,可以有效地将通道注意力和空間注意力融合起來,并且是專門針對圖像超分辨問題設計的。将這個注意力模型和基于 ResNet 的結構相結合,作者設計了一個 SRRAM 網絡取得了比以往方法更好的效果。

3. 網絡結構

3.1. 一些相關的注意力機制

RAM: Residual Attention Module for Single Image Super-Resolution

RCAB 隻有通道注意力,CBAM 以順序的方式引入通道注意力和空間注意力,而 CSAR 則以并行的方式引入通道注意力和空間注意力。具體細節可參閱每篇論文閱讀筆記。

3.2. RAM

RAM: Residual Attention Module for Single Image Super-Resolution

在以前的方法中,通道注意力(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

RAM: Residual Attention Module for Single Image Super-Resolution

整體網絡結構由特征提取和上采樣組成,特征提取由 R 個 RAM 子產品以及長跳躍連接配接組成,上采樣網絡負責提高圖像的分辨率。

4. 實驗結果

4.1. Ablation studies

RAM: Residual Attention Module for Single Image Super-Resolution

引入 CA 後模型在所有資料集上的平均表現比基線模型要高出 0.1 dB,同時引入 CA 和 SA 後模型表現繼續有更大提升,而且在大部分情況下也都優于其他注意力機制。

4.2. 客觀和主觀評價對比

RAM: Residual Attention Module for Single Image Super-Resolution

繼續閱讀