王 旺 徐俊武 李穎先
(武漢工程大學(xué)計算機科學(xué)與工程學(xué)院 湖北 武漢 430205)
圖像的超分辨率SR(Super Resolution)技術(shù),是通過軟件算法來把低分辨率LR(Low Resolution)的圖像轉(zhuǎn)換成為高分辨率HR(High Resolution)圖像的技術(shù)[1]。目前在許多重要的領(lǐng)域都十分需要這門技術(shù)的支持,例如在醫(yī)學(xué)圖像處理領(lǐng)域,高分辨率圖像可以幫助醫(yī)生掌握病情,看到人眼不易察覺到的病灶,可以更好地針對治療[2]。
SR技術(shù)最早可以追溯到20世紀60年代,提出者為Harris[3]。當(dāng)時的主流是方法是插值法,之后隨著技術(shù)的發(fā)展,有新的方法被研究者提出,主要歸納為基于重建的方法和基于學(xué)習(xí)的方法[4]。插值法具有最簡單的計算過程和最低的復(fù)雜度,常見的有鄰插值法[5]、雙線性插值法[6]和雙三次插值法[7];基于重建的方法在一段時間內(nèi)頗為熱門,經(jīng)典的有迭代反投影法[8]、凸集投影法[9]和最大后驗概率估計法[10],這種方法最大的問題在于放大倍數(shù)有限,生成效果也不及后來者;基于學(xué)習(xí)的方法分為基于淺層網(wǎng)絡(luò)的學(xué)習(xí)方法,主要有流形學(xué)習(xí)[11]和稀疏表示[12];另一種基于學(xué)習(xí)的方法就是基于深度網(wǎng)絡(luò)的方法。
將深度學(xué)習(xí)應(yīng)用于圖像超分辨率領(lǐng)域,最早由Dong等[13]提出,也就是經(jīng)典的基于卷積神經(jīng)網(wǎng)絡(luò)的超分辨率方法(SRCNN),之后不斷地有學(xué)者進行優(yōu)化和改進。
基于卷積神經(jīng)網(wǎng)絡(luò)的超分辨率(SRCNN)方法是最先將深度學(xué)習(xí)引入圖像超分辨率重建的問題。超分辨率方法將一張LR圖像放大為一張HR圖像,尺寸的變化造成像素點總量的變化,其中最難的挑戰(zhàn)是如何在新增的像素位置進行值的填充。SRCNN使LR圖像能通過一定的算法升為HR圖像,主要是兩者之間存在“共同特征”,所以在SRCNN中,將超分辨率過程分為三個階段[14]:
(1) 特征提取。此階段就是對LR圖像進行特征提取和特征表示,利用卷積網(wǎng)絡(luò)的性質(zhì)提取圖像塊的特征,公式如下:
F1(Y)=max(0,W1×Y+B1)
(1)
(2) 非線性映射。將第一階段提取的n1維特征映射至n2維,公式如下:
F2(Y)=max(0,W2×F1(Y)+B2)
(2)
(3) 重建。這個階段是將第二階段映射后的特征恢復(fù)為HR圖像,公式如下:
F(Y)=W3+F2(Y)+B3
(3)
式中:W和B分別代表卷積模板和偏置參數(shù)。
SRCNN的網(wǎng)絡(luò)模型結(jié)構(gòu)如圖1所示。文獻[13]只使用了3層簡單的卷積神經(jīng)網(wǎng)絡(luò),分別進行上述三個階段。
圖1 SRCNN網(wǎng)絡(luò)模型結(jié)構(gòu)圖
在SRCNN中,使用MSE作為損失函數(shù),在圖像輸入前需要使用雙三次插值放大至目標(biāo)尺寸。此時雖然圖像尺寸達到了,但是仍然稱之為低分辨率圖像,然后再進行輸入。輸出的是最終重建高分辨率圖像。
(1) 亞像素卷積層。亞像素卷積層[15]在輸入原始低分辨率圖像之后,經(jīng)過卷積之后,得到通道數(shù)為r2的與輸入圖像大小一樣的特征圖像。然后將每個像素的r2通道再排列,成為r×r的區(qū)域,則每個像素都成為r×r大小,從而大小為H×W×r2的特征圖像被重新排列成rH×rW的高分辨率圖像。需要注意的是亞像素卷積層的輸入維度為輸出維度前r2倍,且r為放大倍數(shù)。
(2) 殘差網(wǎng)絡(luò)。通過加深網(wǎng)絡(luò)的深度可以很好地提高網(wǎng)絡(luò)的性能,但是可能會出現(xiàn)退化問題,隨著網(wǎng)絡(luò)層數(shù)的增加,在訓(xùn)練集上的準確率卻飽和甚至下降。深度殘差網(wǎng)絡(luò)[16]的出現(xiàn)主要是為了退化的問題。
出現(xiàn)退化的原因,主要是因為神經(jīng)網(wǎng)絡(luò)在反向傳播過程中要不斷地傳播梯度,而當(dāng)網(wǎng)絡(luò)層數(shù)加深的時候,梯度在傳播過程中會逐漸消失[17]。
殘差網(wǎng)絡(luò)解決退化現(xiàn)象的原理如圖2所示,將某一層的輸入x直接傳到后幾層的輸出中。這種方式被稱為捷徑連接,也就是最終的輸出結(jié)果H(x)為原本的輸出F(x)加上前幾層的輸入x,即:
H(x)=F(x)+x
(4)
圖2 殘差網(wǎng)絡(luò)示意圖
這樣做的好處在于,當(dāng)F(x)由于退化問題變?yōu)?的時候,那么至少輸出H(x)還是有值的。當(dāng)H(x)=x的時候,被稱為恒等映射,由于還有輸出,那么梯度還可以繼續(xù)傳遞。
同時在殘差塊中也會加入批量歸一化BN[18]層,添加BN的最大優(yōu)點是,減少梯度消失,加快收斂速度。根據(jù)研究表明,BN層需要添加在網(wǎng)絡(luò)層后激活函數(shù)前[19],效果最佳。
本文提出基于SRCNN的圖像超分辨率的優(yōu)化方法,主要在SRCNN的基礎(chǔ)上做出如下修改:
1) 在輸入方面,本方法在最后以兩層亞像素卷積層[20]的形式放大圖像尺寸,因此可以直接將原始低清圖像作為輸入,而無需像SRCNN那樣先以雙三次插值的方式放大尺寸再輸入。
2) 本方法還改變特征維數(shù),使用更小的卷積核和使用更多的映射層,SRCNN總共只有3層網(wǎng)絡(luò),映射層只有一層,加深網(wǎng)絡(luò)可以有效提升網(wǎng)絡(luò)能力。
3) 本方法由于并非在網(wǎng)絡(luò)外部進行放大圖像的操作,所以更具有靈活性。當(dāng)需要不同的上采樣倍率時,只需要微調(diào)后面的上采樣層就可以了,前面的映射層不變。
在SRCNN方法中,超分辨率的工作是在高分辨率的基礎(chǔ)上完成的,這樣并不是最優(yōu)的辦法,而且計算量很大。如果可以在網(wǎng)絡(luò)內(nèi)部進行超分辨率,通過訓(xùn)練學(xué)習(xí)將低分辨率特征映射到高分辨率輸出,這樣就能夠減輕計算量,并且效果也更優(yōu)。
在本方法中,網(wǎng)絡(luò)模型可以分為3個部分:
1) 特征提取。SRCNN中的特征提取是對插值后的高分辨率圖像進行提取,卷積核大小為9×9;本方法是直接對原始的低分辨率進行操作,因此可以選擇小一些,設(shè)置為3×3。
2) 非線性映射。由于感受野大,能夠表現(xiàn)得更好,在SRCNN中采用的是5×5的卷積核,但是卷積核大的計算量會比較大,用兩個串聯(lián)的3×3的卷積核可以替代一個5×5的。同時兩個串聯(lián)的小卷積核需要的參數(shù)數(shù)量為18,而5×5的參數(shù)數(shù)量為25,所以本方法使用多個3×3的小卷積層,兼顧計算量和網(wǎng)絡(luò)能力。
3) 上采樣。使用亞像素卷積層進行上采樣。
具體流程描述如下:
1) 輸入圖像張量,維度為3;
2) 進入卷積層,輸入維度為3,輸出維度為64,卷積核為3×3,步長為1,之后接入激活函數(shù)ReLU;
3) 進入殘差塊,內(nèi)部含有4個小殘差塊和一個卷積層,每個小殘差塊內(nèi)部含有兩個卷積層,每層卷積之后都加入BN層,激活函數(shù)為ReLU;
4) 進入卷積層,輸入維度為64,輸出維度為256,卷積核為1×1,步長為1,之后接入BN層,再激活函數(shù)ReLU;
5) 上采樣卷積之前需要計算維度,先使用卷積層將維度升到一定高度再進行上采樣,該卷積層輸入維度為64,輸出維度256,卷積核為3×3,步長為1,之后再進行上采樣層,輸出維度64,ReLU激活;
6) 再重復(fù)步驟5,兩次上采樣將圖像尺寸提升4倍;
7) 最后以1×1卷積核降維到3,激活函數(shù)改為Tanh,輸出大尺寸圖像。
網(wǎng)絡(luò)流程見圖3。
圖3 本文方法網(wǎng)絡(luò)流程示意圖
在本文方法中,損失函數(shù)依然使用MSE,優(yōu)化器選用Adam。
實驗采用DIV2K數(shù)據(jù)集的圖像作為訓(xùn)練集,訓(xùn)練完成后使用測試圖像進行重建生成高分辨率圖像用于查看效果。
由于實驗中的低分辨率圖像是從高分辨率圖像進行1/4倍降采樣得到,所以本實驗有原始高分辨率圖像作為對照。同時一起列出用雙三次插值法重建圖像;還另外用相同的訓(xùn)練集和訓(xùn)練次數(shù)訓(xùn)練SRCNN方法、ESPCN[20]方法和FSRCNN[21]方法并將測試圖像生成結(jié)果一起列出。圖4和圖5分別展示這三種方法重建生成圖像的結(jié)果和原始圖像,都是截取了關(guān)鍵部分,以便查看細節(jié)部分。
(a) 雙三次插值法 (b)SRCNN方法
(c) FSRCNN方法 (d) ESPCN方法
(e) 本文方法 (f) 原始圖像圖4 測試圖像1
(a) 雙三次插值法 (b) SRCNN方法
(e) 本文方法 (f) 原始圖像圖5 測試圖像2
本實驗評價采用主觀評價和客觀評價共同分析生成圖像質(zhì)量。其中主觀評價就是在圖像的視覺效果上感受圖像的效果,對比各種方法生成的圖像之間的差異;客觀評價以峰值信噪比PSNR和結(jié)構(gòu)相似性SSIM來進行衡量。
(1) 峰值信噪比。峰值信噪比是重建的高分辨率圖像真實高分辨率圖像之間的像素差值的量度,可以用來衡量被處理后圖像的質(zhì)量,單位為dB。定義如下:
(5)
(6)
式中:I為真實圖像,K為生成圖像,m和n分別為圖像和長和寬。
(2) 結(jié)構(gòu)相似性。結(jié)構(gòu)相似性為兩幅圖像結(jié)構(gòu)相似度的度量的標(biāo)準,取值范圍為[0,1],值越大就越表示兩幅圖像結(jié)構(gòu)相似程度越高。定義如下:
(7)
表1和表2分別列出了4組測試圖像的生成圖像和原始圖像進行計算的PSNR和SSIM的值。
表1 圖像重建結(jié)果的PSNR
表2 圖像重建結(jié)果的SSIM
從圖4和圖5的實驗結(jié)果可以看出,使用本文方法生成的圖像略優(yōu)于其他方法。如圖4的花瓣的邊緣,圖4(a)和(b)不夠銳利清晰,(c)和(d)也比較模糊,且花瓣層次不明顯,有一些波紋,(e)花瓣邊緣則較為清晰,花瓣層次也比較明顯,整體觀感會比較舒適。圖5的建筑外墻,圖5(a)、(b)和(c)的外墻窗戶十分模糊,窗戶的邊緣線條不清晰,(d)的外墻觀感稍可,但是整體觀感還是比較模糊,(e)的觀感最為舒適純凈,外墻窗戶邊緣較為清晰,細節(jié)較為豐富處理效果更勝一籌。其中SRCNN、FSRCNN和ESPCN三種方法和本文方法使用了相同的訓(xùn)練集和訓(xùn)練次數(shù),在同樣的訓(xùn)練條件下,本文的優(yōu)化方法是有一定的優(yōu)化效果的。這在表1和表2中的數(shù)據(jù)也能得到證明,在計算出的PSNR和SSIM值中,可以看出使用本文方法在客觀評價方面,較其他的方法高出不少。
本文提出一種改進的基于卷積神經(jīng)網(wǎng)絡(luò)的圖像超分辨率方法。主要在經(jīng)典的SRCNN方法的基礎(chǔ)上進行了改進,即加深了網(wǎng)絡(luò)層并且引入殘差網(wǎng)絡(luò)避免退化問題,而且將上采樣過程改為在網(wǎng)絡(luò)內(nèi)部進行。這樣可以加強網(wǎng)絡(luò)能力并且減輕計算量,最終得到效果更好的圖像,而且訓(xùn)練次數(shù)要求更低。實驗結(jié)果表明,本文方法從主觀和客觀角度,生成圖像均好于雙三次插值法和SRCNN方法,證明本文提出的改進是有效的。