劉陳碩,王美清
(福州大學 數學與計算機科學學院,福建 福州 350116)
數字水印是一種解決數字圖像版權問題的有效方法。它有兩方面的要求:透明性和魯棒性。透明性是指嵌入水印后的圖像在視覺效果上不能有明顯的變化;魯棒性是指水印可以抵抗常規的數字信號處理操作(如JPEG壓縮、濾波和直方圖均衡化等),即含水印的圖像經過這些處理后仍然可以提取出水印[1]。
JPEG格式是網絡上最常見的圖像格式。任何水印算法都必須對JPEG壓縮具有一定的魯棒性。LIN S D[2]提出了一種基于DCT的水印算法。該算法的魯棒性強弱取決于一個模數M,M越大魯棒性越強,但透明性越差。所以模數M不宜取值太大,這一點限制了算法的魯棒性強度。RUN R S[3]提出了一種可信的SVD水印算法。該算法的水印大小必須是原始圖像的1/4,且原圖像越大,算法的計算效率越低。葉天語[4]提出了一種魯棒的零水印算法,該算法先對圖像進行分塊處理,分解出的數據塊越大,圖像特征的魯棒性就越強,但所提取的特征信號就越少,容易違背哈希性。
與一般的水印算法相比較,上述文獻提出的算法有較強的抗壓縮能力。然而,在面臨高壓縮比的JPEG壓縮時,水印圖像受損嚴重。另外,參考文獻[2]和參考文獻[3]都是嵌入式的水印算法,在擁有抗壓縮能力的同時,破壞了原始圖像的視覺效果。所以,有必要提出一種既能保證圖像質量,又能抵抗高強度壓縮的水印算法。
傳統的數字水印算法的魯棒性增強時,透明性就會減弱。近幾年,零水印技術很好地解決了數字水印的透明性和魯棒性之間的矛盾[5-7]。零水印不修改原始圖像的數據,而是把圖像自身的特征與待嵌入的實際水印相結合形成零水印信息后,再將零水印信息注冊到可信的水印注冊機構中。以后對圖像的版權存在爭議時,只需提取被檢測圖像的圖像特征,利用該圖像特征與注冊機構中的零水印信息生成實際水印。最后,檢測生成實際水印與原作者手中的水印的相似度,若相似度極大,則判定版權歸原作者所有。由于零水印算法沒有對圖像進行修改,因此保證了原始圖像的完好性。
使用離散小波變換(DWT)可以對圖像進行多分辨率分解,從而得到4個不同頻率、不同方向的子圖:低頻逼近子圖(LL)、水平細節子圖(HL)、垂直細節子圖(LH)和對角線細節子圖(HH)[8]。本文的零水印構造算法需要分別對4張子圖提取圖像特征,這樣做的目的是提高算法的魯棒性。在同一種攻擊下,不同子圖的受損程度不同,對于受損程度小的子圖,其圖像特征變化不大。


圖1 “點”或“點”的示意圖
對圖像I進行DWT變換,得到4張子圖,即I?{ILL,ILH,IHL,IHH}。算法具體步驟如下:
(1)把子圖Ik的像素值調整到-128~127之間,k={LL,LH,HL,HH}。
(2)對子圖Ik進行 8×8分塊 DCT變換。
(3)利用一對種子S=(s1,s2)生成一個隨機坐標的集合,選擇隨機坐標對應的數據塊。


(5)若圖像特征(由若干組成)的值小于水印W,則擴展(如平鋪擴展),使其值與水印相同。然后對圖像特征進行Arnold置亂。
(6)用圖像特征與水印W作XOR運算,得到零水印信息。
在版權判定時,待檢測圖像很可能是原圖遭受攻擊后的圖像。對圖像進行DWT變換,得到4張子圖。即I′?{ILL′,ILH′,IHL′,IHH′}。
(1)對子圖Ik′執行零水印構造算法的步驟(1)~步驟(3),k={LL,LH,HL,HH}。
(2)利用所選擇的數據塊的DC系數來提取圖像特征。記 DC系數為C,提取出來的特征信號為′,則′=,這里的M′為零水印構造算法中所確定的合適模數。
(3)擴展并 Arnold 置亂圖像特 征′(′由若干′組成)。
(4)用圖像特征′與零水印信息作 XOR運算,得到水印Wk′。
對選擇好的數據塊提取DC系數,湊成一個矩陣L。設L的大小為m×n。
設Δ為m×n矩陣,該矩陣由DC系數對應的模數M組成。求最佳Δ的方法如下(用PSO算法求解下面的優化問題):
目標函數:min{best_mod(Δ)}

約 束條 件 :lb≤Mij≤lb+p,for 1≤i≤mand 1≤j≤n,其中,lb是預先設定的模數下界,而p是參數,用來確定上界。

用PSO求解上面的優化問題而得到的Δ,即為合適的模數矩陣。
實驗中用到的原始圖像是大小為512×512的灰度圖Lena、Woman、Airplane、Baboon, 原始水印是一張大小為64×64的二值圖像,如圖2所示。

圖2 水印圖像和原始圖像
本文采用相關系數,即 NC(Normalized Correlation)來判斷魯棒性強度。NC值越大,算法的魯棒性越強。其計算公式如下:

其中,W表示原始水印圖像,W′表示提取出的水印圖像。由于本文算法是零水印算法,保持了原始圖像的完好性,因此比較透明性是沒有意義的,只需比較魯棒性即可。
選擇慣性權值線性遞減的PSO算法。PSO算法所涉及的參數如下設置:
(1)加速因子 c1和 c2均設為 2。
(3)決策變量的變化范圍:lb≤Mij≤lb+p,for 1≤i≤m and 1≤j≤n。 這里的 lb和 p 因DWT的子圖不同而異,如表1所示。

表1 不同子圖的lb和p
(4)最大速度設為 0.2×p。
(5)最大迭代次數設為7 000。
(6)粒子數設為50。
利用本文算法對原圖像的4張子圖提取圖像特征,并且生成4個零水印信息。所以在檢測零水印時,可以提取出4張水印,并以效果最好(即NC值最大)的水印來認證圖像版權。
將本文算法與現存的算法 (即參考文獻[2],參考文獻[3]、參考文獻[4])作比較。對嵌入水印的圖像進行不同程度的JPEG壓縮,然后使用4種算法提取水印,實驗結果如圖3和圖4所示。圖中的QF(Quality Factor)表示品質因子,取值范圍為[0,100],取值越小,壓縮越強,圖像受損越嚴重。從圖3和圖4可知,本文算法所提取的水印效果優于其他算法,特別是在QF=10、8、6時的高強度的JPEG壓縮下,本文算法提取出的水印依然清晰可辨。
圖5是不同JPEG壓縮下,4種算法的平均NC值的比較結果。可以看出,本文算法的平均NC值始終在0.82以上,說明本文算法對JPEG壓縮具有很強的魯棒性。相比之下,當QF=30時,其他算法表現出較強的魯棒性。但隨著QF逐漸減小,其平均NC值也明顯降低。這說明對高強度的JPEG壓縮而言,其他算法的魯棒性不佳。
本文提出了一種抗JPEG壓縮的零水印算法。在不破壞圖像質量的前提下,它可以有效地抵抗JPEG壓縮。由于零水印不會降低透明性,因此零水印構造算法中的模數M可以取更大的值,使得算法對壓縮攻擊擁有更強的魯棒性。實驗結果表明,在抗JPEG壓縮方面,本文算法效果良好,且優于現有的算法。

圖3 在不同的JPEG壓縮下,使用4種方法提取水印的結果比較(Lena和Woman)

圖4 在不同的JPEG壓縮下,使用4種方法提取水印的結果比較(Airplane和Baboon)

圖5 4種算法的平均NC值的比較結果
[1]金聰.數字水印理論與技術[M].北京:清華大學出版社,2008.
[2]LIN S D,SHIE S C,GUO J Y.Improving the robustness of DCT-based image watermarking against JPEG compression[J].Computer Standards&Interfaces,2010,32(1):54-60.
[3]RUN R S,HORNG S J,LAI J L,et al.An improved SVD-based watermarking technique for copyright protection[J].Expert Systems with Applications,2012,39(1):673-689.
[4]葉天語.抗JPEG壓縮和幾何攻擊的魯棒零水印算法[J].光 子 學 報,2012,41(2):210-217.
[5]溫泉,孫錟鋒,王樹勛.零水印的概念與應用[J].電子學報,2003,31(2):214-216.
[6]馬建湖,何甲興.基于小波變換的零水印算法[J].中國圖像 圖 形 學 報 ,2007,12(4):581-585.
[7]宋偉,侯建軍,李趙紅,等.一種基于 Logistic混沌系統和奇異值分解的零水印算法[J].物理學報,2009,58(7):4449-4456.
[8]韓天明,魏維,周華,等.基于小波系數比較的抗打印掃描數字水印算法[J].微型機與應用,2012,31(15):75-77.