姓名:于川皓 學(xué)號:16140210089
轉(zhuǎn)載自:https://zhuanlan.zhihu.com/p/25532538?utm_medium=social&utm_source=weibo
【嵌牛導(dǎo)讀】:超分辨率技術(shù)(Super-Resolution)是指從觀測到的低分辨率圖像重建出相應(yīng)的高分辨率圖像,在監(jiān)控設(shè)備、衛(wèi)星圖像和醫(yī)學(xué)影像等領(lǐng)域都有重要的應(yīng)用價值。
【嵌牛鼻子】:深度學(xué)習(xí),超分辨率
【嵌牛提問】:深度學(xué)習(xí)在圖片超分辨率重建的實(shí)現(xiàn)方法是什么?
【嵌牛正文】:超分辨率技術(shù)(Super-Resolution)是指從觀測到的低分辨率圖像重建出相應(yīng)的高分辨率圖像,在監(jiān)控設(shè)備、衛(wèi)星圖像和醫(yī)學(xué)影像等領(lǐng)域都有重要的應(yīng)用價值。SR可分為兩類:從多張低分辨率圖像重建出高分辨率圖像和從單張低分辨率圖像重建出高分辨率圖像。基于深度學(xué)習(xí)的SR,主要是基于單張低分辨率的重建方法,即Single Image Super-Resolution (SISR)。
SISR是一個逆問題,對于一個低分辨率圖像,可能存在許多不同的高分辨率圖像與之對應(yīng),因此通常在求解高分辨率圖像時會加一個先驗信息進(jìn)行規(guī)范化約束。在傳統(tǒng)的方法中,這個先驗信息可以通過若干成對出現(xiàn)的低-高分辨率圖像的實(shí)例中學(xué)到。而基于深度學(xué)習(xí)的SR通過神經(jīng)網(wǎng)絡(luò)直接學(xué)習(xí)分辨率圖像到高分辨率圖像的端到端的映射函數(shù)。
本文介紹幾個較新的基于深度學(xué)習(xí)的SR方法,包括SRCNN,DRCN, ESPCN,VESPCN和SRGAN等。
1,SRCNN
Super-Resolution Convolutional Neural Network (SRCNN, PAMI 2016, 代碼)是較早地提出的做SR的卷積神經(jīng)網(wǎng)絡(luò)。該網(wǎng)絡(luò)結(jié)構(gòu)十分簡單,僅僅用了三個卷積層。
該方法對于一個低分辨率圖像,先使用雙三次(bicubic)插值將其放大到目標(biāo)大小,再通過三層卷積網(wǎng)絡(luò)做非線性映射,得到的結(jié)果作為高分辨率圖像輸出。作者將三層卷積的結(jié)構(gòu)解釋成與傳統(tǒng)SR方法對應(yīng)的三個步驟:圖像塊的提取和特征表示,特征非線性映射和最終的重建。
三個卷積層使用的卷積核的大小分為為9x9, 1x1和5x5,前兩個的輸出特征個數(shù)分別為64和32. 該文章分別用Timofte數(shù)據(jù)集(包含91幅圖像)和ImageNet大數(shù)據(jù)集進(jìn)行訓(xùn)練。相比于雙三次插值和傳統(tǒng)的稀疏編碼方法,SRCNN得到的高分辨率圖像更加清晰,下圖是一個放大倍數(shù)為3的例子。
對SR的質(zhì)量進(jìn)行定量評價常用的兩個指標(biāo)是PSNR(Peak Signal-to-Noise Ratio)和SSIM(Structure Similarity Index)。這兩個值越高代表重建結(jié)果的像素值和金標(biāo)準(zhǔn)越接近,下圖表明,在不同的放大倍數(shù)下,SRCNN都取得比傳統(tǒng)方法好的效果。
2, DRCN
SRCNN的層數(shù)較少,同時感受野也較?。?3x13)。DRCN (Deeply-Recursive Convolutional Network for Image Super-Resolution, CVPR 2016, 代碼)提出使用更多的卷積層增加網(wǎng)絡(luò)感受野(41x41),同時為了避免過多網(wǎng)絡(luò)參數(shù),該文章提出使用遞歸神經(jīng)網(wǎng)絡(luò)(RNN)。網(wǎng)絡(luò)的基本結(jié)構(gòu)如下:
與SRCNN類似,該網(wǎng)絡(luò)分為三個模塊,第一個是Embedding network,相當(dāng)于特征提取,第二個是Inference network, 相當(dāng)于特征的非線性變換,第三個是Reconstruction network,即從特征圖像得到最后的重建結(jié)果。其中的Inference network是一個遞歸網(wǎng)絡(luò),即數(shù)據(jù)循環(huán)地通過該層多次。將這個循環(huán)進(jìn)行展開,就等效于使用同一組參數(shù)的多個串聯(lián)的卷積層,如下圖所示:
其中的H_1到H_D是D個共享參數(shù)的卷積層。DRCN將每一層的卷積結(jié)果都通過同一個Reconstruction Net得到一個重建結(jié)果,從而共得到D個重建結(jié)果,再把它們加權(quán)平均得到最終的輸出。另外,受到ResNet的啟發(fā),DRCN通過skip connection將輸入圖像與H_d的輸出相加后再作為Reconstruction Net的輸入,相當(dāng)于使Inference Net去學(xué)習(xí)高分辨率圖像與低分辨率圖像的差,即恢復(fù)圖像的高頻部分。
實(shí)驗部分,DRCN也使用了包含91張圖像的Timofte數(shù)據(jù)集進(jìn)行訓(xùn)練。得到的效果比SRCNN有了較大提高。
3, ESPCN
在SRCNN和DRCN中,低分辨率圖像都是先通過上采樣插值得到與高分辨率圖像同樣的大小,再作為網(wǎng)絡(luò)輸入,意味著卷積操作在較高的分辨率上進(jìn)行,相比于在低分辨率的圖像上計算卷積,會降低效率。 ESPCN(Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network,CVPR 2016, 代碼)提出一種在低分辨率圖像上直接計算卷積得到高分辨率圖像的高效率方法。
ESPCN的核心概念是亞像素卷積層(sub-pixel convolutional layer)。如上圖所示,網(wǎng)絡(luò)的輸入是原始低分辨率圖像,通過兩個卷積層以后,得到的特征圖像大小與輸入圖像一樣,但是特征通道為r^2(r是圖像的目標(biāo)放大倍數(shù))。將每個像素的r^2個通道重新排列成一個r x r的區(qū)域,對應(yīng)于高分辨率圖像中的一個r x r大小的子塊,從而大小為r^2 x H x W的特征圖像被重新排列成1 x rH x rW大小的高分辨率圖像。這個變換雖然被稱作sub-pixel convolution, 但實(shí)際上并沒有卷積操作。
通過使用sub-pixel convolution, 圖像從低分辨率到高分辨率放大的過程,插值函數(shù)被隱含地包含在前面的卷積層中,可以自動學(xué)習(xí)到。只在最后一層對圖像大小做變換,前面的卷積運(yùn)算由于在低分辨率圖像上進(jìn)行,因此效率會較高。
重建效果上,用PSNR指標(biāo)看來ESPCN比SRCNN要好一些。對于1080HD的視頻圖像,做放大四倍的高分辨率重建,SRCNN需要0.434s而ESPCN只需要0.029s。
4, VESPCN
在視頻圖像的SR問題中,相鄰幾幀具有很強(qiáng)的關(guān)聯(lián)性,上述幾種方法都只在單幅圖像上進(jìn)行處理,而VESPCN( Real-Time Video Super-Resolution with Spatio-Temporal Networks and Motion Compensation, arxiv 2016)提出使用視頻中的時間序列圖像進(jìn)行高分辨率重建,并且能達(dá)到實(shí)時處理的效率要求。其方法示意圖如下,主要包括三個方面:
一是糾正相鄰幀的位移偏差,即先通過Motion estimation估計出位移,然后利用位移參數(shù)對相鄰幀進(jìn)行空間變換,將二者對齊。二是把對齊后的相鄰若干幀疊放在一起,當(dāng)做一個三維數(shù)據(jù),在低分辨率的三維數(shù)據(jù)上使用三維卷積,得到的結(jié)果大小為r^2\times H\times W。三是利用ESPCN的思想將該卷積結(jié)果重新排列得到大小為1\times rH\times rW的高分辨率圖像。
Motion estimation這個過程可以通過傳統(tǒng)的光流算法來計算,DeepMind 提出了一個Spatial Transformer Networks, 通過CNN來估計空間變換參數(shù)。VESPCN使用了這個方法,并且使用多尺度的Motion estimation:先在比輸入圖像低的分辨率上得到一個初始變換,再在與輸入圖像相同的分辨率上得到更精確的結(jié)果,如下圖所示:
由于SR重建和相鄰幀之間的位移估計都通過神經(jīng)網(wǎng)路來實(shí)現(xiàn),它們可以融合在一起進(jìn)行端到端的聯(lián)合訓(xùn)練。為此,VESPCN使用的損失函數(shù)如下:
第一項是衡量重建結(jié)果和金標(biāo)準(zhǔn)之間的差異,第二項是衡量相鄰輸入幀在空間對齊后的差異,第三項是平滑化空間位移場。下圖展示了使用Motion Compensation 后,相鄰幀之間對得很整齊,它們的差值圖像幾乎為0.
從下圖可以看出,使用了Motion Compensation,重建出的高分辨率視頻圖像更加清晰。
5, SRGAN
SRGAN (Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network, arxiv, 21 Nov, 2016)將生成式對抗網(wǎng)絡(luò)(GAN)用于SR問題。其出發(fā)點(diǎn)是傳統(tǒng)的方法一般處理的是較小的放大倍數(shù),當(dāng)圖像的放大倍數(shù)在4以上時,很容易使得到的結(jié)果顯得過于平滑,而缺少一些細(xì)節(jié)上的真實(shí)感。因此SRGAN使用GAN來生成圖像中的細(xì)節(jié)。
傳統(tǒng)的方法使用的代價函數(shù)一般是最小均方差(MSE),即
該代價函數(shù)使重建結(jié)果有較高的信噪比,但是缺少了高頻信息,出現(xiàn)過度平滑的紋理。SRGAN認(rèn)為,應(yīng)當(dāng)使重建的高分辨率圖像與真實(shí)的高分辨率圖像無論是低層次的像素值上,還是高層次的抽象特征上,和整體概念和風(fēng)格上,都應(yīng)當(dāng)接近。整體概念和風(fēng)格如何來評估呢?可以使用一個判別器,判斷一副高分辨率圖像是由算法生成的還是真實(shí)的。如果一個判別器無法區(qū)分出來,那么由算法生成的圖像就達(dá)到了以假亂真的效果。
因此,該文章將代價函數(shù)改進(jìn)為
第一部分是基于內(nèi)容的代價函數(shù),第二部分是基于對抗學(xué)習(xí)的代價函數(shù)?;趦?nèi)容的代價函數(shù)除了上述像素空間的最小均方差以外,又包含了一個基于特征空間的最小均方差,該特征是利用VGG網(wǎng)絡(luò)提取的圖像高層次特征:
對抗學(xué)習(xí)的代價函數(shù)是基于判別器輸出的概率:
其中D_{\theta D}()是一個圖像屬于真實(shí)的高分辨率圖像的概率。G_{\theta G}(I^{LR})是重建的高分辨率圖像。SRGAN使用的生成式網(wǎng)絡(luò)和判別式網(wǎng)絡(luò)分別如下:
該方法的實(shí)驗結(jié)果如下
從定量評價結(jié)果上來看,PSNR和SSIM這兩個指標(biāo)評價的是重建結(jié)果和金標(biāo)準(zhǔn)在像素值空間的差異。SRGAN得到的評價值不是最高。但是對于MOS(mean opinion score)的評價顯示,SRGAN生成的高分辨率圖像看起來更真實(shí)。