王麗+++吉建英+++郭志卓+++孫永輝
摘 要: 該算法對原始圖像進行分塊,對每一塊進行兩層小波分解,對水印圖像進行一定次數(shù)的Arnold變換,這個次數(shù)作為密鑰;在嵌入過程中,將所有的圖像塊分成兩組,并且在每一塊上選擇嵌入位置,分別在兩組圖像塊中嵌入同一水印。水印的提?。焊鶕?jù)嵌入的規(guī)則,在相應(yīng)位置提取兩幅水印圖像,再根據(jù)密鑰進行一定次數(shù)的Arnold變換,將提取出的兩幅水印圖像合成為一個更加準(zhǔn)確的水印圖像。該算法能夠較好的抵抗常見的圖像處理方法,具有較強的魯棒性。
關(guān)鍵詞: 數(shù)字水印; Arnold變換; 魯棒性; 相似度
中圖分類號:TP391 文獻(xiàn)標(biāo)志碼:A 文章編號:1006-8228(2016)05-08-04
Abstract: The algorithm divides the original image into blocks, makes two layers of wavelet decomposition for each block, makes a certain number of Arnold transformations to the watermark image, and takes the number as the key. In the embedding process, all the image blocks are divided into two groups, select the embedded location on each piece, and embed the same watermark in two groups of image block respectively. Watermark extraction: according to the embedding rules, extract watermark images in the corresponding position, make a certain number of Arnold transformations according to the key, and synthesize the two watermark images extracted into a more accurate image. The algorithm can resist common image processing methods and has strong robustness.
Key words: digital watermark; Arnold transformation; robustness; similarity
0 引言
計算機網(wǎng)絡(luò)和多媒體技術(shù)的飛速發(fā)展使得數(shù)字化媒體的傳播更加便捷,而對其的惡意篡改和盜版也越來越猖撅。傳統(tǒng)的版權(quán)保護技術(shù)已經(jīng)不能有效滿足信息安全的需要,而數(shù)字水印[1]技術(shù)作為信息隱藏技術(shù)研究領(lǐng)域的重要分支,以其較強的魯棒性、安全性和透明性等特點成為一個新的研究領(lǐng)域,吸引了越來越多科研人員的注意。
目前,全球很多機構(gòu)支持或開展此項研究,并且發(fā)現(xiàn)了一些有效的方法,比如空域算法[2]、變換域算法[3]。其中利用變換域算法獲得的圖像,即使在原始圖像有一定失真的情況下,仍能提取出可信賴的水印,因此,變換域算法吸引了很多研究人員關(guān)注。本文對變換域算法做進一步改進,以獲得更好的加密效果。
1 數(shù)字水印技術(shù)的基本概念和變換域算法
在一般的變換域算法中,大部分水印算法采用了擴展頻譜通(spread spectrum communication)技術(shù),但是該算法的隱藏和提取信息操作復(fù)雜,隱藏信息量不能很大,鑒于這種情況,本文對該算法進行一定的改進,展開基于小波變換和人類視覺系統(tǒng)的盲數(shù)字水印算法的研究[4]。
1.1 常用的概念
定義1.1 凡滿足如下允許條件
(為的Fourier變換)或者相應(yīng)的等價條件的函數(shù)稱為一個母小波(mother wavelet)。對作平移和伸縮得:
其中,稱為小波函數(shù),簡稱小波。
定義1.2 設(shè),為母小波函數(shù),,,則f(t)的連續(xù)小波變換為,
。
其重構(gòu)公式即f(t)的逆連續(xù)小波變換。
1.2 算法的基本思想
本算法為一種小波變換域上的數(shù)字水印算法。水印算法的魯棒性非常重要,嵌入水印時應(yīng)使水印信息盡量均勻分布于圖像各部分,這有利于提高水印算法對各種攻擊的抵抗能力。嵌入水印時,在原始圖像中嵌入兩個完全相同的原始水印,這樣,在水印檢測時能夠得到兩個水印圖像,將這兩個圖像進行綜合處理,可以提高水印算法的魯棒性。具體的講,對原始圖像分塊,每塊的尺寸為32×32,然后對每塊圖像進行小波變換,將圖像塊分成兩組,對每一組圖像塊將水印系數(shù)平均地分別嵌入各塊圖像中。另外,為了消除水印圖像像素的空間相關(guān)性,本文還采用了 Arnold變換對水印進行預(yù)處理。
1.3 水印算法具有以下特點
⑴ 應(yīng)用Arnold變換對水印進行預(yù)處理,消除水印圖像像素的空間相關(guān)性,并能產(chǎn)生一個密鑰,為水印的安全保密性提供了保障。
⑵ 分塊處理平均嵌入水印系數(shù),可以提高水印算法的魯棒性。
⑶ 分兩組圖像塊嵌入完全相同的水印,也可以提高水印算法的魯棒性。
1.4 數(shù)字水印的嵌入算法
⑴ 對原始圖像I分塊,每塊大小為32×32,分別對每一塊進行兩層小波分解,得到圖像I1。
⑵ 將所有的圖像塊分成兩組:G1,G2。具體分組:將圖像塊的行從上到下標(biāo)號,圖像塊的列從左到右標(biāo)號。G1由行標(biāo)號、列標(biāo)號同為奇數(shù)的圖像塊和行標(biāo)號、列標(biāo)號同為偶數(shù)的圖像塊構(gòu)成,G2由剩余的圖像塊構(gòu)成(如圖4)。設(shè)G1,G2所包含的塊數(shù)分別為g1,g2(g1,g2最多差1)。將G1,G2中的圖像塊分別排序,在G1中行標(biāo)號小的排在前面,行標(biāo)號相同時列標(biāo)號小的排在前面,在G2中行標(biāo)號大的排在前面,行標(biāo)號相同時列標(biāo)號大的排在前面。如圖1所示。
圖1 黑格組成G1,白格組成G2
⑶ 若水印A不是正方形圖像,則將A按算法1存入n×n方陣B中。
⑷ 將B作k次Arnold變換得到n×n矩陣C(C各個像素點的灰度值仍稱水印系數(shù))。
⑸ 計算G1,G2的各圖像塊應(yīng)嵌入的水印系數(shù)的個數(shù)。
設(shè):
則G1中前m12塊嵌入m11個水印系數(shù),其余圖像塊嵌入m11-1個水印系數(shù),G2中前m22塊嵌入m21個水印系數(shù),其余圖像塊嵌入m21-1個水印系數(shù)。每一個圖像塊所能嵌入的水印系數(shù)的個數(shù)的最大值為32×32=1024。每一個圖像塊所嵌入的水印系數(shù)在矩陣C中是按從左到右、從上到下的順序截取的。
⑹ 在G1,G2中分別嵌入水印系數(shù)。
首先,在每一個圖像塊中選擇嵌入位置,由于最低分辨率子圖像受壓縮等變換的影響較小,因此,從保證水印模型魯棒性的角度考慮,應(yīng)盡量把水印信息嵌入到最低分辨率子圖像中??墒?,圖像質(zhì)量對最低分辨率子圖像的改變是敏感的,為了兼顧水印嵌入算法的隱蔽性,一方面要求嵌入水印時,應(yīng)使將圖像數(shù)據(jù)的改變降低到最小,另一方面要求嵌入水印的位置應(yīng)該遠(yuǎn)離最低分辨率子圖像。為了同時保證水印信息的隱蔽性和魯棒性,通常選擇在子圖LH2、HL2、HH2中嵌入水印,實踐也證明了在子圖LH2、HL2、HH2中嵌入水印效果較好。所以嵌入位置選擇的順序為LH2、HL2、HH2、LH1、HL1、HH1、LL2。
接下來嵌入水印系數(shù),嵌入公式為:
其中c是水印系數(shù),ω是I1中的小波系數(shù),ω*是嵌入水印后的小波系數(shù),λ為常數(shù),本文中λ=0.2。嵌入水印后的圖像記為I2。
⑺ 對I2進行相應(yīng)的小波重構(gòu),得水印圖像I'。
1.5 數(shù)字水印的提取算法
① 對原始圖像I和水印圖像I'分塊,每塊大小為32×32,分別對每一塊進行兩層小波分解,得到圖像I1和I1'。
② 將圖像I1和I1'的圖像塊各分成兩組G1,G2和G1',G2',并對每一組圖像塊排序,方法同1.4中⑵。
③ 計算G1,G2的各圖像塊嵌入的水印系數(shù)的個數(shù),方法同1.4中⑸。
④ 提取兩組水印系數(shù):按G1,G1'中圖像塊的順序,和水印系數(shù)在G1'中每個圖像塊中的嵌入位置,利用下面的公式逐個提取水印系數(shù):
其中ω是G1中某圖像塊的小波系數(shù),ω*是G1'中相應(yīng)圖像塊的小波系數(shù),c是提取的水印系數(shù)。將c按從左到右、從上到下的順序存入到n×n矩陣C1中。用同樣方法處理G2,G2'得到n×n矩陣C2。
⑤ 對C1,C2分別作T-k次Arnold變換得到B1,B2。
⑥ 若水印A不是正方形圖像,則按A的尺寸分別從B1,B2中逐行提取水印系數(shù)得到A1,A2。
⑦ 令,將,將A'作為提取水印的結(jié)果。
2 數(shù)字水印算法實驗結(jié)果及分析
實驗圖像為Lena和Barbara(大小512×512的256級灰度圖像),如圖2和圖3所示。水印圖像是山東科技大學(xué)?;眨ù笮?9×89的256級灰度圖像)和青島濱海學(xué)院?;眨ù笮?5×96的256級灰度圖像),如圖2和圖3所示。所用的小波為雙正交小波Antonini9-7,水印的嵌入和提取所用的計算平臺為MATLAB7.0,模擬攻擊平臺為PhotoShop9.01。
圖2 水印1原圖 圖3 水印2原圖
水印的不可見性可由峰值信噪比(PSNR)來衡量,一般來講,峰值信噪比越大則不可見性越好。峰值信噪比由下式定義:
其中I,I'分別表示原始圖像和嵌入水印后的圖像,Iij,Iij'分別表示I,I'在像素點(i,j)的灰度值。
提取出的水印圖像的質(zhì)量我們用相似度(Similarity)來衡量,一般來講,相似度越大則提取出的水印圖像質(zhì)量越好。相似度由下式定義:
其中W,W'分別表示原始水印圖像和提取出的水印圖像,Wij,Wij'分別表示W(wǎng),W'在像素點(i,j)的灰度值。
應(yīng)用嵌入算法,將兩幅水印圖像分別嵌入兩幅載體圖像中,所得結(jié)果如圖4所示。其中圖2是正方形圖像n=89,Arnold變換周期T1=22,取k1=7;圖3不是正方形圖像,化為正方形圖像后n=73,Arnold變換周期T2=74,取k2=40。計算而得PSNR值依次為:43.3366,45.1283,42.8411,44.4974。人眼幾乎看不出加載水印前后兩幅圖像的差別,有較好的不可見性。
應(yīng)用提取算法,分別從圖4的四幅圖像中提取水?。o攻擊情況下),所得結(jié)果如圖5所示。計算而得相似度依次為:0.9975,0.9981,0.9972,0.9983,此為較好的效果。
對含水印圖像(圖4(a),圖4(b))進行一系列的常見處理或攻擊,之后再提取水印圖像,其相似度數(shù)據(jù)見表1。
通過大量的模擬實驗可以看出,含水印的圖像具有較好的不可見性,針對含水印的圖像進行常見的圖像處理,結(jié)果表明,該方法能夠較好的抵抗一些常見的圖像處理方法,也具有較強的魯棒性。
參考文獻(xiàn)(References):
[1] Juan R.Hernandez Martin, Martin Kutter. InformationRetrieval in Digital Watermarking IEEECommunications Magazine,2001.8:l10-1l6
[2] 曹福德.基于變換域的數(shù)字圖像水印算法研究[J].山東大學(xué)碩士學(xué)位論文,2009.
[3] 雷蕾.基于變換域的數(shù)字圖像水印算法研究[D].吉林大學(xué)碩士學(xué)位論文,2013.
[4] 程正興.小波分析與應(yīng)用實例[M].清華大學(xué)出版社,2006.
[5] 黃繼武,Yun.Q.Shi,姚若河.基于塊分類的自適應(yīng)圖像水印算法[J].中國圖像圖形學(xué)報,1999.4:8
[6] 崔錦泰.小波分析導(dǎo)論[M].西安交通大學(xué)出版社,1995.