晁 妍,王慧玲,劉淑影
(阜陽(yáng)師范學(xué)院 計(jì)算機(jī)與信息學(xué)院,安徽 阜陽(yáng)236037)
近年來(lái)魯棒圖像水印技術(shù)的研究與應(yīng)用取得了一定進(jìn)展,而水印嵌入系數(shù)和水印嵌入強(qiáng)度的選擇仍然是魯棒水印技術(shù)的熱門研究課題,因?yàn)檫@會(huì)直接影響數(shù)字水印的基本性能:魯棒性和不可見(jiàn)性[1].筆者對(duì)比了近年來(lái)的同類算法,發(fā)現(xiàn)大多數(shù)基于頻域的圖像水印算法在水印的嵌入過(guò)程中,都采用隨機(jī)方式選取水印的嵌入系數(shù)和嵌入強(qiáng)度[2-6].這些算法具有很大的主觀性,需要反復(fù)大量的實(shí)驗(yàn)才能得出結(jié)論,效率較低.
筆者結(jié)合遺傳算法和奇異值分解提出了一種在頻域中能更好抵抗各種攻擊的水印算法.利用矩陣奇異值分解的特征值具有遭受幾何攻擊不易改變的特性,將水印圖像進(jìn)行奇異值分解生成水印序列,以提高水印的魯棒性及抗干擾能力[7];遺傳算法是全面模擬自然選擇和遺傳機(jī)制的一種優(yōu)化算法,可以從眾多可能解中選取出最優(yōu)解,這一特性可以解決水印嵌入系數(shù)選取時(shí)的不確定問(wèn)題[8].利用遺傳算法選取最優(yōu)嵌入系數(shù),根據(jù)載體圖像紋理自適應(yīng)調(diào)節(jié)水印嵌入強(qiáng)度.
筆者擬通過(guò)3個(gè)方面提高水印算法的不可見(jiàn)性與魯棒性:將水印圖像進(jìn)行奇異值分解生成水印序列;根據(jù)載體圖像紋理自適應(yīng)地調(diào)節(jié)水印嵌入強(qiáng)度系數(shù);使用遺傳算法對(duì)水印嵌入系數(shù)進(jìn)行優(yōu)化.
(1)將水印圖像W進(jìn)行Arnold變換,經(jīng)過(guò)key1次變換后得到置亂后的圖像,key1作為密鑰進(jìn)行保存;(2)將置亂后的水印圖像進(jìn)行SVD分解,得到水印序列W=w1,w2,…,wN.
奇異值是依次遞減的,第一個(gè)元素值最大,嵌入強(qiáng)度應(yīng)該最大[9-10].對(duì)水印圖像進(jìn)行奇異值變換后,將水印值分為兩類:第一個(gè)元素值為第一類δ1.其它元素值為第二類η={δ1,δ2,…,δN}.
Step 1:將原始圖像進(jìn)行二級(jí)Haar小波變換,得到一個(gè)第2級(jí)的近似子帶LL2和其他細(xì)節(jié)子帶:HL2、HL1、LH2、LH1、HH2和 HH1[9].
Step 2:近似子帶中可嵌入的水印有限,將水印值(第一類)嵌入到小波域第2級(jí)的近似子帶中,可以有效的平衡魯棒性和不可見(jiàn)性,即:
細(xì)節(jié)子帶中可嵌入的水印信息多,可先利用遺傳算法得出最優(yōu)化的嵌入系數(shù)點(diǎn)(i,j),再將第二類的水印值嵌入到小波域第1級(jí)的細(xì)節(jié)子帶中,嵌入公式后可得:
其中 p,q={1,2,…,N/2},i,j={1,2,…,N},k={2,3…,N},θ∈{HL1,LH1,HH1}表示小波域第 1 級(jí)的細(xì)節(jié)子帶 ILL2(p,q)表示圖像在小波域第2級(jí)的近似子帶系數(shù),I′LL2(p,q)表示含水印圖像在第2級(jí)的近似子帶系數(shù);(i,j)表示圖像在第 1級(jí)的細(xì)節(jié)子帶系數(shù),I(i,j)表示含水印圖像在第1級(jí)的細(xì)節(jié)子帶系數(shù);αi為水印的自適應(yīng)嵌入強(qiáng)度.
Step 3:根據(jù)載體圖像紋理自適應(yīng)地調(diào)節(jié)水印嵌入強(qiáng)度系數(shù)[11].
其中N為水印序列的長(zhǎng)度.fi表示圖像的紋理特征,fmin和fmax分別為fi的最小值和最大值,αbase為αi的調(diào)節(jié)基準(zhǔn).
其中γ(γ>1)為對(duì)角細(xì)節(jié)分量影響因子,σi,LHj表示細(xì)節(jié)分量HLj(j=1,2)的系數(shù)相關(guān)方差值.
Step 4:經(jīng)過(guò)離散小波逆變換得到含水印圖像.
Step 1:分別對(duì)原始圖像和含水印圖像做二層小波分解,根據(jù)公式(5)和(6)進(jìn)行水印的提取:
Step 2:為了使提取出的水印仍為一個(gè)二值圖像,引入一個(gè)檢測(cè)閾值Tt.如果提取出的水印圖像的像素點(diǎn)值大于閾值Tt,則水印值為1;若像素點(diǎn)的值小于閾值Tt,則水印值為0.
在第二類的水印嵌入之前,先利用遺傳算法優(yōu)化水印嵌入的位置.
(1)初始群體的產(chǎn)生.將圖像高頻子帶進(jìn)行分塊,大小為2×2,將這些子塊隨機(jī)平均分為N個(gè)有序組,每一個(gè)有序組為初始種群中的一個(gè)染色體.這樣產(chǎn)生的種群,既能保證種群的多樣性,又不會(huì)因交叉操作而產(chǎn)生新個(gè)體的基因沖突(兩個(gè)嵌入點(diǎn)出現(xiàn)位置疊加).
(2)編碼選擇.筆者選擇的編碼方法是實(shí)數(shù)編碼,即把水印嵌入點(diǎn)的位置做計(jì)數(shù),直接作為決策變量的基因型進(jìn)行遺傳操作.利用實(shí)數(shù)編碼,可以避免交叉和變異帶來(lái)的同一染色體中出現(xiàn)相同個(gè)體的問(wèn)題.
(3)適應(yīng)度函數(shù).設(shè)計(jì)適應(yīng)度函數(shù)的主要目的在于對(duì)每一代的種群進(jìn)行選擇,將適應(yīng)度值最高的解選入下一代,反復(fù)迭代,直到滿足結(jié)束條件,根據(jù)最后一代的最佳適應(yīng)度的對(duì)應(yīng)解得到水印最終嵌入的位置.本算法的優(yōu)化目標(biāo)是使嵌入水印的圖像與原始圖像間的差異最小化.因此,采用峰值信噪比.作為度量標(biāo)準(zhǔn).其中PSV為圖像信號(hào)峰值;MSE為原圖像與嵌入水印后的圖像灰度值的均方差,表示為:
其中MAT為原始圖像的灰度矩陣.
算法中的適應(yīng)度函數(shù)可定義為:
其中,C為比例放大系數(shù),用于放大個(gè)體之間的差異,更有利于個(gè)體性能的評(píng)價(jià);C0為常數(shù),用來(lái)保證適應(yīng)度較低的個(gè)體也有機(jī)會(huì)進(jìn)入下一代.
(4)遺傳算子的選擇.在遺傳算法中有3個(gè)主要的遺傳算子[5].選擇算子是根據(jù)適應(yīng)度函數(shù)值選擇染色體放入子代種群中,適應(yīng)度函數(shù)值越大的染色體被選中的幾率越大,本文采用賭輪盤(pán)選擇法,即使用交叉算子和變異算子進(jìn)行遺傳,生成新的個(gè)體,選擇兩點(diǎn)交叉方法以及均勻變異算子,分別由交叉概率Pc和變異概率Pm控制.
仿真實(shí)驗(yàn)平臺(tái)為MATLAB 7.1,選用灰度圖像Elain(512×512)和二值水印圖像(32×32)作為實(shí)驗(yàn)圖像來(lái)測(cè)試本算法的性能.對(duì)角細(xì)節(jié)分量影響因子,Arnold變換次數(shù)key1=33.種群大小、迭代次數(shù)、交叉概率、變異概率.在提取水印的過(guò)程中,采用的閾值Tt=0.5.
利用峰值信噪比(PSNR)來(lái)衡量水印的不可見(jiàn)性,實(shí)驗(yàn)結(jié)果見(jiàn)圖1.圖1(a~d)分別為原始圖像、含水印圖像、原始水印和提取的水印,PSNR為46.12 dB,并且主觀視覺(jué)效果也證實(shí)了本文算法有很好的不可見(jiàn)性,隱藏性好.
圖1 水印的嵌入
(1)對(duì)常規(guī)處理操作的魯棒性.通過(guò)對(duì)含水印圖像進(jìn)行常規(guī)信號(hào)處理操作實(shí)現(xiàn)魯棒性的評(píng)估,實(shí)驗(yàn)結(jié)果見(jiàn)表1.
表1 圖像在不同攻擊下的NC值和PNSR值
實(shí)驗(yàn)結(jié)果顯示由于常規(guī)信號(hào)處理操作導(dǎo)致圖像質(zhì)量的下降并不會(huì)影響水印的提取,水印圖像仍然能夠提取和識(shí)別.
(2)對(duì)惡意攻擊的魯棒性.圖2為采用半徑=1.0的Gaussian模糊、數(shù)量=300%,半徑=3,閾值=50的USM銳化攻擊后的實(shí)驗(yàn)結(jié)果.
圖2 Gaussian模糊和USM銳化攻擊后的含水印圖像及提取的水印圖像
圖3 是將圖像進(jìn)行了不同部位幾何變形后的實(shí)驗(yàn)結(jié)果,可以看出,提取的水印圖像仍然比較清晰.
圖3 幾何變形攻擊后的含水印圖像及提取的水印圖像
這些實(shí)驗(yàn)結(jié)果表明,本文提出的算法具有很好的水印不可見(jiàn)性,并且對(duì)于常規(guī)處理操作和惡意攻擊,都有很好的魯棒性.
為了證明本文算法的優(yōu)點(diǎn),筆者列舉了本文算法與文獻(xiàn)[5]算法的實(shí)驗(yàn)對(duì)比結(jié)果(見(jiàn)表2),可以看出,本文提出的算法具有更高的PSNR值,不可見(jiàn)性更好且在不同攻擊下都有更好的魯棒性.
本文提出一種采用遺傳算法結(jié)合兩種變換域(SVD-DWT)的圖像水印算法,該算法在頻域中能更好的抵抗各種攻擊.算法主要有兩個(gè)特點(diǎn):(1)將SVD和DWT兩種變換域結(jié)合,加強(qiáng)了水印的不可見(jiàn)性.(2)利用遺傳算法選擇最佳嵌入系數(shù),根據(jù)圖像紋理特征自適應(yīng)調(diào)節(jié)水印嵌入強(qiáng)度,實(shí)現(xiàn)了對(duì)數(shù)字水印技術(shù)中魯棒性和不可見(jiàn)性兩個(gè)標(biāo)準(zhǔn)的綜合優(yōu)化.仿真實(shí)驗(yàn)數(shù)據(jù)表明,本文算法在視覺(jué)上有很好的不可見(jiàn)性,不僅對(duì)一般信號(hào)處理和幾何攻擊有很好的魯棒性,而且對(duì)兩者的綜合攻擊也表現(xiàn)出了較好的魯棒性.