3.1 Formulation

考慮一張單一低解析度影像。我們首先使用雙三次插值(bicubic)將其放大到所需尺寸,這是我們進行的唯一前處理3。將插值後的影像標記為 Y。我們的目標是從 Y 中恢復一張影像 F (Y),使其盡可能與地面真實高解析度影像 X 相似。為便於呈現,儘管 Y 與 X 尺寸相同,我們仍稱 Y 為「低解析度」影像。我們希望學習一個映射 F,它概念上包含三個操作:

  1. 塊提取和表示 (Patch extraction and representation): 此操作從低解析度影像 Y 中提取(重疊的)塊,並將每個塊表示為一個高維向量。這些向量組成一組特徵圖,其數量等於向量的維度。
  2. 非線性映射 (Non-linear mapping): 此操作將每個高維向量非線性地映射到另一個高維向量。每個映射後的向量概念上是高解析度塊的表示。這些向量組成另一組特徵圖。
  3. 重構 (Reconstruction): 此操作聚合上述高解析度塊級別的表示,以生成最終的高解析度影像。預期此影像與地面真實 X 相似。

我們將證明所有這些操作構成一個卷積神經網路。圖 2 描繪了網路的概述。接下來我們詳細說明每個操作的定義。

image.png

塊提取和表示 (Patch extraction and representation) 影像復原中的一種流行策略是密集提取塊,然後用一組預訓練基底(例如 PCA, DCT, Haar 等)來表示它們。這等同於用一組過濾器對影像進行卷積,其中每個過濾器是一個基底。在我們的公式中,我們將這些基底的優化納入網路的優化中。形式上,我們的第一層表達為一個操作 F1:

$$ F1(Y) = max (0,W1 ∗Y +B1) $$

其中 W1 和 B1 分別表示過濾器(filters)和偏差(biases)。這裡 W1 的大小是 c× f1× f1×n1,其中 c 是輸入影像的通道數,f1 是過濾器的空間大小,n1 是過濾器的數量。直觀地,W1 對影像應用 n1 次卷積,每次卷積的核大小為 c× f1× f1。輸出由 n1 個特徵圖組成。B1 是一個 n1 維向量,其每個元素與一個過濾器相關聯。我們對過濾器響應應用 Rectified Linear Unit (ReLU, max(0, x))。

非線性映射 (Non-linear mapping) 第一層為每個塊提取一個 n1 維特徵。在第二個操作中,我們將這些 n1 維向量中的每一個非線性地映射到一個 n2 維向量。這等同於應用 n2 個空間支援為 1×1 的過濾器。第二層的操作為:

$$ F2(Y) = max (0,W2 ∗ F1(Y) +B2) $$

這裡 W2 的大小是 n1×1×1×n2,而 B2 是 n2 維的。每個輸出的 n2 維向量概念上是一個將用於重構的高解析度塊的表示。

可以添加更多卷積層(其空間支援為 1×1)來增加非線性。但這會顯著增加模型的複雜性,因此需要更多訓練數據和時間。在本文中,我們選擇在這一操作中使用一個單一卷積層,因為它已經提供了令人信服的品質。

重構 (Reconstruction) 在傳統方法中,預測的重疊高解析度塊通常會被平均以產生最終的完整影像。平均可以被視為對一組特徵圖的預定義過濾器(其中每個位置是高解析度塊的「展平」向量形式)。受此啟發,我們定義了一個卷積層來產生最終的高解析度影像:

$$ F (Y) = W3 ∗ F2(Y) +B3 $$

這裡 W3 的大小是 n2 × f3 × f3 × c,而 B3 是一個 c 維向量。如果高解析度塊的表示在影像域中(即,我們可以簡單地重塑每個表示以形成塊),我們預期過濾器會像一個平均過濾器;如果高解析度塊的表示在其他域中(例如,以某些基底表示的係數),我們預期 W3 的行為會像先將係數投影到影像域,然後再平均。無論如何,W3 是一組線性過濾器。

有趣的是,儘管上述三個操作來自不同的直覺,它們都導致了卷積層的相同形式。我們將所有三個操作放在一起形成一個卷積神經網路(圖 2)。在這個模型中,所有的過濾器權重和偏差都將被優化。

儘管整體結構簡潔,我們的 SRCNN 模型是透過從超解析度領域取得的重大進展中汲取廣泛經驗精心開發的。我們將在下一節詳細介紹其關係。

3.2 Relationship to Sparse-Coding-Based Methods