晁 妍,王慧玲,劉淑影
(阜陽師范學院 計算機與信息學院,安徽 阜陽236037)
近年來魯棒圖像水印技術的研究與應用取得了一定進展,而水印嵌入系數和水印嵌入強度的選擇仍然是魯棒水印技術的熱門研究課題,因為這會直接影響數字水印的基本性能:魯棒性和不可見性[1].筆者對比了近年來的同類算法,發現大多數基于頻域的圖像水印算法在水印的嵌入過程中,都采用隨機方式選取水印的嵌入系數和嵌入強度[2-6].這些算法具有很大的主觀性,需要反復大量的實驗才能得出結論,效率較低.
筆者結合遺傳算法和奇異值分解提出了一種在頻域中能更好抵抗各種攻擊的水印算法.利用矩陣奇異值分解的特征值具有遭受幾何攻擊不易改變的特性,將水印圖像進行奇異值分解生成水印序列,以提高水印的魯棒性及抗干擾能力[7];遺傳算法是全面模擬自然選擇和遺傳機制的一種優化算法,可以從眾多可能解中選取出最優解,這一特性可以解決水印嵌入系數選取時的不確定問題[8].利用遺傳算法選取最優嵌入系數,根據載體圖像紋理自適應調節水印嵌入強度.
筆者擬通過3個方面提高水印算法的不可見性與魯棒性:將水印圖像進行奇異值分解生成水印序列;根據載體圖像紋理自適應地調節水印嵌入強度系數;使用遺傳算法對水印嵌入系數進行優化.
(1)將水印圖像W進行Arnold變換,經過key1次變換后得到置亂后的圖像,key1作為密鑰進行保存;(2)將置亂后的水印圖像進行SVD分解,得到水印序列W=w1,w2,…,wN.
奇異值是依次遞減的,第一個元素值最大,嵌入強度應該最大[9-10].對水印圖像進行奇異值變換后,將水印值分為兩類:第一個元素值為第一類δ1.其它元素值為第二類η={δ1,δ2,…,δN}.
Step 1:將原始圖像進行二級Haar小波變換,得到一個第2級的近似子帶LL2和其他細節子帶:HL2、HL1、LH2、LH1、HH2和 HH1[9].
Step 2:近似子帶中可嵌入的水印有限,將水印值(第一類)嵌入到小波域第2級的近似子帶中,可以有效的平衡魯棒性和不可見性,即:

細節子帶中可嵌入的水印信息多,可先利用遺傳算法得出最優化的嵌入系數點(i,j),再將第二類的水印值嵌入到小波域第1級的細節子帶中,嵌入公式后可得:

其中 p,q={1,2,…,N/2},i,j={1,2,…,N},k={2,3…,N},θ∈{HL1,LH1,HH1}表示小波域第 1 級的細節子帶 ILL2(p,q)表示圖像在小波域第2級的近似子帶系數,I′LL2(p,q)表示含水印圖像在第2級的近似子帶系數;(i,j)表示圖像在第 1級的細節子帶系數,I(i,j)表示含水印圖像在第1級的細節子帶系數;αi為水印的自適應嵌入強度.
Step 3:根據載體圖像紋理自適應地調節水印嵌入強度系數[11].

其中N為水印序列的長度.fi表示圖像的紋理特征,fmin和fmax分別為fi的最小值和最大值,αbase為αi的調節基準.

其中γ(γ>1)為對角細節分量影響因子,σi,LHj表示細節分量HLj(j=1,2)的系數相關方差值.
Step 4:經過離散小波逆變換得到含水印圖像.
Step 1:分別對原始圖像和含水印圖像做二層小波分解,根據公式(5)和(6)進行水印的提取:



Step 2:為了使提取出的水印仍為一個二值圖像,引入一個檢測閾值Tt.如果提取出的水印圖像的像素點值大于閾值Tt,則水印值為1;若像素點的值小于閾值Tt,則水印值為0.
在第二類的水印嵌入之前,先利用遺傳算法優化水印嵌入的位置.
(1)初始群體的產生.將圖像高頻子帶進行分塊,大小為2×2,將這些子塊隨機平均分為N個有序組,每一個有序組為初始種群中的一個染色體.這樣產生的種群,既能保證種群的多樣性,又不會因交叉操作而產生新個體的基因沖突(兩個嵌入點出現位置疊加).
(2)編碼選擇.筆者選擇的編碼方法是實數編碼,即把水印嵌入點的位置做計數,直接作為決策變量的基因型進行遺傳操作.利用實數編碼,可以避免交叉和變異帶來的同一染色體中出現相同個體的問題.
(3)適應度函數.設計適應度函數的主要目的在于對每一代的種群進行選擇,將適應度值最高的解選入下一代,反復迭代,直到滿足結束條件,根據最后一代的最佳適應度的對應解得到水印最終嵌入的位置.本算法的優化目標是使嵌入水印的圖像與原始圖像間的差異最小化.因此,采用峰值信噪比.作為度量標準.其中PSV為圖像信號峰值;MSE為原圖像與嵌入水印后的圖像灰度值的均方差,表示為:


其中MAT為原始圖像的灰度矩陣.
算法中的適應度函數可定義為:

其中,C為比例放大系數,用于放大個體之間的差異,更有利于個體性能的評價;C0為常數,用來保證適應度較低的個體也有機會進入下一代.
(4)遺傳算子的選擇.在遺傳算法中有3個主要的遺傳算子[5].選擇算子是根據適應度函數值選擇染色體放入子代種群中,適應度函數值越大的染色體被選中的幾率越大,本文采用賭輪盤選擇法,即使用交叉算子和變異算子進行遺傳,生成新的個體,選擇兩點交叉方法以及均勻變異算子,分別由交叉概率Pc和變異概率Pm控制.
仿真實驗平臺為MATLAB 7.1,選用灰度圖像Elain(512×512)和二值水印圖像(32×32)作為實驗圖像來測試本算法的性能.對角細節分量影響因子,Arnold變換次數key1=33.種群大小、迭代次數、交叉概率、變異概率.在提取水印的過程中,采用的閾值Tt=0.5.
利用峰值信噪比(PSNR)來衡量水印的不可見性,實驗結果見圖1.圖1(a~d)分別為原始圖像、含水印圖像、原始水印和提取的水印,PSNR為46.12 dB,并且主觀視覺效果也證實了本文算法有很好的不可見性,隱藏性好.

圖1 水印的嵌入
(1)對常規處理操作的魯棒性.通過對含水印圖像進行常規信號處理操作實現魯棒性的評估,實驗結果見表1.

表1 圖像在不同攻擊下的NC值和PNSR值
實驗結果顯示由于常規信號處理操作導致圖像質量的下降并不會影響水印的提取,水印圖像仍然能夠提取和識別.
(2)對惡意攻擊的魯棒性.圖2為采用半徑=1.0的Gaussian模糊、數量=300%,半徑=3,閾值=50的USM銳化攻擊后的實驗結果.

圖2 Gaussian模糊和USM銳化攻擊后的含水印圖像及提取的水印圖像
圖3 是將圖像進行了不同部位幾何變形后的實驗結果,可以看出,提取的水印圖像仍然比較清晰.

圖3 幾何變形攻擊后的含水印圖像及提取的水印圖像
這些實驗結果表明,本文提出的算法具有很好的水印不可見性,并且對于常規處理操作和惡意攻擊,都有很好的魯棒性.
為了證明本文算法的優點,筆者列舉了本文算法與文獻[5]算法的實驗對比結果(見表2),可以看出,本文提出的算法具有更高的PSNR值,不可見性更好且在不同攻擊下都有更好的魯棒性.
本文提出一種采用遺傳算法結合兩種變換域(SVD-DWT)的圖像水印算法,該算法在頻域中能更好的抵抗各種攻擊.算法主要有兩個特點:(1)將SVD和DWT兩種變換域結合,加強了水印的不可見性.(2)利用遺傳算法選擇最佳嵌入系數,根據圖像紋理特征自適應調節水印嵌入強度,實現了對數字水印技術中魯棒性和不可見性兩個標準的綜合優化.仿真實驗數據表明,本文算法在視覺上有很好的不可見性,不僅對一般信號處理和幾何攻擊有很好的魯棒性,而且對兩者的綜合攻擊也表現出了較好的魯棒性.