蔡 楠,李 萍
(寧夏大學(xué) 物理與電子電氣工程學(xué)院,寧夏 銀川 750021)
圖像壓縮是圖像存儲、處理和傳輸?shù)幕A(chǔ),可以減輕圖像存儲和傳輸?shù)呢?fù)擔(dān),使圖像在網(wǎng)絡(luò)上實現(xiàn)快速傳輸和實時處理。圖像具有龐大的數(shù)據(jù)量,在面對高維數(shù)據(jù)的處理中往往使得圖像所包含的有用信息得不到有效的挖掘、提取和利用,因此有必要對圖像數(shù)據(jù)進行壓縮。
在圖像壓縮領(lǐng)域中存在大量的算法,其中文獻[1]在介紹了基于DCT的圖像壓縮編碼基礎(chǔ)上對一種新的DCT系數(shù)分層傳輸?shù)姆椒ㄟM行研究,通過分層壓縮達到了較好的峰值信噪比;文獻[2]提出了JPEG-HVS算法通過CSF生成了新的量化表,達到了高壓縮比并且解碼質(zhì)量更好;文獻[3]采用多級小波變換提高了圖像壓縮的時間;文獻[4]采用主成分分析算法(Principal Component Analysis,PCA)通過提取圖像的線性特征達到較好的壓縮效果,但是在非線性特征提取上仍有很大的缺陷。為此,本文采用基于核的非線性特征提取算法——核主成分分析算法(Kernel Principal Component Analysis,KPCA)[5-6]。Scholkopf 等人最早將核方法思想應(yīng)用于特征提取中,于1999年借鑒SVM 的核方法思想,將PCA拓展到非線性情形,提出了核主成分分析[7-8]。KPCA是PCA的改進算法,能夠提取非線性特征,可以將原輸入空間下線性不可分的數(shù)據(jù)映射至高維特征空間使其線性可分,從而實現(xiàn)了對非線性特征的提取[9]。通過實驗仿真,表明KPCA在繼承傳統(tǒng)PCA優(yōu)點的基礎(chǔ)上彌補了PCA對非線性特征提取能力差的缺點。
KPCA的基本原理是通過非線性映射φ將輸入空間變換到高維特征空間使其線性可分,在高維特征空間下使用PCA完成特征提取[10]。
(1)
求協(xié)方差矩陣的特征值λ和特征向量α:
λα=Cα。
(2)
K=φ(x)Tφ(x)。
(3)
求出核矩陣的特征值和特征向量:
λkαk=Kαk=φ(x)Tφ(x)αk。
(4)
將式(4)兩邊同時左乘φ(x),再將式(1)代入式(4),令C的特征向量v=φ(x)αk,得
(5)
將v單位化,并將式(3)代入式(5),得
(6)
將特征空間的樣本點φ(x)投影至特征向量v即可得到在主成分上的投影令其為βk,
(7)
基于上述KPCA的原理,將圖像中的非線性特征映射至高維特征空間使其線性可分,從而可以將圖像中的噪聲與主要特征更好地分離達到冗余的去除[15]。具體方法如下:
① 將一幅m×n的圖像轉(zhuǎn)為灰度圖像后按列分為m×1的n個列向量作為輸入樣本X;
② 選取核函數(shù),根據(jù)式(3)計算核矩陣K,為了防止非線性映射后樣本φ(x)不能均值化,需要對核矩陣K歸一化后替代原來的核矩陣K[16-17],再根據(jù)式(4)求出特征值λk和特征向量αk;
③ 將λk按從大到小的順序排列并計算每個特征值占特征值總和的比例和,作為累計貢獻率[18];
④ 根據(jù)所設(shè)置的累計貢獻率大小選取前k個主成分,根據(jù)式(7)計算樣本在特征空間中主成分上的投影βi(i=1,2,3…k),即為原圖像經(jīng)KPCA降維后的特征。
如何從特征空間中把降維后的特征還原至輸入空間,就是KPCA特征空間原像重構(gòu)。
由于無法確定具體的非線性映射,所以只能近似地求解出特征空間中所對應(yīng)輸入空間的原像,為此期望找到一個向量z∈RN,z=(z1,z2,…zn)T所對應(yīng)在特征空間下的形式為φ(z)T,使其在重構(gòu)誤差ρ(z)=‖φ(z)T-Pnφ(x)‖2下為最小[19-20]。將ρ(z)展開并把展開后與z無關(guān)的表達式均用Ο來代替,并代入式(6)、式(7)得:
(8)
為了重構(gòu)原輸入空間X即需要求出式(8)最小值所對應(yīng)的z即可,
(9)
在Windows7環(huán)境下使用Python語言調(diào)用sklearn中自帶的數(shù)據(jù)集,生成2類半月形分布的點集如圖1所示,分別經(jīng)PCA與KPCA對其進行處理,如圖2和圖3所示。
通過圖2和圖3可以看出,對非線性分布的數(shù)據(jù)經(jīng)PCA處理后都存在著重疊無法進行有效分離的問題,而經(jīng)KPCA處理后不存在重疊的問題,可以將非線性數(shù)據(jù)更好地分離。
圖1 2類半月形分布點集
圖2 PCA處理
圖3 KPCA處理
采用了ORL人臉數(shù)據(jù)庫,從中隨機選取312幅圖像、取多項式核函數(shù)、累計貢獻率均設(shè)為97%作為特征提取的閾值[21]。通過壓縮比(CR)和峰值信噪比(PSNR)分別比較PCA與KPCA對圖像的壓縮程度和壓縮質(zhì)量,計算公式為:
(10)
(11)
式中,n為原圖像的主成分?jǐn)?shù);k為壓縮后圖像的主成分?jǐn)?shù)[22];
式中,I,J分別為原圖像與壓縮后的圖像。仿真結(jié)果如表1、圖5和圖6所示。
表1 PCA與KPCA圖像壓縮數(shù)據(jù)
算法名稱累計貢獻率/%平均提取的主成分平均峰值信噪比/dB平均壓縮比PCA971632.626.21KPCA971265.059.99
由表1可以看出累計貢獻率均設(shè)為97%,KPCA在數(shù)據(jù)集上平均提取的主成分約為12個,包含了圖像97%的特征,相對PCA有著較好的提取能力。在圖像壓縮質(zhì)量和壓縮程度方面KPCA的平均峰值信噪比比PCA高出了約2倍,壓縮比高出了約1.6倍。說明KPCA在壓縮質(zhì)量和壓縮程度均優(yōu)于PCA。
圖4為ORL人臉數(shù)據(jù)庫中的3幅原圖像;圖5為將累計貢獻率設(shè)為97%作為閾值提取主成分經(jīng)PCA壓縮后的3幅圖像,分別提取了11,17,12個主成分;圖6為將累計貢獻率設(shè)為97%作為閾值提取主成分經(jīng)KPCA壓縮后的3幅圖像,分別提取了9,15,11個主成分。
圖4 ORL人臉數(shù)據(jù)庫原圖像
圖5 PCA壓縮后的圖像
圖6 KPCA壓縮后的圖像
由圖5和圖6可以看出,經(jīng)KPCA壓縮的視覺效果要優(yōu)于PCA,KPCA在主成分的提取上也少于PCA并有著較高的清晰度。
繼續(xù)采用仿真二中的數(shù)據(jù),仍然將累計貢獻率設(shè)為97%作為KPCA特征提取的閾值,并以CR和PSNR作為參數(shù)指標(biāo)比較JPEG與KPCA對圖像壓縮的程度和質(zhì)量,如表2和圖7所示。
表2 JPEG與KPCA圖像壓縮數(shù)據(jù)
算法名稱平均壓縮比平均峰值信噪比/dBJPEG9.66732.083KPCA10.03163.962
圖7 JPEG壓縮后的圖像
通過表2可以看出,KPCA在壓縮程度上不僅高于JPEG,而且在平均峰值信噪比上也比JPEG高出了2倍,說明KPCA有著更好的壓縮性能。
通過圖6與圖7可以看出,在視覺效果上KPCA也要優(yōu)于JPEG,說明KPCA壓縮的質(zhì)量更高。
本文研究利用KPCA算法對圖像進行壓縮過程中提取非線性特征,通過實驗仿真一,由于在圖像中存在著大量的非線性特征和噪聲干擾,KPCA能夠?qū)⑵涓玫胤珠_從而降低了圖像中的信息冗余達到更好的壓縮效果;通過實驗仿真二,對比了PCA與KPCA在圖像壓縮中的性能,結(jié)果表明KPCA有著良好的非線性特征提取能力,并且在壓縮性能上均優(yōu)于PCA;實驗仿真三比較了KPCA與傳統(tǒng)JPEG壓縮算法,KPCA不僅在壓縮比高于JPEG,而且在壓縮質(zhì)量上也優(yōu)于JPEG。因此KPCA算法適用于圖像壓縮,并有著較好的非線性特征提取能力,可以作為圖像的預(yù)處理器。