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