史國(guó)川,龔連友
(陸軍軍官學(xué)院 計(jì)算中心,安徽 合肥 230031)
作為數(shù)字圖像處理領(lǐng)域的熱點(diǎn)之一,圖像的超分辨率[1-2](super resolution,SR)重建一直是廣大研究者的重點(diǎn)研究方向。由于目前軟硬件等條件的限制,得到的圖像分辨率難以滿足實(shí)際應(yīng)用中的要求,這就需要對(duì)低分辨率圖像進(jìn)行SR重建以此來(lái)提高圖像的分辨率。Freeman等[3]提出的基于實(shí)例進(jìn)行字典訓(xùn)練的重建算法是其中的經(jīng)典算法。該算法通過(guò)對(duì)圖像塊進(jìn)行約束,建立高低分辨率圖像塊間的對(duì)應(yīng)關(guān)系,但是該過(guò)程需要訓(xùn)練的數(shù)據(jù)量大、耗時(shí)長(zhǎng),而且在重建過(guò)程中還需要大量時(shí)間對(duì)數(shù)據(jù)庫(kù)進(jìn)行搜索匹配,因此該算法效率不高。Yang等[4]利用稀疏表示對(duì)圖像進(jìn)行SR重建。該算法首先對(duì)圖像進(jìn)行稀疏表示,然后選擇一組特定的稀疏基,使得不同分辨率的圖像塊能用相同的稀疏表示對(duì)其進(jìn)行描述。該算法明顯降低了算法重建過(guò)程中的耗時(shí),并且重構(gòu)圖像的分辨率得到了提高;但是沒(méi)有對(duì)字典訓(xùn)練過(guò)程進(jìn)行優(yōu)化,因此在字典訓(xùn)練階段仍需大量時(shí)間。奇異值分解[5](K-SVD)作為圖像SR重建領(lǐng)域經(jīng)典的字典訓(xùn)練算法之一,因其較好的重建結(jié)果,自提出以來(lái)得到了廣泛的應(yīng)用。但是K-SVD算法存在字典訓(xùn)練耗時(shí)長(zhǎng),重建恢復(fù)的圖像分辨率不高等缺點(diǎn)。Leslie等[6]提出一種改進(jìn)的復(fù)合字典訓(xùn)練和系數(shù)復(fù)用算法,但并沒(méi)有將其應(yīng)用到圖像的超分辨率重建中。
在上述研究的基礎(chǔ)上,文中提出一種基于系數(shù)復(fù)用和稀疏表示[7-14]的改進(jìn)K-SVD字典訓(xùn)練算法,在圖像的稀疏表示以及字典更新過(guò)程中對(duì)算法進(jìn)行優(yōu)化改進(jìn),在明顯降低算法耗時(shí)的同時(shí)進(jìn)一步提高了重建超分辨率圖像的質(zhì)量。
研究表明,可以通過(guò)對(duì)一幅高分辨率(HR)圖像進(jìn)行下采樣和模糊處理來(lái)獲取其低分辨率(LR)圖像。當(dāng)使用狄拉克函數(shù)δ作為模糊核時(shí),直接對(duì)HR圖像進(jìn)行下采樣處理即可得到其低分辨率圖像,而不用再進(jìn)行模糊處理,因此,可以將超分辨率重建問(wèn)題轉(zhuǎn)化為圖像插值問(wèn)題。作為一個(gè)典型的逆向問(wèn)題,圖像超分辨率重建可以用如下公式進(jìn)行描述:
y=SBx+v
(1)
其中,x表示原始HR圖像;B表示模糊算子;S表示下采樣算子;v表示添加的噪聲;y表示已獲的LR圖像。
將B定義為一個(gè)矩陣,同時(shí)令v=0,代入式(1)中有y=Sx,因此可以認(rèn)為y是通過(guò)對(duì)x進(jìn)行下采樣得到的。
通過(guò)式(1)對(duì)x進(jìn)行重建是一個(gè)非唯一解的逆向問(wèn)題,在稀疏表示過(guò)程中,假定在利用字典(D)約束后圖像在某些域內(nèi)是稀疏的,即在公式x≈Dα中,矩陣α中的絕大多數(shù)元素都是接近于0的。因而稀疏表示的正則化矩陣[15-16]可以表示為R(x)=‖α‖0。由于求解過(guò)程是非凸的,最優(yōu)化的稀疏表示結(jié)果難以得到,可以采用凸處理對(duì)其進(jìn)行近似求解,公式如下:
(2)
由于求解α過(guò)程只考慮了低分辨率情況,而圖像SR重建需要確定高低分辨率圖像在高低分辨率過(guò)完備字典的相同稀疏表示,因此DCT就成為利用稀疏表示進(jìn)行圖像SR重建的重要內(nèi)容。
K-SVD算法最先由Aharon[5]等提出,該算法在確保不丟失初始字典所有信息的條件下有效減少了生成的過(guò)完備字典[15-16](DCT)中原子的數(shù)量。
字典訓(xùn)練實(shí)際上是對(duì)一個(gè)問(wèn)題進(jìn)行優(yōu)化求解,可以用公式表示如下:
‖αi‖0≤t0
(3)
在接收到輸入信號(hào)之后,開始進(jìn)行字典訓(xùn)練,在訓(xùn)練過(guò)程中,需要確定過(guò)完備字典D與其稀疏表示A。但是,在實(shí)際操作中對(duì)兩個(gè)未知參數(shù)同時(shí)進(jìn)行優(yōu)化求解是非常復(fù)雜的,因此假設(shè)已經(jīng)確定了字典D,式(3)的優(yōu)化問(wèn)題就可以轉(zhuǎn)化成求解訓(xùn)練樣本集合X的稀疏表示矩陣A,然后利用Aharon提出的追蹤算法確定稀疏表示的分解因子。
(4)
(5)
(6)
由于矩陣AAT規(guī)模龐大,用常規(guī)方法求解計(jì)算量大,耗時(shí)長(zhǎng),而利用XAT=DAAT對(duì)其進(jìn)行迭代求解,在明顯減小迭代次數(shù)的同時(shí)可以得到一個(gè)理想的近似解。需要注意的是,K-SVD算法不僅對(duì)D中的原子進(jìn)行了更新,而且將A中所有不為0的系數(shù)與之相乘。因此,K-SVD在字典更新階段對(duì)D和A同時(shí)進(jìn)行了更新。根據(jù)K-SVD算法的特點(diǎn),改進(jìn)算法的目的是在保證A的完整性條件下找到同時(shí)對(duì)D和A進(jìn)行更新的方法,根據(jù)式(7)對(duì)D和A進(jìn)行優(yōu)化。
(7)
在滿足條件A?M=0的同時(shí)還要保證A中所有0系數(shù)的完整性,其中A?M表示兩個(gè)相同大小矩陣之間的乘法,M表示只含0、1元素的掩碼矩陣,M={|A|=0},其值由式(8)確定。
(8)
求解過(guò)完備字典是一個(gè)非凸問(wèn)題,直接計(jì)算難度較大。首先,將DA分解成秩為1的矩陣之和,然后代入式(7)中得到:
n,mj?αj=0
(9)
基于式(10)中的SVD矩陣,采用塊坐標(biāo)下降法對(duì)(dj,αj),j=1,2,…,n進(jìn)行逐項(xiàng)優(yōu)化。
(10)
傳統(tǒng)K-SVD字典訓(xùn)練算法通常只進(jìn)行一次(j=1,2,…,n)字典更新計(jì)算,而改進(jìn)算法為了獲得更接近式(7)所描述的整體解決方案,會(huì)進(jìn)行多次(j=1,2,…,n)更新計(jì)算。
盡管改進(jìn)算法在某種程度上增加了計(jì)算復(fù)雜度,但是這種新增的復(fù)雜度在整個(gè)字典更新過(guò)程中幾乎可以忽略不計(jì),這是因?yàn)樵诮^大多數(shù)情況下,字典訓(xùn)練的計(jì)算量集中于稀疏編碼階段,即表明所增加的額外計(jì)算量在整體運(yùn)行時(shí)幾乎保持不變,因此改進(jìn)前后的K-SVD算法在計(jì)算復(fù)雜度方面基本相等。
假設(shè)給定一個(gè)已經(jīng)更新的字典,K-SVD算法能夠?qū)ζ溥M(jìn)行搜索,然后根據(jù)得到的稀疏表示結(jié)果對(duì)數(shù)據(jù)進(jìn)行訓(xùn)練。如果選擇先前計(jì)算的表示,使目標(biāo)函數(shù)保持在相同的高度。這表明,可以使用給定的表示,作為追蹤階段的良好開始,然而,這并不意味著能夠改進(jìn)結(jié)果。
利用該方法對(duì)追蹤算法中的系數(shù)進(jìn)行初始化時(shí),可能會(huì)陷入各種松弛或貪心的稀疏編碼[17-18]方法中。文中專注于貪心追蹤算法中一個(gè)特定的變量,它建立在CoSaMP[10]和Subspace Pursuit[11]的追蹤算法之上,與這些方法不同的是,改進(jìn)算法中有k/3個(gè)最大系數(shù)的初始值來(lái)自于前期的追蹤階段,然后像CoSaMP和SP算法一樣進(jìn)行一個(gè)系數(shù)增大和修剪的過(guò)程,這就是正交匹配追蹤中的系數(shù)復(fù)用算法(CoefROMP)。
CoefROMP算法流程如下:
輸入:D,x,α0(初始值)和k(目標(biāo)基數(shù))。
初始化(n=0):從α0中取最大的k/3個(gè)元素,T0:=(|α0|,k/3);r0:=x-DT0αT0;ε0:=‖r0‖2。
從n=1開始進(jìn)行如下迭代計(jì)算,直到達(dá)到最大迭代次數(shù)結(jié)束循環(huán):
(1)從預(yù)計(jì)剩余中取值最大的k/3個(gè)元素,Sn:=(|DTrn-1|,k/3);
(5)更新稀疏表示:αn:=(DTn)+x;
(6)更新剩余值:rn:=x-DTnαn,εn:=‖rn‖2;
(7)當(dāng)滿足條件εn>εn-1時(shí),退出循環(huán)。
輸出:更新后的稀疏表示α。
實(shí)驗(yàn)中選擇了一組被廣泛用于字典訓(xùn)練的圖片集合作為標(biāo)準(zhǔn)圖像庫(kù),從這些圖片中提取50 000個(gè)圖像塊用于訓(xùn)練更新。減去所有圖像塊的平均值,用以消除需要使用的數(shù)據(jù)矢量的常數(shù)偏移系數(shù),稀疏表示的質(zhì)量高低取決于字典中原子的數(shù)目n和其中的非0系數(shù)數(shù)量k。假設(shè)信號(hào)的維度為d,那么有n=3d,k=round(d/10),同時(shí),利用訓(xùn)練樣本得到的數(shù)據(jù)對(duì)字典進(jìn)行初始化。
實(shí)驗(yàn)在Matlab R2014a,CUP為雙核2.3 GHz,內(nèi)存為4 GB,操作系統(tǒng)為Windows7的手提計(jì)算機(jī)上進(jìn)行。將傳統(tǒng)的K-SVD作為基準(zhǔn)算法,采用8×8的圖像塊(d=64)和64×192大小的字典,因此,稀疏表示基數(shù)k=6。通過(guò)圖1可知,訓(xùn)練數(shù)據(jù)可以從幾次更新周期中獲益,并且每一個(gè)更新周期計(jì)算成本小;另外,大部分的增益發(fā)生在前幾次迭代過(guò)程中。
圖1 不同次數(shù)字典更新對(duì)比
將傳統(tǒng)正交匹配追蹤算法與改進(jìn)后的正交匹配追蹤算法進(jìn)行比較。實(shí)驗(yàn)中,仍然選擇50 000個(gè)圖像塊用于字典訓(xùn)練,利用15×15大小的圖像塊進(jìn)行實(shí)驗(yàn),因此與之對(duì)應(yīng)的向量長(zhǎng)度為225,被訓(xùn)練的字典大小為225×675,稀疏表示基數(shù)k=23。實(shí)驗(yàn)結(jié)果如圖2所示。分析圖2可知,與傳統(tǒng)的OMP[12]算法相比,CoefROMP算法在降低均方根誤差和計(jì)算耗時(shí)方面有明顯的提高。
圖2 兩種正交匹配追蹤對(duì)比
實(shí)驗(yàn)以雙三次插值算法為基準(zhǔn),對(duì)改進(jìn)后的K-SVD算法與傳統(tǒng)K-SVD的實(shí)驗(yàn)結(jié)果進(jìn)行比較,判斷三種重建算法的優(yōu)劣。在三種重建算法的基本參數(shù)與字典訓(xùn)練過(guò)程均相同的情況下,其中圖像塊數(shù)量為50 000個(gè),字典大小為64×192,分別使用標(biāo)準(zhǔn)圖像中Raccoon(109×100)、Girl(85×86)和Flower(110×57)圖像進(jìn)行重建實(shí)驗(yàn),結(jié)果如圖3~5所示。
圖3 三種算法的重建結(jié)果比較(Raccoon)
圖4 三種算法的重建結(jié)果比較(Girl)
根據(jù)圖3~5的觀察,并將三種算法所得結(jié)果與原始高分辨率圖像對(duì)比可知,在三種重建算法中,文中算法在Raccoon的毛皮、Girl鼻翼的雀斑以及Flower的葉莖等細(xì)節(jié)上具有更好的表現(xiàn),重建獲得的圖像質(zhì)量最高,與原高分辨率圖像最為接近,說(shuō)明改進(jìn)后的K-SVD算法是最優(yōu)的。
圖5 三種算法的重建結(jié)果比較(Flower)
通過(guò)對(duì)基于稀疏表示的經(jīng)典K-SVD字典訓(xùn)練算法中字典更新階段的改進(jìn),結(jié)合正交匹配追蹤中的系數(shù)復(fù)用算法,設(shè)計(jì)了一種新的超分辨率重建算法。該算法極大地降低了重建過(guò)程中字典訓(xùn)練所消耗的時(shí)間,只需幾分鐘對(duì)原有的字典進(jìn)行更新即可。將新算法得到的字典采用稀疏表示對(duì)不同圖像進(jìn)行超分辨率重建,提高了重建圖像的質(zhì)量。
[1] 蘇 衡,周 杰,張志浩.超分辨率圖像重建方法綜述[J].自動(dòng)化學(xué)報(bào),2013,39(8):1202-1213.
[2] YANG J,LIN Z,COHEN S.Fast image super-resolution based on in-place example regression[C]//Computer vision and pattern recognition.Washington,DC,USA:IEEE Computer Society,2013:1059-1066.
[3] FREEMAN W T,PASZTOR E C,CARMICHAEL O T.Example-based super resolution[J].IEEE Computer Graphics and Applications,2002,22(2):56-65.
[4] YANG J,WRIGHT J,HUANG T,et al.Image super-resolution via sparse representation[J].IEEE Transactions on Image Processing,2010,19(11):2861-2873.
[5] AHARON M,ELAD M,BRUCKSTEIN A.K-SVD:an algorithm for designing of complete dictionaries for sparse representation[J].IEEE Transactions on Signal Processing,2006,54(11):4311-4322.
[6] LESLIE N S,ELAD M.Improving dictionary learning:multiple dictionary updates and coefficient reuse[J].IEEE Signal Processing Letters,2013,20(1):79-82.
[7] 張 瑞,馮象初,王斯琪,等.基于稀疏梯度場(chǎng)的非局部圖像去噪算法[J].自動(dòng)化學(xué)報(bào),2015,41(9):1542-1552.
[8] 徐國(guó)明,薛模根,崔懷超.基于過(guò)完備字典的魯棒性單幅圖像超分辨率重建模型及算法[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2012,24(12):1599-1605.
[9] 徐國(guó)明,薛模根,袁廣林.基于混合高斯稀疏編碼的圖像超分辨率重建方法[J].光電工程,2013,40(3):94-101.
[10] NEEDELL D,TROPP J A.CoSAMP:iterative signal recov-
ery from incomplete and inaccurate samples[J].Applied and Computational Harmonic Analysis,2008,26:301-321.
[11] DAI D,MILENKOVIC O.Subspace pursuit for compressive sensing[J].IEEE Transactions on Information Theory,2009,55(5):2230-2249.
[12] 李少東,裴文炯,楊 軍,等.貝葉斯模型下的OMP重構(gòu)算法及應(yīng)用[J].系統(tǒng)工程與電子技術(shù),2015,37(2):246-252.
[13] LIU D,WANG Z,WEN B,et al.Robust single image super-resolution via deep networks with sparse prior[J].IEEE Transactions on Image Processing,2016,25(7):3194-3207.
[14] TIMOFTE R,DE V,GOOL L V.Anchored neighborhood regression for fast example-based super-resolution[C]//IEEE international conference on computer vision.Washington,DC,USA:IEEE Computer Society,2013:1920-1927.
[15] 李 娟,吳 謹(jǐn),陳振學(xué),等.基于自學(xué)習(xí)的稀疏正則化圖像超分辨率方法[J].儀器儀表學(xué)報(bào),2015,36(1):194-200.
[16] 孫玉寶,費(fèi) 選,韋志輝,等.基于前向后向算子分裂的稀疏性正則化圖像超分辨率算法[J].自動(dòng)化學(xué)報(bào),2010,36(9):1232-1238.
[17] 沈 輝,袁曉彤,劉青山.基于預(yù)測(cè)稀疏編碼的快速單幅圖像超分辨率重建[J].計(jì)算機(jī)應(yīng)用,2015,35(6):1749-1752.
[18] 潘宗序,禹 晶,肖創(chuàng)柏,等.基于自適應(yīng)多字典學(xué)習(xí)的單幅圖像超分辨率算法[J].電子學(xué)報(bào),2015,43(2):209-216.