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

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

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

其中N為水印序列的長度.fi表示圖像的紋理特征,fmin和fmax分別為fi的最小值和最大值,αbase為αi的調(diào)節(jié)基準(zhǔn).

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



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


其中MAT為原始圖像的灰度矩陣.
算法中的適應(yīng)度函數(shù)可定義為:

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

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

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

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

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