吳康 呂靈娟 楊勝利 孫銳
合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院 安徽 230009
數(shù)字水印的魯棒性是數(shù)字水印技術(shù)的一個重要指標(biāo),其中抗幾何攻擊的魯棒性是近年來數(shù)字水印領(lǐng)域研究的熱點(diǎn),它要求對圖像進(jìn)行常見的幾何變換(如、平移、縮放、旋轉(zhuǎn)等)攻擊后,仍能可靠地提取出水印。目前數(shù)字水印技術(shù)已經(jīng)得到了很快的發(fā)展,出現(xiàn)了一些能夠抵抗一定程度幾何攻擊的水印算法,這些算法可以分為三類:第一類算法是采用具有RST(Rotation, scaling, translation)不變性的變換,如Fourier-Mellin變換,來實(shí)現(xiàn)水印的嵌入,這類算法能夠較有效地抵抗RST攻擊,但卻無法抵抗裁剪、縱橫比改變等其他攻擊;第二類算法是尋找對幾何攻擊不敏感的特征,把水印嵌入到該特征空間,這類算法抗幾何攻擊的能力較弱;第三類算法是對受幾何攻擊后的含水印圖像根據(jù)一定的方法估計(jì)出其所受的幾何變形類型和參數(shù),然后進(jìn)行其逆變換再提取水印。總的來說,現(xiàn)有抗幾何攻擊的水印算法都能不同程度地抵抗一些幾何攻擊,但是其中大多數(shù)水印算法抗幾何攻擊的能力比較有限,只能抵抗一定程度內(nèi)的幾何攻擊,并且其所能嵌入的水印信息量一般都比較小。
本文提出的基于直方圖調(diào)整的抗幾何攻擊數(shù)字水印算法是將水印信息通過調(diào)整參數(shù)后,再將水印信息嵌入在圖像的灰度值中,從而使水印的嵌入和提取過程簡單、快速、有效,而且其所能嵌入的水印信息量大,抗幾何攻擊的魯棒性較強(qiáng)。
圖像灰度直方圖是圖像的一個重要的全局統(tǒng)計(jì)特征。圖像像素的統(tǒng)計(jì)特征與圖像各灰度級的像素個數(shù)有關(guān),而與像素在圖像中的空間位置無關(guān)。首先,當(dāng)圖像遭受幾何變換時,其尺寸大小和像素在圖像中的空間位置可能會發(fā)生很大變化,但由于圖像視覺約束機(jī)制的存在,圖像各灰度級像素的統(tǒng)計(jì)特征將保持一定的穩(wěn)定性,灰度直方圖的形狀將變換不大。其次,圖像顏色直方圖相對于幅度不大的平移和縮放以及以觀察軸為軸心的旋轉(zhuǎn)等幾何變換是不敏感的,對于圖像質(zhì)量的變化也不甚敏感。鑒于以上兩點(diǎn),我們運(yùn)用圖像灰度直方圖設(shè)計(jì)算法以應(yīng)對水印圖像可能遭受的幾何攻擊,這也正是本文的創(chuàng)新點(diǎn)所在。圖1分別給出了Lena圖像在RST攻擊下圖像直方圖形狀的穩(wěn)定性。
圖1 RST攻擊下圖像直方圖的穩(wěn)定性
(1)將原始灰度圖像記作I= {I(x,y) | 0 ≤I(x,y) ≤ 28- 1,1 ≤x≤M,1 ≤y≤N},將 長 度 為L的二值水 印 序 列 記 作W= {W(i)|W(i) ∈ { 0 ,1},1 ≤i≤L}。為提高水印的安全性,消除水印比特的空間相關(guān)性,將水印W進(jìn)行混沌置亂處理,置亂后的水印記作Ws={Ws(i)|Ws(i) ∈ { 0 ,1},1 ≤i≤L},并將置亂密鑰Key妥善保管。
(2)我們根據(jù)圖像的均值A(chǔ)來確定一個灰度區(qū)間,然后僅對灰度屬于該區(qū)間內(nèi)的像素統(tǒng)計(jì)直方圖。該灰度區(qū)間為:
其中L為水印序列的長度。然后從整幅圖像中找出灰度值屬于范圍B的所有像素,將灰度范圍B平均劃分成L個灰度級(即L個“收集箱”)來統(tǒng)計(jì)這些像素的直方圖H,則每個灰度級包含兩個灰度標(biāo)量,也即一個“收集箱”的寬度為λ=2,每個“收集箱”可以嵌入1bit的水印信息。從而可知直方圖H共有L個灰度級,且第i個灰度級所包含的灰度值范圍為:
對于圖像中任意一像素I(x,y),其位于的灰度級i可以通過下式獲得:
(3)下面以嵌入1bit水印信息詳細(xì)說明水印嵌入策略:
針對其中任意一個“收集箱”,將bin_1和bin_2分別記作該“收集箱”中前后兩個灰度值,并將其中的像素個數(shù)分別記為a和b,執(zhí)行嵌入規(guī)則如下:
其中,T是設(shè)置參數(shù),用來控制需要調(diào)整的像素的數(shù)量,其取值應(yīng)該合理折中水印魯棒性與不可感知性之間的矛盾。通過調(diào)整像素值來嵌入水印信息,調(diào)整方法如圖2所示。
圖2 水印嵌入策略
當(dāng)要嵌入的水印信息為1時,若ab≥T,則不需要調(diào)整任何像素。否則,要從灰度值屬于bin_2的像素中隨機(jī)選擇I1個像素進(jìn)行調(diào)整,使得調(diào)整后的這I1個像素落入bin_1內(nèi),從而使調(diào)整后的a1=a+I1,b1=b-I1,且滿足:a1b1≥T。
當(dāng)要嵌入的水印信息為0時,若ba≥T,則不需要調(diào)整任何像素。否則,要從灰度值屬于bin_1的像素中隨機(jī)選擇I0個像素進(jìn)行調(diào)整,使得調(diào)整后的這I0個像素落入bin_2內(nèi),從而使調(diào)整后的a0=a-I0,b0=b+I0,且滿足:b0a0≥T。
對像素的調(diào)整可按如下規(guī)則進(jìn)行:
f1(i)是從bin_1中隨機(jī)選取的第i個像素,f2(i)是從bin_2中隨機(jī)選取的第j個像素,(i)和(i)分別是調(diào)整后的像素,且分別落入bin_2和bin_1中。需要調(diào)整的像素個數(shù)I0和I1可按下式進(jìn)行計(jì)算:
(4)重復(fù)步驟(3),通過調(diào)整像素值將Lbits水印信息全部嵌入到L個直方圖“收集箱”中。
(1)統(tǒng)計(jì)待檢測圖像I’像素值屬于灰度范圍B'= [N-L,N+L]的灰度直方圖H’。其中N的取值如下:
(2)同樣將灰度直方圖H’的2L個灰度值進(jìn)行兩兩分組,共得到L組,即L個“收集箱”。
(3)提取第i組中的水印信息:假設(shè)a'(i)和b'(i)分別是第i個“收集箱”中前后兩個灰度值的像素個數(shù),則第i位水印信息為:
(4)重復(fù)步驟(3),提取出嵌入的所有水印信息。然后利用置亂密鑰Key將進(jìn)行恢復(fù)置亂得到最終水印信息W'。
本文取長度為 4 0bit的二值偽隨機(jī)序列作為水印,用標(biāo)準(zhǔn)灰度Lena圖像(256×256)作為原始載體,以Matlab7.0為仿真平臺。我們采用峰值信噪比(PSNR)作為水印不可感知性的客觀度量指標(biāo),采用歸一化相關(guān)(NC)來度量提取出的水印與原始水印之間的相似性。
圖3給出了Lena圖像在水印嵌入前后的灰度直方圖變換情況。不難發(fā)現(xiàn),水印化圖像的直方圖對原始直方圖進(jìn)行了局部調(diào)整,水印信息正是隱含在了直方圖的局部調(diào)整之中。圖4分別給出了原始Lena圖像、嵌入水印后的圖像和兩者之間的差異圖像。水印化圖像的PSNR值為55.3685dB。由實(shí)驗(yàn)結(jié)果可知人類視覺無法感知水印嵌入前后圖像之間的失真。因此,本算法具有良好的水印透明性。
圖3 Lena原始圖像與嵌入水印后的Lena圖像直方圖
圖4 Lena原始圖片與嵌入水印后的Lena圖片以及嵌入前后的差異圖像
我們設(shè)計(jì)這樣一個相關(guān)檢測器來測試水印的魯棒性:隨機(jī)產(chǎn)生1000組相互獨(dú)立的二值序列(0或1),每組序列的長度等于原始水印序列長度,即40bit。在這1000組隨機(jī)序列中,任意抽取一組(本文選取第 500組),將其換為原始水印序列。然后分別計(jì)算從遭受攻擊的水印化圖像中提取的水印序列與該 1000組隨機(jī)序列之間的歸一化相關(guān)值,來判斷是否有水印嵌入。
對嵌入水印后的圖像進(jìn)行了各種幾何攻擊以考察本算法的魯棒性。表1給出了本文算法對各種幾何攻擊的魯棒性測試結(jié)果??梢园l(fā)現(xiàn),本算法對RST、改變縱橫比和Shearing等仿射變換均具有很強(qiáng)的魯棒性,原因在于:仿射變換是全局線性變換。它僅僅改變了圖像像素的空間位置,但對像素灰度值的調(diào)整卻并不明顯。另外,當(dāng)圖像遭受隨機(jī)局部剪切攻擊后,隨機(jī)剪切部分和剩余部分的像素值在概率上具有相同或相似的數(shù)據(jù)分布。從而直方圖的形狀并不會發(fā)生較大幅度的變化。所以本算法對隨機(jī)剪切攻擊也表現(xiàn)出很高的穩(wěn)健性。圖5列出了各種幾何攻擊下提取的水印序列在相關(guān)檢測器中的響應(yīng)情況,其中,(a)~(f)分別是(A)~(F)攻擊下提取的水印序列的檢測響應(yīng)。
表1 各種幾何攻擊下的NC值
圖5 各種幾何攻擊下提取的水印序列在相關(guān)檢測器中的響應(yīng)情況
同時,也對含水印的圖像進(jìn)行了椒鹽噪聲、中值濾波、JPEG有損壓縮和直方圖均衡化等常規(guī)的圖像攻擊,以測試其魯棒性。表2列出了相應(yīng)的測試結(jié)果??梢园l(fā)現(xiàn),本文算法對椒鹽噪聲、中值濾波均具有較高的穩(wěn)健性,原因在于它們并沒有過多地改變圖像像素值的數(shù)據(jù)分布。遺憾的是,直方圖均衡化攻擊下提取的水印的NC只有0.6250。這是由于直方圖均衡化使圖像像素灰度的概率密度變?yōu)榱司鶆蚍植?,從而大幅改變了圖像灰度直方圖的形狀,勢必導(dǎo)致水印提取失敗。圖6列出了幾種常規(guī)圖像攻擊下提取的水印序列在相關(guān)檢測器中的響應(yīng)情況,其中,(a)~(c)分別是(A)~(C)攻擊下提取的水印序列的檢測響應(yīng)。此外,圖7顯示了JPEG有損壓縮攻擊下的測試結(jié)果,因?yàn)镴PEG有損壓縮對圖像灰度值影響比較大,也構(gòu)成了本算法的一個嚴(yán)重威脅。因此,本算法對圖像整體灰度值改變方面的攻擊和操作存在一定的局限性,這也正是我們下一步研究工作的重點(diǎn)。
表2 各種圖像處理攻擊下的NC值
圖6 幾種常規(guī)圖像攻擊下提取的水印序列在相關(guān)檢測器中的響應(yīng)情況
圖7 JPEG有損壓縮不同比率下的NC值
本文提出了一種基于直方圖調(diào)整的抗幾何攻擊數(shù)字水印算法?;叶戎狈綀D作為灰度圖像的一種非常重要的全局統(tǒng)計(jì)特征,充分體現(xiàn)了圖像像素灰度值與其出現(xiàn)頻率的統(tǒng)計(jì)關(guān)系,而統(tǒng)計(jì)特征獨(dú)立于像素的空間位置,因此它不受由幾何攻擊引起的像素位置改變以及差值誤差的影響。在水印嵌入時可以通過調(diào)整參數(shù)來合理折中水印魯棒性與不可見性之間的矛盾。在水印提取時不需要原始圖像參與,即實(shí)現(xiàn)了盲檢測。實(shí)驗(yàn)結(jié)果表明本算法能有效抗擊旋轉(zhuǎn)、尺度變換、平移、裁剪、仿射變換等幾何攻擊及其組合攻擊,而且對常規(guī)的圖像處理操作也具有較強(qiáng)的魯棒性。
[1]Sun Gang, Xie Jun-Yuan. Research on a watermark based onthe Fourier-Mellin transform. Computer Engineering.2004.
[2]Shi Lei, Zhong Ming, Hong Fan. Quantization based watermarking robust to geometric transformations. Journal of Computer-aided Design and ComputerGraphics.2004.
[3]Kang X G, Huang J W, Shi Y Q, Lin Y. A DWT-DFT composite watermarking scheme robust to both affine transform and JPEG compression. IEEE Transactions on Circuits and Systems for Video Technology, 2003.
[4]Coltuc D, Bolon P. Watermarking by Histogram Specification[C]//Proceeding of SPIE. Bellingham: Society of Photo- Optical Instrumentation Engineers.1999.
[5]李妍,張佑生,張挺.一種基于直方圖的可逆數(shù)字水印算法[J].計(jì)算機(jī)技術(shù)與發(fā)展.2006.