李順利 姚廷富 余萍 李丹
摘要:隨著大數(shù)據(jù)技術(shù)的飛速發(fā)展,矩陣分解特別是矩陣的奇異值分解(SVD)在數(shù)據(jù)檢索、圖像壓縮、人臉識(shí)別、神經(jīng)網(wǎng)絡(luò)等領(lǐng)域有著廣泛應(yīng)用。針對(duì)圖像壓縮問(wèn)題,首先給出了矩陣奇異值分解的基本理論,指出了矩陣奇異值的存在和唯一性,同時(shí)分析了矩陣奇異值分解的一般方法并用Matlab加以實(shí)現(xiàn);然后論述了矩陣奇異值分解用于圖像壓縮的基本原理,最后用數(shù)值實(shí)驗(yàn)展示理論方法的有效性。
關(guān)鍵詞:矩陣分解;圖像壓縮;低秩逼近
中圖分類號(hào):TP18? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2022)19-0001-02
1 奇異值分解的基本理論
矩陣的奇異值分解(Singular Value Decomposition,簡(jiǎn)稱SVD),在數(shù)值計(jì)算中是一種重要的矩陣分解,在最優(yōu)解問(wèn)題、擾動(dòng)問(wèn)題[1]、最小二乘問(wèn)題、廣義逆問(wèn)題以及圖像處理[2]等問(wèn)題中都有著重要應(yīng)用。
1.1 奇異值分解的概念
定義1.1[3] 設(shè)實(shí)矩陣[A∈Rm×n](或復(fù)矩陣[A∈Cm×n]),半正定矩陣[ATA](當(dāng)[A]為復(fù)矩陣時(shí)為[A?A],[A?]為[A]的共軛轉(zhuǎn)置)的特征值為[λ1≥λ2≥…λr>λr+1=…λn=0],則稱特征值的算術(shù)平方根,即[σi=λii=1,2,…,n]為[A]的奇異值,記作[σ1≥σ2≥…≥σr>σr+1=…=σn=0],矩陣[A]的全部奇異值組成的集合為[σ(A)]:
[σ(A)={σ≥0:ATAx=σ2x,x∈Rn,x≠0}].
特別地,當(dāng)[A]為零矩陣時(shí),它的奇異值為[0].
定理1.2[4] 設(shè)實(shí)矩陣[A∈Rm×n](或復(fù)矩陣[A∈Cm×n]),則[A]的奇異值是唯一確定的,并且一定存在正交矩陣(或酉矩陣)[U=[u1,u2…um]∈Rm×m](或[U∈Cm×m])和正交矩陣(或酉矩陣)[V=[v1,v2,…vn]∈Rm×m](或[V∈Cn×n]),使得[A]滿足:
[Am×n=Um×mDm×nVTn×n], ? ? ? ? ? ? ? ? ?(1)
其中[D=D000],且[D=diagσ1,σ2,…,σr,] [σi(i=1,2…r)]為矩陣[A]的全部非零奇異值,稱該分解方法為矩陣的奇異值分解,[uj(j=1,2…m)]為矩陣[A]的左奇異向量,[vi(i=1,2…n)]為矩陣[A]的右奇異向量。
1.2 奇異值分解的一般步驟
1)計(jì)算[ATA]的特征值[λii=1,2,…,n]以及對(duì)應(yīng)的特征向量[ξii=1,2,…,n]并正交單位化為[vii=1,2,…,n](標(biāo)準(zhǔn)正交特征向量),組成矩陣[V];
2)求[A]的秩[r],奇異值[σi=λii=1,2,…,n]及[D=diagσ1,σ2,…,σn];
3)由等式(1.1)可得:[AV=UD]即,[AVD-1=U],計(jì)算[U];
4)奇異值的分解為[A=UDVT].
2 基于SVD的圖像壓縮的原理——低秩逼近
近年來(lái),隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,對(duì)數(shù)據(jù)存儲(chǔ)的要求越來(lái)越高,而我們熟知的圖像都是以數(shù)據(jù)的形式進(jìn)行存儲(chǔ),因此在盡量保持清晰度的基礎(chǔ)上減少圖像存儲(chǔ)的空間有一定的應(yīng)用價(jià)值。
定理2.1[5](秩一逼近) 設(shè)矩陣[A]的秩為[r], [A]的全部奇異值為[σ1≥σ2≥…≥σr>σr+1=…=σn=0],則[A]可以表示成[r]個(gè)秩1矩陣之和:
[A=U(D1+D2+…+Dr+…Dn)VT=j=1rσjujvTj], ? (2)
其中[Dj=diag(0,…,0,σj,0…,0)], [j=1,2,…,n.]
定義2.1[6]? 當(dāng)矩陣[A]的秩為[r [Am×n=Um×rD′r×rVTr×n] ? ? ? ? ? ? ? ? ? ?(3) 其中[Um×r=[u1,u2…ur]],[D′r×r=diagσ1,σ2,…,σr],[Vr×n=[v1,v2,…vr]]等式(3)稱為矩陣[A]的截?cái)嗥娈愔捣纸猓╰runcated SVD),或稱為薄奇異值分解(thin SVD)。 圖像壓縮的重點(diǎn)和難點(diǎn)在于尋找矩陣[A]的低秩逼近矩陣[Ak],[Ak]需滿足數(shù)據(jù)量較矩陣[A]?。ㄕ純?nèi)存較少)并且保留主要“特征”,不妨令[rank(Ak)=k],[k [Ak=j=1kσjujvTj],[k 根據(jù)矩陣[A]的Frobenius范數(shù)(F范數(shù))的正交(復(fù)數(shù)域?yàn)橛希┎蛔冃?,矩陣[A]的Frobenius范數(shù)為: [AF=UDVTF=DF=σ21+σ21+…σ2r] 則矩陣[A]與矩陣[Ak]的低秩逼近問(wèn)題可以表示為如下最小二乘問(wèn)題: [min? ? ? ? ? ? ? rank(B)=kA-BF=A-AkF=σ2k+1+σ2k+2+…σ2r] (5) 這一結(jié)論就是數(shù)據(jù)壓縮的基本原理。 3 圖像壓縮數(shù)值實(shí)驗(yàn) 3.1 基于SVD分解的圖像壓縮的基本步驟: 1)將圖片讀取為數(shù)據(jù)矩陣,如果是彩色圖片,需要進(jìn)行灰度處理。 2)設(shè)置壓縮比[7-8][ρ],其中[ρ=mnk(m+n+1)],[k]越小,壓縮比越大,壓縮后的圖像內(nèi)存越小,但是清晰度越差。 3)對(duì)數(shù)據(jù)矩陣進(jìn)行SVD分解,如果數(shù)據(jù)矩陣不是方陣(圖像為長(zhǎng)方形),則轉(zhuǎn)化為截?cái)郤VD分解。 4)用SVD分解的低秩逼近進(jìn)行重構(gòu)。 5)讀取壓縮后的圖像。 3.2 實(shí)例分析 1)圖像讀取 原始圖像命名為wangym.jpg,分辨率:為690×464,大小:296KB。 將原始圖像讀取為數(shù)據(jù)矩陣[A],Matlab命令如下: >> A=imread('wangym.jpg');? ?%結(jié)果為464×690×3,3代表是彩色圖像 >> imshow(A);? ?%展示[A]矩陣對(duì)應(yīng)的Matlab圖片 >> A_gray=rgb2gray(A);%將彩色圖像轉(zhuǎn)化為灰度圖像(三維轉(zhuǎn)化為二維) >> imshow(A_gray) 2)設(shè)置壓縮比,并對(duì)讀取的數(shù)據(jù)矩陣[A]進(jìn)行SVD分解 >>[m,n] = size(A_gray);? ? ?%獲取圖像的行數(shù)和列數(shù) >>k = 50;? ? ? ? ? ? ? ? ?%設(shè)定壓縮比率,不同數(shù)值壓縮比不同。 >>A_gray = double(A_gray);%轉(zhuǎn)為雙精度 >>[U,S,V] = svd(A_gray);? ?%奇異值分解 >>S= diag(S);? ? ? ? ? ? ?% 變成列向量 >>S(k:end)=0;? ? ? ? ? ? ?%保留前k個(gè)奇異值 3)對(duì)于長(zhǎng)方形圖片進(jìn)行截?cái)郤VD分解并進(jìn)行低秩逼近 >>if m>=n >>S = [diag(S);zeros(m-n,n)]; >>else S = [diag(S),zeros(m,n-m)]; >>end >>g = U*S*V'; % S的奇異值分解 >>g = uint8(g); 4)顯示壓縮率并讀取壓縮后的圖像 >>rho = n^2/(k*(2*n+1)); %壓縮率 >>subplot(2,2,2),imshow(mat2gray(g)),title('壓縮圖'); 3.3壓縮率和奇異值對(duì)比分析 在公式(5)中,[k]的取值對(duì)SVD分解的低秩逼近有直接影響,因?yàn)閮H用前[k]個(gè)奇異值代替了全部的奇異值,一般情況下[k]的取值越小,參數(shù)的誤差較大,因此雖然壓縮率較高但清晰率較低。 在實(shí)例分析中,選取的圖像為690×464(對(duì)應(yīng)數(shù)據(jù)矩陣[A]的大小為464行、690列),如圖5所示,基于SVD低秩逼近的壓縮方法能夠取得較好的壓縮效果,需要說(shuō)明的是如果是超大圖片,一般的SVD方法壓縮效率較低,上述Matlab程序可以進(jìn)一步優(yōu)化。 參考文獻(xiàn): [1] Riyajuddin,Reddy A P.Various image processing attacks for image watermarking in the wavelet domain using singular value decomposition and discrete cosine transform[J].Review of Computer Engineering Studies,2021,8(2):51-59. [2] 龍慶延,王正勇,潘建,等.基于奇異值分解和引導(dǎo)濾波的低照度圖像增強(qiáng)算法[J].科學(xué)技術(shù)與工程,2021,21(12):5018-5023. [3] 張賢達(dá).矩陣分析與應(yīng)用[M].北京:清華大學(xué)出版社,2008. [4] LIOYDN.TREFETHEN,陸金甫,關(guān)治,譯.數(shù)值線性代數(shù)——圖靈數(shù)學(xué)統(tǒng)計(jì)學(xué)叢書[M].北京:人民郵電出版社,2006. [5] 吳俊政.一種基于奇異值分解的圖像壓縮方法[J].計(jì)算機(jī)與數(shù)字工程,2009,37(5):136-138. [6] 沈丹萍.基于奇異值分解的多尺度變換域圖像細(xì)化算法[J].山東農(nóng)業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2020,51(2):262-265. [7] 張曉鋒,賈曉強(qiáng).基于奇異值分解的數(shù)字圖像壓縮技術(shù)研究[J].電子設(shè)計(jì)工程,2017,25(19):179-182,186. [8] 張帥,董亞芬.基于奇異值分解的數(shù)字圖像壓縮及重構(gòu)研究[J].信息技術(shù)與信息化,2017(S1):112-115. 收稿日期:2022-02-25 基金項(xiàng)目:貴陽(yáng)學(xué)院2020年大學(xué)生創(chuàng)新創(chuàng)業(yè)項(xiàng)目(項(xiàng)目編號(hào):0203008002035,0203008002029),市科技局-李順利GYU-KYZ(2019-2020)PT06-04 (項(xiàng)目編號(hào):K1930000701225) 作者簡(jiǎn)介:李順利(1982—),男,山東濟(jì)寧人,博士研究生,副教授,主要研究方向?yàn)閿?shù)值圖像處理。