劉少偉 戴必翔
摘要:本文對(duì)于基于小波變換的數(shù)字水印算法進(jìn)行了比較基礎(chǔ)的研究,介紹了水印嵌入算法的預(yù)處理步驟,本文提出的水印嵌入算法是在中頻部分嵌入水印圖像,在水印圖像的預(yù)處理過(guò)程中可以加入Arnold圖像置亂算法或不加入圖像置亂算法,本文通過(guò)兩種評(píng)估方式來(lái)對(duì)比實(shí)驗(yàn)結(jié)果,本文算法在加入圖像置亂算法后通過(guò)提取算法提取水印圖像效果不是很明顯,而不加入置亂算法后水印提取完整性很高。
關(guān)鍵字:小波變換;圖像置亂處理;峰值信噪比;歸一化系數(shù)
1引言
隨著目前計(jì)算機(jī)技術(shù)及相關(guān)產(chǎn)業(yè)的發(fā)展,圖像處理變得越來(lái)越普遍,隨之圖像的加密處理變得越來(lái)越重要,與之相關(guān)的研究蓬勃發(fā)展。因此,數(shù)字水印技術(shù)應(yīng)運(yùn)而生,數(shù)字水印技術(shù)是一種解決版權(quán)保護(hù)和信息安全的技術(shù)。
目前數(shù)字水印技術(shù)主要包括空間域[1] 和變換域的水印技術(shù)。其中變換域的水印方法包括DFT,DCT和DWT[2]等。由于小波的空頻分解特性較好,而且在小波變換域內(nèi)的圖像處理可以充分利用人眼的視覺(jué)系統(tǒng)的某些特性,同時(shí)又與新一代靜止圖像壓縮標(biāo)準(zhǔn)相互配合,因此,基于小波變換的圖像水印處理應(yīng)用前景較好。
2 小波變換和圖像置亂處理
2.1 圖像的小波變化
小波變換將圖像在獨(dú)立的頻帶和不同空間方向上進(jìn)行分解,能更好地與人類(lèi)視覺(jué)系統(tǒng)相結(jié)合,是繼傅立葉變換之后又一里程碑式的發(fā)展[3]。
在圖1,an為低頻分量,bn為高頻分量的水平延伸,cn是高頻分量的垂直延伸,dn是高頻分量的對(duì)角延伸,且n =1,2,3。其中,小波高頻分量為圖像的邊緣及紋理部分[3]。
2.2 圖像置亂處理
數(shù)字圖像一般需要置亂處理,即指圖像位置空間等的變換。
本文使用Arnold 變換,該變換直觀、簡(jiǎn)單、有周期性。在文獻(xiàn)[4]中,就討論了Arnold 變換在數(shù)字圖像變換中的應(yīng)用。
Arnold 變換又稱(chēng)貓臉變換,該變換公式為
從采樣角度看,數(shù)字圖像為二維離散點(diǎn)的陣列,即對(duì)應(yīng)一個(gè)圖像矩陣。對(duì)于正方形數(shù)字圖像,可進(jìn)行離散化的Arnold 變換[4] 。
通過(guò)上式,便可對(duì)圖像所有像素點(diǎn)位置進(jìn)行變換,得到置亂后圖像。另外要注意,該變換會(huì)有周期性。
3 數(shù)字水印的性能評(píng)估
3.1 峰值信噪比
本文使用均方根誤差來(lái)度量相關(guān)載體圖像在嵌入水印后與嵌入前的變化情況。即用均方根誤差來(lái)對(duì)圖像質(zhì)量變化進(jìn)行評(píng)估。
均方差的計(jì)算公式(針對(duì)二維圖像):
這里f(x,y)是原始圖像的像素值,fr(x,y)是添加水印后圖像的像素值,M、N 分別是圖像的寬和高。
在本文實(shí)驗(yàn)中,通過(guò)計(jì)算峰值信噪比(PSNR)來(lái)對(duì)圖像尺度進(jìn)行評(píng)價(jià)。針對(duì)普通圖像格式,其灰度級(jí)別是 0~255,0 代表黑色,255 代表白色,因此 PSNR 的計(jì)算公式如下[5]:
對(duì)于PSNR取值,一般在20到40分貝之間。本文通過(guò)計(jì)算兩個(gè)圖像的PSNR來(lái)對(duì)圖像質(zhì)量進(jìn)行評(píng)估。
本文使用峰值信噪比(PSNR)來(lái)估計(jì)水印嵌入宿主圖像之后含水印圖像的扭曲程度,并作為反映一個(gè)數(shù)字水印算法不可見(jiàn)性好壞的指標(biāo)。
3.2 歸一化相關(guān)系數(shù) NC (Normalized Correlation)
從待測(cè)圖像中提取出數(shù)字水印后,常用NC即歸一化互相關(guān)系數(shù)來(lái)評(píng)估水印嵌入前和提取后的相似度。W 表示原水印圖像,W′為提取后水印圖像。
M1,M2分別為原水印圖像和提取水印圖像的寬和高。
歸一化相關(guān)系數(shù) NC 計(jì)算公式如下:
NC的范圍為0到1之間,如果NC越接近1,則表示兩個(gè)圖像相似度越大,NC越接近于0,則表示兩個(gè)圖像相似度越小[6]。
4 水印算法的實(shí)現(xiàn)
4.1 原始圖像和水印圖像
本課題使用的原始圖像為512*512的彩色圖像和64*64的二值水印圖像,由于采用彩色圖像作為預(yù)處理圖像,并且彩色圖像的索引表不連續(xù),這里將彩色圖像轉(zhuǎn)換為灰度圖像,灰度圖像是指每個(gè)像素點(diǎn)可以取0-255這256個(gè)整數(shù)之中的一個(gè)數(shù),數(shù)值越小,黑色越深,即0代表黑色,255代表白色,中間值顯示遞減的灰色。此變換使索引表連續(xù),進(jìn)而進(jìn)行小波變換。另外本文采用二值小圖像作為研究對(duì)象。
4.2 水印的嵌入算法
讀入灰度圖像和置亂后的水印圖像,對(duì)原始圖像(512*512)進(jìn)行分塊處理,這里設(shè)置每一塊的大小為8*8,應(yīng)注意原始圖像的分塊個(gè)數(shù)應(yīng)大于等于水印的像素個(gè)數(shù),按順序?qū)⒍邓∶恳粋€(gè)像素對(duì)應(yīng)的數(shù)值,按照一一對(duì)應(yīng)的關(guān)系,根據(jù)具體的嵌入算法,嵌入到相對(duì)應(yīng)的原始圖像的數(shù)據(jù)塊中。
在水印嵌入算法過(guò)程中,需要對(duì)原始圖像進(jìn)行dwt小波變換,由于對(duì)原始圖像進(jìn)行分塊處理,所以需要對(duì)圖像的每一塊分別進(jìn)行二維二層小波變換,上文已經(jīng)提到將水印嵌入到圖像中頻部分是一個(gè)比較好的選擇,故在此我們將水印嵌入到與之相對(duì)應(yīng)的原始圖像塊的中頻對(duì)角線子圖部分。
水印嵌入算法具體步驟如下:
(1)對(duì)原始水印C采用Arnold變換進(jìn)行置換預(yù)處理,處理后的水印圖像為C1。保留置亂次數(shù)k作為密鑰。
(2)對(duì)原始圖像進(jìn)行分塊,每一塊的大小為8*8,原始圖像的分塊個(gè)數(shù)大于等于水印圖像的像素個(gè)數(shù)。
(3)對(duì)原始圖像的每一塊進(jìn)行二維二層離散小波變換,得到不同分辨率級(jí)下的6個(gè)細(xì)節(jié)子圖和一個(gè)逼近子圖,這些圖分別對(duì)應(yīng)一個(gè)低頻子帶cA2、三個(gè)中頻子帶(cH2、cV2和cD2)和三個(gè)高頻子帶(cH1、cV1和cD1)。
(4)將水印圖像中每一個(gè)像素點(diǎn)的信息嵌入到原始圖像與之相對(duì)應(yīng)塊的中頻對(duì)角線子圖cD2中,當(dāng)讀入水印的一個(gè)像素值時(shí),其嵌入方式如下:
當(dāng)像素值為0時(shí),使中頻對(duì)角細(xì)節(jié)cD2(1,1) >cD2(2,2),表示嵌入了黑色的水印像素;
當(dāng)像素值為1時(shí),使中頻對(duì)角細(xì)節(jié)cD2(1,1) <= cD2(2,2),表示嵌入了白色的水印像素;
(5)上述步驟中水印圖像中一個(gè)像素點(diǎn)嵌入完畢后,再對(duì)此像素所在的塊進(jìn)行兩層重構(gòu)處理。得到重構(gòu)后的塊圖。
(6)若水印中的所有像素點(diǎn)沒(méi)有嵌入完畢,重復(fù)執(zhí)行步驟4和步驟5,直到所有像素點(diǎn)嵌入完畢。
下圖為水印嵌入算法的流程圖:
4.3 水印提取算法
本課題圖像中水印具體的提取過(guò)程如圖3 所示。
水印提取算法具體步驟如下:
(1)首先對(duì)嵌入水印后的圖像進(jìn)行分塊,塊大小為8*8,對(duì)每一塊進(jìn)行二維二層離散小波變換,分別得到一個(gè)低頻子帶cA2、三個(gè)中頻子帶(cH2、cV2和cD2)和三個(gè)高頻子帶(cH1、cV1和cD1)。
(2)通過(guò)對(duì)步驟1中每一塊分解所得的對(duì)角線中頻子帶cD2系數(shù)矩陣中cD2(1,1)和cD2(2,2)的大小關(guān)系,提取水印中的一個(gè)像素值,其提取方式如下:
(3)重復(fù)步驟2,直到把圖像中所有塊遍歷完畢,提取出置亂后的水印圖。
(4)通過(guò)Arnold置亂算法對(duì)提取后的水印圖進(jìn)行反置亂,得到最終的水印圖。
5 實(shí)驗(yàn)結(jié)果及分析
我們采用原始圖像為彩色的dog圖(512*512*8),經(jīng)過(guò)灰度處理后,轉(zhuǎn)換為圖4(a),以及含有特殊意義的二值圖像C(64*64)作為水印,如圖4(b)。在Matlab 2013a 和 windows 10 平臺(tái)上進(jìn)行仿真實(shí)驗(yàn)。對(duì)于原始圖像,失真度用峰值信噪比(PSNR)進(jìn)行量化評(píng)估,對(duì)于提取出的水印用歸一化相關(guān)系數(shù)(NC)進(jìn)行量化評(píng)估,按照上述的方法進(jìn)行水印的嵌入和提取。不加Arnold置亂步驟結(jié)果如下圖5所示,加入置亂步驟后結(jié)果如圖6所示。
圖4中圖(a)為原始圖像,圖 4中圖(b)為原始水印圖像。圖 5中圖(a)為嵌入水印后的圖像,圖5中圖(b)為未受到任何攻擊下提取出的水印圖像,計(jì)算得到 PSNR=41.3076dB,NC=1。圖6為加入置亂算法后得到的圖像和水印圖,由于相關(guān)系數(shù)太低,故本算法不適合加入置亂,有待完善。所以這里著重強(qiáng)調(diào)不加置亂算法的嵌入和提取即圖5。圖5說(shuō)明本文算法(去除置亂后)使水印具有很好的不可見(jiàn)性且水印檢測(cè)性能穩(wěn)定。上述圖像嵌入和提取是對(duì)圖像進(jìn)行中頻對(duì)角線方向進(jìn)行處理。下圖為是將水印圖像嵌入高頻對(duì)角線子圖cD1(不加置亂)。
通過(guò)圖5和圖7進(jìn)行對(duì)比,將水印圖像嵌入到原始圖像的高頻對(duì)角線子圖,嵌入水印后圖像的峰值信噪比為42.4252dB,而若陷入到原始圖像中頻對(duì)角線子圖,嵌入后圖像的峰值信噪比為41.3076dB,說(shuō)明嵌入水印后圖像的質(zhì)量相差不多,圖像失真度較小。再者是相關(guān)系數(shù)的比較,圖5提取水印與原水印相比,相關(guān)系數(shù)為1,說(shuō)明提取后水印和原水印的相似度為百分之百,而在高頻中提取水印,相關(guān)系數(shù)為0.9765,非常接近于1,但是不如在中頻中提取出的水印質(zhì)量好。綜上,將水印嵌入到高頻和中頻區(qū)域?qū)υ紙D像的影響不大,峰值信噪比相近,在相關(guān)系數(shù)方面,中頻提取大于高頻提取。所以將水印圖像嵌入到原始圖像的中頻部分是一個(gè)比較好的選擇。
再者通過(guò)圖6可知對(duì)圖像加入置亂算法后,提取后的水印與原水印相似度太低,可能是算法不是很完善,這里我們換一種水?。ê诘姿。﹣?lái)嘗試加入置亂算法后提取水印的完整性,之前的水印我們稱(chēng)之為白底水印,黑底水印原圖和提取圖如下:
通過(guò)圖9和圖6進(jìn)行對(duì)比,當(dāng)加入Arnold置亂算法之后,提取后的黑底水印與原水印的相關(guān)系數(shù)為0.7629,而提取的白底水印與原水印的相關(guān)系數(shù)為0.3743,說(shuō)明本文算法使白底水印具有很好的不可見(jiàn)性但白底水印檢測(cè)性能穩(wěn)定較低,使黑底水印具有很好的不可見(jiàn)性且黑底水印檢測(cè)性能穩(wěn)定較強(qiáng)。
通過(guò)仿真實(shí)驗(yàn)來(lái)驗(yàn)證本文算法。并且通過(guò)圖7和圖5進(jìn)行對(duì)比,說(shuō)明將水印嵌入中頻是一個(gè)較好的選擇。本算法在水印嵌入之前對(duì)水印信息進(jìn)行置亂處理或不進(jìn)行置亂處理,在原始圖像的小波變換域進(jìn)行水印信息的自適應(yīng)嵌入,從結(jié)果看出,水印信息在嵌入后具有良好的不可見(jiàn)性和相對(duì)較好的提取穩(wěn)健性。
6 總結(jié)
本文對(duì)于基于小波變換的數(shù)字水印算法進(jìn)行了比較基礎(chǔ)的研究,即將小波變換運(yùn)用于數(shù)字水印領(lǐng)域,并通過(guò)對(duì)水印圖像加入Arnold置亂算法對(duì)水印進(jìn)行置亂,并選取合適的水印嵌入位置,通過(guò)水印嵌入算法對(duì)水印進(jìn)行嵌入,本文分別進(jìn)行了包含水印置亂算法和不含水印置亂算法的兩種不同情況對(duì)不同水印進(jìn)行嵌入和提取。用峰值信噪比和相關(guān)系數(shù)進(jìn)行評(píng)估,通過(guò)仿真實(shí)驗(yàn)進(jìn)行論證。
參考文獻(xiàn)
[1]張春田,蘇育挺.信息產(chǎn)品的版權(quán)保護(hù)技術(shù)―數(shù)字水印.電信科學(xué),1998,14(12): 15-17
[2]潘蓉,高有行.基于小波變換的圖像水印嵌入方法.中國(guó)圖像圖形學(xué)報(bào), 2002, 7(7): 667-671
[3]劉飛龍.面向應(yīng)用的數(shù)字水印技術(shù)研究.博士學(xué)位論文.中國(guó)科學(xué)院自動(dòng)化研究所,2003年6月
[4]丁瑋.?閆偉齊.?齊東旭.?基于 arnold 變換的數(shù)字圖像置亂技術(shù).計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)
[5]劉瑞禎,譚鐵牛.水印能量估計(jì)的一般性框架.計(jì)算機(jī)學(xué)報(bào),2001,24(3): 1-5
[6]牛夏牧.數(shù)字水印處理算法與測(cè)試研究.博士學(xué)位論文.哈爾濱工業(yè)大學(xué),2000