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
假設是在特徵學習模塊之後提取到的特徵,scale factor表示爲 。對於SR圖像中的每個像素,我們認爲它是由LR圖像在像素上的特徵和對應濾波器(卷積核)的權重決定的。由這個觀點出發,上採樣模塊可以看作是從到的映射函數。首先,上採樣模塊需要將和匹配。其次,上採樣模塊需要一個特定的濾波器來映射的特徵和的值。上採樣模塊的形式化表述如下:
表示SR在的像素值。表示的是用來計算像素值的特徵映射函數。
因爲在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中的每個像素,位置投影模塊要找到LR圖像對應的。我們認爲的值是由LR圖像中的特徵決定的。我們用以下的投影操作來映射這兩個像素:
是轉換函數。位置投影模塊可以看作是一種可變分數步長機制,用來上採樣任意scale factor的特徵圖。如圖2所示,如果scale factor 是2,那麼每個像素決定兩個點。可是,如果scale factor不是整數,比如,那麼一些像素決定兩個像素,一些像素決定一個像素。
對於SR中的每個像素,我們都能在LR上找到一個獨特的像素,我們認爲這兩個像素是最有關聯的。
Weight Prediction
典型的上採樣模塊會預定義卷積核的數量以及由訓練集學習得到的權重。在Meta-Upscale模塊中,我們用一種網絡來預測卷積核的權重,公式化表述爲:
是SR上的像素對應的卷積核的權重。是權重預測網絡,是權重預測網絡的權重。是和i,j關聯的向量:
對於像素的輸入,一個合適的選擇是與的相對偏移:
爲了一起訓練多scale factors,最好是將scale factor加入到的計算中以區分不同的scale factor的權重。比如,如果我們要用scale factor 2和4上採樣圖像,記作和。那麼中的和中的有相同的卷積核權重和投影座標,這意味着只是的子圖,這會限制效果。所以我們重定義:
Feature Mapping
最後我們要做的就是將特徵投影到SR對應像素的像素值。我們使用矩陣乘積作爲Feature Mapping 函數。的公式化表示爲:
整個Meta-Upscale Module的僞代碼如下:
結構細節
特徵學習模塊可以是任意SOFT的方法,同時本文的Meta-Upscale模塊也可以應用到這些網絡中替代自身的上採樣模塊。本文使用RDN作爲特徵學習模塊
對於Meta-Upscale Module,它包含幾個全連接層和幾個激活層。每個輸入都會輸出一組權重。是提取到的feature map的通道數,論文裏面是64。是所預測的HR圖像的通道數,要麼是3(彩色圖),要麼是1(灰度圖)。是卷積核大小。
本文裏面激活函數用的是ReLU,卷積核是。
實驗
本文的實驗訓練集用的是DIV2K,測試集是Set14,B100,Manga109和DIV2K。用PSNR和SSIM來驗證效果(僅在Y通道)。
loss用的是L1 loss,batch是16,size是,訓練的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
一些結果
還是期待源碼能夠早日公開吧!