趙小強(qiáng),宋昭漾
1.蘭州理工大學(xué) 電氣工程與信息工程學(xué)院,蘭州 730050
2.甘肅省工業(yè)過程先進(jìn)控制重點(diǎn)實(shí)驗(yàn)室,蘭州 730050
3.蘭州理工大學(xué) 國家級(jí)電氣與控制工程實(shí)驗(yàn)教學(xué)中心,蘭州 730050
在生活的許多場景中,人們用成像設(shè)備獲得的圖像在某些細(xì)節(jié)方面表現(xiàn)得都不是特別好。為了更好地獲得圖像細(xì)節(jié)信息,圖像超分辨率重建(superresolution,SR)技術(shù)引起研究者的廣泛關(guān)注。它是一種通過使用計(jì)算機(jī)將一幅低分辨率圖像(low resolution,LR)或圖像序列進(jìn)行恢復(fù)得到高分辨率圖像(high resolution,HR)的圖像處理技術(shù)。通過恢復(fù)得到的高分辨率圖像具有更豐富的細(xì)節(jié)信息,這些細(xì)節(jié)信息在實(shí)際應(yīng)用中會(huì)起到非常重要的作用。在1984年,超分辨率重建技術(shù)首次被Tsai等[1]提出。由于圖像超分辨率重建技術(shù)在生活中應(yīng)用非常廣泛并且技術(shù)要求也越來越高,使得圖像超分辨率重建技術(shù)得到快速發(fā)展。目前圖像超分辨率重建技術(shù)主要分為3種方法:基于插值、基于重建和基于學(xué)習(xí)的方法[2]。
基于插值的方法有最近鄰插值、雙線性插值和雙立方插值方法。最近鄰插值方法是用最臨近的點(diǎn)的像素值表示目的像素值,該方法的特點(diǎn)是插值速度快,但是縮放圖像質(zhì)量差,并且圖像容易失真。雙線性插值方法具有低通濾波器的特點(diǎn),使用雙線性插值方法得到的重建圖像質(zhì)量比較好而且圖像較平滑,得到重建圖像的速度也較快,但是使用雙線性插值方法使圖像的高頻分量受損。使用雙立方插值方法得到的圖像質(zhì)量較好,但是計(jì)算量很大,計(jì)算速度也比較慢。目前,雙立方插值方法一般用于圖像的預(yù)處理工作。雖然基于插值的方法在一定程度提高了圖像細(xì)節(jié)信息的清晰度,但是存在較嚴(yán)重的震蕩和過平滑問題。研究人員為了解決震蕩和過平滑問題,提出了基于重建的方法。基于重建的方法是對(duì)圖像建立觀測模型,結(jié)合不同的先驗(yàn)條件進(jìn)行高分辨率圖像的求解。基于重建的方法包括凸集投影(projection onto convex sets,POCS)方法[3]和最大后驗(yàn)概率(maximum a posterior,MAP)方法[4]。凸集投影方法是一種采用迭代的方法,其方法思想比較簡單,加入先驗(yàn)知識(shí)也比較容易,但是該方法計(jì)算過于復(fù)雜,收斂速度也比較慢。最大后驗(yàn)概率方法是將低分辨率圖像序列的配準(zhǔn)問題基于概率進(jìn)行優(yōu)化求解,估計(jì)出高分辨率圖像。最大后驗(yàn)概率方法使用比較靈活,可以加入對(duì)具體問題的具體約束,但是使用最大后驗(yàn)概率方法容易造成圖像平滑和重要細(xì)節(jié)的缺失問題?;谥亟ǖ姆椒ㄐ枰浞值南闰?yàn)知識(shí),隨著放大因子的增大,即使增加低分辨率圖像,也很難對(duì)圖像高頻信息進(jìn)行重建,甚至?xí)斐蓤D像平滑問題?;趯W(xué)習(xí)的方法是對(duì)圖像進(jìn)行特征提取、非線性映射和圖像重建得到高分辨率圖像?;趯W(xué)習(xí)的方法包括流行學(xué)習(xí)、稀疏表示和深度學(xué)習(xí)方法。Chang等[5]將流行學(xué)習(xí)中的局部線性嵌入法應(yīng)用到圖像超分辨率重建中,減少了訓(xùn)練集的數(shù)量,但是容易產(chǎn)生欠擬合和過擬合問題。Yang等[6]將稀疏表示模型(sparse coding for super-resolution,SCSR)應(yīng)用到圖像超分辨率重建,這種方法雖然高效,但是忽略了整體框架優(yōu)化,很難得到最優(yōu)的參數(shù)。
近年來,深度學(xué)習(xí)[7-9]在圖像處理領(lǐng)域中表現(xiàn)出巨大潛力,引起了研究者的廣泛關(guān)注。Wang等[10]將稀疏編碼與深度學(xué)習(xí)結(jié)合應(yīng)用于圖像重建;Dong等[11]提出了基于卷積神經(jīng)網(wǎng)絡(luò)的超分辨率重建(superresolution convolution neural network,SRCNN)方法;在SRCNN[11]算法中,將重建過程中的圖像塊提取、非線性映射和圖像重建3個(gè)操作統(tǒng)一到一個(gè)3層的卷積神經(jīng)網(wǎng)絡(luò)中,實(shí)現(xiàn)了從低分辨率圖像到高分辨率圖像端到端的學(xué)習(xí),使得圖像重建性能得到了很大的提高。但是僅僅用3層網(wǎng)絡(luò)學(xué)到的圖像特征信息有限,沒有充分利用圖像區(qū)域之間信息的關(guān)聯(lián)性,導(dǎo)致在不同放大倍數(shù)的條件下圖像重建的效果差別很大。
為了解決單幀圖像在不同放大倍數(shù)的條件下進(jìn)行超分辨率重建能得到良好的效果,提出了一種Adam優(yōu)化的卷積神經(jīng)網(wǎng)絡(luò)(CNN)超分辨率重建方法。該方法首先使用ISODATA聚類算法對(duì)訓(xùn)練的圖像集進(jìn)行分類處理,減少卷積神經(jīng)網(wǎng)絡(luò)參數(shù)的復(fù)雜度;然后在Adam優(yōu)化的卷積神經(jīng)網(wǎng)絡(luò)中對(duì)輸入圖像進(jìn)行特征提取和非線性映射得到特征映射圖;最后在Adam優(yōu)化的卷積神經(jīng)網(wǎng)絡(luò)中對(duì)特征映射圖進(jìn)行反卷積重建得到多尺度放大的重建圖像。
卷積神經(jīng)網(wǎng)絡(luò)是人工神經(jīng)網(wǎng)絡(luò)的一種。1984年Fukushima首次提出的神經(jīng)認(rèn)知機(jī)就是最原始的卷積神經(jīng)網(wǎng)絡(luò),F(xiàn)ukushima將其運(yùn)用在手寫數(shù)字識(shí)別上面。隨著研究人員對(duì)卷積神經(jīng)網(wǎng)絡(luò)的深入研究和不斷完善,卷積神經(jīng)網(wǎng)絡(luò)被成功應(yīng)用在圖像處理、模式識(shí)別等領(lǐng)域。卷積神經(jīng)網(wǎng)絡(luò)是一個(gè)具有多層的神經(jīng)網(wǎng)絡(luò),主要包括數(shù)據(jù)輸入層、卷積計(jì)算層、池化層和全連接層。數(shù)據(jù)輸入層的作用是對(duì)原始數(shù)據(jù)進(jìn)行預(yù)處理,包括去均值、歸一化、PCA/白化操作等;卷積計(jì)算層對(duì)輸入數(shù)據(jù)進(jìn)行卷積操作,實(shí)現(xiàn)特征提??;池化層用于壓縮數(shù)據(jù)、壓縮參數(shù)數(shù)量和減小過擬合;全連接層對(duì)所有特征都進(jìn)行不同權(quán)重連接,實(shí)現(xiàn)輸出。卷積神經(jīng)網(wǎng)絡(luò)的每一層都包含多個(gè)二維平面,而每個(gè)二維平面都由多個(gè)獨(dú)立的神經(jīng)元組成。卷積神經(jīng)網(wǎng)絡(luò)的卷積計(jì)算層由多個(gè)特征映射平面組成,映射平面上所有神經(jīng)元的權(quán)值相等,由于映射平面上的神經(jīng)元共享權(quán)值,因此減少了網(wǎng)絡(luò)參數(shù)的個(gè)數(shù),降低了網(wǎng)絡(luò)參數(shù)的復(fù)雜度。卷積神經(jīng)網(wǎng)絡(luò)的每一個(gè)卷積計(jì)算層通常后面連接池化層,這種結(jié)構(gòu)對(duì)輸入圖像具有很好的畸變?nèi)萑棠芰?,?duì)平移、比例縮放、傾斜或者其他形式的形變具有高度不變性。圖像重建的卷積神經(jīng)網(wǎng)絡(luò)模型如圖1所示,最左邊是卷積神經(jīng)網(wǎng)絡(luò)的輸入層,然后卷積層對(duì)輸入層的特征圖進(jìn)行卷積計(jì)算,接著對(duì)卷積層的特征圖進(jìn)行池化操作。卷積層和池化層的組合可以在隱藏層中出現(xiàn)很多次,在圖1的模型中只出現(xiàn)兩次。最后池化層的特征圖通過全連接層實(shí)現(xiàn)重建,得到重建圖像。
在圖像超分辨率重建過程中,采用傳統(tǒng)的K-means聚類算法[12]對(duì)訓(xùn)練的圖像集進(jìn)行分類處理可以提升訓(xùn)練效果和減少訓(xùn)練時(shí)間。在K-means聚類算法中,k的值需要預(yù)先人為確定,在整個(gè)算法使用過程中k的值也無法更改,并且當(dāng)訓(xùn)練高維度的數(shù)據(jù)集時(shí),很難準(zhǔn)確估計(jì)k值的大小。
本文采用ISODATA聚類算法代替K-means聚類算法,ISODATA聚類算法可以把某個(gè)樣本數(shù)量過少的類別去除,把某個(gè)樣本數(shù)量過多、分散程度較大的類別分為兩個(gè)子類別。ISODATA聚類算法基本步驟如下:(1)選擇初始聚類中心和參數(shù)指標(biāo),將N個(gè)樣本按照指標(biāo)分配到各個(gè)聚類中心;(2)計(jì)算各類樣本的距離指標(biāo)函數(shù);(3)按照給定的要求,將前一次獲得的聚類集進(jìn)行分裂和合并處理,從而獲得新的聚類中心;(4)重新進(jìn)行迭代計(jì)算,計(jì)算各項(xiàng)指標(biāo),判斷聚類結(jié)果是否符合要求。經(jīng)過多次迭代后,若結(jié)果收斂,則運(yùn)算結(jié)束。ISODATA聚類算法的流程圖如圖2所示,其中K表示預(yù)期聚類的數(shù)目,NC表示當(dāng)前形成的聚類數(shù)目。
在卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練中,使用ISODATA聚類算法對(duì)訓(xùn)練的圖像集進(jìn)行分類處理,將近似的圖像分成一類,減少卷積神經(jīng)網(wǎng)絡(luò)模型的參數(shù)規(guī)模,從而能夠在一定程度上減少卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練時(shí)間,提高卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練效率。
本文采用將合適的低分辨率圖像輸入到卷積神經(jīng)網(wǎng)絡(luò)的方法進(jìn)行特征提取和非線性映射。在卷積神經(jīng)網(wǎng)絡(luò)中每個(gè)神經(jīng)元的作用就是相當(dāng)于只關(guān)注圖像某一個(gè)特征的濾波器,所有神經(jīng)元組合在一起的作用就是相當(dāng)于對(duì)整幅圖像進(jìn)行特征提取。卷積神經(jīng)網(wǎng)絡(luò)對(duì)圖像特征提取是從輸入的圖像中提取圖像塊并把每一個(gè)圖像塊表示成高維向量,這些向量組成第一層的特征映射圖[13]。設(shè)這一層的操作為F1,輸入圖像為Y,則該層操作運(yùn)算表示為:
其中,W1為濾波器,W1的大小為c×f1×f1×n1,c為YCbCr色彩空間中圖像的通道數(shù),f1為濾波器的大小,n1為濾波器的數(shù)量,B1為偏差,“*”表示卷積操作,a服從均勻分布a~U(l,u)。這個(gè)卷積層的含義為運(yùn)用大小為c×f1×f1×n1的濾波器W1作用在輸入的低分辨率圖像上,對(duì)輸入的低分辨率圖像進(jìn)行特征提取,得到n1維特征映射圖。
同樣,非線性映射則是通過卷積神經(jīng)網(wǎng)絡(luò)將第一層的n1維向量映射到第二層的n2維向量中,得到n2維特征映射圖。設(shè)這一層的操作為F2,輸入圖像為F1(Y),則該層操作運(yùn)算表示為:
其中,W2是大小為n1×f2×f2×n2的濾波器,B2是n2維的偏差。這個(gè)卷積層的含義為運(yùn)用大小為n1×f2×f2×n2的濾波器W2作用在第一層的特征映射圖上,進(jìn)行非線性映射,得到n2維特征映射圖。
本文通過設(shè)計(jì)一個(gè)反卷積操作實(shí)現(xiàn)圖像多尺度重建,該操作能夠?qū)Λ@得的特征映射圖進(jìn)行多尺度放大[14]。反卷積[15](deconvolution)又被稱為轉(zhuǎn)置卷積(transposed convolution),因?yàn)榫矸e層的前向傳播過程就是反卷積層的反向傳播過程,卷積層的反向傳播過程就是反卷積層的前向傳播過程。在圖像反卷積操作過程中,當(dāng)步長s大于1時(shí),反卷積可以看作是上采樣操作,并且整個(gè)網(wǎng)絡(luò)的復(fù)雜度也會(huì)降低s2,但是步長也不能過大,因?yàn)椴介L過大圖像的重建質(zhì)量就會(huì)嚴(yán)重下降。在圖像反卷積重建過程中,對(duì)于有重疊區(qū)域的圖像塊采用平均化操作得到最終圖像。平均化操作可視為在特征映射圖上采用均值濾波器。設(shè)這一層的操作為F3,輸入圖像為F2(Y)。本文設(shè)計(jì)的反卷積操作的表達(dá)形式為:
其中,W3是大小為n2×f3×f3×c的濾波器,B3是c維的偏差,“?”表示反卷積操作,σ為采樣因子。步長根據(jù)采樣因子的大小進(jìn)行相應(yīng)的調(diào)整,且步長始終大于1。
對(duì)于CNN網(wǎng)絡(luò)的參數(shù),本文通過構(gòu)建均方誤差函數(shù)作為損失函數(shù),最小化F(Y;θ)與原始圖像X的誤差來估計(jì)網(wǎng)絡(luò)參數(shù)θ={W1,W2,W3,B1,B2,B3}。均方誤差函數(shù)表達(dá)形式為:
其中,n代表訓(xùn)練圖像的數(shù)量。
為了優(yōu)化CNN網(wǎng)絡(luò),更新網(wǎng)絡(luò)參數(shù)θ,本文采用Adam優(yōu)化算法[16]代替隨機(jī)梯度下降(stochastic gradient descent,SGD)算法來最小化損失函數(shù)。隨機(jī)梯度下降算法保持單一的學(xué)習(xí)率(alpha)更新所有的權(quán)重,學(xué)習(xí)率在網(wǎng)絡(luò)訓(xùn)練過程中并不會(huì)改變。而Adam優(yōu)化算法通過計(jì)算梯度的一階矩估計(jì)和二階矩估計(jì)為不同的參數(shù)設(shè)計(jì)獨(dú)立的自適應(yīng)性學(xué)習(xí)率。Adam算法有很高的計(jì)算效率和較低的內(nèi)存需求,并且Adam算法梯度的對(duì)角縮放(diagonal rescaling)具有不變性。更新網(wǎng)絡(luò)參數(shù)過程表示為:
其中,gt是均方誤差函數(shù)L(θ)對(duì)θ的梯度,mt是對(duì)梯度的一階矩估計(jì),nt是對(duì)梯度的二階矩估計(jì),m?t是對(duì)mt的偏差修正,n?t是對(duì)nt的偏差修正,矩估計(jì)的指數(shù)衰減速率u為0.9,v為0.99,步長η為0.001,數(shù)值穩(wěn)定的小常數(shù)ε為10-8,Δθt是計(jì)算的θt更新值,θt+1為t+1時(shí)刻的θ值,即將θt和 Δθt的值求和應(yīng)用到θt+1。Adam優(yōu)化算法首先對(duì)參數(shù)向量、一階矩向量和二階矩向量進(jìn)行初始化。然后循環(huán)迭代地更新各個(gè)部分,使參數(shù)θ收斂。即時(shí)間步t加1,更新偏差的一階矩估計(jì)和二階矩估計(jì),接著計(jì)算一階矩估計(jì)的偏差修正和二階矩估計(jì)的偏差修正,再更新目標(biāo)函數(shù)在該時(shí)間步上對(duì)參數(shù)θ所求的梯度,最后再用以上計(jì)算出來的值更新模型的參數(shù)θ?;贏dam優(yōu)化的CNN超分辨率重建操作圖如圖3所示,首先對(duì)訓(xùn)練集進(jìn)行ISODATA聚類,將人臉的圖像分為一類,然后將分類后的訓(xùn)練圖像輸入到神經(jīng)網(wǎng)絡(luò),訓(xùn)練神經(jīng)網(wǎng)絡(luò)參數(shù),最后將重建的LR圖像輸入到訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)進(jìn)行特征提取、非線性映射和反卷積操作得到重建圖像。
Fig.3 Operation diagram of CNN super resolution reconstruction based onAdam optimization圖3 基于Adam優(yōu)化的CNN超分辨率重建操作圖
本文的實(shí)驗(yàn)在Intel?Pentium?CPU3550M平臺(tái)上進(jìn)行,主頻為2.30 GHz,內(nèi)存為4 GB,其中卷積神經(jīng)網(wǎng)絡(luò)在深度學(xué)習(xí)框架Caffe上搭建,實(shí)驗(yàn)測試在Matlab2014(a)中進(jìn)行。
在實(shí)驗(yàn)中,訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)的圖像集為常用的91幅自然圖像,運(yùn)用Set5和Set14測試集對(duì)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行測試。
實(shí)驗(yàn)中的參數(shù)設(shè)置:f1=9,f2=1,f3=5,n1=64,n2=32,u=0.9,v=0.99,η=0.001,ε=10-8,一階矩mt和二階矩nt初始化設(shè)置為0,一階矩的偏差修正m?t和二階矩的偏差修正n?t初始化設(shè)置為0。
為了客觀評(píng)估使用本文方法獲得的重建圖像的質(zhì)量,使用經(jīng)典的Bicubic算法、SRCNN算法和FSRCNN(fast super-resolution convolutional neural network)算法對(duì)相同的圖像進(jìn)行超分辨率重建并進(jìn)行對(duì)比。經(jīng)典的Bicubic算法是基于插值的超分辨率重建算法,一般用于圖像超分辨率重建的預(yù)處理工作。SRCNN算法是基于深度學(xué)習(xí)的超分辨率重建算法,在圖像應(yīng)用中具有空間平移、旋轉(zhuǎn)和縮放不變性,且通過權(quán)值共享大大減少了所需要訓(xùn)練的參數(shù)。FSRCNN算法是SRCNN的改進(jìn)算法,F(xiàn)SRCNN算法使用了更小的卷積核縮減了參數(shù)計(jì)算量并加快了訓(xùn)練速度。
本文實(shí)驗(yàn)采用峰值信噪比(peak signal to noise ratio,PSNR)來評(píng)價(jià)各種算法的重建效果。
其中,MSE表示當(dāng)前圖像X和參考圖像Y的均方誤差(mean square error);H和W分別為圖像的高度和寬度;n為每像素的比特?cái)?shù),一般取8,即像素灰階數(shù)為256;PSNR的單位是dB,數(shù)值越大表示失真越小。
實(shí)驗(yàn)采用放大倍數(shù)2、3、4分別獲得本文方法與Bicubic算法[17]、SRCNN算法[11]和FSRCNN算法[18]重建圖像的PSNR值,如表1~表3所示。
Table 1 PSNRvalues of reconstructed images with magnification factor of two表1 放大倍數(shù)為2的重建圖像的PSNR值 dB
Table 2 PSNRvalues of reconstructed images with magnification factor of three表2 放大倍數(shù)為3的重建圖像的PSNR值 dB
Table 3 PSNRvalues of reconstructed images with magnification factor of four表3 放大倍數(shù)為4的重建圖像的PSNR值 dB
從表1~表3中可以分析出,當(dāng)放大倍數(shù)為2時(shí),使用本文方法得到的重建圖像質(zhì)量差于使用Bicubic算法得到的重建圖像質(zhì)量,這是因?yàn)锽icubic算法是基于插值的方法,放大倍數(shù)越小,插值容易且對(duì)圖像的影響較小。而SRCNN算法、FSRCNN算法和本文方法是基于學(xué)習(xí)的方法,圖像上下文數(shù)據(jù)信息缺少關(guān)聯(lián)。當(dāng)放大倍數(shù)為3和4時(shí),使用本文方法得到的重建圖像質(zhì)量優(yōu)于使用另外3種算法得到的重建圖像質(zhì)量。在放大倍數(shù)為3的情況下,使用本文方法得到的重建圖像質(zhì)量最好,使用本文方法比使用Bicubic算法獲得的重建圖像的PSNR值平均提高了1.87 dB,比SRCNN算法得到的重建圖像的PSNR值平均提高了0.04 dB,比FSRCNN算法得到的重建圖像的PSNR值平均提高了0.013 dB。
在放大倍數(shù)為3的情況下,對(duì)Set5和Set14測試集使用本文方法和其他3種算法分別重建的圖像結(jié)果如圖4、圖5所示。(a)圖為使用雙立方插值(bicubic interpolation)重建算法得到的圖像,(b)圖為使用基于CNN的超分辨率(SRCNN)重建算法得到的圖像,(c)圖為使用FSRCNN算法得到的圖像,(d)圖為使用本文方法得到的圖像。在Set5中的蝴蝶重建圖像對(duì)比圖中進(jìn)行觀察,如圖4所示,(d)圖比(a)、(b)、(c)圖重建效果更好,細(xì)節(jié)表現(xiàn)更豐富,蝴蝶翅膀上的花斑表現(xiàn)得很清晰。在Set14中的狒狒重建圖像對(duì)比圖中進(jìn)行觀察,如圖5所示,(d)圖比(a)、(b)、(c)圖在紋理細(xì)節(jié)區(qū)域表現(xiàn)得更好,狒狒的毛發(fā)看起來更清晰,沒有模糊感。在Set5、Set14測試集其他的圖像中也可以得到同樣的結(jié)果。因此,對(duì)同一幅圖像進(jìn)行超分辨率重建時(shí),與Bicubic算法相比,使用本文方法得到的圖像更清晰,細(xì)節(jié)表現(xiàn)得更豐富;與FSRCNN和SRCNN算法相比,在圖像紋理信息豐富的區(qū)域,使用本文方法得到的重建效果更好。
本文為了解決單幀圖像能夠在不同放大倍數(shù)的條件下得到更好的超分辨率重建效果,提出了一種Adam優(yōu)化的卷積神經(jīng)網(wǎng)絡(luò)超分辨率重建方法。該方法首先使用ISODATA聚類算法對(duì)訓(xùn)練的圖像集進(jìn)行分類處理,然后在Adam優(yōu)化的卷積神經(jīng)網(wǎng)絡(luò)中對(duì)輸入圖像進(jìn)行特征提取和非線性映射得到特征映射圖,最后在Adam優(yōu)化的卷積神經(jīng)網(wǎng)絡(luò)中對(duì)特征映射圖進(jìn)行反卷積重建得到多尺度放大的重建圖像。通過實(shí)驗(yàn)驗(yàn)證使用本文方法在不同放大倍數(shù)條件下的重構(gòu)效果優(yōu)于傳統(tǒng)算法,在視覺效果上有較好的表現(xiàn)。
Fig.4 Butterfly reconstruction image in Set 5 image圖4 Set 5中的蝴蝶重建對(duì)比圖
Fig.5 Baboon reconstruction image in Set 14 image圖5 Set 14中的狒狒重建對(duì)比圖