??? 摘 要:提出了一種新的基于離散小波變換" title="小波變換" target="_blank">小波變換(DWT)與奇異值分解(SVD)相結(jié)合的數(shù)字圖像水印算法。該算法將原始圖像作小波分解并將小波分解得到的低頻子帶進(jìn)行分塊,對每一塊進(jìn)行奇異值分解后,選取每塊中最大的奇異值通過量化的方法嵌入經(jīng)過Arnold置亂后水印信息。水印的提取不需要原始圖像,但受到密鑰的限制,不知道密鑰的人無法正確地恢復(fù)數(shù)字水印。實驗結(jié)果表明,該算法具有較好的不可感知性、魯棒性和安全性。
??? 關(guān)鍵詞:離散小波變換;奇異值分解;盲水??;圖像置亂;魯棒性
?
??? 隨著計算機(jī)網(wǎng)絡(luò)的迅速發(fā)展和廣泛應(yīng)用,數(shù)字媒體的非法篡改、復(fù)制和盜版現(xiàn)象也越來越普遍,數(shù)字媒體的版權(quán)保護(hù)已成為迫切需要解決的問題。作為信息隱藏領(lǐng)域中的數(shù)字水印技術(shù)是實現(xiàn)多媒體版權(quán)保護(hù)與信息完整性保證的有效方法。它的基本思想是在數(shù)字圖像、音頻和視頻等產(chǎn)品中嵌入秘密的水印信息以便保護(hù)數(shù)字產(chǎn)品的版權(quán)。對于數(shù)字水印技術(shù),一般要求水印系統(tǒng)具有不可見性、魯棒性和安全性。也就是說,水印必須是不可察、不可測和難于破壞的。
??? 目前,從實現(xiàn)角度看水印算法主要分為空域和變換域算法兩大類??沼蛩惴ㄊ侵苯訉沼驍?shù)據(jù)進(jìn)行操作,變換域算法是在變換域中進(jìn)行水印的嵌入與提取,如離散傅里葉變換(DFT)、離散余弦變換(DCT)和離散小波變換(DWT)[1]等。與空域相比,變換域算法具有更好的魯棒性。由于離散小波變換具有良好的多分辨率表示、時頻局部分析特性,基于DWT變換域的數(shù)字圖像水印算法的研究更是得到了普遍的關(guān)注。
??? 按水印的提取方法劃分,水印算法又可分為提取時需要原圖像和不需要原圖像兩種。前者稱為非盲水印,后者稱為盲水印。非盲水印算法在提取過程中需要原始圖像,在版權(quán)認(rèn)證的應(yīng)用中,意味著需要大量的存儲資源和計算資源,如果需要認(rèn)證的數(shù)字作品數(shù)量很多,給定一個數(shù)字作品要去查找相應(yīng)的原作品本身就很困難。近幾年來學(xué)術(shù)界研究的數(shù)字水印算法大多數(shù)屬于盲水印算法。
??? 本文提出的水印算法是一種新的基于小波變換(DWT)和奇異值分解(SVD)相結(jié)合的盲水印算法。這樣可以充分利用DWT的多分辨率特性和SVD所固有的特征,增強(qiáng)了水印的不可見性和魯棒性。在水印提取過程中不需要原始圖像,但受到密鑰的限制,提高了安全性。以下將詳細(xì)介紹本算法的原理以及水印嵌入、提取的過程和實驗結(jié)果。
1 基于DWT-SVD的水印算法
1.1 圖像置亂
??? 所謂“圖像置亂”,可以表示為R:U→U、其中,R表示映射,R2表示二維空間,即圖像置亂是二維空間的一個映射。任何具有可逆特性的映射都可用于圖像置亂。置亂的作用是改變原圖像的排列組合方式及空間相關(guān)性。用得較多的置亂技術(shù)是基于Arnold變換、幻方變換、分形Hilbert曲線、IFS模型、Conway游戲和Gray碼變換等方法。
??? Arnold變換是Arnold在研究環(huán)面上的自同態(tài)時提出的,后來被應(yīng)用到數(shù)字圖像上。從采樣原理分析,數(shù)字圖像可看作是在二維連續(xù)的曲面上,按照某一間隔和某種策略進(jìn)行采樣所得到的一個二維離散點的陣列,即一個圖像矩陣。對于一幅大小為N×N的圖像A,用公式(1)進(jìn)行Arnold變換:
????
式中,(x, y)是原圖像的像素點,(x’, y’)是變換后新圖像的像素點,N是圖像階數(shù)即圖像的大小,一般考慮正方形圖像,k是屬于[1, N]的一個整數(shù)。記變換矩陣為A,由此,做迭代程序:
???
式中,n代表迭代次數(shù),整個迭代過程呈周期性,即當(dāng)此圖像經(jīng)過一定周期的迭代后會重現(xiàn)原圖像。由此,可見,Arnold變換算法簡單直觀且具有周期性,因此,本文選取Arnold變換對水印圖像進(jìn)行預(yù)處理,其置亂次數(shù)及k可作為隱藏系統(tǒng)的密鑰,從而提高了系統(tǒng)的安全性和保密性。
1.2 圖像的小波變換
??? 小波變換是近幾年興起的一個嶄新的信息分析理論,是一種新的可達(dá)到時域或頻域局部化的時-頻域分析方法,具有多分辨率分析的特點。利用小波變換可以提高水印在視覺上的隱蔽性和穩(wěn)健性。圖1是一個小波一級分解示意圖,通過一級小波變換,原始圖像被分解為4個一級子圖,即1個低頻子帶圖像LL和3個高頻子圖:水平細(xì)節(jié)子帶圖像HL、垂直細(xì)節(jié)子帶圖像LH、對角細(xì)節(jié)子帶圖像HH。其中LL集中了圖像的大部分能量,可以繼續(xù)分解。
?
?
1.3 SVD特性分析
??? 數(shù)值分析中的奇異值分解(SVD)是一種將矩陣對角化的數(shù)值算法[2]。從線性代數(shù)的角度,一幅灰度圖像可以被看成是一個非負(fù)矩陣。若一幅圖像用A表示定義為A∈RM×N,其中,R表示實數(shù)域,不失一般性,假設(shè)M
???
式中,都是正交矩陣,Σ是一個對角矩陣,其對角線上的元素滿足:
???
??? σi是由該分解所唯一決定的,叫做A的奇異值,它也是AAT的特征值的平方根。分解式UΣVT稱作A的奇異值分解。奇異值分解具有如下3個顯著特性:(1)奇異值所表現(xiàn)的是圖像的內(nèi)蘊特性;(2)圖像奇異值的穩(wěn)定性非常好,在圖像被施加小的擾動時,其奇異值不會有大的變化;(3)在對圖像做奇異值分解所得的奇異值序列σi中,第一個奇異值比其他奇異值大得多[4]。
??? 從數(shù)字水印的角度,在奇異值中嵌入水印,利用圖像奇異值的第1個特性使得水印嵌入算法具有很好的不可見性;第2個特性確保水印具有很好的魯棒性;第3個特性為選擇奇異值的方法提供了依據(jù),因為塊奇異值分解會產(chǎn)生更多具有較大數(shù)值的奇異值,這對水印嵌入是有利的,所以本文采用塊奇異值分解。
1.4 水印的嵌入
??? 設(shè)I為載體圖像,W為水印圖像。
??? (1) 利用公式(1)和(2)對水印圖像W進(jìn)行Arnold置亂變換后得到W’,其中k和置亂次數(shù)可以作為密鑰。
??? (2) 對載體圖像I (大小為M×N)進(jìn)行一級小波分解,得到3個高頻子帶HH、LH、HL和1個低頻子帶LL;將低頻子帶圖像按m×n分塊,則低頻子帶圖像所能嵌入水印的最大bits數(shù)為:round(M/2m)×round(N/2n),即如果水印的像素點數(shù)超過了該值,則無法嵌入該水印,或者必須先對水印進(jìn)行尺度變換,減少信息量。
??? (3) 對每一塊進(jìn)行奇異值分解(SVD),Blocki=UiΣiViT并讓Σi中的奇異值σi按降序排列。
??? (4) 對每塊中的第1個值σi按以下規(guī)則進(jìn)行修改(令Z=σis1mod q):
??? ① ifW(i,j)'=1 ,則:
???
??? 式中,q為嵌入強(qiáng)度因子,W(i,j)'為相應(yīng)塊所嵌入置亂后的水印信息,嵌入水印后的塊
??? (5) 重復(fù)(3)、(4)直至嵌入所有的水印信息,再進(jìn)行小波的逆變換即可得到水印后的圖像。
1.5 水印的提取
??? 水印提取是水印嵌入的逆過程,該算法最大的優(yōu)點是提取水印不需要原始圖像。其提取過程如下:
??? (1) 將待檢測圖像進(jìn)行一級小波分解,將得到的低頻子帶圖像按m×n分塊。
??? (2) 對每一塊進(jìn)行奇異值分解(SVD),Blocki'=UiΣi'ViT,并讓σi'中的奇異值Σi'按降序排列。
??? (3) 按以下規(guī)則對σ1'進(jìn)行修改(令Z=σ1'modq):
???
??? (4) 重復(fù)(2)、(3)直到所有低頻子帶的塊嵌入的水印信息都得到提取。
??? (5) 將提取出的W`通過保存的密鑰進(jìn)行Arnold的反變換,即可獲得原始水印信息W。
2 實驗結(jié)果
??? 為了檢驗本算法水印的魯棒性和不可見性,本文采用2個常用指標(biāo)值來進(jìn)行度量。
??? (1) 歸一化相似度NC,度量所提取的水印與原始水印的相似程度,NC定義為:
???
??? (2) 峰值信噪比PSNR,度量隱秘載體圖像與原始圖像之間的質(zhì)量差別,PSNR定義為:
???
??? 實驗平臺為Matlab6.5仿真平臺,原始載體圖像為標(biāo)準(zhǔn)灰度圖像Boat(512×512×8)、水印為32×32像素的二值圖像如圖2所示。本文采用haar小波基,將載體圖像Boat一層小波分解后,將低頻子帶圖像系數(shù)分成1024個8×8大小的塊。為了實驗的視覺效果,LL頻帶選取的嵌入強(qiáng)度因子q=130,密鑰的值取k=158,迭代次數(shù)n=13。
?
??? 為了顯示提出算法的魯棒性,本文對圖2(c)的水印圖像采取了JPEG壓縮、噪聲攻擊、中值濾波、扭曲和裁減等攻擊,并與一些典型的水印算法進(jìn)行了比較。
??? (1) JPEG壓縮
??? 對圖2(c)在100%~20%的范圍內(nèi)進(jìn)行壓縮時,提出的水印清晰可見,NC值都在0.98以上,當(dāng)壓縮因子為15%時提取出的水印如圖3(a)所示。這時,圖像文件大小已由原來258kb壓縮到11kb,而提取的水印質(zhì)量卻仍很好,可見水印對JPEG壓縮具有很好的魯棒性。
??? (2) 增加噪聲
??? 對圖2(c)增加方差為0.005的高斯噪聲和密度為0.012的椒鹽噪聲后,提取出的水印分別如圖3(b)和圖3(c)所示。
??? (3) 中值濾波
??? 對圖2(c)連續(xù)5次實施窗口為3×3的中值濾波處理,提取出的水印仍可分辨,提取出的水印如圖3(d)所示。
?
?
?
??? (4) 幾何扭曲
??? 對圖2(c)用photoshop工具進(jìn)行扭曲攻擊,載體圖像和提取出的水印如圖4所示。
?
???? (5) 圖像裁減
??? 對圖2(c)進(jìn)行不同部位的任意裁減,載體圖像和提取出的水印如圖5所示。
?
?????
??? (6) 模糊和銳化攻擊
??? 對圖2(c)分別進(jìn)行模糊和銳化處理,載體圖像和提取出的水印如圖6所示。
?
??? (7) 算法比較
??? 圖像水印的攻擊測試方法有很多,上述攻擊測試的結(jié)果已經(jīng)可以證明本文提出的算法具有很好的魯棒性。為了突出這種算法的性能,本文將其與幾種相關(guān)的典型算法進(jìn)行了類比,其結(jié)果如表1所示。雖然參考文獻(xiàn)[2]也是使用了SVD分解的盲水印算法,但通過攻擊測試,不難發(fā)現(xiàn)本文提出的算法魯棒性更好。選用標(biāo)準(zhǔn)512×512×8灰度圖像Lena和Peppers進(jìn)行對比實驗,其結(jié)果如表2所示。
?
?
?
??? 本文提出了一種在小波變換域的低頻子圖中基于塊奇異值分解的量化水印算法,這種基于DWT-SVD的水印技術(shù)充分結(jié)合了小波變換的多分辨率、時頻局部的特點和奇異值的3個特性,具有如下特點:
??? (1) 水印是一幅人眼可識別的有意義的二值圖像,增加了水印的可證明性。
??? (2) 通過Arnold置亂后的水印嵌入增加了水印的安全性。
??? (3) 基于塊奇異值分解的量化水印算法充分利用了奇異值的3個特性,保證了水印的不可見性;水印嵌入的位置選擇小波變換的低頻域,并選擇塊奇異值中的最大值進(jìn)行嵌入增強(qiáng)了算法的魯棒性。
??? (4) 該算法是盲水印算法,提取水印不需原始圖像,算法復(fù)雜度低。
??? 實驗結(jié)果表明,此方法魯棒性和不可見性好,簡單易實現(xiàn),能抗各種圖像處理攻擊,是一種行之有效的圖像鑒定方法。
參考文獻(xiàn)
[1]?JIN Cong, TAO Feng,FU Yu. Image walermarking based HVS characteristic of warelet transform.International Conference on Intelligent Information Hiding and Multimedia signal Processing,Pasadem,Califdrnia,USA IEE Computor Society 18.20 December 2006: 71-74.
[2]?周波,陳健. 基于奇異值分解的、抗幾何失真的數(shù)字水印算法[J]. 中國圖像圖形學(xué)報, 2004, 9(4):507-512.
[3]?Gass S I, Rapcsak T. Singular value decomposition in AHP [J]. European Journal of Operational Research, 2004,154(3):573- 584.
[4]?劉瑞楨,譚鐵牛.基于奇異值分解的數(shù)字圖像水印方法[J].電子學(xué)報,2001,29(2):168-171.
[5]?胡志剛,謝萍,張憲民.一種基于奇異值分解的數(shù)字水印算法[J].計算機(jī)工程,2003,29(17):162-164.