Reading Note (Self Learning)
eccv_2014_deepresolution.pdf
Chap 3: Convolutional Neural Networks for Super-Resolution
SRCNN Summary (by LLM)
SRCNN 是一種用於單一影像超解析度 (SR) 的深度學習方法。其核心思想是直接學習低解析度影像到高解析度影像的端對端映射。這種映射是透過一個深度卷積神經網路 (CNN) 來實現的。
與傳統方法的關聯與區別
- 作者指出,傳統的基於稀疏編碼的 SR 方法 可以被視為一種深度卷積網路。
- 傳統方法的流程包括提取和預處理塊 (patches),用低解析度字典編碼,將稀疏係數傳遞給高解析度字典重構高解析度塊,最後聚合重疊的重構塊。這些方法特別關注學習和優化字典。
- 與傳統方法不同的是,SRCNN ** joint optimizations 所有層**。在 SRCNN 中,整個 SR 管線是透過學習完全獲得的,只有很少的前置/後置處理。它不顯式學習字典或流形來建模塊空間;這些是透過隱藏層隱式實現的。塊提取和聚合也被 формулируется 為卷積層,因此包含在優化中。
- 這種與稀疏編碼方法的類比為網路結構的設計提供了指導。
SRCNN 的結構與原理 ( формулируется 為卷積層)
SRCNN 模型概念上包含三個操作,這些操作都被 формулируется 為卷積神經網路層:
- 塊提取和表示 (Patch extraction and representation):
- 這個操作從插值後的低解析度影像 Y 中提取重疊的塊,並將每個塊表示為高維向量。這些向量構成一組特徵圖。
- 這相當於用一組過濾器對影像進行卷積。在 SRCNN 中,這些基底 (filters) 的優化包含在網路的優化中。
- 第一層 (F1) 的操作是:
F1(Y) = max(0, W1 * Y + B1)
。
- W1 是過濾器,B1 是偏差。W1 的大小為 c×f1×f1×n1,其中 c 是輸入影像的通道數,f1 是過濾器的空間大小,n1 是過濾器的數量。ReLU (max(0, x)) 應用於過濾器響應。輸出由 n1 個特徵圖組成。
- 在基於稀疏編碼的方法中,這相當於應用 n1 個線性過濾器 (f1 × f1),減去均值也被吸收在內。
- 非線性映射 (Non-linear mapping):
- 第一層為每個塊提取 n1 維特徵。第二個操作將這些 n1 維向量非線性地映射到另一個 n2 維向量。每個映射後的向量概念上是高解析度塊的表示。
- 這相當於應用空間支援為 1×1 的 n2 個過濾器。第二層 (F2) 的操作是:
F2(Y) = max(0, W2 * F1(Y) + B2)
。
- W2 的大小為 n1×1×1×n2,B2 是 n2 維向量。
- 可以使用更多的卷積層 (空間支援 1×1) 來增加非線性,但會顯著增加模型複雜性並需要更多訓練數據和時間。作者選擇在這一操作中使用單一卷積層。
- 在基於稀疏編碼的方法中,稀疏編碼求解器扮演非線性映射的角色,將 n1 個係數映射到 n2 個係數(通常 n2=n1)。但稀疏編碼求解器不是前向的,而 SRCNN 的非線性算子是完全前向的且計算高效。
- 重構 (Reconstruction):
- 這個操作聚合上述高解析度塊級別的表示以生成最終的高解析度影像。
- 在傳統方法中,預測的重疊高解析度塊通常被平均以產生最終影像。平均可以被視為對一組特徵圖的預定義過濾器。
- 作者定義了一個卷積層來生成最終的高解析度影像:
F(Y) = W3 * F2(Y) + B3
。
- W3 的大小為 n2 × f3 × f3 × c,B3 是一個 c 維向量。W3 是線性過濾器組。
- 在基於稀疏編碼的方法中,將 n2 個係數投影到另一個高解析度字典並平均重疊塊,這相當於對 n2 個特徵圖進行線性卷積,其空間支援大小為 f3 × f3。
- 儘管這三個操作來自不同的直覺,它們都導致了卷積層的相同形式。所有過濾器權重和偏差都要被優化。
模型訓練
- 學習端對端映射函數 F 需要估計參數 Θ = {W1, W2, W3, B1, B2, B3}。
- 這是通過最小化重構影像 F(Y;Θ) 與對應的地面真實高解析度影像 X 之間的損失來實現的。
- 損失函數: 使用均方誤差 (MSE) 作為損失函數。
L(Θ) = 1/n * Σ ||F(Yi;Θ) - Xi||^2
。使用 MSE 傾向於獲得較高的 PSNR 值。網路也靈活支援使用其他可導的損失函數。