摘要:提出了一種基于DWT域的圖像數(shù)字水印算法。通過對宿主圖像、經(jīng)過Arnold變換加密后的水印圖像分別進行多分辨率小波分解,達到自適應(yīng)嵌入水印信息的目的。實驗結(jié)果表明,該方法嵌入的數(shù)字水印不但具有較好的不可見性,而且對圖像處理有較好的魯棒性。
關(guān)鍵詞:數(shù)字水印;DWT;圖像置亂
中圖分類號:TN957文獻標識碼:A 文章編號:1009-3044(2008)28-0190-03
Imagine Digital Watermarking Algorithm Based on DWT
LU Yu-guang1,2 ,GONG Sheng-rong1
(1.School of Computer ScienceTechnology, Soochow University,Suzhou 215021,China; 2.School of ComputerInformation Engineering,ChangZhou Institute of Technology, Changzhou 213001,China)
Abstract: A algorithm with image digital watermarking based on DWT is proposed. The multi-resolution wavelet de-composition of both the host image and the watermark image which is transformed and encrypted by arnold for the self adapting embedding process is finished. The experimental results demonstrate that the embedded watermarking is invisible and has good ro-bustness against image processing.
Key words: Digital watermarking;DWT;Image permutation
1 引言
隨著計算機技術(shù)和網(wǎng)絡(luò)應(yīng)用的迅猛發(fā)展,人們的日常生活與工作越來越趨于數(shù)字化和網(wǎng)絡(luò)化。大量私有數(shù)據(jù)在網(wǎng)絡(luò)上的傳播、網(wǎng)絡(luò)交易日益風行,使傳統(tǒng)的版權(quán)保護手段和數(shù)據(jù)安全技術(shù)面臨極大的挑戰(zhàn)和某些難以克服的困難,數(shù)字水印技術(shù)[1-2]由此孕育而生。數(shù)字水印是一種新型實用的信息隱藏和版權(quán)保護技術(shù),近年來已經(jīng)引起了極大的關(guān)注并得到迅速發(fā)展。一般來講,數(shù)字水印分為兩大類:空域水印和變換域水印。當前變換域技術(shù)主要包括離散余弦變換和小波變換技術(shù)。小波變換[3]有著良好的能量壓縮特性和多分辨率分解特性,且與新一代的媒體壓縮標準JPEG兼容,已成為嵌入變換域水印的主要選擇。本文提出了一種基于離散小波變換(DWT)的圖像數(shù)字水印算法。
2 水印的嵌入
2.1 圖像置亂
數(shù)字圖像置亂[4]就是將一幅給定圖像按照一定變換規(guī)則在空域或頻域?qū)⑵渥儞Q為一幅雜亂無章的圖像,從而隱藏其圖像本身的真實信息。在水印預(yù)處理中,置亂技術(shù)主要考慮的是盡可能的分散錯誤比特的分布,提高數(shù)字水印的視覺效果來增強水印的魯棒性。此外,圖像置亂還可增加水印信號的保密性,即使水印信號被攻擊者識破并提取出來,如果不知道置亂密鑰和置亂方法,攻擊者也無法恢復(fù)出隱藏的圖像水印信號。目前己有多種圖像置亂方法,如基于位操作、幻方、FASS曲線、Arnold變換、Gray碼變換、騎士巡游、Hibe變換、幾何變換等。其中Arnold變換易于實現(xiàn),易于恢復(fù),無需多次變換就能達到令人滿意的效果,而且實現(xiàn)起來比較簡單,比較適合于實際應(yīng)用。因此本文采用的置亂方法是Arnold變換。
Arnold變換俗稱貓臉變換,原意為cat mapping,其定義:假設(shè)對于平面單位正方形內(nèi)的所有點,作如下變換:
■
k為正整數(shù),x,y是平面某點的坐標,x',y'是變換后的坐標,平面單位正方形內(nèi)的點將不斷移動其位置,這就是Arnold變換。上述Arnold變換實際是一種點的位置移動,并且這種變換是一一對應(yīng)的。此外這個變換可以迭代地做下去,并且存在周期。對于數(shù)字化圖像而言,我們所說的位置移動實際上是對應(yīng)點的灰度值或者RGB顏色值的移動。如果把這類變換應(yīng)用到數(shù)字圖像的存儲與傳輸,特別是用到圖像信息交換方面,則可以取得圖像隱蔽的效果。考慮到數(shù)字圖像的需要,我們把以上的Arnold變換改寫為:
■
即通過變換將原來點(x,y)處像素對應(yīng)的灰度值或RGB顏色值移動至變換后的點(x',y')處。Arnold變換具有周期性,即當?shù)侥骋徊綍r,將重新得到原始圖像。在Arnold變換中,式中的k與次數(shù)N構(gòu)成數(shù)對(N,k)正好可以成為置亂的密鑰。
2.2 圖像小波變換
小波變換用于圖像處理是小波變換應(yīng)用效果比較突出的領(lǐng)域之一。其基本思想就是把數(shù)字圖像進行多分辨率分解,分解成不同空間、不同頻率的子圖像,然后再根據(jù)各個子圖像的特點有針對性的進行處理[5]。對一幅圖像的三級小波分解示意如圖1所示。
每一級分解都把圖像分解為四個頻帶:水平(HL)、垂直(LH)、對角(HH)和低頻(LL),其中低頻(LL)部分還可以進行下一級的分解,從而構(gòu)成了小波的塔式分解。一幅圖像經(jīng)過分解之后,圖像的主要能量主要集中于低頻部分,這也是視覺重要部分;而圖像的高頻部分即圖像的細節(jié)部分所含能量較少,分布在HL,LH,HH三個子圖中,主要包含了原圖的邊緣和紋理部分信息。基于小波分析的數(shù)字水印算法的基本思想是把水印嵌入到圖像小波變換后的低頻子帶或高頻子帶系數(shù)中。圖像的低頻子帶攜帶了圖像的大部分信息,因此可以嵌入更多的水印信息,使水印更加魯棒,但同時也產(chǎn)生了問題,即圖像低頻子帶的變化容易導(dǎo)致較大的圖像失真。相反,高頻子帶攜帶的是圖像的邊緣和紋理信息,人眼對這部分信息不敏感,因此,在這部分嵌入水印,可以避免引起圖像的失真,但同時水印容易遭到破壞(如有損壓縮等)。因此,一個有效的小波域水印算法必須在魯棒性和圖像的失真度之間取得平衡。
2.3 水印嵌入算法
在本算法中,采用具有特殊意義的圖像作為水印信息。另外,為了提高水印的不可見性和穩(wěn)健性,在水印嵌入之前,先對原始水印進行Arnold變換預(yù)處理。在水印嵌入時,結(jié)合人類視覺模型,根據(jù)小波變換的特點,采用多分辨率分析思想,將水印信息和原始圖像分別進行小波分解后,進行對應(yīng)子圖的多分辨率嵌入,從而較好的滿足了水印算法的不可見性和魯棒性要求 [6-8] 。具體算法描述如下:
設(shè)X代表大小為M×M的原始圖像,W代表大小為N×N水印圖像,一般的,基于小波多級分解的特點考慮,水印尺寸的選擇要小于原始圖像尺寸,并且滿足M =2pN(p為正整數(shù))。
水印嵌入算法具體步驟如下:
1) 分別讀入宿主圖像X和原始水印圖像W;
2) 對原始水印W采用Arnold變換進行置亂預(yù)處理,處理后的水印圖像為W'。保留置亂次數(shù)k做為密鑰;
3) 將置亂后的水印圖像W′進行一級小波分解,得到一級分辨率下的三個細節(jié)子圖W1k,(k=1,2,3) 和一個逼近子圖W10;
4) 將宿主圖像X進行三級小波分解,得到不同分辨率級下細節(jié)子圖Xjk(j,k= 1,2,3)和一個逼近子圖X30;
5) 將W'一級小波分解后的子圖分別嵌入對應(yīng)的宿主圖像第三級小波分解的子圖,其中,XW0,XWk,(k=1,2,3)分別為嵌入后的各分塊:
XW0= X30+α*W10
XWk=X3k+β*W1k,k=1,2,3
式中,α,β表示嵌入水印的強度因子,考慮到逼近子圖X30對應(yīng)原始圖像的低頻部分,即平滑區(qū)域,經(jīng)大量仿真測試證明,如果這一部分嵌入量較大,則對于嵌入水印圖像的視覺質(zhì)量影響較大,而X3k (k=1,2,3)對應(yīng)于原始圖像的高頻部分,具有不同的特點,兼顧到水印不可見性和魯棒性的要求,α的取值要小于β;
6) 將上述操作后的XW0 ,XWk ,(k=1,2,3)與Xjk (j =1,2;k=1,2,3)重新組合并進行三級小波重構(gòu)得到最終的嵌入水印圖像XW。
3 水印的提取
數(shù)字水印的提取過程是嵌入過程的逆過程,本算法提取時需要借助于原始圖像,其過程如下:
1) 依次讀入原始圖像X和已嵌入含水印圖像XW;
2) 將原始圖像X和已嵌入水印圖像XW分別進行三級小波分解,分別得到不同分辨率級下的多個細節(jié)子圖Xjk, XWjk(j,k=1,2,3)和兩個逼近子圖X30,XW30;
3) 讀取X3k,XW3k(k=0,1,2,3),并分別依據(jù)下述公式提取已嵌入的水印子圖:
W30=(XW30-X30)/α
W3k=(XW3k-X3k)/β,k=1,2,3
4) 將上一步公式中得到的W30 ,W3k(k=1,2,3)進行組合并進行一級小波重構(gòu)得到Ws;
5) 根據(jù)嵌入時設(shè)置的置亂密鑰k,并根據(jù)水印圖像的尺寸求得其置亂周期T,對Ws進行T-k次置亂,便得到最終的提取水印Wz。
4 實驗結(jié)果及分析
4.1 仿真實驗
我們采用經(jīng)典的elaine圖像(512×512×8)作為測試圖像,以有特殊意義的圖像“蘇州大學(xué)”(128×128)作為水印,在Matlab7.0和windows XP平臺上進行仿真實驗。對于原始圖像失真度用峰值信噪比(PSNR)進行量化評估,對于提取出的水印用歸一化相關(guān)系數(shù)(NC)進行量化評估,按照上述的方法進行水印的嵌入和提取。結(jié)果如下圖所示:
■
圖2原始圖像與原始水印 圖3嵌入水印的圖像與直接提取的水印
圖2為原始圖像及原始水印圖像。圖3為嵌入水印后的圖像和未受到任何攻擊下提取出的水印圖像,計算得到PSNR=32.00dB,NC=1,說明本文算法使水印具有很好的不可見性且水印檢測性能穩(wěn)定。
4.2 性能檢測實驗
為檢驗算法的魯棒性,我們對嵌入水印的圖像分別進行剪切、壓縮、疊加噪聲等攻擊,對攻擊后水印的提取結(jié)果進行分析評估[9]。
1) 剪切攻擊
嵌入水印后的圖像在網(wǎng)絡(luò)上流通時,有可能受到剪切操作。我們對含水印圖像進行了剪切實驗,結(jié)果如圖4所示,分別對含水印圖像進行了1/4和1/2大小的剪切,盡管隨著水印圖像被剪切部分的增大,水印信息的損失也相應(yīng)增多,但是由于算法是變換域嵌入水印,水印信息被分散在全部像素上,所以從結(jié)果來看,提取出的水印NC值都很高,可見本算法對剪切攻擊具有很好的穩(wěn)健性。
■
(a) 1/4剪切攻擊后的水印圖像和恢復(fù)出的水印 (b) 1/2剪切攻擊后的水印圖像和恢復(fù)出的水印
PSNR=13.68NC=0.9765PSNR=9.84 NC=0.9556
圖4 剪切攻擊后的水印圖像和恢復(fù)出的水印
2) JPEG壓縮
JPEG壓縮是數(shù)字圖像最容易經(jīng)受的圖像處理。目前網(wǎng)絡(luò)上流行的圖像多數(shù)都是JPEG格式,因此水印對于JPEG有損壓縮是否具有較強的免疫力是衡量一種水印算法是否成功的重要標準。本文對算法抗JPEG壓縮的性能進行了檢驗。通過實驗,得到不同品質(zhì)因子的JPEG壓縮后提取出水印的NC值,如下表所示:
表2 JPEG壓縮實驗結(jié)果
■
可見本算法對JPEG壓縮有較好的抵抗性。
3) 噪聲攻擊
一般情況下,圖像在網(wǎng)絡(luò)上傳輸時,很容易受到噪聲的污染。本文對嵌入水印的圖像添加一種較為常見的噪聲:椒鹽噪聲。圖5為添加了強度為0.02的椒鹽噪聲后的圖像和提取的水印。實驗數(shù)據(jù)表明本算法對噪聲干擾具有較好的抵抗能力。
■
圖5 d=0.02的椒鹽噪聲攻擊后的水印圖像和恢復(fù)出的水印
PSNR=22.22NC=0.9134
5 結(jié)論
本文提出一種基于DWT域的圖像數(shù)字水印算法。本算法在水印嵌入之前對水印信息進行了置亂處理,之后采用了多分辨率思想,在原始圖像的小波變換域進行水印信息的自適應(yīng)嵌入,從實驗結(jié)果看出,水印信息在嵌入后具有良好的不可見性和提取的穩(wěn)健性。該算法計算簡單、容易實現(xiàn),并且具有較好的效果,有一定的應(yīng)用價值。
參考文獻:
[1] Cox I J,MillerM I.The first50 years of electronic water-marking[J].Journal of Applied Signal Processing,2002,(2):126-132.
[2] 楊義先,鈕心忻.數(shù)字水印理論與技術(shù)[M].北京:高等教育出版社,2006.
[3] 程正興.小波分析與應(yīng)用實例[M].西安:西安交通大學(xué)出版社,2006.
[4] 丁瑋,閆偉齊,齊東旭.基于arnold變換的數(shù)字圖像置亂技術(shù)[J].計算機輔助設(shè)計與圖形學(xué)學(xué)報,2001,13(4):338-341.
[5] 陳武凡.小波分析在圖像處理中的應(yīng)用[M].北京:科學(xué)出版社,2002.
[6] 張曉峰,段會龍.基于小波變換的圖像水印嵌入方法[J].計算機工程與應(yīng)用, 2004, (11): 64-65.
[7] 陳明舉,陳善學(xué).一種基于小波變換與奇異分解的圖像水印算法[J].信息與電子工程,2007,5(1):57-61.
[8] 楊紅穎,王向陽,趙巖.用于紋理子塊的小波變換數(shù)字水印算法[J].微電子學(xué)與計算機,2004,21(7):106-109.
[9] 羅軍輝,馮平,哈力旦·A,等.MATLAB7.0在圖像處理中的應(yīng)用[M].北京:機械工業(yè)出版社,2005.6.