1. 程式人生 > >筆記:Deep Back-Projection Networks For Super-Resolution

筆記:Deep Back-Projection Networks For Super-Resolution

Haris, M., G. Shakhnarovich and N. Ukita. Deep Back-Projection Networks For Super-Resolution. in IEEE Conference on Computer Vision and Pattern Recognition (CVPR), p.1664-1673, 2018.
本文是這篇 CVPR 會議論文的筆記,主要是對文中的理論方法進行展開詳解。本人學術水平有限,文中如有錯誤之處,敬請指正。

摘要: 最近提出的超解析度重建的深度網路中,均採用前向結構學習輸入的特徵,並通過非線性對映到高解析度輸出中。然而,這些方法並沒有充分解決高解析度影象和低解析度影象之間的互相依賴性。此文提出了 Deep Back-Projection Network (DBPN)

,迭代地使用上取樣和下采樣層,提供一個誤差反饋的機制來對映每一個階段的誤差。此文構建互相連線的上取樣和下采樣階段,每一個都表示了不同型別的影象劣化和高解析度部分。再結合串聯多個上取樣和下采樣的階段的特徵,又提出了 Dense DBPN,來提升重建的結果。此方法對大的縮放倍數,比如 8 倍,非常有效。

簡介

  1. 誤差反饋。此文提出一個迭代的誤差反饋糾正機制,計算上取樣和下采樣的誤差引導重建。誤差用於約束前幾層的特徵。
  2. 互聯接的上取樣和下采樣階段。前向傳播的結構,可以被認為是一次性的對映,僅對映輸入的豐富的表達到輸出空間中。這樣的方法在高縮放的倍數下 (8 倍) 不會成功,因為在低解析度空間中特徵有限。提出的網路不僅生成高解析度的特徵,用上取樣層,而且又把它們映射回到低解析度空間中。不斷的交替這兩個階段,可以產生多個誤差,由淺層到深層。
  3. 深度的串聯。此網路能表示不同型別的影象劣化和高解析度部分。此網路串聯多個上取樣層階段的特徵,來重建輸出。
  4. 密集連線。類似 DenseNet 1 的思路,網路中將每一個上取樣層和下采樣層的特徵分別密集連線,實現特徵複用。

DBPN

IhRM×NI_h \in \mathbb{R}^{M \times N}IlRM×NI_l \in \mathbb{R}^{M' \times N'} 分別表示高解析度影象和低解析度影象,其中 M<MM' < MN

<NN' < N

上取樣對映單元

其組成部分如下:
在這裡插入圖片描述

  • 放大:H0t=(Lt1pt)sH_0^t = (L^{t-1} * p_t) \uparrow_s
  • 縮小:L0t=(H0tgt)sL_0^t = (H^{t}_0 * g_t) \downarrow_s
  • 殘差:etl=L0tLt1e_t^l = L_0^t - L^{t-1}
  • 殘差放大:H1t=(etlqt)sH_1^t = (e_t^l * q_t) \uparrow_s
  • 輸出:Ht=H0t+H1tH^t = H_0^t + H_1^t

其中 * 表示卷積操作,s\uparrow_ss\downarrow_s 分別表示上取樣和下采樣 ss 倍操作,ptp_tgtg_t,和 qtq_t 是卷積層或反捲積層。

Lt1L^{t-1} 是 LR 特徵作為輸入,之後對映到 HR 部分 H0tH_0^t;再把它映射回到 LR 部分 L0tL_0^t 。將兩個 LR 特徵的殘差 etl=L0tLt1e_t^l = L_0^t - L^{t-1} 計算得到,然後將殘差對映到 HR 部分,得到 H1tH_1^t ;加上之前計算得到的 HR 特徵 H0tH_0^t,求和作為輸出 HtH^t

下采樣單元

其組成部分如下:
在這裡插入圖片描述

  • 縮小:L0t=(Htgt)sL_0^t = (H^{t} * g'_t) \downarrow_s
  • 放大:H0t=(L0tpt)sH_0^t = (L^{t}_0 * p'_t) \uparrow_s
  • 殘差:eth=H0tHte_t^h = H_0^t - H^{t}
  • 殘差縮小:L1t=(ethgt)sL_1^t = (e_t^h * g'_t) \downarrow_s
  • 輸出:Lt=L0t+L1tL^t = L_0^t + L_1^t

通過不停地交替計算 H 和 L 部分。這些單元可以理解為自我糾正的步驟:不停地將誤差對映到取樣層,改變解析度。在這過程中使用的卷積核大小為 8×88 \times 812×1212 \times 12 。其他網路中使用的核一般都比較小,為了避免收斂過慢或得到結果不好。但是迭代使用對映單元可以抑制這個限制,並得到更好的結果在淺層網路高縮放倍率時。

密集對映單元

在這裡插入圖片描述

借鑑 DenseNet 的思想,將對映單元之間也進行密集的連線,實現淺層和深層的特徵的複用。但是不同於原先的 DenseNet 結構,此文中將 Dropout 和 Batchnorm 層移除;因為它們不適合超解析度重建,會失去特徵的範圍靈活性。

在 Dense DBPN 中,輸入是前面每一層的輸出的串聯。Lt~1L^{\tilde{t}-1}Ht~H^{\tilde{t}} 分別是密集上取樣和下采樣單元的輸入。在輸入之前都經過 conv(1,nR)\text{conv}(1,n_R) 卷積層將特徵聚合起來(減少特徵數量)。

網路結構

在這裡插入圖片描述

  • 特徵提取。通過 conv(3,3)\text{conv}(3,3) 卷積層提取大量的特徵,再經過 conv(1,1)\text{conv}(1,1) 卷積層減少特徵的數量。
  • 反向對映階段。密集連線的上取樣和下采樣單元。注意,上取樣層僅和下采樣層連線,下采樣層僅和上取樣層連線,如圖中所示,是一種隔層連線的方式 (前三個單元特殊,還沒有串聯連線)。
  • 重建。最後,所有的上取樣層的輸出都串聯起來,經過 conv(3,3)\text{conv}(3,3) 卷積層重建出彩色影象。

初始 2 個特徵提取層, TT 個上取樣單元 (3 層),T1T-1 個下采樣單元 (3 層),還有最後一個重建層。在密集網路中,每一個單元 (除了前 3 個單元) 之前多加一個 conv(1,1)\text{conv}(1,1) 卷積層,用於減少特徵數量。

總結:此論文的思路很獨特,並不和其他網路論文一樣,提出更深、更寬的前向網路結構,而是通過反覆的使用上取樣和下采樣來進行多次的誤差矯正。最後還是採用密集連線的方式,構建大的網路來獲得較好的重建效果。

  1. G. Huang, Z. Liu, L. van der Maaten, and K. Q. Weinberger. Densely connected convolutional networks. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2017. ↩︎