韓天明 ,魏 維 ,周 華 ,尚曉輝
(1.西安通信學(xué)院 研究生管理大隊(duì),陜西 西安 710106;2.91876部隊(duì),河北 秦皇島 066023;3.西安通信學(xué)院 指揮信息系統(tǒng)系,陜西 西安 710106;4.61711部隊(duì),新疆 喀什 844000)
近年來(lái),計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)和多媒體技術(shù)發(fā)展迅速,然而大部分重要文件如商業(yè)文檔、證書、機(jī)密文件等仍然以印刷品的形式存在,印刷品的版權(quán)保護(hù)和防偽問(wèn)題日益引起人們的關(guān)注??勾蛴呙钄?shù)字水印技術(shù)作為信息隱藏領(lǐng)域新的研究方向,為印刷品的版權(quán)保護(hù)和來(lái)源鑒別提供了一種有效途徑。設(shè)計(jì)合適的數(shù)字水印算法,可使嵌入水印的圖像在經(jīng)過(guò)打印掃描造成圖像失真的情況下仍能檢測(cè)到所嵌入的水印[1-2]。打印掃描過(guò)程涉及D/A和A/D兩次轉(zhuǎn)換,綜合半色調(diào)攻擊、低通濾波攻擊和旋轉(zhuǎn)、縮放、剪切等一系列幾何變換,由于設(shè)備和人為因素,圖像的輸出和掃描過(guò)程會(huì)產(chǎn)生進(jìn)一步失真[3],這就要求數(shù)字水印算法具有很好的魯棒性。本文根據(jù)圖像小波變換的特性,在小波域?qū)崿F(xiàn)水印算法。實(shí)驗(yàn)結(jié)果證明,該算法能免疫于圖像的打印、復(fù)印、掃描和一般的幾何變換、噪聲干擾的有限影響,具有很好的不可見(jiàn)性。
小波變換的基本思想就是將圖像進(jìn)行多分辨率分解,分解成不同時(shí)空、不同頻率的子圖像,相比 DCT(離散余弦變換)和DFT(離散傅里葉變換),DWT 變換能夠?qū)D像的局部特征進(jìn)行很好的定位,更符合人眼的視覺(jué)機(jī)制。DWT可以在不同尺度下將圖像逐層(第k層)分解為三個(gè)高頻細(xì)節(jié)子帶:水平LHk、垂直HLk、對(duì)角HHk和一個(gè)低頻逼近子帶LLk,逼近子帶LLk可以按照這種方式繼續(xù)分解成 LHk+1、HLk+1、HHk+1和 LLk+1。 其中低頻帶表示由小波變換分解級(jí)數(shù)決定的最大尺度、最小分辨率下對(duì)原始圖像的最佳逼近,它的統(tǒng)計(jì)特征和原圖像相似,圖像的大部分能量集中在此;高頻帶系列則分別是圖像在不同尺度、不同分辨率下的細(xì)節(jié)信息。分辨率越低,其中有用信息的比例就越高。
由于打印—掃描對(duì)圖像DWT的細(xì)節(jié)分量變化的影響較小[4],可以將水印信息嵌入到三級(jí)DWT的細(xì)節(jié)分量中。目前的水印算法一般是將水印信息單一嵌入在宿主圖像的低頻區(qū)域或者高頻區(qū)域[5-6],由于人眼對(duì)低頻信息的敏感度要遠(yuǎn)遠(yuǎn)大于高頻信息,如果在低頻區(qū)域嵌入大容量的水印信息,勢(shì)必造成圖像畫質(zhì)的下降,而高頻區(qū)域的抗壓縮性較差,水印在受到有損壓縮時(shí)易受破壞,從而降低圖像的魯棒性。為解決上述問(wèn)題,本文提出了一種在LH3、HL3和HH3分別嵌入水印的方法,這三個(gè)區(qū)域雖然不像LL3具有大量的低頻能量,但卻是LL2再次經(jīng)過(guò)小波分解后得到的,都是LL2低頻能量的一部分,在這些區(qū)域嵌入水印能在不可見(jiàn)性和魯棒性之間得到一個(gè)較好的平衡。
對(duì)原始圖像進(jìn)行大小相等的分塊,算法的嵌入容量與圖像分塊的數(shù)量成正比,魯棒性與分塊數(shù)量成反比。在確保算法魯棒性的前提下,將圖像分塊盡可能減小以提高嵌入量。為提高算法的魯棒性,在每塊圖像三級(jí)小波變換后的中高頻子帶中重復(fù)嵌入一位相同的水印信息,提取過(guò)程中按照擇大判決原則從各子帶提取的水印中確定最終水印。
設(shè)原始灰度宿主圖像為X,水印信息為W,在每一塊圖像三級(jí)DWT后的中高頻細(xì)節(jié)子帶中,利用比較的方法將二值水印序列嵌入到每一塊中,設(shè)定k為嵌入過(guò)程中的控制因子,算法具體描述如下:
(1)生成水印。取出水印信息的ASCII碼依次排列為{0,1},得到水印序列 Wi。
(2)讀入原始宿主圖像 X,將 X分解成大小相同的子塊,這樣,相比對(duì)整幅原圖像進(jìn)行小波變換,時(shí)間復(fù)雜度將大為降低。分塊的數(shù)量即為水印的嵌入容量。
(3)對(duì)每一塊采用Haar小波進(jìn)行三級(jí)DWT變換,得到低頻系數(shù)矩陣LL3和高頻系數(shù)矩陣LH3(水平方向)、HL3(垂直方向)、HH3(對(duì)角方向)。
(4)算法選擇在 LH3、HL3和 HH3三個(gè)細(xì)節(jié)子圖中嵌入水印。以 LH3為例,在 LH3中選取兩個(gè)系數(shù) LH3(X1,Y1)和 LH3(X2,Y2),逐位 讀 入 水 印信息,當(dāng) 水 印 信 息位為 0 并且 LH3(X1,Y1)
(5)根據(jù)Wi的值對(duì) HL3和 HH3中的系數(shù)做同樣的修改,對(duì)修改了系數(shù)后的塊進(jìn)行逆小波變換,完成水印的嵌入。
(6)移動(dòng)到下一塊,重復(fù)步驟(3)~(5),最終完成水印的嵌入,得到含水印圖像。
數(shù)字水印的提取是嵌入的逆過(guò)程。掃描含水印的文檔,對(duì)掃描后的含水印圖像XW進(jìn)行預(yù)處理,包括傾斜糾正、邊緣裁切和比例縮放,將掃描后圖像的尺寸調(diào)整到與原圖像X相同。
(1)讀入含水印的圖像 XW,按照嵌入時(shí)的分塊方法對(duì)水印圖像進(jìn)行大小相等的分塊。
(2)對(duì)每一塊進(jìn)行三級(jí) DWT變換,分別在 LH3、HL3和 HH3三個(gè)細(xì)節(jié)子圖中通過(guò)比較(X1,Y1)和 (X2,Y2)位置上系數(shù)的大小得到要提取的水印信息 W1(i)、W2(i)和W3(i), 即 :
(3)按 照 擇 大 判 決 原 則 , 從W1(i)、W2(i)和 W3(i)中 確 定最 終 水 印 信 息 W(i)=(W1(i)+W2(i)+W3(i))/2。
(4)移動(dòng)到下一塊,重復(fù)(2)、(3),得到提取的水印信息的ASCII碼值序列W。
實(shí)驗(yàn)主要分析水印的不可察覺(jué)性和算法的魯棒性,以驗(yàn)證本文提出算法的有效性。在打印復(fù)印掃描實(shí)驗(yàn)前建立了一些攻擊模型,即對(duì)水印圖像添加噪聲、剪切、縮放等用來(lái)分析算法的抗攻擊性,最后進(jìn)行了打印復(fù)印掃描實(shí)驗(yàn)。
實(shí)驗(yàn)在Matlab7.1平臺(tái)下實(shí)現(xiàn),水印的載體圖像為512×512 bit的標(biāo)準(zhǔn) lena圖像,根據(jù)算法的魯棒性,將載體圖像分成 256塊、大小為32×32 bit的圖像塊,嵌入強(qiáng)度的控制因子 k為 50,水印信息為 256位 0、1隨機(jī)序列,小波變換用的是haar小波。采用峰值信噪比(PSNR)來(lái)客觀評(píng)價(jià)水印圖像的質(zhì)量[7]。
用歸一化相關(guān)系數(shù)(NC)來(lái)客觀比較提取水印與原水印的相似度,將嵌有水印的圖像分別進(jìn)行噪聲攻擊、剪切、縮放和打印、復(fù)印、掃描,其中對(duì)掃描后的圖像進(jìn)行預(yù)處理再提取水印。圖3所示為原始載體圖像與嵌入水印后的圖像,峰值信噪比為33.078 6 dB。
圖1 原始載體圖像與嵌入水印后圖像
對(duì)含水印的圖像還進(jìn)行了噪聲攻擊、幾何變換和打印、復(fù)印、掃描等實(shí)驗(yàn),結(jié)果如圖2所示。
圖2 對(duì)含水印的lena圖像進(jìn)行的各種攻擊
圖 2(a)~(d)是在 Matlab中對(duì)含水印的圖像進(jìn)行各種攻擊后的效果,(e)、(f)分別是水印圖像經(jīng)過(guò)打印掃描及打印復(fù)印掃描后的效果,其中掃描分辨率為75 dpi,復(fù)印次數(shù)為 1次。從圖 2中可見(jiàn),各種攻擊給圖像帶來(lái)了視覺(jué)上的明顯改變,在上述各種攻擊強(qiáng)度下,水印信息仍能完全正確提取,各種攻擊的參數(shù)均為該算法可抵抗的臨界值。算法對(duì)打印掃描和一次復(fù)印掃描具有很好的魯棒性,并且對(duì)掃描分辨率不敏感,在掃描分辨率為75 dpi的情況下仍能完全正確提取水印,實(shí)驗(yàn)過(guò)分辨率在300 dpi、600 dpi和1 200 dpi下掃描圖像,結(jié)果表明,高分辨率的掃描只會(huì)帶來(lái)數(shù)據(jù)處理容量的增大,并不會(huì)帶來(lái)檢測(cè)效率的提升。算法對(duì)75 dpi以上的分辨率具有魯棒性,提高了算法的應(yīng)用范圍。表1為水印經(jīng)過(guò)各種實(shí)驗(yàn)后的提取情況,相比之下,算法對(duì)剪切相對(duì)敏感,水印提取的正確率有所下降。實(shí)驗(yàn)中發(fā)現(xiàn),在打印-復(fù)印-掃描實(shí)驗(yàn)中,當(dāng)載體圖像大小不同時(shí),水印提取的正確率有時(shí)會(huì)達(dá)不到100%,如當(dāng)圖像大小為256×256 bit和384×384 bit時(shí), 水印的提取正確率均為98.44%,原因尚需進(jìn)一步研究。
表1 各種實(shí)驗(yàn)下水印的提取情況
(1)不可察覺(jué)性分析。從主觀和客觀兩方面進(jìn)行分析,通常PSNR達(dá)到25以上就可以達(dá)到客觀不可察覺(jué)的要求[8]。實(shí)驗(yàn)中PSNR是33.078 6,客觀不可察覺(jué)性要求可以滿足;主觀方面主要通過(guò)人自身的感官感覺(jué),本實(shí)驗(yàn)圖像在視覺(jué)上有一個(gè)比較滿意的效果。
(2)魯棒性分析。實(shí)驗(yàn)中通過(guò)設(shè)計(jì)各種攻擊來(lái)提取水印,通過(guò)提取的二值水印序列和原水印序列的相似度來(lái)表征抗攻擊能力。由實(shí)驗(yàn)結(jié)果可知,水印在多種攻擊下仍能正確提取,且適用于75 dpi以上的各種掃描分辨率。
本文提出了一種小波域的數(shù)字水印算法,該算法可以實(shí)現(xiàn)水印的全盲檢測(cè),具有一定的水印嵌入量,算法兼具較好的不可察覺(jué)性和魯棒性,對(duì)75 dpi以上的掃描分辨率均能正確提取水印,并對(duì)打印和一次復(fù)印后掃描具有一定的魯棒性。文中所述算法還有很多需要改進(jìn)的地方,如抗大面積剪切、抗旋轉(zhuǎn)等性能。因此,設(shè)計(jì)并實(shí)現(xiàn)具有更強(qiáng)魯棒性的抗打印復(fù)印掃描的數(shù)字水印算法仍需進(jìn)一步研究和改進(jìn)。
[1]ANU P.Multiple domain watermarking for print-scan and JPEG resilient data hiding[C].The 6th International Workshop on Digital Watermarking, Guangzhou, 2008.
[2]萬(wàn)曉霞.基于多層次誤差擴(kuò)散加網(wǎng)的數(shù)字水印算法研究[J].武漢大學(xué)學(xué)報(bào),信息科學(xué)版,2007,33(11):1056-1059.
[3]SOLANKI K,MANJUNATH B S.Print and scan resilient data hiding in images[J].IEEE Transactions On Information Forensics And Security, 2006,1(4):464-478.
[4]譚論正.基于文檔圖像的抗打印-掃描數(shù)字水印技術(shù)[J].計(jì)算機(jī)應(yīng)用研究,2007,24(12):199-200.
[5]黃曉生.一種基于DWT和DCT的數(shù)字圖像水印算法[J].微計(jì)算機(jī)信息,2009,25(11-3):15-16.
[6]張瑩雪.一種改進(jìn)的基于小波域的圖像盲水印算法[J].信息安全與通信保密,2009(9):43-145.
[7]金聰.數(shù)字水印理論與技術(shù)[M].北京:清華大學(xué)出版社,2008:130-139.
[8]龔利明.基于數(shù)字水印技術(shù)的印刷品防偽算法研究[D].廈門:廈門大學(xué),2007.