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