羅 可
(邵陽學(xué)院圖書館,邵陽 422000)
為保證圖像質(zhì)量,同時(shí)保證水印的不可感知性,2001年溫泉等在中國(guó)第三屆信息隱藏學(xué)術(shù)討論會(huì)上明確提出了“零水印”的概念?!傲闼〖夹g(shù)”是在宿主圖像中不做任何修改情況下,利用圖像自身的重要特征來構(gòu)造水印信息。由于圖像的特征(邊緣、紋理等)具有獨(dú)特性,因此,根據(jù)圖像特征生成的水印信息也是唯一性的。
“零水印”一經(jīng)提出,就引起了國(guó)內(nèi)外許多學(xué)者的廣泛關(guān)注和深入研究,2016年達(dá)到頂峰,發(fā)表與零水印相關(guān)的論文多達(dá)百篇,提出的算法也層出不窮。近年來大多數(shù)算法的基本思想都是尋找圖像特征,如低頻域內(nèi)系數(shù)差,小波矩等,對(duì)圖像特征進(jìn)行二值化處理(即當(dāng)圖像的某個(gè)像素特征值大于閾值時(shí),特征圖像對(duì)應(yīng)像素的值為1,否則為0),再對(duì)同等大小的二值水印圖像進(jìn)行簡(jiǎn)單的異或運(yùn)算,生成水印圖像大小的密鑰,并保存下來。提取過程中,水印圖像經(jīng)過密鑰和圖像特征的異或運(yùn)算重新提取,該算法簡(jiǎn)單、易于實(shí)現(xiàn)。因?yàn)樗〔]有真正地嵌入在圖像中,而圖像的特征提取算法也沒有公開,一般說來,這種零水印方法是安全的。
圖像的紋理特征是一種全局特征,是對(duì)圖像或圖像區(qū)域所對(duì)應(yīng)景物的描述,這種特征是圖像中最有價(jià)值的部分,一旦受到攻擊,就會(huì)喪失圖像本身的價(jià)值。所以,在紋理區(qū)域中嵌入水印可以在一定程度上提高水印的安全性。
本文提出了一種基于非等長(zhǎng)紋理強(qiáng)度密鑰的零水印算法,采用Contourlet 變換提取圖像方向上的紋理特性,利用灰度形態(tài)學(xué)原理將子圖中的紋理區(qū)域分為強(qiáng)紋理塊、過渡塊和弱紋理塊三種極性,根據(jù)這三種極性映射出特征圖像,在一定程度上提高了水印提取的正確率,而且生成的密鑰長(zhǎng)度不同,進(jìn)一步提高了水印的安全性。
2002年Do 和Vetterli 提 出 了Contourlet 變換,Contourlet 變換是Wavelet 變換的一種新擴(kuò)展,彌補(bǔ)了Wavelet 變換在捕獲方向信息方面的局限性。與Wavelet變換相比,Contourlet變換描述信息更多,它具有以下特點(diǎn):與其他變換Contourlet變換在方向等方面都可以更好地詮釋;而且Contourlet 變換具有更好的特征,能以更好的方式來表達(dá);與其他變換Contourlet 變換在方向等方變換中。
圖1(a),顯出Contourlet 變換的工作過程。圖1(b)中,通過Contourlet 變換分解得到的3 層Contourlet 系數(shù),分別表示4、8 和16 個(gè)細(xì)節(jié)方向,其中Contourlet 變換分解的層數(shù)和數(shù)量并不唯一。
圖1 Contourlet變換
數(shù)學(xué)形態(tài)學(xué)是一門以集合論為基礎(chǔ)的新興學(xué)科,主要用來處理二值影像,又稱二值形態(tài)學(xué)。適合于二值圖像的邊緣提取、分割和細(xì)化等。
灰度值形態(tài)是二值形態(tài)學(xué)的自然擴(kuò)展。數(shù)學(xué)形態(tài)學(xué)的灰值運(yùn)算主要有灰值腐蝕運(yùn)算、灰值膨脹運(yùn)算、開/閉操作、頂帽變換、底帽變換等。
強(qiáng)紋理區(qū)域?qū)?yīng)的突變點(diǎn)較多,即灰度峰和谷值。突變點(diǎn)越多,表明該區(qū)域的灰度峰和谷值也越高。這就是說,包含更多的明亮特征和暗色特征,紋理性也就越強(qiáng),稱為強(qiáng)紋區(qū)域,即突變點(diǎn)多的區(qū)域。形態(tài)學(xué)中的頂帽變換(Top-Hat)和底帽變換(Botton-Hat)算法是一種精確的圖像局部區(qū)域灰度峰值(亮特征)和灰色谷值(暗特征)算法。在以上分析的基礎(chǔ)上,提出了一種基于灰值形態(tài)學(xué)的方法,能夠快速、準(zhǔn)確地提取紋理塊。
對(duì)標(biāo)準(zhǔn)測(cè)試圖像lena 進(jìn)行紋理提取,得到圖2(b)中的紋理區(qū)域。
圖2 原始圖像與紋理區(qū)域提取結(jié)果
傳統(tǒng)零水印算法選取的特征圖像為二值圖像,如文獻(xiàn)[8]算法,其基本思想是基于提升算法的Haar整數(shù)小波變換和帶膨脹運(yùn)算的Sobel特征提取方法提取圖像的輪廓特征,然后將圖像的輪廓特征(二值圖像)與水印進(jìn)行異或運(yùn)算生成密鑰。然而,如果對(duì)圖像進(jìn)行了處理,則會(huì)影響到特征圖像的穩(wěn)定性,進(jìn)而影響到水印的提取,如圖3所示,紅色區(qū)域?yàn)樘卣髦蹈淖儭?/p>
圖3 被攻擊后圖像特征對(duì)比(圓圈代表兩幅圖像特征的值存在差異)
為了解決這一問題,本文提出了一種基于非等長(zhǎng)紋理強(qiáng)度密鑰的零水印算法,根據(jù)圖像紋理的三種極性映射出特征圖像,用Tri-state XOR運(yùn)算(TXOR)生成不等長(zhǎng)密鑰,在一定程度上提高了水印提取的正確率,進(jìn)一步提高了水印的安全性。
圖4為本文所提出的基于輪廓波域零水印嵌入架構(gòu)流程圖,下面逐項(xiàng)詳細(xì)說明:
圖4 基于輪廓波的零水印嵌入算法原理圖
2.2.1 輪廓波變換
對(duì) 一 張 大 小×的圖像進(jìn)行J 級(jí)Contourlet 變換后,得到一個(gè)低頻子圖和一組不同方向上的高頻子圖。本文使用Contourlet 分解圖像,第一級(jí)分成8 個(gè)方向,第二級(jí)分解成4 個(gè)方向,第三級(jí)也分解成4個(gè)方向,選取第二級(jí)其中的一個(gè)子圖作為圖像紋理提取的子圖。
2.2.2 方向子圖像分塊
2.2.3 子塊極性標(biāo)定
根據(jù)子圖I,找出該子圖的平均值M,我們定義每一個(gè)子塊為N,其中,為子塊行列號(hào)。N主要用來統(tǒng)計(jì)每個(gè)子塊內(nèi)4 個(gè)系數(shù)中有多少個(gè)系數(shù)大于頻帶平均值M的個(gè)數(shù),因此N最大為4,最小為0(見圖5)。
圖5 頻帶內(nèi)4個(gè)系數(shù)構(gòu)成的一個(gè)子塊示意圖
對(duì)選取紋理塊的圖像I進(jìn)行2×2分塊,得到了×的分塊矩陣。為了安全起見,可以對(duì)分塊矩陣進(jìn)行置亂,找出每一個(gè)子圖I的均值M。值得注意的是,頻帶的均值M就是紋理塊的非零系數(shù)的均值,而非整個(gè)圖像的均值。
接下來判斷子塊的極性B,根據(jù)子塊內(nèi)系數(shù)值大于均值M個(gè)數(shù)的多寡將子塊的極性分成三大類:平滑區(qū),紋理區(qū)和邊緣區(qū),分別用“0”,“1”,“2”代表。
我們根據(jù)下面準(zhǔn)則劃分子塊極性:
準(zhǔn)則A:對(duì)于低頻子帶圖像I,按下列條件劃分它的子塊極性:
準(zhǔn)則B:對(duì)于高頻子帶圖像I,按下列條件劃分它的子塊極性:
通過實(shí)驗(yàn)發(fā)現(xiàn),低頻段低頻系數(shù)不會(huì)因壓縮而發(fā)生很大變化,高頻系數(shù)可能因壓縮而發(fā)生較大變化,因此為了提高數(shù)字水印的魯棒性,本文對(duì)高頻子塊進(jìn)行了嚴(yán)格的紋理劃分。
2.2.4 紋理子塊的紋理強(qiáng)度標(biāo)定
根據(jù)紋理區(qū)域,計(jì)算出子圖的紋理區(qū)的平均值M,再將M與紋理子塊內(nèi)系數(shù)值進(jìn)行比較,根據(jù)紋理子塊內(nèi)系數(shù)值大于均值M個(gè)數(shù)的多寡將子塊的強(qiáng)度B分成三大類:強(qiáng)紋理塊、過渡塊和弱紋理塊,分別用“0”,“U”,“1”代表。
根據(jù)準(zhǔn)則C劃分紋理子塊強(qiáng)度B:
準(zhǔn)則:
其中P為紋理子塊內(nèi)系數(shù)值大于均值M的個(gè)數(shù)。
不等長(zhǎng)密鑰主要通過三態(tài)異或運(yùn)算(TXOR)得到,它的運(yùn)算規(guī)則見表1。將二值水印命名為W,W子塊紋理強(qiáng)度為B,經(jīng)過下列TXOR運(yùn)算:
表1 TXOR運(yùn)算表
將數(shù)字水印選擇性地嵌入,從而得到一組只有擁有版權(quán)所有權(quán)的人才能有的密鑰K,代表密鑰長(zhǎng)度。不等長(zhǎng)密鑰產(chǎn)生見圖6,與一般的零水印算法不同之處在于:如果運(yùn)算產(chǎn)生的K值為0,則W的值必須與下一個(gè)B的值再次進(jìn)行TXOR 運(yùn)算,直到產(chǎn)生的K值為1,W才會(huì)繼續(xù)進(jìn)行下一個(gè)值。
圖6 水印嵌入示例圖
提取過程前面步驟與嵌入過程相似,它的流程見圖7。
圖7 水印提取原理圖
首先對(duì)待檢測(cè)圖像進(jìn)行輪廓波變換,形態(tài)算子運(yùn)算、分塊映射,得到具有紋理特性的子圖C。
準(zhǔn)則D:
最后將一維水印圖像轉(zhuǎn)換為二維水印圖像。通過提取過程來確定該檢測(cè)圖像是否含有版權(quán)保護(hù)的水印。
本文選取Lena(圖8(a)),Man(圖8(b)),Bridge(圖8(c))這三張圖像作為測(cè)試圖像,每張圖像大小為512×512且每個(gè)像素點(diǎn)為8 Bit,而二值水印為Watermark,Watermark,Watermark,每張圖像大小為32×32個(gè)像素點(diǎn)。
圖8 測(cè)試圖像
圖9 二值水印圖像
和其它零水印算法不同,本文算法得到的密鑰長(zhǎng)度不一致,即用相同的水印嵌入不同的載體圖像,在相同載體圖像中嵌入不同的水印圖像所產(chǎn)生的密鑰長(zhǎng)度也不相同(如表2),本文的水印長(zhǎng)度為1024 Bit,該算法產(chǎn)生的密鑰長(zhǎng)度可能是水印長(zhǎng)度的3~5倍。
表2 不同測(cè)試圖像嵌入不同水印所產(chǎn)生的密鑰長(zhǎng)度(Bit)
零水印的水印算法由于不對(duì)原始圖像嵌入信息,故不需要對(duì)其進(jìn)行不可感知性測(cè)試。零水印算法的測(cè)試主要集中在攻擊測(cè)試中,即在經(jīng)過各種攻擊后,該算法能否順利提取出水印圖像。在本文中,嵌入的水印圖像為Watermark,通過噪聲攻擊、JPEG 壓縮攻擊、一定比例縮放攻擊等方式來驗(yàn)證算法的魯棒性。另外,本文算法與文獻(xiàn)[8]算法進(jìn)行比較,實(shí)驗(yàn)結(jié)果如下。
3.1.1 噪聲攻擊測(cè)試結(jié)果
圖像在進(jìn)行Contourlet 變換后,方向子帶中會(huì)包含噪聲。高斯噪聲是以加性的形式對(duì)圖像進(jìn)行攻擊的。噪聲強(qiáng)度越大,影響就越大。如圖10 所示,隨著噪聲強(qiáng)度的增強(qiáng),相關(guān)系數(shù)(correlation coefficient,簡(jiǎn)稱CC)值大幅度降低,這意味著提取的水印信息失真嚴(yán)重。尤其對(duì)于醫(yī)學(xué)圖像,提取效果很不理想。
圖10 噪聲攻擊測(cè)試結(jié)果
3.1.2 JPEG壓縮攻擊測(cè)試結(jié)果
JEPG 壓縮是第一個(gè)國(guó)際圖像壓縮標(biāo)準(zhǔn)。JEPG 壓縮不僅有良好的壓縮能力,而且重建的效果也很強(qiáng),隨著品質(zhì)因子值的變小,其壓縮強(qiáng)度就會(huì)更大,導(dǎo)致圖像的失真現(xiàn)象也會(huì)更嚴(yán)重。圖11 是在不同壓縮質(zhì)量下的水印提取情況,從值可以看出,該算法對(duì)JEPG 壓縮有很好的魯棒性,即使在較大的壓縮程度下,值也可以達(dá)到0.83 左右。圖片品質(zhì)因子=10 的情況下,提取出的水印圖片,可以清楚地分辨出原水印的信息內(nèi)容,視覺效果良好??芍?,本算法能有效地抵抗JEPG壓縮攻擊。
圖11 三張圖像對(duì)于JPEG攻擊所承受程度
3.1.3 縮放攻擊測(cè)試結(jié)果
由圖12 可以看出,只能極限縮放到0.5 倍,CC 值最低為0.6,之后一直穩(wěn)定在CC 值為1。比較高的攻擊強(qiáng)度下,仍然可以較為清晰地提取出水印信息。所以,該算法對(duì)縮放攻擊有一定的魯棒性。
圖12 縮放攻擊測(cè)試結(jié)果
3.1.4 其他攻擊測(cè)試結(jié)果(見表3)
表3 其他攻擊測(cè)試結(jié)果
實(shí)驗(yàn)結(jié)果表明,本文提出的基于紋理強(qiáng)度的不等長(zhǎng)零水印算法對(duì)圖像處理(JPEG 壓縮、噪聲、縮放、濾波、剪切等攻擊)具有很好的魯棒性,提取的二值水印清晰可辨。特別是對(duì)于JPEG 壓縮有更好的魯棒性,即使壓縮后的質(zhì)量因素有很大的降低,仍然能夠準(zhǔn)確地提取出圖像。本論文算法將圖像特征分為三種狀態(tài),通過三態(tài)異或操作產(chǎn)生不等長(zhǎng)密鑰,在水印提取穩(wěn)定性上稍強(qiáng)于文獻(xiàn)[8]算法,故此,本文提出的算法在綜合性能上稍強(qiáng)一些。
本文結(jié)合輪廓波原理實(shí)現(xiàn)了一種基于紋理強(qiáng)度的零水印算法。多方位、多分辨率的輪廓波變換能夠很好地表達(dá)圖像的紋理特征和輪廓信息,在此基礎(chǔ)上,利用灰度數(shù)字形態(tài)學(xué)能很好地區(qū)分紋理塊的強(qiáng)度,然后根據(jù)紋理的強(qiáng)度和水印生成密鑰。與已有的零水印算法相比,該算法具有一些明顯的優(yōu)勢(shì)。
(1)采用不等長(zhǎng)密鑰提高水印的安全性。該算法生成的密鑰與水印圖像大小不一致,增加了密鑰破譯的難度。
(2)圖像紋理強(qiáng)度特征穩(wěn)定性。圖像的紋理塊強(qiáng)度越大,該區(qū)域的信息隱藏效果越好。該密鑰是以紋理塊強(qiáng)度為圖像特征,并用水印操作生成密鑰,這種密鑰穩(wěn)定性好,不會(huì)因圖像受到一般性攻擊而發(fā)生變化。
仿真結(jié)果表明,本文提出的零水印算法能夠在一定程度上抵抗JPEG 壓縮攻擊、剪切攻擊、縮放攻擊、噪聲攻擊、濾波攻擊等攻擊,并且可以在各種攻擊下有效地提取水印。生成的密鑰不容易被破解,具有較高的安全性。然而,該算法的不足之處是密鑰長(zhǎng)度偏大,容易增大密鑰的存儲(chǔ)空間,希望以后對(duì)其進(jìn)行改進(jìn)。