谷歌像素遞歸超分辨率研究:怎么消滅低分辨率圖像馬賽克?
最近,谷歌發(fā)布了一種把低分辨率圖像復(fù)原為高分辨率圖像的方法,與***進的方法相比,這篇論文提出了一種端到端的框架來完成超分辨率任務(wù)。它由兩個卷積神經(jīng)網(wǎng)絡(luò)組成,一個是描述低分辨率圖像骨架的優(yōu)先網(wǎng)絡(luò)(prior network),一個是用于優(yōu)化細節(jié)特征的調(diào)節(jié)網(wǎng)絡(luò)(conditioning network)。這種方法強調(diào)了細節(jié)特征恢復(fù)上的提升,并以概率范式(probabilistic paradigm)的形式提升了其理論。機器之心在本文中對相關(guān)研究《Pixel Recursive Super Resolution》的核心算法進行了分析解讀,具體將從抽樣策略、模型架構(gòu)和方法分析方面進行敘述。
論文地址:https://arxiv.org/pdf/1702.00783.pdf
引言&相關(guān)工作
超分辨率問題(Super Resolution Problem)的含義在于恢復(fù)圖像的分辨率??捎玫慕鉀Q方案能夠修復(fù)和補充細節(jié)補丁來重建高分辨率圖像。然而,對于原始圖像中不存在的缺失特征,則需要恢復(fù)模型來生成它們。因此,***的超分辨率恢復(fù)模型必須考慮對象、視點、照明和遮擋的復(fù)雜變化。它還應(yīng)該能夠畫出銳利的邊緣,并決定圖像不同部分中的紋理、形狀和圖案呈現(xiàn)類型,因此產(chǎn)生逼真的高分辨率圖像是非常困難的。
超分辨率問題在計算機視覺研究中具有悠久的歷史。有多種可行的方法來恢復(fù)高分辨率圖像。其中插值方法易于實現(xiàn)且廣泛使用,它基本采用的是對所有合理的細節(jié)特征值取均值的策略。然而這類方法的缺點也很明顯,因為線性模型不能正確表示輸入信息和輸出結(jié)果之間復(fù)雜的依賴關(guān)系,所以得到的圖像往往是模糊的。
為了獲得生動合理的圖像細節(jié),研究者已經(jīng)提出了詳細的去模糊(de-blurr)方法。該方法類似于詞典構(gòu)造(dictionary construction,一種相當(dāng)簡單而基本的方法),更進一步是可以在 CNN 中提取多個抽象(CNN 層中存在的特征)的濾波器核(filter kernel)的學(xué)習(xí)層,然后通過測量被插值的低分辨率圖像和高分辨率圖像間的像素損失來調(diào)整網(wǎng)絡(luò)權(quán)重?;旧线@種基于多層過濾器的方法的特征層越多,其表現(xiàn)就越好。因此,該 SRResNet 通過從許多 ResNet 模塊中學(xué)習(xí)來實現(xiàn)預(yù)期的性能。這篇論文應(yīng)用了類似的條件網(wǎng)絡(luò)設(shè)計來更好地處理高頻特征。
除了設(shè)計高頻特征模擬外,下面提出的超分辨率網(wǎng)絡(luò)模型稱為 PixelCNN。PixelCNN 旨在生成低分辨率和高分辨率圖像之間的先驗知識(prior knowledge)。與另一種生成模型 GAN 相比,當(dāng)訓(xùn)練樣本缺乏分布的多樣性時,它們都將受到影響。但超參數(shù)更改時,PixelCNN 有更高的穩(wěn)健性。而 GAN 相當(dāng)脆弱,只需要足夠的重復(fù)學(xué)習(xí)就能愚弄一個不穩(wěn)定的鑒別器,這樣的策略是相當(dāng)棘手的,于是谷歌超分辨率網(wǎng)絡(luò)萌芽了。參考下圖:
圖 3:我們提出的超分辨率網(wǎng)絡(luò)包含了一個調(diào)節(jié)網(wǎng)絡(luò)(conditioning network)和一個優(yōu)先網(wǎng)絡(luò)(prior network)。其中調(diào)節(jié)網(wǎng)絡(luò)是一個 CNN,其接收低分辨率圖像作為輸入,然后輸出 logits——預(yù)測了每個高分辨率(HR)圖像像素的條件對數(shù)概率(conditional log-probability)。而優(yōu)先網(wǎng)絡(luò)則是一個 PixelCNN,其基于之前的隨機預(yù)測進行預(yù)測(用虛線表示)。該模型的概率分布的計算是在來自優(yōu)先網(wǎng)絡(luò)和調(diào)節(jié)網(wǎng)絡(luò)的兩個 logits 集之和上作為 softmax operator 而實現(xiàn)的。
端到端模型由兩個網(wǎng)絡(luò)組成:1. 使用 PixelCNN 的優(yōu)先網(wǎng)絡(luò) 2. 使用 ResNet 的 Res 塊的調(diào)節(jié)網(wǎng)絡(luò)。
方法和實驗
在后面的章節(jié)中,該論文介紹了像素遞歸超分辨率(pixel recursive super resolution)框架的優(yōu)勢和像素獨立超分辨率(pixel independent super resolution)的潛在問題,并在相應(yīng)數(shù)據(jù)集上對這些理論進行了驗證,比較了自定義度量。
為了說明部署遞歸超分辨率方法的必要性,本文首先闡述了像素獨立超分辨率方法的理論>下一節(jié)將演示這樣的理論會在條件圖像建模中失敗。不理想的實驗結(jié)果促使谷歌的這個遞歸模型產(chǎn)生。
基本工作流程顯示為:
為了模擬超分辨率問題,其概率目標(biāo)(probabilistic goal)是學(xué)習(xí)一個參數(shù)模型:
其中 x 和 y 分別表示低分辨率和高分辨率圖像。一旦我們獲得像素值的調(diào)節(jié)概率,就可以用高分辨率重建整個圖像。我們可以在數(shù)據(jù)集中應(yīng)用上述設(shè)置,用 y*表示真實的高分辨率圖像,從而能在數(shù)學(xué)上表示成目標(biāo)函數(shù)。優(yōu)化目標(biāo)是使條件對數(shù)似然度目標(biāo)(conditional log-likelihood objective)***化,如下:
關(guān)鍵因素是構(gòu)建最合適的輸出像素值分布。這樣我們才能夠用銳利的細節(jié)得到最生動的高分辨率圖像。
像素獨立的超分辨率
簡單的方式是假設(shè)每個預(yù)測像素值 y 有條件地獨立于其他值,因此總概率 p(y | x)是每個獨立估計值的乘積。
假設(shè)一幅給定的 RGB 圖像具有三個顏色通道,并且每個通道擁有 M 個像素。兩邊同時取對數(shù)得到:
如果我們假設(shè)估計的輸出值 y 連續(xù),則公式(2)可以在高斯分布模型下重構(gòu)為:
其中 y_i 表示通過卷積神經(jīng)網(wǎng)絡(luò)模型得到的非線性映射輸出,表示第 i 個輸出像素的估計平均值。
表示方差,一般來說方差是已知的,而不是通過學(xué)習(xí)獲得的,因此唯一需要學(xué)習(xí)的是均值和估計值之間的 L2 范數(shù)。然后,***化對數(shù)似然(在(1)中表示)可以轉(zhuǎn)化為 y 和 C 之間的 MSE(均方誤差)最小化。***,CNN 能夠?qū)W習(xí)一組高斯參數(shù)以獲得***平均值 C。
對于連續(xù)值,我們使用高斯模型,對于離散值,我們使用多項分布來模擬分布(數(shù)據(jù)集注明為 D),那么預(yù)測概率可以描述為:
因此我們的目標(biāo)是學(xué)習(xí)以從預(yù)測模型中獲得***的 softmax 權(quán)值,
是三個通道下 K 個可能的離散像素值的 softmax 權(quán)值。
然而,該論文稱,上述獨立模型無法處理多模式(multi-modality)的情況,因此在某些特定任務(wù)中它的性能不如多模態(tài)能力方法,例如著色、超分辨率。其次它遵循 MNIST corner dataset 的實驗演示(數(shù)字僅在左上角或右下角定位對象時相同)。
圖 2:上圖:圖片表示了試驗數(shù)據(jù)集(toy dataset)中輸入輸出對的一種創(chuàng)建方式****。下圖:在這個數(shù)據(jù)集上訓(xùn)練的幾個算法的預(yù)測示例。像素獨立的 L2 回歸和交叉熵模型沒有表現(xiàn)出多模態(tài)預(yù)測。PixelCNN 輸出是隨機的,且多個樣本時出現(xiàn)在每個角的概率各為 50%。
參考 MNIST 實驗圖,不同方法下的數(shù)字生成結(jié)果是不同的。像素交叉熵方法可以捕獲脆性圖像,但無法捕獲隨機雙模態(tài),因此數(shù)字對象出現(xiàn)在兩個角落。類似的情況發(fā)生在 L2 回歸方法上。最終在一個高分辨率輸出圖像中給出兩個模糊數(shù)字。只有 PixelCNN 可以捕獲位置信息和清晰的圖像信息,這進一步說明了在所提出的模型中使用 PixelCNN 的優(yōu)越性。
像素遞歸超分辨率
像素獨立超分辨率方法被指出有局限性之后,它的解釋被逐漸給出。新理論仍旨將給定樣本 x 的對數(shù)似然度***化。遞歸模型部分假定輸出像素之間存在條件依賴關(guān)系。***,為了近似這種聯(lián)合分布,該遞歸方法使用鏈?zhǔn)椒▌t來分解其條件分布:
其中每個輸出有條件地依賴于輸入和先前的輸出像素:
那么嵌入 CNN 的像素遞歸超分辨率框架(參考以前的架構(gòu))可以說明如下:
輸入 x,讓
表示調(diào)節(jié)網(wǎng)絡(luò),得到一個對數(shù)值組成的向量,這些值是第 i 個輸出像素的 K 個可能值的對數(shù)。
類似的,讓
表示先前網(wǎng)絡(luò),得到由第 i 個輸出像素的對數(shù)值組成的向量。
該方法聯(lián)合優(yōu)化兩個網(wǎng)絡(luò),通過隨機梯度上升(stochastic gradient ascend)法更新并獲得***對數(shù)似然。也就是說,優(yōu)化 (6) 中模型預(yù)測值與離散的真實值標(biāo)簽之間的交叉熵損失
然后其成本函數(shù)為:
其中 lse(·)是 softmax 分母的對數(shù)和的指數(shù)運算符(log-sum-exp operator),1 [k] 表示一個 K 維 one-hot 指示符向量的第 k 維度設(shè)置為 1。
然而,當(dāng)在實驗中使用成本函數(shù)時,訓(xùn)練的模型往往忽略調(diào)節(jié)網(wǎng)絡(luò)。因此,范式包括一個新的損失項,用于衡量調(diào)節(jié)網(wǎng)絡(luò)中預(yù)測值和真實值之間的交叉熵,表示為:
從而得到新公式:
除了定義訓(xùn)練的范式,為了控制樣本分布的密度,我們引入額外的溫度參數(shù)(temperature parameter),從而得到了貪婪解碼機制(greedy decoding mechanism):總是選擇概率***的像素值和合適的 softmax 中的樣本。因此,分布 P 被調(diào)整為:
隨著所有理論準(zhǔn)備工作的完成,本文進入實施階段。實驗在 TensorFlow 框架下完成,使用 8 個帶有 SGD 更新的 GPU。對于調(diào)節(jié)網(wǎng)絡(luò),我們建立了前饋卷積神經(jīng)網(wǎng)絡(luò)。它使用從一系列 ResNet 塊得到的 8×8 RGB 圖像和轉(zhuǎn)置卷積層,同時每層保持 32 個通道。***一層使用 1×1 卷積將信道增加到 256×3,并且使用所得到結(jié)果、通過 softmax 算子預(yù)測超過 256 個可能子像素值的多項分布。
對于現(xiàn)有網(wǎng)絡(luò),通常為像素 CNN,實驗使用了每層有 32 個通道的 20 個選通 PixelCNN 層。
結(jié)果和評估
為了驗證所提框架的性能,本文選擇了兩類對象:人臉和臥室場景。所有訓(xùn)練圖像均來自 CelebA 數(shù)據(jù)集和 LSUN 臥室數(shù)據(jù)集。為了滿足網(wǎng)絡(luò)輸入的要求,作者還對每個數(shù)據(jù)集進行了必要的預(yù)處理:裁剪 CelebA 數(shù)據(jù)集的名人臉和 LSUN 臥室數(shù)據(jù)集的中心圖像。此外他們還通過雙三次插值(bicubic interpolation)將兩個數(shù)據(jù)集得到的圖像大小調(diào)整為 32×32,進而為 8×8,構(gòu)成訓(xùn)練和評估階段的輸出和輸入對。
訓(xùn)練后,將遞歸模型與兩個基準(zhǔn)網(wǎng)絡(luò)進行比較:像素獨立的 L2 回歸(「回歸」)和最近鄰搜索(「NN」)。視覺效果如下圖所示:
觀測不同方法之間的結(jié)果,能看出 NN 方法可以給出清晰的圖像,但是與真實情況的差距相當(dāng)大,回歸模型給出了一個粗略的草圖,像素遞歸超分辨率方法的效果似乎處于兩個基準(zhǔn)方法之間。它捕獲了一些詳細的信息,但沒有比其他方法好很多。
另外不同的溫度參數(shù)下,結(jié)果略有不同如下圖所示:
為了測量性能,我們使用 pSNR 和 MS-SSIM(表 1)量化了訓(xùn)練模型對真實情況的預(yù)測精度,除傳統(tǒng)測量之外,結(jié)果還涉及人類識別研究。
表 1:頂部:在裁切過的 CelebA 測試數(shù)據(jù)集上,從 8×8 放大到 32×32 后的測試結(jié)果。底部:LSUN 臥室。pSNR、SSIM 和 MS-SSIM 測量了樣本和 ground truth 之間的圖像相似度。Consistency(一致性)表示輸入低分辨率圖像和下采樣樣本之間在 [0,1] 尺度上的均方誤差(MSE)。% Fooled 表示了在一個眾包研究中,算法樣本騙過一個人類的常見程度;50% 表示造成了***的混淆。
從結(jié)果表中可以看出,遞歸模型在 pSNR 和 SSIM 測量中表現(xiàn)不佳。雖然文章還引用了另外兩個測量來進行驗證。然而,目前在添加合成信息時似乎缺乏強烈的說服力,或者可能需要進一步的工作來測試驗證。從逃過人們眼睛的百分比來看,該模型比其它方法更優(yōu)越,因此可以說生成的圖像更加逼真。
總之,像素遞歸超分辨率方法提出了一個創(chuàng)新的框架來平衡粗略骨架與細節(jié)捕獲。但是我個人認為,結(jié)果不能有力地說明該模型在復(fù)原低分辨率圖像方面真正有效。雖然不同的分辨率設(shè)置使方法難以比較,但它確實能夠為人類的判斷提供良好表現(xiàn)。因此在未來可能具有良好的工業(yè)應(yīng)用。
【本文是51CTO專欄機構(gòu)機器之心的原創(chuàng)文章,微信公眾號“機器之心( id: almosthuman2014)”】