王鋼飛,康 琳
(太原科技大學 電子信息工程學院,太原 030024)
通常的數(shù)字水印算法分為空間域和變換域兩大類??臻g域算法通過直接修改載體圖像的灰度值來實現(xiàn)。比如LSB算法[1],優(yōu)點是操作簡便,易于實現(xiàn),缺點是對抗攻擊性能較差。變換域算法是在離散余弦變換域或小波變換域通過修改頻域系數(shù)來實現(xiàn)水,具有很強的魯棒性[2]。
數(shù)字水印非常重要的兩個特點是魯棒性和不可感知性,兩者存在很大的矛盾。魯棒性一定會要求增加水印信息的強度,而水印信息強度的增大必然會影響水印的不可感知性,因此必須綜合考慮這兩方面,達到魯棒性和不可感知性的平衡[3-4]。
文獻[5]提出了一種在小波變換低頻分量嵌入水印的算法。首先,對原始圖像進行二維小波分解,分解出一個低頻分量和多個高頻分量。再對低頻分量做二維DCT變換,在DCT系數(shù)的中高頻段嵌入水印。文獻[6]提出了一種利用小波變換低頻分量抵抗幾何攻擊的水印算法。該算法將水印信息連續(xù)多次嵌入載體圖像小波分解的低頻分量。利用嵌入水印圖像小波分解的低頻分量的特征點坐標集去抵抗幾何攻擊,算法性能良好。文獻[7]提出看一種在小波變換高頻分量嵌入水印的算法。首先通過閾值選擇出強邊緣,然后把水印信息嵌入在強邊緣的相位成分。強邊緣的相位成分嵌入水印保證了相位水印的魯棒性,而圖像的高頻分量中嵌入保證了水印的隱蔽性。
圖像低頻分量代表圖像的輪廓,圖像絕大部分的能量在此集中,將水印信息嵌入低頻分量能夠抵抗常見的攻擊例如壓縮、噪聲等,魯棒性很強,但是低頻分量是人類視覺的敏感點,對人眼的視覺影響比較大,所以不可見性差。
圖像高頻分量如圖1可分為代表水平細節(jié)的HL,代表垂直細節(jié)的LH和代表對角方向細節(jié)的HH。圖2 是lena圖像四級小波分解。圖像高頻分量代表圖像的邊緣和紋理,能隱藏較大的數(shù)據量,能量較少,人眼對這部分系數(shù)的變化也不敏感[8]。在圖像的高頻分量嵌入水印信息,可以很好地隱藏水印,但是在遇到低通濾波等攻擊時效果一般。
本文提出了一種充分融合低頻分量和高頻分量的優(yōu)點水印算法。首先將水印圖像進行仿射變換置亂加密后,進行一級小波分解,然后將原始載體圖像四級離散小波分解后的系數(shù),并針對低頻分量和高頻分量,采用不同的嵌入系數(shù),進行相應水印嵌入。然后在加噪、縮放、剪切、濾波、壓縮的攻擊情況下提取水印。
圖1 四級小波分解示意圖Fig.1 Four-layer wavelet decomposition
圖2 lena 圖像四級小波分解Fig.2 Four-layer wavelet decomposition of Lena image
為了增強水印信息的安全性和隱密性,在它嵌入載體圖像之前要進行預處理。本文中采用對15次迭代的仿射變換水印信息進行置亂預處理,降低了水印信息的像素相關性,有效提升了水印信息的安全性和對抗剪切攻擊的魯棒性。水印信息選取為“太原科大”字樣,大小為64*64 的二值圖像,見圖3。本文采用仿射變換公式如下:
圖3 水印信息及置亂的水印信息Fig.3 Original watermark and scrambled watermark
仿射變換正變換[9],當x x,y∈{0,1,2,…,N} (1) 當x≥y時: x,y∈{0,1,2,…,N} (2) 逆變換為,當x′+y′≤N+1時: x′,y′∈{0,1,2,…,N} (3) 當x′+y′>N+1時: x′,y′∈{0,1,2,…,N} (4) 其中,這里的N代表圖像矩陣的長度。 水印嵌入具體過程如下: (1)對水印信息W進行仿射變換的置亂處理。 (2)對置亂后的水印信息W*,進行一級小波變換分解,得到一個低頻分量逼近子圖ca1和三個高頻分量細節(jié)子圖ch1,cv1,cd1。 (3)將原始載體圖像X進行四級小波分解,得到一個低頻分量逼近子圖和多個高頻分量細節(jié)子圖,具體分解子圖為:cA4,cH4,cV4,cD4,cH3,cV3,cD3,cH2,cV2,cD2,cH1,cV1,cD1. (4)將置亂后水印信息W*一級小波分解后的各子圖分別嵌入原始圖像四級小波分解后的對應子圖中,不同的分組選取不同的系數(shù): (5) (5)對嵌入水印后的小波系數(shù)進行四級小波逆變換,得到嵌入水印的圖像XW。 水印提取具體過程如下: (1)將原始圖像X和嵌入水印后的圖像XW分別進行四級小波分解,分別得到多個細節(jié)子圖和一個逼近子圖。 (2)用cA4和cA4′,cH4和cH4′,cV4和cV4′,cD4和cD4′進行嵌入算法的逆運算提取水印圖像一級分解的子圖:ca1,ch1,cv1,cd1. (3)對提取的小波系數(shù)進行一級小波逆變換,得到水印置亂變換后的圖像W*. (4)對水印置亂變換后的圖像W*進行仿射逆變換,得到提取出來的水印信息W. (6) 采用標準測試圖像進行攻擊實驗,用來驗證算法的有效性。本文選取lena和pepper,兩幅512*512圖像作為測試的載體圖像,如圖5.本文采用峰值信噪比(PSNR)評價水印的不可見性,PSNR值越高,說明圖像的失真越小,算法的不可見性越好。本文采用歸一化相關系數(shù)(NC)評價原始水印和提取水印的相似性,NC值越大,表示兩者的相似度越高。具體公式如下: PSNR(dB)= (7) 其中:MAXI為圖像的灰度值的最大值,M,N分別表示圖像的長和寬。 (8) 其中:M,N分別表示圖像的長和寬,w表示原始水印,w*表示提出來的水印。 圖5 測試原始圖像Fig.5 The original image 嵌入系數(shù)過大會讓載體圖像質量的下降,而過小會讓水印的穩(wěn)健性下降。如何選擇恰當?shù)那度胂禂?shù),成為水印算法的關鍵。在本文算法中,高頻分量和低頻分量選擇不同的嵌入系數(shù)。a2、a3、a4是高頻分量不同方向的子圖,它們的嵌入系數(shù)應該是相同,以保證水印均勻的嵌入。如表1說明了不同的嵌入系數(shù)和嵌入水印的載體圖像(lena)的PSNR值以及受到椒鹽噪聲(方差=0.01)攻擊時提取水印的NC值。在a1=0.1,a2=0.2時水印的魯棒性最好,載體圖像(PSNR也比較高,因此本文后面在水印算法魯棒性測試中,選這個。 表1 嵌入系數(shù)和PSNR以及NC的關系Tab.1 The relationship between embeddingcoefficient and PSNR and NC 從表2可以看出,嵌入水印的載體圖像與原始載體圖像之間的PSNR值都在32以上,說明嵌入水印的載體圖像與原始載體圖像的相似度較高;原始水印信息與提取水印信息的NC值都在0.96以上。圖6為嵌入水印的載體圖像,從視覺來看,提取出的水印信息與原始水印信息基本沒有差別。無論是從客觀角度還是主觀角度看,本算法都有很好的不可感知性。 表2 算法不可感知性測試Tab.2 Experimental results of invisibility 圖6 嵌入水印信息的載體圖像及提取的水印Fig.6 Watermarked image and extracted watermarks 本文對嵌入水印的載體圖像進行不同形式的攻擊,計算提取水印和原始水印的PSNR值和NC值,說明該算法抵抗不同攻擊的良好能力。 3.3.1 噪聲攻擊 噪聲攻擊指的是對嵌入水印的載體圖像進行噪聲疊加。通過進行噪聲疊加后,從直觀看到圖像中的出現(xiàn)噪聲點,而且隨著強度的增加,噪聲點越來越多。實驗中,選取椒鹽噪聲的強度分別選為0.000 5、0.001、0.005、0.01.噪聲攻擊強度在一定范圍內時,提取出的水印都基本清晰可見。表3顯示了不同載體圖像抗椒鹽噪聲的實驗結果[10]。從表3可看出,隨著椒鹽噪聲攻擊強度從0.000 5増加到0.01,提取出的水印與原始水印之間的NC值和PSNR逐漸下降,PSNR值和NC值都在穩(wěn)定在一定的范圍內上。圖7嵌入水印圖像在經過方差為0.01的椒鹽噪聲攻擊下,提取出的水印圖像,基本清晰。因此,本文提出的算法對椒鹽噪聲有一定的魯棒性。 圖7 椒鹽噪聲(方差=0.01)攻擊下時提取的水印Fig.7 Extracted watermarks from attacked imagesafter a “salt and pepper” noise attack (Var = 0.01) 3.3.2 縮放攻擊 對圖像進行縮小或者放大的操作,會造成圖像信息的丟失。本文采用放大1.5倍、放大1.25倍、縮放1/2、縮放1/4的攻擊形式對圖像進行縮放攻擊。從表4中可以看出,不同的測試圖像在不同參數(shù)的縮放攻擊下,表明縮放攻擊對圖像的影響不大[11]。同時,水印圖像NC值達到了0.96 以上,PSNR值都在11以上表現(xiàn)出了很好的魯棒性能。在縮放參數(shù)為1/4的攻擊時,水印信息效果最差。圖8是嵌入水印圖像在經過參數(shù)為1/4 的縮放攻擊下,提取出的水印圖像,基本清晰。因此,該算法可以很好的對抗縮放攻擊,具有良好的魯棒性。 表3 不同圖像在椒鹽噪聲攻擊下的魯棒性能Tab.3 Experimental results for Salt and Pepper noise attack 表4 不同圖像在縮放攻擊下的魯棒性能Tab.4 Experimental results for the scaling attack 圖8 圖像在縮放(縮小1/4)攻擊下時提取的水印效果圖Fig.8 Extracted watermarks from attackedimages after a scaling attack (scale=1/4) 3.3.3 JPEG有損壓縮 JPEG有損壓縮就是對JPEG壓縮后的圖像再恢復后,肉眼觀察不到圖像損失的變換。但是JPEG有損壓縮,在壓縮過程中造成了圖像損失,而且損失的信息無法還原。從表4看出,這里的壓縮質量因子選取90%、80%、70%、60%.從表5中可以看出,隨著壓縮質量因子的逐漸減少,嵌入水印信息的PSNR值在不斷逐漸減少,提取出的水印圖像的NC值變化或減少或增加,從而說明采用兩個客觀指標來評價水印算法更全面。圖9是嵌入水印圖像在經過質量因子等于60的JPEG有損壓縮攻擊下,提取出的水印圖像,基本清晰。在質量因子等于60時,圖像破壞最嚴重,但是水印圖像可以很好的提取出來,PSNR值都在19以上,NC值都在0.97以上。在質量因子等于80時,水印圖像PSNR值都在20以上。因此,本文提出算法可以抵抗JPEG 壓縮攻擊。 表5 不同圖像在JPEG 壓縮攻擊下的魯棒性能Tab.5 Experimental results for the JPEG compression attack 圖9 在JPEG有損壓縮(質量因子=60)攻擊下時提取的水印Fig.9 Extracted watermarks from attacked imagesafter a JPEG attack (JPEG=60) 3.3.4 濾波攻擊 這部分對嵌入水印的載體圖像進行了各種濾波攻擊,比如中值濾波(3*3)、高斯低通濾波(3*3)、均值濾波(3*3)、馬賽克濾波(3*3)。從表6中可以看出,該算法對于高斯低通濾波攻擊,性能略微好于其他濾波攻擊,NC值和PSNR值高于其他算法。圖10是嵌入水印圖像在經過參數(shù)為(3*3)的馬賽克濾波攻擊下,提取出的水印圖像,基本清晰。該算法對于馬賽克濾波性能較差,但是提取出來的水印也算清晰的。說明該算法可以抵抗濾波形式的攻擊。 表6 不同圖像在濾波攻擊下的魯棒性能Tab.6 Experimental results for the filtering attack 圖10 馬賽克濾波(3*3)攻擊下時提取的水印Fig.10 Extracted watermarks from attacked imagesafter a Mosaic filtering attack (3*3) 3.3.5 剪切攻擊 這部分對嵌入水印的載體圖像進行了各種剪切攻擊,剪切的參數(shù)分別為1/16、1/8、1/6、1/4。從表7中看出,隨著剪切部分從最小的1/16逐步達到最大的1/4,水印信息的PSNR值在不斷逐漸減少,提取出的水印圖像的NC值不斷逐漸減少。圖11是嵌入水印圖像在經過參數(shù)為1/4的剪切攻擊下,提取出的水印圖像,基本清晰。當剪切的部分達到1/4時,水印恢復的效果最差,但是NC值仍然在0.92之上,PSNR值在12以上。本文提出的算法使用了仿射變換置亂水印信息可以有效的抵抗剪切攻擊。因此提出算法對剪切攻擊具有非常好的魯棒性。 圖11 剪切(1/4)攻擊下時提取的水印Fig.11 Extracted watermarks from attackedimages after a cropping attack (1/4) 表7 不同圖像在剪切攻擊下的魯棒性能Tab.7 Experimental results for the cropping attack 在本部分中,本文提出的算法與文獻[12]的算法進行了比較。載體圖像都采用pepper圖。表8中NC值表示不同水印算法對某些攻擊的測試結果。本文提出的算法NC值要稍微高于文獻[12]的算法NC值。本文提出的算法顯示出良好的健壯性和魯棒性能提高。 表8 本分算法與其它算法的魯棒性能比較Tab.8 Comparison of NC values on Baboon image 提出了一種基于仿射變換置亂的小波域數(shù)字水印算法。這種算法充分結合了小波變換后不同分解系數(shù)的優(yōu)點,首先把原始圖像進行四級小波分解,水印圖像再仿射變換置亂后進行一級小波分解,針對不同的分解系數(shù)采用不同的嵌入強度,最后通過小波逆變換重構嵌入水印的圖像。實驗結果表明,對嵌入水印的圖像進行不同類型的攻擊,NC都在0.9以上,具有較強的魯棒性和不可見性。2.2 水印的嵌入
2.3 水印的提取
3 水印算法性能分析
3.1 嵌入系數(shù)的選擇
3.2 水印的不可見性
3.3 算法魯棒性測試
3.4 算法性能比較
4 結束語