CVPR2019超分辨率文章:Meta-SR,任意輸入upsample factor的超分辨率網絡

論文地址

CVPR2019的新文章,主要是針對以前超分辨率問題中需要固定上採樣因子的問題作出的改進。

摘要

隨着DNN的發展,超分辨率技術得到了巨大的改進。但是,超分辨率問題中的任意scale factor問題被忽視了很久。前面的很多工作都是把不同scale factor(即HR和LR之間的分辨率比)的超分辨率看作是獨立的任務,然後分別訓練模型。在這篇文章,作者提出了單模型解決任意scale factor的方法,叫做Meta-SR。 在Meta-SR中,一個Meta-SR Upscale Module代替了傳統的upscale模塊。對於任意的scale factor,Meta-SR Upscale Module能夠動態地預測上採樣濾波器的權重,然後用這些權重來生成HR。總而言之,Meta-SR能夠以任意的上採樣因子放大任意低分辨率的圖像。

介紹

在ESPCNN,EDSR,RDN,RCAN等SOFT方法中,它們通常是在網絡末端放大feature map。但是這些方法只能設計針對每個scale factor設計一個特定的上採樣模塊,並且這個上採樣模塊通常只對正整數的scale factors有效。這些缺點限制了SISR在現實中的使用。
在本論文中,受mera-learning的啓發,作者提出了一個爲每個scale factor動態預測的濾波器的權重,因此,我們再也不用保存每個scale factor對應模型的權重了。

方法

在這裏插入圖片描述
可以看到,在Meta-SR中,特徵學習模塊直接用的RDN的結構。RDN是CVPR18的spotlight,其結構主要是ResNetBlock和DenseNet的結合,具體可以參考這篇博客RDN
接下來先介紹一下Meta-Upscale 。

Meta-Upscale Formulation

假設FLRF^{LR}是在特徵學習模塊之後提取到的特徵,scale factor表示爲 rr。對於SR圖像中的每個像素(i,j)(i,j),我們認爲它是由LR圖像在像素(i,j)(i',j')上的特徵和對應濾波器(卷積核)的權重決定的。由這個觀點出發,上採樣模塊可以看作是從FLRF^{LR}ISRI^{SR}的映射函數。首先,上採樣模塊需要將(i,j)(i,j)(i,j)(i',j')匹配。其次,上採樣模塊需要一個特定的濾波器來映射(i,j)(i',j')的特徵和(i,j)(i,j)的值。上採樣模塊的形式化表述如下:
在這裏插入圖片描述
ISR(i,j)I^{SR}(i,j)表示SR在(i,j)(i,j)的像素值。ϕ(.)\phi(.)表示的是用來計算像素值的特徵映射函數。
因爲在SR中的每個像素對應一個濾波器,對於不同的scale factors,濾波器的數量和權重都是彼此不同的。爲了解決超分辨率單模型任意輸入scale factor的問題,我們提出了Meta-Upscale 模塊來基於scale factor和座標信息動態預測權重W(i,j)。
在這裏插入圖片描述
對於Meta-Upscale 模塊,有三個重要的函數:the Location Projection, the Weight Prediction and the Feature Mapping,即位置投影,權重預測和特徵映射。位置投影是投影LR中的像素,權重預測模塊是預測對應SR每個像素的濾波器的權重,特徵映射模塊是將LR中的特徵加上預測的權重映射回SR圖像來計算像素值。

Location Projection

對於SR中的每個像素(i,j)(i,j),位置投影模塊要找到LR圖像對應的(i,j)(i',j')。我們認爲(i,j)(i,j)的值是由LR圖像中(i,j)(i',j')的特徵決定的。我們用以下的投影操作來映射這兩個像素:
在這裏插入圖片描述
TT是轉換函數。位置投影模塊可以看作是一種可變分數步長機制,用來上採樣任意scale factor的特徵圖。如圖2所示,如果scale factor rr是2,那麼每個像素(i,j)(i',j')決定兩個點。可是,如果scale factor不是整數,比如r=0.5r=0.5,那麼一些像素決定兩個像素,一些像素決定一個像素。
對於SR中的每個像素(i,j)(i,j),我們都能在LR上找到一個獨特的像素(i,j)(i',j'),我們認爲這兩個像素是最有關聯的。

Weight Prediction

典型的上採樣模塊會預定義卷積核的數量以及由訓練集學習得到的權重。在Meta-Upscale模塊中,我們用一種網絡來預測卷積核的權重,公式化表述爲:
在這裏插入圖片描述
W(i,j)W(i,j)是SR上的像素(i,j)(i,j)對應的卷積核的權重。φ\varphi是權重預測網絡,θ\theta是權重預測網絡的權重。vijv_{ij}是和i,j關聯的向量:
對於像素(i,j)(i,j)φ\varphi的輸入,一個合適的選擇是與(i,j)(i',j')的相對偏移:
在這裏插入圖片描述
爲了一起訓練多scale factors,最好是將scale factor加入到vijv_{ij}的計算中以區分不同的scale factor的權重。比如,如果我們要用scale factor 2和4上採樣圖像,記作I2SRI_2^{SR}I4SRI_4^{SR}。那麼I2SRI_2^{SR}中的(i,j)(i,j)I4SRI_4^{SR}中的(2i,2j)(2i,2j)有相同的卷積核權重和投影座標,這意味着I2SRI_2^{SR}只是I4SRI_4^{SR}的子圖,這會限制效果。所以我們重定義vijv_{ij}
在這裏插入圖片描述

Feature Mapping

最後我們要做的就是將特徵FLRF^{LR}投影到SR對應像素的像素值。我們使用矩陣乘積作爲Feature Mapping 函數。ϕ(.)\phi(.)的公式化表示爲:
在這裏插入圖片描述
整個Meta-Upscale Module的僞代碼如下:
在這裏插入圖片描述

結構細節

特徵學習模塊可以是任意SOFT的方法,同時本文的Meta-Upscale模塊也可以應用到這些網絡中替代自身的上採樣模塊。本文使用RDN作爲特徵學習模塊
對於Meta-Upscale Module,它包含幾個全連接層和幾個激活層。每個輸入都會輸出一組權重(inC,outC,k,k)(inC,outC,k,k)inCinC是提取到的feature map的通道數,論文裏面是64。outCoutC是所預測的HR圖像的通道數,要麼是3(彩色圖),要麼是1(灰度圖)。kk是卷積核大小。
本文裏面激活函數用的是ReLU,卷積核kk3×33\times3

實驗

本文的實驗訓練集用的是DIV2K,測試集是Set14,B100,Manga109和DIV2K。用PSNR和SSIM來驗證效果(僅在Y通道)。
loss用的是L1 loss,batch是16,size是50×5050×50,訓練的scale factors以0.1的步長從1到4訓練,
均勻分佈。batch裏面的每個圖都是一樣的scale factor。Meta-SR是從頭開始訓練的,沒有預訓練。
在這裏插入圖片描述各個upscale factor下RDN,EDSR和Meta-SR的表現,可以看到Meta- Upsample Module還是很有效的。

Inference Time

在這裏插入圖片描述
測試環境是Tesla P40。可以看到相比於Feature Learning Module,Weight Prediction Module的運行時間可以忽略不計。

Compared With SOFT

在這裏插入圖片描述

一些結果

在這裏插入圖片描述
在這裏插入圖片描述

還是期待源碼能夠早日公開吧!

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