劉 艷,錢 陽,李 雷
(南京工業(yè)大學浦江學院,江蘇 南京 211134)
在壓縮感知理論[1-3]中,如果一組長度為n的被測信號x∈Rn×1在某正交基Ψ=(ψ1,ψ2,…,ψn)T上是可壓縮的,則可以通過與稀疏變換基不相關(guān)的m×n維(m?n)測量矩陣Φ對稀疏變換向量Θ=ΨTx進行觀測,并通過一系列算法將原始信號x[4]從觀測向量y∈Rm×1中重構(gòu)出來,具體觀測模型如下:
y=Φx=ΦΨΘ
(1)
壓縮感知(CS)主要包括稀疏、觀測和重構(gòu)三個步驟[5],其中信號的稀疏性是CS的前提,在字典表示下信號的稀疏度決定了重構(gòu)的效果。而測量矩陣Φ的設(shè)計則是壓縮感知理論中至關(guān)重要的一步,Candès和Tao提出,為了準確地將原始信號重構(gòu)出來,測量矩陣Φ需滿足RIP(restricted isometry property)條件[6]。信號重構(gòu)的數(shù)學模型如下:
(2)
其中,λ為正則化參數(shù)。
Qi Hanchao等[7]將核技巧與CS理論結(jié)合,提出了核壓縮感知理論(kernel compressed sensing,KCS),并將該理論運用到人臉圖像的重構(gòu)中,獲得了較好的效果。KCS[8-9]本質(zhì)上是一種非線性稀疏表示下的壓縮感知,不僅能避開迭代的非線性優(yōu)化過程,且與線性稀疏表示相比,能用更少的觀測數(shù)目恢復(fù)信號[10]。
KCS理論中,若在特征空間H中,信號x是d稀疏的,則可以用一組稀疏基的d個原子將投影后的信號線性表示出來,即
(3)
k(x,Φi)=〈φ(x),φ(Φi)〉=
(4)
在特征空間H中,所有測量值可以表示成如式5的矩陣形式,有:
(5)
將式5簡寫為:
Μkernel=Gkernelβ+ε
(6)
假設(shè)存在一組信號{z1,z2,…,zr}與原始信號x比較接近,通過KPCA方法對{z1,z2,…,zr}進行訓練,則基原子υk可以表示成:
(7)
進一步,有:
(8)
結(jié)合式5,從而得到Gkernel的表達式為:
Gkernel=
(9)
(10)
由于任意信號都可以由一組正交基表示,且表示系數(shù)是其與稀疏基的內(nèi)積。因此原始信號x∈Rn可以依據(jù)式11進行重構(gòu):
1.3.1 K-SVD字典學習算法
基于過完備字典的稀疏表示是近年來廣受關(guān)注的信號表示理論。其中,由Aharon M等提出的K-SVD字典學習算法[13]較為典型。此算法主要解決如下的優(yōu)化問題:
(12)
1.3.2 核字典學習方法(Kernel K-SVD,KKSVD)
KKSVD[14]算法的提出是用于實現(xiàn)核字典D的學習,該算法將目標由尋找合適的核字典D轉(zhuǎn)化為尋找合適的字典系數(shù)矩陣C。
命題[15]:
存在一個合適的字典矩陣D*,使得
D*=φ(X)C
(13)
其中,C∈RN×K為字典系數(shù)矩陣。
此時,KKSVD算法求解的優(yōu)化目標函數(shù)變?yōu)椋?/p>
?i=1,2,…,N
(14)
KKSVD算法通過獲得最優(yōu)的C和A對式14進行求解。
(1)稀疏編碼階段。
文中將在KKSVD算法的基礎(chǔ)上對該階段進行改進。首先固定字典系數(shù)矩陣C,在特征空間引用AK-BRP算法[16]的稀疏編碼機制,利用字典的相干性將稀疏約束上限與迭代更新的字典關(guān)聯(lián),獲得自適應(yīng)的稀疏約束上限,以減少算法運行時間。
設(shè)第j次迭代的稀疏約束上限為Tj,則
(15)
(16)
當μ(D)值很大時,則字典的相干性很大,即字典原子間相似程度很強[18]。
根據(jù)命題,核字典D可表示為D=φ(X)C的形式,此時有:
(17)
其中,K(X,X)=φ(X)Tφ(X)為核矩陣。
使用上述定義的ai代替KKSVD算法中的稀疏約束上界T0,由于式14中懲罰項可以寫為:
(18)
因此,優(yōu)化問題可以轉(zhuǎn)化為求解如式19所示的N個問題。
T0,?i=1,2,…,N
(19)
則所提AKKSVD算法的稀疏編碼階段可轉(zhuǎn)化為求解如下的優(yōu)化問題:
Tj,?i=1,2,…,N,j=1,2,…,P
(20)
(2)字典更新階段。
此階段中,自適應(yīng)核K-SVD算法采用KKSVD算法的字典更新方式,根據(jù)稀疏表示系數(shù)矩陣A,對字典系數(shù)矩陣C進行迭代更新,字典列的更新結(jié)合稀疏表示的一個更新,使得字典系數(shù)和稀疏系數(shù)同步更新。
綜上,AKKSVD字典學習算法的具體實現(xiàn)流程如下:
算法1:AKKSVD算法。
目標:獲得字典系數(shù)矩陣C
輸出:矩陣C和A
初始化:隨機初始化歸一化字典系數(shù)矩陣C0∈RN×K,通過式15獲得T0,設(shè)置迭代次數(shù)j=1
Forj=1,2,…,P
(1)稀疏編碼階段
固定Cj-1和Tj-1,使用KOMP[14]算法求解式20,獲得稀疏系數(shù)矩陣Aj
(2)字典更新階段
固定Aj,對Cj-1的每一列ck(k=1,2,…,K)逐個更新
獲取更新后的Cj
通過式15計算Tj;j=j+1;
End
(21)
其中,εt為誤差,〈·〉表示內(nèi)積。
通過AKKSVD算法獲得核字典系數(shù)C,則圖像塊在特征空間Η中的稀疏表示如下:
φ(xt)=Dat=φ(X)Cat
(22)
其中,C∈RN×K,at∈RK×1表示第t塊圖像的稀疏表示系數(shù)
根據(jù)KCS理論,所有測量值在特征空間Η中表示成:
(23)
定義
(24)
根據(jù)
ykernel=GkernelCa
(25)
令Bkernel=GkernelC,則
ykernel=Bkernela
(26)
其中,ykernel∈Rm,Bkernel∈Rm×K。
(27)
并將恢復(fù)出的原始空間的圖像塊按照順序合并成整個圖像。
AKKSVD-KCS算法的具體流程如下:
算法2:AKKSVD-KCS算法。
初始化:通過KPCA方法從X中獲得特征空間中的基原子,利用其初始化AKKSVD算法中的字典原子,并通過式15獲得初始化稀疏約束上限T0,設(shè)置迭代次數(shù)j=1
利用AKKSVD算法從X中獲得核字典系數(shù)C=CP
通過式24計算出ykernel及Gkernel
獲得式26的欠定方程組
為了更直觀地比較AKKSVD-KCS算法與KKSVD-KCS算法重構(gòu)出圖像的視覺效果,圖1給出了采樣率為0.4時這兩種算法重構(gòu)出標準圖像的視覺效果圖。
圖1 標準圖像的視覺效果
圖1中顯示,當采樣率為0.4時,KKSVD-KCS算法和AKKSVD-KCS算法均能將圖像重構(gòu)出來。兩種算法重構(gòu)出的圖像雖然都有分塊邊界,但可以看出,相較于KKSVD-KCS算法,AKKSVD-KCS算法的分塊邊界相對模糊,這表明提出的AKKSVD-KCS算法的重構(gòu)性能更優(yōu)。
為了進一步驗證提出算法的優(yōu)越性,圖2分別給出了KKSVD-KCS算法在不同稀疏度下與AKKSVD-KCS算法在重構(gòu)時間、峰值信噪比以及特征相似度三個方面的性能與采樣率的關(guān)系曲線。為了消除隨機性,PSNR與FSIM值取10次測試結(jié)果的平均值。
由圖2(a)可知,各算法的運行時間均隨著稀疏度的增加而增加,但AKKSVD-KCS算法的運行時間是最少的;圖2(b)、2(c)的結(jié)果表明,AKKSVD-KCS算法的PSNR與FSIM均隨著稀疏度的增加而增加,由PSNR和FSIM越大,重構(gòu)性能越好可知,相較于KKSVD-KCS算法,AKKSVD-KCS算法的性能更優(yōu),精確度更高。
綜上可知,AKKSVD-KCS算法在每次迭代過程中通過自適應(yīng)地選擇較小的稀疏度以提高運行速度及重構(gòu)精度,進一步驗證了非線性流行下該算法的有效性和高效性。
(a)
(b)
(c)
文中在核K-SVD字典學習算法的基礎(chǔ)上提出了AKKSVD算法,通過選擇較小的稀疏度以提高運行速度,并結(jié)合核壓縮感知的相關(guān)理論,提出了AKKSVD-KCS算法,實現(xiàn)了對原始空間圖像的重構(gòu)。仿真對比實驗表明,AKKSVD-KCS算法的重構(gòu)性能更優(yōu)。