楊 悅, 謝 辛, 何 蕾, 胡 敏
(1.合肥工業(yè)大學(xué) 數(shù)學(xué)學(xué)院,安徽 合肥 230601; 2.重慶大學(xué) 計(jì)算機(jī)學(xué)院,重慶 400044;3.合肥工業(yè)大學(xué) 計(jì)算機(jī)與信息學(xué)院,安徽 合肥 230601)
近年來,由于計(jì)算機(jī)科學(xué)的發(fā)展蒸蒸日上,越來越多的領(lǐng)域如生物醫(yī)學(xué)、遙感測(cè)繪和視頻通訊等都在廣泛應(yīng)用數(shù)字圖像處理技術(shù),圖像超分辨率(super-resolution,SR)重建是其中的一個(gè)熱門研究分支,已被大規(guī)模地運(yùn)用于物體檢測(cè)、人臉識(shí)別和行人檢測(cè)等重要領(lǐng)域。圖像超分辨率重建是從多幅低分辨率(low-resolution,LR)圖像中重建出一幅高分辨率(hgih-resolution,HR)圖像。目前圖像超分辨率的主要方法[1]有基于插值、基于重建和基于學(xué)習(xí)的方法。
基于插值的方法利用圖像空間域中鄰近像素點(diǎn)的像素值確定待插值點(diǎn)的像素值,最常見的有最近鄰插值、雙線性插值與雙三次插值[2]。文獻(xiàn)[3]提出了一種結(jié)合邊緣擬合算子的空間非線性插值算法模型;文獻(xiàn)[4]提出了一種基于小波的圖像重建方法。基于插值的圖像超分辨率重建方法便于處理,但是由于沒有充足的先驗(yàn)知識(shí)和圖像的觀測(cè)模型,重建后的圖像邊緣模糊,且整體視覺效果不佳[5]。
基于重構(gòu)的超分辨率重建方法從構(gòu)建圖像的退化模型出發(fā),把多幅低分辨率圖像作為一致性約束,再結(jié)合低分辨率圖像的先驗(yàn)知識(shí)進(jìn)行超分辨率重建,該方法主要有頻域法和空域法。文獻(xiàn)[6]最早利用傅里葉變換的平移特性提出頻域法。由于頻域法缺乏充分的先驗(yàn)知識(shí),目前最流行的是空域法。經(jīng)典的空域法有:非均勻插值法[7]、凸影投射法[8]和最大后驗(yàn)概率[9]。
基于學(xué)習(xí)的超分辨率重建方法通過機(jī)器學(xué)習(xí)從大量相對(duì)應(yīng)的低分辨率與高分辨率圖像組之間得到映射關(guān)系,再基于這種映射關(guān)系輸入低分辨率圖像預(yù)測(cè)得到重建的高分辨率圖像[10]。文獻(xiàn)[11]提出了一種基于樣本學(xué)習(xí)的圖像超分辨率重建算法;文獻(xiàn)[12]提出基于稀疏表示的圖像超分辨率算法。近年來,深度學(xué)習(xí)在圖像超分辨率重建領(lǐng)域表現(xiàn)出了巨大的潛力[13],文獻(xiàn)[14]首次利用三層卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)在低分辨率圖像LR和高分辨率圖像HR之間建立了端到端映射的輕量級(jí)超分辨率模型;文獻(xiàn)[15]通過結(jié)合卷積神經(jīng)網(wǎng)絡(luò)和殘差網(wǎng)絡(luò)[16]建立了深度達(dá)20層的卷積網(wǎng)絡(luò)結(jié)構(gòu)VDSR。然而網(wǎng)絡(luò)深度的增加帶來網(wǎng)絡(luò)參數(shù)增加、梯度彌散和計(jì)算運(yùn)行成本增大等問題。此后文獻(xiàn)[17]將遞歸神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)[18]應(yīng)用于超分辨率重建中,大幅減少了網(wǎng)絡(luò)參數(shù),提高了重建效率;文獻(xiàn)[19]提出使用淺通道和深通道分別重構(gòu)圖像的輪廓信息和紋理細(xì)節(jié)。
上述基于深度學(xué)習(xí)的超分辨率模型均屬于原始圖像輸入網(wǎng)絡(luò)前需經(jīng)過插值預(yù)處理把圖像放大到規(guī)定目標(biāo)尺寸的基于插值預(yù)處理的模型[20],且均使用雙三次插值進(jìn)行預(yù)處理,導(dǎo)致輸入卷積神經(jīng)網(wǎng)絡(luò)前的預(yù)處理圖像過度平滑和模糊,重建后的圖像易丟失一些細(xì)節(jié)以至于邊緣過于平滑。
為了不增加網(wǎng)絡(luò)深度且能夠提高網(wǎng)絡(luò)性能,如圖1所示,本文以輕量級(jí)網(wǎng)絡(luò)基于卷積神經(jīng)網(wǎng)絡(luò)的超分辨率重建算法(super-resolution convolutional neural net work,SRCNN)算法[21]為模型,采用Newton-Thiele型混合連分式插值函數(shù)[22]對(duì)輸入的原始低分辨率圖像進(jìn)行插值預(yù)處理,以達(dá)到充分利用低分辨率圖像紋理細(xì)節(jié)特征的目的。因?yàn)镾RCNN算法在重建與優(yōu)化的過程中采用易于收斂到局部最優(yōu)的隨機(jī)梯度下降法(stochastic gradient descent,SGD)[23]最小化損失函數(shù),所以本文利用Radam自適應(yīng)優(yōu)化算法[24]和余弦衰減法[25]收斂損失函數(shù),提高靈敏度避免產(chǎn)生較大的震蕩,進(jìn)一步提升重建圖像的質(zhì)量。
圖1 超分辨率重建的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
把原始低分辨率圖像輸入到三層卷積神經(jīng)網(wǎng)絡(luò)之前,對(duì)其進(jìn)行插值預(yù)處理到與高分辨率圖像同樣的尺寸。在SRCNN算法中,預(yù)處理時(shí)采用簡單的低通濾波器雙三次插值函數(shù),在插值時(shí)可能會(huì)抑制高頻成分丟失一些重要的紋理細(xì)節(jié),以致于重建后的圖像邊緣產(chǎn)生較多的模糊或出現(xiàn)階梯失真現(xiàn)象??紤]到雙三次插值函數(shù)不足以很好地恢復(fù)圖像的紋理特征,因此本文使用非線性插值函數(shù)即Newton-Thiele型混合連分式插值函數(shù),插值后的圖像不僅能夠保留更多的高頻紋理細(xì)節(jié)[26],而且重建后的效果圖其邊緣紋理會(huì)更加逼真,也更能符合人類的視覺機(jī)制。
Newton-Thiele型插值函數(shù)是將Newton插值多項(xiàng)式與Thiele型插值連分式混合而成的。
設(shè)
i=0,…,m;j=0,…,n}。
令
φNT[xp,…,xq,xi,xj;yk]=
φNT[xp,…,xq;yk,yl]=
φNT[xp,…,xq;yr,…,ys,yk,yl]=
(yl-yk)/{φNT[xp,…,xq;yr,…,ys,yl]-
φNT[xp,…,xq;yr,…,ys,yk]}。
稱由上式定義的φNT[xp,…,xq;yr,…,ys]為函數(shù)f(x,y)在網(wǎng)格點(diǎn){xp,…,xq}×{yr,…,ys}上的Newton-Thiele型混合差商。
(x-x0)…(x-xm-1)Am(y),
Ai(y)=φNT[x0,…xi;y0]+
其中,φNT[x0,…,xi;y0,…,yj]為Newton-Thiele型混合差商。
特征提取[21]是從低分辨率圖像中提取重疊的圖像塊,并將每個(gè)圖像塊表示為一個(gè)高維向量,類似于傳統(tǒng)方法中用一組提前訓(xùn)練好的基,如PCA、DCT等[27]表示這些圖像塊,它們由一組特征圖組成, 特征圖數(shù)量等于向量的維度。
在卷積神經(jīng)網(wǎng)絡(luò)中,本文的第1層操作在形式上可以表示為:
F1(Y)=max(0,W1*Y+B1),
其中:W1為濾波器;B1為偏置項(xiàng);*表示卷積操作;W1為大小是c×f1×f1的n1個(gè)濾波器,c為輸入圖像的通道數(shù)量,f1為濾波器的空間大小,n1為濾波器的數(shù)量。即W1對(duì)圖像執(zhí)行n1次卷積,得到n1個(gè)特征圖,卷積核大小均為c×f1×f1;B1為一個(gè)與濾波器相關(guān)的n1維向量。濾波后再使用線性糾正單元(max(0,x),ReLu)[28]。
在第1層卷積操作中, 本文對(duì)每個(gè)圖像塊提取了n1個(gè)特征。 而在第2層中, 本文利用卷積層把每個(gè)n1維向量非線性地映射到另一個(gè)n2維向量上,輸出的每一個(gè)n2維向量都相當(dāng)于重建的高分辨率圖像塊。第2層的操作可表示為:
F2(Y)=max(0,W2*F1(Y)+B2),
其中:W2對(duì)應(yīng)了n2個(gè)卷積核大小為n2×f2×f2的濾波器;B2為n2維的偏差。
預(yù)測(cè)的高分辨率重疊圖像塊通常以平均的方式來生成最終的完整圖像[29]。平均這一步驟可以看作是在一組特征圖上一個(gè)預(yù)定義的濾波器。第3層的操作可表示為:
F3(Y)=W3*F2(Y)+B3,
其中:W3為一個(gè)大小是n2×f3×f3×c的線性濾波器;B3為c維的偏差。
為了學(xué)習(xí)端到端的映射函數(shù)F,本文通過最小化損失函數(shù)來估計(jì)卷積神經(jīng)網(wǎng)絡(luò)參數(shù)Θ={W1,W2,W3,B1,B2,B3},本文采用SRCNN算法中的均方誤差(mean square error,MSE)作為損失函數(shù),其形式如下:
其中:n為訓(xùn)練樣本的數(shù)量;Yi為LR;Xi為HR;i為遍歷整個(gè)訓(xùn)練集的圖像的序號(hào)。
在訓(xùn)練中SRCNN算法使用SGD算法收斂損失函數(shù)。為了減少震蕩并提高優(yōu)化效率,SGD算法每經(jīng)過數(shù)輪迭代就更換一個(gè)較小的學(xué)習(xí)率。手動(dòng)調(diào)節(jié)學(xué)習(xí)率工作量較大且很難快速找到當(dāng)前模型環(huán)境下的最佳值。若設(shè)置的學(xué)習(xí)率過小,會(huì)使得優(yōu)化進(jìn)程緩慢;若學(xué)習(xí)率過大,會(huì)導(dǎo)致震蕩且難以逼近最優(yōu)解甚至逐漸遠(yuǎn)離最優(yōu)解[30]。
為了解決上述問題,本文利用余弦衰減法,通過余弦函數(shù)逐漸降低學(xué)習(xí)率,即
圖2 余弦衰減圖
同時(shí),本文采用通過控制自適應(yīng)率的方差動(dòng)態(tài)地調(diào)整梯度下降方向的Radam優(yōu)化算法,即
ρ∞←2/(1-β2)-1,
gt←θt-1f(θt-1),
mt←β1mt-1+(1-β1)gt,
當(dāng)ρ∞>4時(shí),則
當(dāng)ρ∞≤4時(shí),則使用非自適應(yīng)動(dòng)量更新參數(shù),即
通過大量的實(shí)驗(yàn)驗(yàn)證了本文提出的超分辨率模型性能更優(yōu)。受SRCNN算法啟發(fā),為了均衡卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練速度與性能,實(shí)驗(yàn)中僅使用最基本的3層卷積網(wǎng)絡(luò),即卷積神經(jīng)網(wǎng)絡(luò)層所對(duì)應(yīng)的濾波器的尺寸大小分別為f1=9,f2=1,f3=5,所對(duì)應(yīng)的濾波器數(shù)量為n1=64,n2=32。本算法采用標(biāo)準(zhǔn)的91幅圖像[10]和BSDS300[31]作為實(shí)驗(yàn)的訓(xùn)練集,每一層的權(quán)重均使用Xavier均勻分布[32]進(jìn)行初始化,并把每一層的偏置項(xiàng)初始化都設(shè)置為0,共迭代2×105次,epoch=1 000,batch-size=128,數(shù)據(jù)集大小為35 230。
本文依次使用雙三次插值[2]、基于稀疏表示的圖像超分辨率算法、SRCNN算法、基于局部樣本自相似性的圖像和視頻放大算法[33]、通過自適應(yīng)稀疏域選擇和自適應(yīng)正則化實(shí)現(xiàn)圖像的去模糊和超分辨率[34]重建Set5和Set14測(cè)試集[35]進(jìn)行對(duì)比實(shí)驗(yàn),并使用峰值信噪比(peak signal to noise ratio,PSNR)和結(jié)構(gòu)相似性(structural similarity index,SSIM)作為衡量圖像質(zhì)量的指標(biāo)。超分辨率重建方法在Set14和Set5測(cè)試集上的客觀測(cè)評(píng)PSNR和SSIM結(jié)果對(duì)比見表1、表2所列,本文的方法比傳統(tǒng)的超分辨率重建方法有明顯的優(yōu)勢(shì),其中在Set5測(cè)試集上的平均PSNR值和SSIM值分別為36.45 dB和0.95,比同樣使用卷積神經(jīng)網(wǎng)絡(luò)的SRCNN算法高出4.74 dB和0.02。
表1 在Set14測(cè)試集上×2的PSNR和SSIM
表2 在Set5測(cè)試集上×2的PSNR和SSIM
采用雙三次插值預(yù)處理低分辨率圖像的SRCNN算法,分別使用SGD算法和Radam算法進(jìn)行優(yōu)化的PSNR迭代效果,如圖3所示。從圖3可以看出,使用SGD算法收斂時(shí)引起的震蕩很大,而Radam自適應(yīng)優(yōu)化算法收斂時(shí)則非常平穩(wěn)。
圖3 Set14上SGD算法和Radam算法重建效果對(duì)比
注:PSNR的單位為dB。
注:PSNR的單位為dB。
本文算法與其他算法重建效果對(duì)比如圖4所示。圖4中:圖4a為原圖;圖4b為局部放大原圖;圖4c為雙三次插值算法結(jié)果;圖4d為基于局部樣本自適應(yīng)算法結(jié)果;圖4e為基于稀疏表示結(jié)果;圖4f為基于自適應(yīng)稀疏和自適應(yīng)正則化算法結(jié)果;圖4g為基于卷積神經(jīng)網(wǎng)絡(luò)算法結(jié)果;圖4h為本文算法結(jié)果。
從圖4中可以看出,本文算法比其他算法能夠重建出更加清晰且擁有豐富分明紋理細(xì)節(jié)特征的高分辨率圖像。
不僅如此,放大后的SRCNN算法重建圖像邊緣處(圖4中蝴蝶翅膀條紋)有明顯的振鈴模糊現(xiàn)象,但是本文算法很好地改善了這些問題,并且在人的視覺效果上更為突出。
圖4 本文算法與其他算法重建效果對(duì)比×2
本文提出了一種連分式結(jié)合卷積神經(jīng)網(wǎng)絡(luò)的超分辨率重建方法,以解決基于卷積神經(jīng)網(wǎng)絡(luò)的超分辨率算法在插值預(yù)處理原始低分辨率圖像時(shí)損失一些重要的紋理細(xì)節(jié)的問題。本文在預(yù)處理時(shí)使用Newton-Thiele型混合連分式插值函數(shù),引入更多的非線性因素,突破了目前深度學(xué)習(xí)超分辨率領(lǐng)域采用雙三次插值函數(shù)預(yù)處理圖像的局限性,分析了在網(wǎng)絡(luò)重建與優(yōu)化過程中使用隨機(jī)梯度下降法的不足之處,并采用能夠在收斂時(shí)根據(jù)自適應(yīng)率的方差動(dòng)態(tài)地更新調(diào)整梯度方向的Radam優(yōu)化算法和通過余弦函數(shù)來逐漸降低學(xué)習(xí)率的余弦衰減法以最小化損失函數(shù)。實(shí)驗(yàn)結(jié)果表明,本文方法可以恢復(fù)更豐富的紋理細(xì)節(jié)特征,相比于其他傳統(tǒng)方法在客觀評(píng)價(jià)和主觀視覺效果上均有明顯的優(yōu)勢(shì)。除此之外,本文方法能夠有效避免SRCNN算法重建的圖像紋理細(xì)節(jié)處出現(xiàn)模糊失真的振鈴現(xiàn)象,重建出更高質(zhì)量的高分辨率圖像。后續(xù)工作可以進(jìn)一步探索加深網(wǎng)絡(luò)的深度來提取更多不同層次的圖像特征,以及改進(jìn)優(yōu)化方法和參數(shù)初始化設(shè)置來提高完善網(wǎng)絡(luò)的速度與性能。