黃宇達, 王迤冉, 牛四杰
(1.周口職業(yè)技術學院 信息工程學院,河南 周口 466000;2.周口師范學院 網(wǎng)絡工程學院,河南 周口 466000;3.濟南大學 信息科學與工程學院,山東 濟南 250000)
超分辨率重構(gòu)技術[1]能夠把低分辨率的圖像重構(gòu)出與真實圖像相近的超分辨率圖像,這樣可從軟件角度解決成像的硬件設備問題。超分辨率重構(gòu)技術作為目前計算機視覺領域的主要研究熱點之一,在遙感成像[2]、醫(yī)學影像分析[3]、工業(yè)成像等領域具有廣泛的應用前景。目前,超分辨率重構(gòu)技術主要分為3類:插值、重構(gòu)和學習的超分辨率重構(gòu)算法。
基于插值算法[4-5]就是利用低分辨率圖像中已知像素點對未知像素點進行估計,雖然其計算復雜度較低,但易放大邊緣,造成細節(jié)模糊和鋸齒邊界。基于重構(gòu)的超分辨率算法是利用數(shù)字圖像處理技術求解成像模型的逆過程,從而進一步實現(xiàn)超分辨重構(gòu),常用的模型有全變分正則化模型[6-7]、梯度輪廓先驗[8]等。其盡管引入了先驗知識,但對具有較為豐富結(jié)構(gòu)信息類型的圖像來說,該方法仍難以獲得邊界清晰的視覺效果。
Freeman等[9-10]首先提出了基于學習思想的圖像超分辨重構(gòu),主要分為2個階段:訓練階段和重構(gòu)階段。該方法訓練所需樣本數(shù)量大,重構(gòu)速度慢。隨后,Sun等[11]在文獻[9-10]的算法基礎上提出了樣本學習法,因為從原始圖像空間中學習到維度較小的圖像基元空間,所以可以用少數(shù)基元表示原始圖像,從而改善高低分辨率之間的映射關系,提高重構(gòu)精度。
Chang等[12]借鑒流形學習的思想,引入局部線性嵌入,提出了基于鄰域嵌入方法的圖像超分辨率復原算法。Yang等[13-14]提出了基于稀疏表示(sparse coding super resolution,SCSR)的圖像超分辨率重構(gòu)算法,該方法通過訓練學習高、低分辨率圖像的映射關系,用優(yōu)化方法求得低分辨圖像的稀疏系數(shù)矩陣,最后通過稀疏系數(shù)矩陣重構(gòu)高分辨率圖像。Zeyde等[15]對文獻[13-14]的方法進行了改進,并采用K-奇異值分解(K-singular value decomposition,K-SVD)算法[16]和最優(yōu)方向法(method of optimal direction,MOD)[17]分別學習高、低分辨率的字典,大大提升了學習效率。以上各方法雖然可小幅提升超分辨率重構(gòu)質(zhì)量,但高、低分辨率字典稀疏系數(shù)矩陣不具有不變性的缺陷,制約了重構(gòu)圖像質(zhì)量的提升。王杰等[18]采用自適應交替方向乘子方法對圖像進行去模糊,在保證計算速度的同時自適應地復原出最佳圖像。針對上述不足,Wang等[19]提出半耦合字典學習(semi-coupled dictionary learning,SCDL)算法,該方法從樣本圖像中學習到的高、低分辨率字典稀疏系數(shù)矩陣具有不變性,提高了算法的重構(gòu)效果。楊愛萍等[20]利用分類稀疏編碼、非局部相似性改進SCDL算法,進一步提高了重構(gòu)精度。盡管SCDL框架和改進的方法增強了學習高、低分辨率圖像塊之間映射關系的能力,提升了重構(gòu)精度,但由于忽略了較為重要的細節(jié)信息,比如邊界,而這些細節(jié)信息對于重構(gòu)后的圖像影響較大,從而限制了算法的重構(gòu)精度。
筆者針對半耦合字典學習算法的不足,提出了基于細節(jié)約束因子和半耦合字典學習的圖像超分辨重構(gòu)方法:以半耦合字典學習算法為框架,引入雙向梯度的邊界差異,構(gòu)建邊界保持約束項,重構(gòu)出接近真實而豐富邊界;引入邊界保持約束項,考慮邊界差異的拉普拉斯分布,提出了自適應邊界約束系數(shù)求解方法,使其能夠在半耦合字典學習算法整體框架下實現(xiàn)超分辨率重構(gòu),進一步提升超分辨率重構(gòu)質(zhì)量。
低分辨率圖像的獲取過程被認為是高質(zhì)量圖像退化過程,假設給定低分辨率圖像y,則圖像的獲取過程可描述為
y=BHx+n。
(1)
式中:x為高質(zhì)量圖像;B為采樣因子;H為模糊操作;n為噪聲。
通過上述過程可以看出,超分辨率重構(gòu)過程實際上是圖像退化過程的逆向?qū)崿F(xiàn)過程。然而從低分辨率圖像中重構(gòu)出高分辨率圖像y,是一種病態(tài)問題。為了解決這個問題,稀疏表示[9-13]被提出來實現(xiàn)超分辨重構(gòu)。將稀疏表示的相關理論引入到圖像超分辨過程,主要包括2個階段:字典訓練階段和重構(gòu)階段。
假定來自低分辨率圖像y的塊yi可用字典Dy來表示,即yi=Dyαi。可通過優(yōu)化如下目標函數(shù)來求得稀疏系數(shù)αi:
(2)
假設給定高、低分辨率圖像塊數(shù)據(jù)X=[x1,x2,…,xn]和Y=[y1,y2,…,yn],其中{xi,yi}是相應的高、低分辨率對應的圖像塊,Dx、Dy分別表示高、低分辨率對應字典,αx、αy分別表示高、低分辨率圖像塊對應的稀疏表示系數(shù)。半耦合字典學習的基本思想是首先建立對應的高低分辨率圖像塊,然后假設圖像塊在相應字典下的稀疏表示系數(shù)不再是相同的,而是通過一個稀疏域的映射矩陣相關聯(lián)。SCDL 算法框架放寬了約束條件,加強了高、低分辨率圖像塊之間映射關系的學習能力,提高了重構(gòu)質(zhì)量,其在訓練階段可一并得到半耦合的高、低分辨率字典以及稀疏域映射矩陣W:
αx=Wαy。
(3)
SCDL算法基于l1范數(shù)正則化的稀疏表示模型,引入了映射誤差懲罰項,改進高、低分辨率稀疏表示問題,從而獲得半耦合字典學習模型,即
(4)
在SCDL算法中,半耦合字典學習最優(yōu)化問題轉(zhuǎn)化為3個子問題交替求解,采用以LARS算法為基礎的SPARS工具箱解決l1范數(shù)正則化的稀疏表示子問題。筆者這里采用交替啟發(fā)式學習框架進行稀疏求解。首先初始化映射矩陣W和字典對Dx和Dy,稀疏系數(shù)可通過下面子問題進行求解:
(5)
(6)
式(5)、(6)是一個多任務LASSO問題,筆者采用LARS進行求解。然后,根據(jù)已求的αx和αy,同樣采用交替迭代學習策略求解Dx和Dy:
(7)
固定Dx、Dy、αx和αy,求解映射矩陣W:
(8)
訓練階段的偽代碼描述如下。
輸入:低分辨率圖像X,高分辨率圖像Y,Dx、 隨機初始化字典矩陣Dy,初始化映射矩陣W,參數(shù)λx、λy、λW、γ。
for每次迭代until收斂
for每個聚類中心
Step1根據(jù)式(5)和(6)計算稀疏系數(shù)αx和αy;
Step2根據(jù)式(7)更新字典Dx、Dy;
Step3根據(jù)式(8)更新映射函數(shù)W
輸出:Dx、Dy、Wx、Wy。
筆者所提出的算法框架的訓練過程如圖1所示。
圖1 所提算法的流程圖Figure 1 Flow chart of the proposed algorithm
2.2.1 細節(jié)約束因子
細節(jié)信息的重構(gòu)對于后續(xù)圖像分析非常有價值。然而,在超分辨率圖像重構(gòu)過程中,往往會丟失重要的細節(jié)信息。因此,筆者試圖利用一維圖像處理,充分考慮各個方向上的紋理梯度信息。對于圖像x而言,紋理梯度信息定義為
(9)
(10)
實際上,真實超分辨率圖像x是未知變量。為了衡量紋理差異,將其轉(zhuǎn)化為低分辨率圖像y與超分辨率重構(gòu)圖像的退化圖像的紋理差異:
(11)
利用稀疏表示,式(11)重新寫為
GD=G(y)-G(BHDα)。
(12)
2.2.2 測試階段
通過半耦合字典學習交替進行的學習策略,能夠?qū)W到對應的稀疏系數(shù)和字典矩陣。為了保證重構(gòu)圖像的細節(jié),在測試階段引入細節(jié)保持因子。給定低分辨率圖像x,字典矩陣Dx和Dy,通過構(gòu)造以下目標函數(shù)重構(gòu)高分辨率圖像y:
(13)
式中:xi和yi分別表示低分辨率和重構(gòu)圖像的圖像塊。筆者采用one-by-one求解策略來更新稀疏系數(shù)。固定稀疏系數(shù)αyi,稀疏系數(shù)αxi可以通過下面表達式進行優(yōu)化:
(14)
然后通過式(15)求解稀疏系數(shù)αyi:
(15)
其中,μ為正則項參數(shù),用來約束紋理細節(jié)項的貢獻。為了更好描述約束項的貢獻,筆者采用一種權(quán)重自適應優(yōu)化方法:
(16)
式中:σn為噪聲標準差;σi為第i塊的差異標準差。
通過式(17)可求得高分辨率圖像的稀疏系數(shù)αyi,根據(jù)稀疏字典表示方法重構(gòu)高分辨率圖像:
yi=Dyαyi。
(17)
(18)
(19)
為了評價筆者所提算法性能,將其與現(xiàn)有的單幅圖像超分辨率重構(gòu)算法進行對比分析,選取近年來相對較為先進的超分辨率重構(gòu)算法,主要包括Bicubic插值、SRCNN算法[22]、SCDL算法[19]。為了使對比更為客觀,采用相同的訓練集和測試集。
筆者采用的實驗方案如下:①受篇幅限制,對超分辨率圖像只進行2倍下采樣獲得低分辨率圖像,評價算法的重構(gòu)性能;②對超分辨圖像進行加噪聲,然后進行2倍下采樣獲得含有噪聲的低分辨率圖像,評價算法的重構(gòu)性能。
實驗1:未加噪聲實驗分析。以butterfly為例,評價圖像在2倍下采樣各算法的超分辨率重構(gòu)結(jié)果如圖2所示。由實驗看出,利用Bicubic插值算法重構(gòu)的圖像存在鋸齒邊界,而且邊界模糊。而采用深度學習方法SRCNN效果好于Bicubic插值算法,消除了鋸齒狀邊界,但大邊界仍存在模糊現(xiàn)象。SCDL算法重構(gòu)的圖像雖具有更強的邊界表達能力,然而在局部區(qū)域會出現(xiàn)一定的噪聲和邊界模糊。筆者提出的算法在重構(gòu)紋理細節(jié)、消除噪聲及重構(gòu)細節(jié)結(jié)構(gòu)方面具有很好的效果,重構(gòu)圖像更能接近原始高分辨率圖像,表1給出了上述各超分辨率算法重構(gòu)圖像的PSNR值和SSIM值。
圖2 在2倍下采樣各算法超分辨率重構(gòu)結(jié)果Figure 2 Super resolution reconstruction results of each algorithm for 2 times down sampling
實驗2:加噪聲實驗分析。以Parthenon為例,在無噪聲圖像上加噪聲水平nsignal=10的噪聲,評價圖像在2倍下采樣各算法的超分辨率重構(gòu)結(jié)果如圖3所示。對于有噪聲圖像而言,Bicubic插值對噪聲敏感,放大了噪聲水平。SRCNN算法對噪聲具有一定的克服能力,但在邊界上仍有噪聲存在,從而導致重構(gòu)圖像的邊界細節(jié)重構(gòu)能力明顯不足。SCDL算法雖然有一定的克服能力,但在重構(gòu)過程中,邊界細節(jié)重構(gòu)方面的能力仍然不足。筆者提出的算法對噪聲具有一定的魯棒性,在有效去除噪聲的同時能夠很好地重構(gòu)出細節(jié)信息。表1給出了在噪聲條件下,各算法的重構(gòu)圖像的PSNR值和SSIM值。
表1 不同策略下重構(gòu)圖像的PSNR值和SSIM值Table 1 PSNR values and SSIM values of reconstructed images under different strategies
圖3 在2倍下采樣各算法超分辨率重構(gòu)結(jié)果(nsignal=10)Figure 3 Super resolution reconstruction results of each algorithm for 2 times down sampling(nsignal=10)
針對單幅圖像的超分辨率細節(jié)弱重構(gòu)的問題,筆者采用將細節(jié)約束因子引入到半耦合字典學習框架中的方法,捕獲圖像的結(jié)構(gòu)信息,重構(gòu)出更多的圖像細節(jié)信息;根據(jù)邊界差異的分布實現(xiàn)參數(shù)自適應選擇。另外,筆者又采用了利用交替學習策略進行模型的優(yōu)化。實驗結(jié)果表明,筆者提出的引入細節(jié)約束因子的半耦合字典學習超分辨重構(gòu)算法構(gòu)造的模型能夠較好地重構(gòu)出圖像細節(jié)結(jié)構(gòu)。