摘 要: 提出一種新的抗旋轉(zhuǎn)攻擊的圖像水印算法" title="水印算法">水印算法,在圖像小波" title="小波">小波分解的低頻子圖中根據(jù)三個扇區(qū)塊均值關(guān)系嵌入水??;在其細節(jié)子圖中植入用于測量旋轉(zhuǎn)角度的基準線。水印檢測時進行霍夫變換,通過基準線估計圖像旋轉(zhuǎn)" title="圖像旋轉(zhuǎn)">圖像旋轉(zhuǎn)角度,追蹤扇區(qū)塊新位置,提取水印。
關(guān)鍵詞: 霍夫變換 旋轉(zhuǎn) 水印扇區(qū)塊 小波變換
近年來,數(shù)字水印技術(shù)在抵抗壓縮、濾波等方面得到了快速發(fā)展,出現(xiàn)了許多基于DCT和DWT的頻域優(yōu)秀算法。
數(shù)字水印系統(tǒng)模型如圖1所示。水印信息W在密鑰K的控制下嵌入到載體圖像C中形成水印化圖像Cw。水印化圖像在發(fā)布過程中可能遭受到包括幾何變換攻擊在內(nèi)的各種處理,等效于經(jīng)過一個攻擊信道。幾何變換會使水印能量分散,位置改變。具體變化與幾何變化中采用的插值" title="插值">插值操作方式有關(guān),有時即使知道精確的幾何變換條件,也不易實現(xiàn)水印的完全提取[1][2]。因此,一般算法難以抵抗旋轉(zhuǎn)、縮放和平移等幾何處理所造成的去除同步攻擊,抗旋轉(zhuǎn)類幾何攻擊的水印技術(shù)開始成為第二代水印技術(shù)研究的重點。
為了解決幾何變換類攻擊問題,眾多學者進行了大量研究并提出了一些算法[3][4],其中最具代表性的有:(1)基于Fourier-Mellin變換水印算法:在圖像幾何不變域中嵌入水印信號,對旋轉(zhuǎn)和縮放處理具有不變性,但其缺陷是插值操作極易惡化圖像質(zhì)量,同時造成水印信號的損失。(2)基于模板匹配的水印算法:除水印信號外,在圖像中還嵌入模板信號,通過幾何處理前后模板信號之間的匹配估計圖像幾何處理參數(shù)進行恢復。不足之處在于模板信號具有的規(guī)則結(jié)構(gòu)和顯著取值,使攻擊者能夠成功地擾亂或去除圖像中的模板信號;且需要采用窮舉搜索的策略進行參數(shù)估計,增加算法的復雜度。(3)基于圖像特征的水印算法:圖像的顯著特征對視覺系統(tǒng)有較好的不變性,利用圖像的底層特征可對水印信號的檢測進行同步。然而如何自動、可靠地提取這些特征(尤其是圖像受到若干處理的情況下)始終是模式識別領(lǐng)域的一個難點。(4)校準信號幾何同步方法:該方法可以實現(xiàn)常見幾何變換的估計與同步,但幾何逆變換操作是實現(xiàn)水印檢測的必須步驟,這樣二次處理中的插值運算使用越多,水印信息丟失越多。
鑒于上述原因,考慮無需對遭受幾何攻擊圖像進行恢復校正,而是根據(jù)其經(jīng)歷的幾何變換追蹤水印信息的新位置,因而提出了水印扇區(qū)塊的概念,即依據(jù)三元組[5]思想在水印扇區(qū)塊中嵌入和提取水印,通過霍夫變換估計圖像的旋轉(zhuǎn)角度。由于未對載體圖像作二次處理,因此最大可能地保存了剩余其中的水印信息。
1 算法設(shè)計
1.1 圖像小波變換" title="小波變換">小波變換細節(jié)子圖中植入基準線
小波變換是近幾年興起的一種可以達到時域或頻域局部化的信號時頻分析方法,其多分辨率處理能力及頻帶的多尺度劃分與人類的思維方式和生理功能相吻合;基函數(shù)靈活多樣,是一種快速的線性運算;圖像經(jīng)過小波多分辨率分解后,能量幾乎都集中在較低頻的子圖像上,在低頻逼近子圖上嵌入的水印穩(wěn)健性強;人眼對高頻分量的改變不敏感,所以在圖像細節(jié)子圖上添加一個隱蔽的基準線,被用來測試圖像旋轉(zhuǎn)角度β,不會引起圖像失真。
1.2 霍夫變換估計旋轉(zhuǎn)角度
水印提取時,對待測圖像一級小波分解后的細節(jié)子圖進行霍夫變換(坐標原點選擇為圖像的中心點,極角的范圍為θ∈[0,2π],角度間隔△θ=1°),檢測前先添加其中的基準線;選取具有最強方向的一條直線P(即添加的基準線),根據(jù)式(1)計算其角度的改變,即圖像的旋轉(zhuǎn)角度(負值表示順時針旋轉(zhuǎn),正值表示逆時針旋轉(zhuǎn)):
圖像實際應用中通常只進行小角度旋轉(zhuǎn),因此在使用上式計算旋轉(zhuǎn)角度時隱含一個假設(shè):即圖像旋轉(zhuǎn)的角度不超過45°,霍夫變換中極角取值間隔為1°,因而旋轉(zhuǎn)角度估計的精度為1°。
1.3 扇區(qū)塊水印嵌入
扇區(qū)塊的角度變化如圖2所示。為便于水印的定位和準確計算,提出了水印扇區(qū)塊的概念:在圖像一級小波變換的低頻子圖LL中,以其中心為圓點,低頻子圖被劃分為許多扇道,選擇同一扇形(10°)中標記為1、2、3的三個扇區(qū)塊,并依據(jù)它們的線性關(guān)系嵌入水印。如果圖像遭到旋轉(zhuǎn)攻擊,標號為1、2、3的扇區(qū)塊就從原位置旋轉(zhuǎn)到新位置。這樣只要知道旋轉(zhuǎn)角度就可以方便、準確地定位三個扇區(qū)塊的新位置1′、2′、3′,然后進行水印的檢測。
借鑒三元組思想:定義三個扇區(qū)塊的塊均值從小到大依次為f1、f2、f3,依據(jù)式(2)改變塊均值間的線性關(guān)系來隱藏一位信息:如果要嵌入1,將中間值f2與最大值f3取相同;如果要嵌入-1,則與最小值f1取值相同。該塊在未被改動的情況下,依據(jù)公式(2)計算所提取出的信息應為1或-1。
當圖像發(fā)生旋轉(zhuǎn)時,三個扇區(qū)塊也發(fā)生同角度的旋轉(zhuǎn)。圖像旋轉(zhuǎn)后,不同位置扇區(qū)塊元素值會有所改變,但它們的改變方向是一致的,只要扇區(qū)塊中的元素足夠多,旋轉(zhuǎn)后各塊均值間就能夠保持這種線性關(guān)系??紤]到如果f2改變太大,會引起圖像失真,為了維持水印的不可見性,實驗數(shù)據(jù)表明在保證水印不可見性基礎(chǔ)上為了滿足最大嵌入強度要求,f2的改變不應超過其本身的 50%。
圖2所示圓形區(qū)域有4個象限,同一位信息存貯在4個象限的不同位置,這樣水印信息被重復嵌入,當某處信息被破壞后,還可以通過其他處的“后備”來重構(gòu)。以每一處提取的隱藏信息為權(quán)值,在重構(gòu)時對各處的提取值進行加權(quán)平均值計算,這樣得到的重構(gòu)水印更加準確。
2 水印算法描述
2.1 水印生成
為保證水印保密性,采用了線性移位寄存器產(chǎn)生的m序列作為被嵌入的二值水印信號(-1,1),記為W,水印長度為K,W={w(k)|0≤k≤K,w(k)∈(-1,1)}:m序列發(fā)生器的種子作為密鑰保管。
2.2 水印嵌入
水印嵌入步驟如下:
(1)對圖像I進行一級小波變換,記作Y=DWT(I)。
(2)在細節(jié)子圖HH中添加基準線P。
(3)在逼近子圖中劃分扇區(qū)塊,從第一象限第一扇區(qū)開始,計算三個扇區(qū)塊的塊均值,自小至大為f1、f2、f3。
?、偃羟度?1,當f2-f1<50%×f2時,則將塊2中的每個值減(f2-f1),使得塊均值f2=f1;否則使f2=f2×(1-50%);
②若嵌入1,當f3-f2<50%×f2時,則將塊2中的每個值加(f3-f2),使得塊均值f2=f3;否則使f2=f2×(1+50%)。
(4)對每一位水印信息W(k)在4個象限重復步驟3 進行嵌入。
(5)將所有水印信息嵌入后,進行逆DWT變換,還原回原圖位置,構(gòu)成了水印化加密圖像I′。
2.3 水印提取
水印提取是嵌入的逆過程,具體步驟如下。
(1)對水印化圖像I′進行一級小波變換,在細節(jié)子圖HH中通過霍夫變換計算圖像旋轉(zhuǎn)角度β。
(2)根據(jù)旋轉(zhuǎn)角度β,追蹤三個扇區(qū)塊的新位置,計算三個扇區(qū)塊塊均值f1′、f2′、f3′。
(3)根據(jù)式(2)計算每塊中隱藏的信息。式(2)中,若f3′=f1′,則可令w=0。w的絕對值越接近1,說明提取信息的準確性越高;w越接近0,說明圖像被改動越大。
(4)在4個象限重復進行步驟(2)~(3),得到4個同樣表示第k位水印的信息w,計算這4個信息的帶符號算術(shù)平均值W(k)<sup>s</sup>,k=0,1,……K-1,W(k)<sup>s</sup>∈[-1,1];若W(k)<sup>s</sup>≥0,則第k位水印信息W(K)′=1;否則W(K)′=-1。這樣就構(gòu)成了檢測到的水印W′,W′={w(k)|0≤k≤K,w(k)∈(-1,1)}。
(5)用作為密鑰保管的種子,通過同一線性移位寄存器產(chǎn)生與水印嵌入時相同的m序列W,比較W與W′的相似程度,以確定圖像中是否含有水印。
3 實驗結(jié)果及分析
仿真實驗采用的載體圖像是512×512的256級灰度圖像Lena,水印長度 54b。在VC++6.0平臺對上述算法進行了編程實現(xiàn)。公式(3)定義的峰值信噪比PSNR被用來衡量水印化圖像與原始載體圖像的質(zhì)量差別,其中I(i,j)和(i,j)分別表示原圖像和水印化圖像中對應位置的像素。公式(4)定義的相關(guān)系數(shù)NC被用來衡量提取的二值水印圖像與原始水印圖像的相似程度,其中的w(i)和wx(i)分別表示第i位原始水印和第i位提取水印。
圖3為原始圖像,圖4為嵌入水印后未經(jīng)攻擊的圖像,PSNR值達到35.57,算法基本保證了水印的不可見性,從中提取的水印與原始水印完全相同。圖5為水印化圖像旋轉(zhuǎn)5°的情形,圖6為檢測到的基準線,旋轉(zhuǎn)角度估計完全正確,提取水印與原始水印相似度為0.94。
文獻[6]是一種較理想的抗旋轉(zhuǎn)攻擊方法,表1對兩種方案進行了實驗比較。從中可以看出,本算法在遭到旋轉(zhuǎn)攻擊后能較準確地提取出水印,小角度旋轉(zhuǎn)后的水印提取性能明顯較高。
幾種類型攻擊后提取的水印相似度NC如表2所示。從表中看出,本方法作為一種小波域水印算法,在載體圖像的逼近子圖中嵌入水印,使得算法具有較好魯棒性。引入三元組扇區(qū)塊概念后,水印重復嵌入,水印被散布處理,因此對于涂抹和剪切等幾何型攻擊具有很好的抗攻擊能力,提高了水印提取的準確度;而用于檢測圖像旋轉(zhuǎn)角度的基準線則在細節(jié)子圖中嵌入,其嵌入強度選取合適,既不容易被察覺,又具有穩(wěn)定性,經(jīng)過霍夫變換后能準確檢測出圖像旋轉(zhuǎn)的角度。
水印扇區(qū)塊尺寸的選擇會影響水印的穩(wěn)健性,選擇的扇區(qū)塊面積越大,則包含的點越多,算法越穩(wěn)定。但同時由于被改變的點數(shù)量增大會引起圖像改動過大,相應可嵌入水印的容量會減少;另外,塊均值f2改變越大,水印的穩(wěn)定性會越高,但若其改動過大,則易引起圖像失真,所以改動范圍應根據(jù)圖像局部特點自適應調(diào)節(jié);扇區(qū)塊尺寸的劃分和f2的改變要根據(jù)嵌入水印的穩(wěn)健性和數(shù)字圖像的具體應用折衷考慮,要盡量保持水印的穩(wěn)健性和不可見性間的平衡。
本文提出了一種基于霍夫變換的小波域數(shù)字水印方案,實現(xiàn)了水印的盲提取。用霍夫變換檢測圖像旋轉(zhuǎn)角度,由于未對載體圖像進行二次恢復處理,最大限度地保存了剩余水印信息;又用三元組和重復嵌入方法增強了水印的魯棒性;加入水印后的圖像在人眼觀察下也沒有較大的視覺失真,客觀評價指數(shù)很滿意。實驗結(jié)果表明該算法計算簡單,能有效抵抗旋轉(zhuǎn)類型幾何攻擊,具有廣泛的應用價值。
參考文獻
1 Cox I J,Killian J.Leighton F T et al.Secure spread spectrum watermarking for multimedia.IEEE Transaction Image Process-ing[J],1997;6(12):1673~1687
2 張 艷,劉 兵.抗旋轉(zhuǎn)的數(shù)字圖像水印算法.云南大學學報(自然科學版)[J],2005;27(1):22~25
3 俞龍江,牛夏牧,孫圣和.一種旋轉(zhuǎn)、尺度變換和平移魯棒水印算法.電子學報[J],2003;31(12A):2071~ 2073
4 姚 俊,郭 雷,任建峰.一種抗旋轉(zhuǎn)、尺度和平移處理的圖像水印算法[J].計算機應用,2004;24(12):19~21
5 Zhao J,Koch E.Embedding robust labels into images for copyright protection[C].In:Proceeding of the international congress on intellectual property rights for specialized infor-mation,knowledge and new technologies,Vienna,Austria,1995
6 袁 源,李炳法,楊 杰.一種高效抗旋轉(zhuǎn)攻擊的盲數(shù)字水印技術(shù).信息技術(shù)[J],2003;27(12):28~30