杜秀麗 ,司增輝 ,左思銘 ,邱少明
(1.大連大學通信與網(wǎng)絡重點實驗室,大連,116622;2.大連大學信息工程學院,大連,116622)
壓縮感知(Compressed sensing, CS)是一種尋找欠定線性系統(tǒng)稀疏解的技術。壓縮感知相較于Nyquist 采樣定律,突破了“先采集再壓縮”的限制,將采樣和壓縮結合起來,該理論被廣泛應用于人臉識別、醫(yī)療成像、信號處理和遙感成像等領域[1-2]。
壓縮感知理論中,圖像信號在字典下的稀疏系數(shù)越稀疏則圖像重構效果越好[3],所以通過何種方法得到與圖像特性相匹配的字典非常重要。當前字典訓練方法可以分為兩類:解析方法和學習方法。解析方法使用一些數(shù)學變換和適量的參數(shù)來構造字典,這種方法的優(yōu)勢在于相對簡單,計算復雜度低,但缺點也十分明顯,由于字典中的原子是根據(jù)數(shù)學變換得到,所以字典原子形態(tài)單一,不能與圖像本身的復雜結構形成最佳匹配,即非最優(yōu)表示。近年來字典學習方法研究有了長足的發(fā)展,該方法通過學習圖像信號中的信息,來不斷地更新字典中的原子,使得原子包含更加豐富的信息,更加貼合圖像信號的特性。研究者們提出了許多新的字典學習理論,早期有多成分字典(Multi-component dictionary)[4]、奇異值分解(Singular value decomposition, SVD)字典[5]等,隨后Engan 等[6]提出了最優(yōu)方向法(Method of optimal directions, MOD)?,F(xiàn)在使用最多的字典學習方法是Aharon 等[7]提出的K-奇異值分解(K-singular value decomposition, K-SVD)算法,與MOD 算法略有不同,K-SVD 算法不是對整個字典進行更新, 而是對字典原子逐個進行更新,進而訓練出與圖像相匹配的過完備字典。
在實際應用中圖像數(shù)據(jù)容易受到噪聲干擾,直接對圖像進行字典訓練易受到噪聲的影響,導致訓練出來的字典對圖像的稀疏表示能力下降,圖像重構的質量不高。近年來,研究者們在圖像去噪方面作了很多研究,其中低秩稀疏分解在去噪方面表現(xiàn)出了良好的效果。Zhou 等[8]使用主成分追蹤算法來對含有高斯噪聲的低秩矩陣進行分解,剔除圖像中的噪聲,從而得到數(shù)據(jù)低秩部分。胡正平等[9]針對陰影、遮擋等破壞圖像低秩結構的問題,提出了基于低秩子空間恢復的聯(lián)合稀疏表示識別算法來恢復出圖像的低秩部分,實驗結果證明提高了識別率。由于在對矩陣進行低秩分解時,主要通過使用矩陣的核范數(shù)來對秩函數(shù)進行逼近,2013 年,Hu 等[10]發(fā)現(xiàn)已有的核范數(shù)方法并不能在真實的應用中得到較好的低秩解,因為在核范數(shù)最小化過程中,所有的奇異值需要同時被最小化,不能很好地近似秩函數(shù),因此提出了截斷核范數(shù)(Truncated nuclear norm regularization, TNNR)作為秩函數(shù)的另一種逼近方式,并且在實際應用中取得了良好的效果。Cao 等[11]為了恢復出矩陣的低秩和稀疏分量,討論了截斷核范數(shù)在矩陣恢復上的收斂性,并對各種數(shù)據(jù)集進行了一系列的比較實驗,證明了截斷核范數(shù)正則化低秩分解算法能夠去除圖像噪聲,并且與其他方法相比該方法在恢復矩陣的低秩和稀疏分量方面更加有效和準確。Geng 等[12]將群體稀疏表示視為低秩矩陣逼近問題,采用截斷核規(guī)范最小化方法可以更好地恢復出低秩矩陣,并從恢復出來低秩部分中學習出字典,并利用實驗證明了使用該方法訓練得到的字典能夠對圖像進行有效的稀疏表示以及優(yōu)良的重構效果。
傳統(tǒng)分塊壓縮感知中,通過分割得到的圖像塊僅訓練一個字典,由于各個圖像塊所包含的紋理特征并不相同,因此一個字典并不能保證對各個圖像塊都有優(yōu)質的稀疏表示[13]。本課題組曾對大數(shù)據(jù)量的圖像數(shù)據(jù)庫,將圖像庫分割為相同大小的圖像塊,使用灰度熵作為紋理復雜度的度量對圖像塊進行分類,再使用不同類別的圖像塊,訓練出多個不同大小的最優(yōu)稀疏表示字典[14]。
為進一步提高圖像重構的質量,在基于圖像灰度熵的自適應字典學習算法[14]的基礎之上,本文提出基于截斷核范數(shù)低秩分解的自適應字典學習算法。圖像通過矩陣低秩分解可以分解出包含圖像原始信息的低秩部分和由高頻噪聲及物體輪廓信息組成的稀疏部分[15],同時考慮到現(xiàn)有的基于核范數(shù)的優(yōu)化方法對于低秩分解算法的近似逼近不能得到最優(yōu)解的問題,使用截斷核范數(shù)作為低秩分解中秩函數(shù)的近似逼近,得到不含噪聲的低秩部分,將低秩部分進行分塊和分類,對每一類圖像子塊進行字典訓練,進一步對圖像塊進行準確稀疏表示,減少圖像數(shù)據(jù)的傳輸量。圖像重構時只對低秩部分進行重構,組合稀疏部分恢復原圖像,以提高圖像重構質量和字典抗噪能力。
任意一個矩陣都可以進行低秩分解,利用低秩近似,可從受到噪聲污染的圖像中恢復出原始圖像[16]。在實際應用中,圖像數(shù)據(jù)一般以矩陣形式存儲,且所給定的實際問題中的圖像矩陣通常具有低秩性,但在圖像數(shù)據(jù)采集過程中通常會受到高頻噪聲污染,破壞了圖像之間的結構性,使得圖像質量明顯下降。因此,本文選擇使用低秩分解算法,將圖像分成低秩與稀疏兩部分,對圖像的低秩部分進行字典學習與稀疏表示,相較于直接對圖像進行字典學習的算法,能夠剔除圖像采集過程中所產(chǎn)生高頻噪聲的影響[17],能夠更好地重構出原始圖像。
現(xiàn)有的低秩分解算法將受到噪聲污染的矩陣X分解為低秩矩陣Z與稀疏矩陣E,即X=Z+E,且矩陣Z和矩陣E均是未知的。為了求解低秩矩陣Z,將上述問題轉化為求解一個目標優(yōu)化問題,即
式中:rank(?)為秩函數(shù),λ為正則化項參數(shù),l0范數(shù)表示矩陣中非零的元素個數(shù),使得矩陣E具有稀疏性。因為秩函數(shù)非凸且不連續(xù),所以對式(1)中目標函數(shù)的求解是NP 難問題。Recht 等[18]發(fā)現(xiàn)在壓縮感知中,如果對于定義約束的線性變換具有一定的受限制等距特性,則可以通過解決凸優(yōu)化問題來恢復最小秩解,使得通過矩陣核范數(shù)來近似逼近秩函數(shù)恢復出圖像的低秩部分成為可能,由于l1范數(shù)表示矩陣中元素絕對值之和,相較于l0范數(shù)有更好的求解特性,從而可將式(1)中目標函數(shù)轉化為凸優(yōu)化問題,即
截斷核范數(shù)只對數(shù)值較小部分敏感,所以只要目標矩陣存在低秩結構,就可以通過對最小化核范數(shù)問題的求解得到最優(yōu)的低秩解,能很好地對秩函數(shù)近似逼近。使用截斷核范數(shù)的方法作為秩函數(shù)的另一種近似逼近方法,能夠對矩陣結構獲得比傳統(tǒng)核范數(shù)更好的近似估計,并且在實際應用中取得了較好的近似表示效果[19]。截斷核范數(shù)定義為:對任意的矩陣X∈Rm×n,將其奇異值按降序排列,把截斷核范數(shù)記為表示后 min(m,n)-r個奇異值的和,即
式中δi(X)表示X的第i個奇異值。
由該定義可以看出,與傳統(tǒng)的核范數(shù)方法不同的是,截斷核范數(shù)并不最小化所有奇異值的和,僅最小化較小的min(m,n)-r個奇異值。只要低秩解存在,求解截斷核范數(shù)便可以得到低秩解,且這種方法獲得的對秩函數(shù)的近似解更具魯棒性,更精確。因此,通過定義可知截斷核范數(shù)具有如下性質[20]:對于 任 意 矩 陣X∈Rm×n,任 意 矩 陣A∈Rr×m,B∈Rr×n,且 有AAT=I,BBT=I。 對 于 任 意 不 大 于min(m,n)的非負整數(shù)r,可以得到
根據(jù)前文描述,本文使用基于截斷核范數(shù)正則化的低秩稀疏分解(Low rank and sparse decomposition with truncated nuclear norm regularization, LRSD-TNN)模型可表示為
因為截斷核范數(shù)通常是非凸的,常用的凸優(yōu)化算法不能對該問題進行求解,但是,結合截斷核范數(shù)的定義和數(shù)學理論中奇異值分解理論知識,可將非凸優(yōu)化問題轉化為凸優(yōu)化問題。
矩陣X奇異值分解可表示為
式中:U=[u1,u2,…,um]∈ Rm×m,Σ∈ Rm×n,V=[v1,v2,…,vn]∈ Rn×n。令
根據(jù)酉矩陣的性質,有AAT=Ir×r且BBT=I r×r,從而可得
由式(4,8),可得
因此
由式(10)和式(5)中模型,可等價求解
式中:A∈ Rr×m,B∈ Rr×n。
如何更加有效地求解式(11)的凸優(yōu)化問題極其關鍵。本文使用交替方向乘子(Alternative direct method of the multiple, ADMM)算法[21]對該問題進行求解。ADMM 是一種用來求解線性等式約束凸優(yōu)化問題的有效算法,其算法思想可應用在求解非凸優(yōu)化問題上,且其收斂性已經(jīng)得到驗證[22]。
K-SVD 算法是一種非常經(jīng)典的字典訓練算法,解決了高維矩陣求解的問題,達到了較好的字典訓練效果。該算法思想通過最小化誤差來不斷的迭代得到最優(yōu)解。首先初始化字典,利用奇異值分解算法通過該字典計算出對應的表示系數(shù),然后根據(jù)固定下來的表示系數(shù)依次更新字典中的每一個原子,在字典和表示系數(shù)之間不斷迭代,直到滿足最小誤差時停止。
對圖像信號X∈Rn通過字典進行稀疏表示,即
式中:D∈ Rn×T為過完備字典含有T個原子,dj為字典原子,為列向量,θ∈ RT為X在字典D上的稀疏表示系數(shù)。然而,在使用字典對圖像信號X進行稀疏表示時都會存在一定的誤差,即
把N個信號整合到一起記為稀疏系數(shù)矩陣設為Θ,其中一種迭代終止條件是稀疏系數(shù)在給定l0范數(shù)條件下求解出最優(yōu)稀疏逼近解,求解如式(14)所示。
式中:ξ為每個稀疏系數(shù)在l0范數(shù)下的最大值。另一種終止條件是逼近誤差在滿足條件下求解最優(yōu)稀疏系數(shù),求解如式(15)所示。
式中:ε為稀疏逼近誤差的最大值。同時考慮稀疏系數(shù)的稀疏性和逼近誤差兩個條件,求解如式(16)所示。
由于K-SVD 算法中對字典原子的更新是逐列進行的,為了更好地描述字典原子與系數(shù)系數(shù)之間的更新方式,將字典和稀疏矩陣進一步展開,字典D中第k列dk對應系數(shù)矩陣Θ中第k行的,則求解如式(17)所示。
從式(17)可以看出,把DΘ分解為k個且秩為1 的矩陣,可以假定其他k-1 項是固定的,剩下的第k項待更新。矩陣Ek可以看成去除原子dk后,在N個圖像信號樣本中產(chǎn)生的逼近誤差。先對系數(shù)中的非零值進行保留來確保的稀疏性,再對Ek使用SVD 分解算法來更新dk和。
由于矩陣低秩分解算法能夠提取出保留圖像初始信息的低秩部分和具有高頻噪聲及物體輪廓信息的稀疏部分,通過對包含有圖像原始信息的低秩部分進行分類字典訓練,能夠更好地體現(xiàn)出圖像不同塊的紋理信息,提高字典的適應性,進而提高壓縮感知后的圖像重構質量。因此,本文提出了基于截斷核范數(shù)低秩分解的自適應字典學習算法(Adaptive dictionary learning algorithm based on low rank and sparse decomposition with truncated nuclear norm, ADLA-LRSD-TNN),算法流程框圖如圖1 所示。本文所提算法使用大數(shù)據(jù)量的圖像庫作為訓練樣本,首先使用基于截斷核范數(shù)的矩陣低秩分解算法對圖像庫訓練集中的圖像進行低秩分解,取得訓練集圖像庫的低秩部分,然后對低秩部分進行分塊,根據(jù)圖像紋理復雜度對圖像塊進行分類,對于不同類的圖像塊,初始化對應不同大小的字典,通過K-SVD 算法訓練更新字典,最終得到訓練好的多個字典,對于待感知圖像使用訓練好的字典進行稀疏表示。隨著圖像庫的不斷增加,新圖像的稀疏表示性能就越好。
本文算法的整體步驟如下:
步驟1將圖像庫中訓練集的所有圖像使用基于截斷核范數(shù)的低秩分解算法分解為低秩部分和稀疏部分,然后將訓練集的低秩部分進行圖像塊分割,分為S個B×B大小的圖像塊,將S個圖像塊矩陣變換為列向量,將S個列向量排列成一個B2×S大小的訓練集數(shù)據(jù)矩陣M2。
步驟2計算矩陣M2每一列的紋理復雜度,依據(jù)紋理復雜度升序的方式重新對M2中的所有列進行排序,排序后矩陣變?yōu)镸2v。將紋理復雜度的最小值和最大值之間的區(qū)間分成C等分,得到C個分類后的圖像塊集合M2c(i)(i=1,2,…,C)。
圖1 基于截斷核范數(shù)低秩分解自適應字典學習算法的整體框架圖Fig.1 The overall framework of adaptive dictionary learning algorithm based on truncated nuclear norm low rank decomposition
步驟3對每類圖像塊數(shù)據(jù)M2c(i)使用K-SVD 算法訓練過完備字典,根據(jù)當前類圖像塊的紋理復雜度訓練出原子個數(shù)不同的多個字典。對紋理復雜度低的圖像類,其包含的圖像特征信息較少,含有較少原子數(shù)的字典就能對其進行最優(yōu)的稀疏表示。對紋理復雜度較高的圖像類時,其包含的圖像細節(jié)較多,因此需要使用原子數(shù)目更多的字典才可以對其進行最優(yōu)的稀疏表示,從而訓練出較大的過完備字典。最后保存好訓練得到的多個字典用來對新圖像進行稀疏表示。
步驟4對新圖像,同樣先對圖像進行低秩分解,得到圖像的低秩部分,然后將低秩部分同樣分解為B×B大小的子塊,將每個圖像子塊矩陣變?yōu)榱邢蛄啃问健S嬎忝恳涣械募y理復雜度,然后按從小到大的方式排列,按照圖像庫訓練集低秩部分紋理復雜度均值,同樣分為C類。將新圖像低秩部分的各個類使用相應類訓練得到的冗余字典對其進行重構。
為了驗證本文提出算法的性能,使用灰度熵作為紋理復雜度的衡量標準對圖像庫中的圖像子塊進行分類,利用基于截斷核范數(shù)矩陣低秩分解算法提取圖像低秩部分,然后進行分類字典學習(ADLA-LRSD-TNN),并與不使用截斷核范數(shù)低秩分解直接對灰度熵直方圖分類后的圖像子塊進行分類字典學習(ADLA-IGE)的結果[14],以方差作為紋理復雜度的衡量標準進行分類字典學習[23]和不分類的K-SVD 字典學習這3 種算法進行對比。
實驗所使用的數(shù)據(jù)來自于加利福尼亞理工學院收集的101 類圖像數(shù)據(jù)庫(Caltech101),每一類大約40~800 幅圖像,共有 9 146 個圖像。
為保證實驗驗證有效,從飛機類圖像庫中選擇前400 幅圖像作為訓練集,其余圖像作為測試集,分別使用4 種算法分別對訓練集進行字典訓練,得到多個不同大小的過完備字典。并隨機從訓練集和測試集中各取出100 幅圖像,使用上述4 種算法訓練得到的字典對其進行重構,4 種算法均使用相同的重構算法,KSVD 迭代次數(shù)均設為20 次,在數(shù)據(jù)觀測時使用采樣率為0.5 的觀測矩陣對圖像進行觀測,將重構效果進行對比,重構的PSNR 值結果如表1 與表2 所示。
表1 4 種算法對于訓練集的重構PSNR 值對比Table 1 Comparison of PSNR values of the four algorithms for the reconstruction of training sets dB
表2 4 種算法對于測試集的重構PSNR 值對比Table 2 Comparison of PSNR values of the four algorithms for the reconstruction of test sets dB
由表1 和表2 可以看出,在相同分類層數(shù)的情況下,對于訓練集和測試集4 種算法均能達到較好的重構效果。對于訓練集的重構效果要高于對于測試集的重構效果,因為字典是通過訓練集訓練得到的,能更好地提取出訓練集圖像的紋理度信息,從而更好地對其進行重構和稀疏表示。
從實驗結果可以看出,在先使用基于LRSD-TNN 算法得到圖像的低秩與稀疏部分之后,再對圖像的低秩部分進行灰度直方圖分類得到的重構效果均要高于直接對原始圖像進行灰度直方圖分類和方差分類以及不分類的K-SVD 的重構效果。并且在對于訓練集和測試集進行重構時可以發(fā)現(xiàn),使用兩種算法得到的重構結果均在5 類時略微下降而在6 類時又能有所提升。這是由于采樣率過低,不能有充足的采樣點對圖像進行采樣,當分類數(shù)由4 類變到5 類時,每一類之間的灰度熵差值并不大,而分類數(shù)的增加導致每一類中圖像數(shù)據(jù)減少,從而重構質量降低。而當分類數(shù)為6 類時,即分類數(shù)量足夠大時,圖像分類的更加精確,各類圖像塊之間的灰度熵差距夠明顯,訓練多個字典能夠更好地反映不同圖像塊的紋理復雜度,重構質量又能有所提升,并將隨著分類數(shù)的增加而提高。
為了使仿真結果更為直觀可見,使用飛機圖像、人物圖像、房屋圖像、帆船圖像和磁共振圖像在采樣率為0.5 的觀測矩陣進行觀測,進行6 類字典重構,計算出每幅圖像的PSNR 值,并記錄在每幅圖像的下方,實驗結果如圖2 所示。其中第1 列為原圖,第2 列為ADLA-LRSD-TNN 算法重構圖,第3 列為ADLA-IGE 算法重構圖,第4 列為方差算法重構圖,第5 列為K-SVD 算法重構圖。
縱觀圖2 可以明顯看出,使用ADLA-LRSD-TNN 算法進行字典學習重構后圖像的PSNR 值都優(yōu)于其他3 種算法,圖像的重構質量同樣優(yōu)于其他3 種算法,這是因為通過LRSD-TNN 算法恢復出的低秩部分剔除了噪聲的影響,從而訓練出的字典排除了噪聲的影響,使得重構質量進一步提高。橫觀圖2可以看出,其中房屋圖像和磁共振圖像4 種算法的重構質量都高于其他3 種圖像,通過原圖像可以看出,房屋圖像和磁共振圖像的圖像紋理相對簡單,這才使得重構后的圖像有較好的PSNR。因此本文所提算法訓練得到的字典對于圖像的重構質量要高于其他3 種算法。
圖2 不同圖像使用4 種算法算法在采樣率為0.5 下的重構圖像和PSNRFig.2 Reconstruct images and PSNR of four algorithms at a sampling rate of 0.5 for different images
仿真實驗結果表明,對基于截斷核范數(shù)的低秩分解算法得到的圖像矩陣低秩部分使用灰度熵直方圖分類算法能更好地體現(xiàn)圖像的紋理度,能夠得到更好的過完備字典,能對圖像信號進行更好的稀疏表示與重構,重構質量相較于直接對原始圖像進行灰度熵分類和字典訓練能夠有所明顯的提升。
針對圖像壓縮感知字典學習算法,沒有考慮到圖像容易受到高頻稀疏噪聲的影響、不同圖像塊包含的圖像信息不同、僅訓練一個固定字典的問題,提出了基于灰度熵直方圖的截斷核函數(shù)低秩分解自適應字典學習算法。本文利用基于截斷核范數(shù)的低秩分解算法將大規(guī)模圖像庫分為低秩與稀疏兩部分,并依據(jù)灰度熵作為紋理復雜度衡量標準來對圖像塊進行分類,將圖像庫的低秩部分分為多個類別,對不同類別的低秩圖像塊,初始化包含不同原子個數(shù)的字典,通過K-SVD 算法訓練得到多個過完備字典,對于待感知圖像使用圖像庫的灰度熵直方圖類別進行分類,并使用圖像庫相應類別訓練得到的過完備字典對各個類進行稀疏表示。仿真結果表明,本文所提算法能夠對圖像進行較好的稀疏表示,并在很好的保持圖像塊特征一致性的同時顯著提升圖像重構質量。