論文 Meta-SR: A Magnification-Arbitrary Network for Super-Resolution閱讀筆記

Meta-SR: A Magnifification-Arbitrary Network for Super-Resolution
是CVPR2019的論文,由中科院、CASIA、曠視、清華等聯合發佈表。
論文地址:http://arxiv.org/abs/1903.00875v1
pytorch代碼地址:https://github.com/XuecaiHu/Meta-SR-Pytorch

一 :論文要解決的問題

            之前隨着DCNN(deep convolution neural network)的發展,SR(super-resolution)也取得很大的進步。但是如果把圖像放大任意比例一直都被忽視。之前的問題把圖像放大不同比例做爲不同獨立的任務,爲每一個比例設計一個特定的放大模型,並且只能放大整數倍數。這篇論文就是要實現用一個模型可以放大任意比例(包括非整數)。因爲在實際場景是很常用的。比如你用鼠標滑動放大查看圖片。

二:論文的整體架構

            論文中的方法叫做Meta-SR,該方法有兩個模塊,the Feature Learning Module 和 the Meta Upscale Module。
the Feature Learning Module 是用於在LR image(低分辨率圖像)上提取特徵,特徵提取後通道數可能變多,但是特徵圖的長寬與LR image相同。the Meta Upscale Module用於動態爲HR image上的每一個點預測權重,主要運用到元學習(不是通過大量的數據來預測權重,而是讓機器總結學習到如何去預測權重,就是學習到學習的方法,而不是物體的規律,元學習可用於少樣本學習,和遷移學習)。整體架構圖如下:
在這裏插入圖片描述

三:the Feature Learning Module

          結構圖如下:在這裏插入圖片描述
    有3個卷積層和16個residual dense blocks(RDB),RDB的結構圖如下:
在這裏插入圖片描述
其中ResNet(殘差網絡),把上一個輸出值加到了下一個輸出輸出值上,這樣可以在增加網絡深度的時候,防止vanishing gradient (梯度彌散)。
下面講一下Densenet(密集網絡)的結構圖:
在這裏插入圖片描述
每個Dense Block中的特徵圖的大小是相同的,每一個輸出都合上前面每一個輸出公式爲

在這裏插入圖片描述
      上面的H()代表是非線性轉化函數(non-liear transformation),它是一個組合操作,其可能包括一系列的BN(Batch Normalization),ReLU,Pooling及Conv操作。它們是在channel維度上連接在一起的。內部結構圖:
在這裏插入圖片描述
      DenseBlock內部可以採用bottleneck層來減少計算量,主要是原有的結構中增加1x1 Conv。即BN+ReLU+1x1 Conv+BN+ReLU+3x3 Conv,稱爲DenseNet-B結構。其中1x1 Conv它起到的作用是降低特徵數量,從而提升計算效率。如圖:
在這裏插入圖片描述
      所有DenseBlock中各個層卷積之後均輸出K 個特徵圖,即得到的特徵圖的channel數爲 K,或者說採用 K個卷積核。 K在DenseNet稱爲growth rate,這是一個超參數。論文中設置的K爲64。再合ResNet結合。好這就是 the Feature Learning Module。

四: the Meta Upscale Module

      the Meta Upscale Module分爲3塊,the Location Projection, the Weight Prediction and the Feature Mapping。講之前先明白幾個變量
ILR LR image(低分辨率圖像)
IHR 原高分辨率圖像
ISR 模型的產生的高分辨率圖像
ISR的 ground-truth (這個詞表示正確分類的標籤)是 IHR
FLR 表示低分辨率上的特徵圖(the Feature Learning Module所產生的)

4.1: the Location Projectiong

在這裏插入圖片描述
(i,j)表示高分辨上的某像素點,(i,j)表示對應低分辨率上的對應點,他們的關係用r(縮放比例來確定),公式如上圖。
      論文中舉一個例子,放大2倍和1.5倍。低分辨率上有一些點是決定高分辨率上的1個點,有些低分辨率上的點是決定高分辨率上的2個點。如圖:
在這裏插入圖片描述

4.2: Weight Prediction

權重計算如下圖:
在這裏插入圖片描述
      W(i,j)代表高分辨率圖上每一個像素點的權重,vij表示權重預測網絡的輸入,θ表示的是網絡預測的參數。流程如下圖:
在這裏插入圖片描述
      輸入爲HW*3(3表示的是3個顏色通道,當爲灰度圖時顏色通道爲1),然後經過一個全連接和一個ReLU激活函數,然後再經過一個FC(論文中用的隱藏神經元數爲256)。每一個點輸入都會產生形狀爲 inC*outC*k*k,nC等於FLR的channel數,outC等於的是高分辨率的通道數,k表示的是卷積核的大小論文中K等於3)。

4.2: Feature Mapping

公式爲:
在這裏插入圖片描述
這裏用對應的FLR和W(i,j)進行矩陣相乘。(這裏我也有疑惑就是如果3*3和3*3的矩陣相乘以後就是也是3*3的矩陣,但是這裏得到的是一個點。網上說是矩陣間相乘,元素間卷積,這可能還是要把代碼慢慢看懂才能夠完全理解這一部分)。

5: Experiments

      用六個自己設計的baseline,用bicubic interpolation生成LR圖像。放大的比例從1到4,變化步長爲0.1。

5.1: 數據和評估標準:

      數據用的是 DIV2K,800張訓練集,100張驗證集,100張測試集。因爲測試集中的ground truth爲公開,所有論文用的validation set上的結果。
     用L1做爲損失函數。用PSNR(Peak Signal-to-Noise Ratio) and SSIM(structural similarity index)做爲評估。
      PSNR(峯值信噪比)公式如下:
在這裏插入圖片描述
在這裏插入圖片描述
其中,MAXI是表示圖像點顏色的最大數值,如果每個採樣點用 8 位表示,那麼就是 255。所以MSE越小,則PSNR越大;所以PSNR越大,代表着圖像質量越好。
PSNR高於40dB說明圖像質量極好(即非常接近原始圖像),
在30—40dB通常表示圖像質量是好的(即失真可以察覺但可以接受),
在20—30dB說明圖像質量差;PSNR低於20dB圖像不可接受。
     SSIM 公式基於樣本x和y之間的三個比較衡量:亮度 (luminance):l(x,y)、對比度 (contrast) :c(x,y)和結構 (structure): s(x,y)
在這裏插入圖片描述
在這裏插入圖片描述
論文中把圖片轉化爲YCbCr,在Y(亮度)上做SSIM。

5.2: 設計六個baseline:

因爲沒有任意放大的工作所以設計了6個baseline來進行對比。
bicubic:直接用bicubic interpolation放大圖片
RDN(x1),EDSR(x1):將LR先放大r倍,再放入RDN和EDSR網絡中產生SR
RDN(x2),EDSR(x2):將LR輸入網絡,產生HR,再將HR縮小爲r/k倍,再放入RDN和EDSR網絡K次中產生SR(k=2)
RDN(x4),EDSR(x4):如果r>k,先將LR放大再輸入網絡,產生HR,再將HR縮小爲r/k倍,再放入RDN和EDSR網絡K次中產生SR(k=4)
BicuConv :對the final feature maps用interpolation。最後的the upscale module(放大模塊)對任何放大比例用同一個卷積層。
Meta-Bicu:也對the final feature maps用interpolation,但是爲每一個比例預測一個權重。
實驗結果圖(一部分):
在這裏插入圖片描述

5.3: 耗時:

在這裏插入圖片描述
FL(生成特徵圖的時間),WP(預測權重的時間),Upscale(放大模塊所用時間)。
雖然單個的放大時間,該方法不佔優勢,但是放大8 和16這個方法就要快很多(論文中無該實驗對比),另外當要放大任意比例的時候就會比其他快很多。因爲其他的需要run各個比例模型。
還要其他兩個對比實驗,也表示了該方法的優越性。
好這就是這篇論文全部內容了。希望能夠幫助大家,一起成長。喜歡就點一個贊吧,筆芯。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章