李新宇
(湖南第一師范學(xué)院信息科學(xué)與工程學(xué)院,長(zhǎng)沙 410205)
在數(shù)字水印技術(shù)研究領(lǐng)域中,關(guān)于圖像的水印技術(shù)已經(jīng)有了很好的研究基礎(chǔ),同時(shí)由于其潛在的商業(yè)利益近年來一直備受關(guān)注,是數(shù)字水印技術(shù)領(lǐng)域中研究的熱點(diǎn)?;谄娈愔捣纸猓⊿ingular Vector Decompo?sition,SVD)的數(shù)字圖像水印算法最早由Liu R和Tan T提出[1],周波等人利用SVD的代數(shù)性質(zhì),對(duì)數(shù)字水印嵌入載體圖像經(jīng)SVD分解后的矩陣中,通過一系列的圖像縮放、旋轉(zhuǎn)、轉(zhuǎn)置等幾何攻擊實(shí)驗(yàn)以后,發(fā)現(xiàn)提取出的數(shù)字水印具有良好的穩(wěn)定性[2]。張秋余等人提出的算法首先對(duì)載體圖像進(jìn)行3層小波變換(Discrete Wavelet Transform,DWT),在中頻子帶上直接嵌入置亂后的水印信息并進(jìn)行SVD分解,也取得了較好的實(shí)驗(yàn)效果[3]。
現(xiàn)有基于離散小波變換和奇異值分解的算法大多分為兩類,第一類算法是將變換置亂后的水印圖像的奇異值嵌入載體圖像SVD分解后的奇異值中,提取水印時(shí)大多需要依賴置亂后的水印圖像奇異值分解的正交矩陣,這樣就降低了水印的真實(shí)性,容易造成虛警概率偏高的問題[4-5]。第二類算法是將水印經(jīng)過相關(guān)變換置亂處理后直接嵌入載體圖像SVD分解后的奇異值中,提取水印時(shí)一般需要原載體圖像的奇異值矩陣。
張秋余等人提出的算法[3]是第二類算法的基礎(chǔ)上同時(shí)又將置亂后的水印圖像直接嵌入載體圖像三級(jí)小波變換后的部分中頻子帶系數(shù)中,提取水印時(shí)還是需要置亂后的水印圖像SVD分解后的U或V矩陣,不能有效地降低虛警率。錢華明等人提出了一種改進(jìn)的基于SVD-DWT域的數(shù)字圖像水印算法,將水印奇異值分解得到的正交矩陣U作為控制參數(shù)嵌入載體圖像小波分解的細(xì)節(jié)子帶中,再將水印的奇異值分別嵌入原始載體圖像三層離散小波變換后低頻子帶的奇異值中,水印檢測(cè)時(shí)將根據(jù)設(shè)置的極限值T檢查提取的U'與原始U的相似性,只有相似性滿足極限值T時(shí)才能進(jìn)行水印的提取,算法克服了缺陷虛警概率偏高的缺陷,提高了水印信息的真實(shí)性,但是提取水印過程中需要原始載體圖像的相關(guān)信息[6]。
熊祥光等人在文獻(xiàn)[7]中詳細(xì)論證了第一類算法虛警概率偏高的原因是在水印的提取過程中需用到水印圖像SVD分解后的UW和VW矩陣,提出一種改進(jìn)的混合DWT和SVD的圖像水印算法。陳宏等人提出的算法[8]和文獻(xiàn)[7]相似,對(duì)原始數(shù)字載體圖像分塊以后,根據(jù)每一個(gè)子塊的紋理強(qiáng)度選取最佳水印嵌入子塊,然后對(duì)最佳子塊進(jìn)行小波變換,同時(shí)對(duì)子塊的低頻系數(shù)進(jìn)行奇異值分解,最后將置亂后的水印直接嵌入各載體圖像子塊的奇異值中。兩種算法都有效的解決了虛警概率偏高的問題,提取水印時(shí)需要嵌入水印過程中生成的奇異值矩陣,從而無(wú)法實(shí)現(xiàn)水印信息盲提取。暴琳等人提出利用Tetrolet變換的優(yōu)點(diǎn)和圖像矩陣的奇異值穩(wěn)定性好且代表圖像內(nèi)蘊(yùn)特征的特點(diǎn),提出了一種基于Tetrolet變換和SVD的圖像盲檢測(cè)穩(wěn)健性數(shù)字水印算法,使水印系統(tǒng)具有良好的穩(wěn)健性,但是該算法復(fù)雜度較強(qiáng),運(yùn)行時(shí)間較長(zhǎng),沒有很好的實(shí)時(shí)性[9]。
本文算法選擇采用Logistic映射產(chǎn)生的混沌序列對(duì)Turbo編碼后的水印圖像進(jìn)行預(yù)處理,生成加密后的編碼水印W*,有效降低了誤碼率、提高了安全性。對(duì)原始載體圖像I進(jìn)行2×2大小分塊,對(duì)每個(gè)分塊SVD分解,取奇異值矩陣對(duì)角元素的第一個(gè)值組成矩陣Q,然后對(duì)矩陣Q進(jìn)行8×8大小分塊,并對(duì)其進(jìn)行離散小波變換,選取小波分解后的低頻子帶LL2,對(duì)其再進(jìn)行小波變換生成 3 個(gè)中高頻子帶(LH3、HL3、HH3),按照給定的閾值設(shè)置所選取的子帶系數(shù),隨后進(jìn)行小波逆變換形成參考子帶LL’2并進(jìn)行奇異值分解,取奇異值矩陣的第一個(gè)對(duì)角元素組成新的矩陣Q’,最后將Lo?gistic混沌置亂處理后的水印嵌入到新的矩陣Q’中。
Step1原始彩色圖像I的大小為M×N,對(duì)其進(jìn)行RGB到Y(jié)UV的空間轉(zhuǎn)換,對(duì)Y分量2×2大小分塊并進(jìn)行奇異值分解,取分塊奇異值矩陣對(duì)角元素的第一個(gè)值組成矩陣Q;
Step2然后對(duì)矩陣Q進(jìn)行8×8大小分塊,對(duì)每個(gè)分塊進(jìn)行二級(jí)DWT分解,然后選取DWT分解后第2層的低頻子帶LL2;其次對(duì)選取的子帶LL2進(jìn)行1層DWT變換,對(duì)生成的 3 個(gè)中高頻子帶(LH3、HL3、HH3),選取部分或所有的子帶,并將所選取的子帶系數(shù)的絕對(duì)值小于給定閾值的系數(shù)都設(shè)置為0,再進(jìn)行1層DWT逆變換形成參考子帶LL’2;
Step3最后對(duì)參考子帶進(jìn)行SVD分解,取奇異值矩陣的第一個(gè)對(duì)角元素,各個(gè)分塊合成大小為的矩陣Q’,最后將Logistic混沌置亂處理后的水印嵌入到新的矩陣Q’中。
Step4水印圖像W的大小為m×n,嵌入水印之前先計(jì)算量化值;
Step5將水印Wij的值嵌入奇異值矩陣的每一個(gè)值中;
Step6對(duì)嵌入水印以后生成的矩陣元素Qijw替換原來奇異值矩陣的第一個(gè)對(duì)角元素,然后對(duì)每一個(gè)新的奇異值矩陣進(jìn)行反SVD分解,生成新的參考子帶,對(duì)其進(jìn)行二級(jí)逆向IDWT變換,然后將個(gè)8×8大小的分塊合成大小為的矩陣,將每一個(gè)
矩陣元素代替Step1奇異值矩陣中的首個(gè)對(duì)角元素,隨后進(jìn)行反SVD分解得到2×2大小的矩陣,最后重構(gòu)個(gè)2×2大小的矩陣合成嵌入水印的圖像Iw。
水印提取算法如下:
Step1將可能遭受攻擊的待檢測(cè)圖像I*w進(jìn)行空間轉(zhuǎn)換并進(jìn)行2×2大小分塊,對(duì)各分塊進(jìn)行奇異值分解,取分塊奇異值矩陣對(duì)角元素的第一個(gè)值組成矩陣;
Step2對(duì)奇異值分解后的新矩陣按8×8大小進(jìn)行分塊,對(duì)每個(gè)分塊進(jìn)行二級(jí)DWT分解,然后選取DWT分解后第2層的低頻子帶LL2;最后對(duì)參考子帶進(jìn)行SVD分解,取奇異值矩陣的第一個(gè)對(duì)角元素Q*wij,進(jìn)行水印的提取。
Step3根據(jù)嵌入水印時(shí)對(duì)水印圖像計(jì)算出的量化值?進(jìn)行水印提取,得到提取出的水印值。
?為量化步長(zhǎng),floor為截?cái)嗳≌瘮?shù),mod為求余函數(shù)。
本文算法的仿真實(shí)驗(yàn)操作系統(tǒng)平臺(tái)為Windows 7,實(shí)驗(yàn)工具與軟件平臺(tái)為MATLAB 2012b,實(shí)驗(yàn)選取512×512 真彩色 Lena、Peppers、Baboon 作為載體圖像,如圖 1(a)、(b)、(c)所示,水印為 32×32 的二值圖像如圖 1(d)所示。
圖1 Lena、Peppers、Baboon和水印圖像
仿真實(shí)驗(yàn)中采用不同量化步長(zhǎng)?,嵌入水印后載體圖像的PSNR值變化情況列于表1。
在實(shí)驗(yàn)中,圖像的失真情況一般會(huì)采用峰值信噪比進(jìn)行衡量,其值越大,說明圖像失真越小,反之則失真越大。載體圖像(a)、(b)、(c)嵌入水印后的圖像峰值信噪比分別為42.8675、42.3108和42.6527,可見本文算法完全滿足不可見性的要求。
為檢驗(yàn)本文水印算法的魯棒性,本文采用文獻(xiàn)[10]提出的兩極化相關(guān)值(Polarized Correlation,PC)來度量提取出的水印W^=(w^ij)和原始水印W=(wij)的相似程度,以此來評(píng)價(jià)算法所提取出水印的好壞效果,從而描繪出水印算法抗攻擊的穩(wěn)健性。PC值在0到1之間,越接近1就說明提取出來的水印和原水印越接近。在沒有受到任何攻擊的情況下,圖像(a)、(b)、(c)提取出來的水印PC值均為1。二值圖像水印的兩極化相關(guān)值定義為:
表1 不同量化步長(zhǎng)下的PSNR值
表2 不同載體圖像嵌入水印的PSNR值和PC值
為了驗(yàn)證本文水印算法的性能,對(duì)含水印的Lena、Peppers、Baboon彩色圖像分別進(jìn)行如下實(shí)驗(yàn):JPEG壓縮、填加高斯噪聲、中值濾波和剪切等攻擊,仿真實(shí)驗(yàn)結(jié)果如表3所示。
表3 仿真實(shí)驗(yàn)結(jié)果
為了驗(yàn)證本文算法的優(yōu)越性,將本文算法(算法3)分別與 SVD_DWT(算法 1)和 DCT_SVD(算法 2)進(jìn)行對(duì)比實(shí)驗(yàn),對(duì)嵌入水印的載體圖像進(jìn)行濾波、噪聲及幾何攻擊等處理。
表4 類似算法對(duì)比實(shí)驗(yàn)結(jié)果
本文算法選擇采用Logistic映射產(chǎn)生的混沌序列對(duì)Turbo編碼后的水印圖像進(jìn)行預(yù)處理,然后采用量化最大奇異值的方法嵌入水印,而算法1采用替換SVD分解后前64個(gè)奇異值的最低有效位的方法,雖然能得到質(zhì)量較高的含水印載體圖像,但算法對(duì)噪聲的魯棒性較弱。算法2能有效降低時(shí)間復(fù)雜度,但是水印算法魯棒性有待提高。為了便于比較,本文以Lena圖像為例,恰當(dāng)?shù)脑O(shè)置各算法中的相應(yīng)參數(shù)值,以保證兩種算法在視頻嵌入水印后圖像的峰值信噪比PSNR相近,即水印透明性基本相同的情況下,再進(jìn)行濾波、噪聲處理、縮放和旋轉(zhuǎn)等幾個(gè)方面魯棒性對(duì)比實(shí)驗(yàn),相應(yīng)的實(shí)驗(yàn)結(jié)果如表4所示。從實(shí)驗(yàn)結(jié)果可以看出,本文算法性能明顯優(yōu)于算法1和算法2。
小波變換具有高低頻分離的特點(diǎn),提出了一種基于離散小波變換參考子帶且結(jié)合Turbo糾錯(cuò)碼的數(shù)字圖像水印算法。首先對(duì)原始載體圖像進(jìn)行分塊SVD分解,取對(duì)角元素的第一個(gè)值矩陣進(jìn)行分塊離散小波變換形成參考子帶并進(jìn)行奇異值分解,隨后將預(yù)處理以后的水印信息嵌入到奇異值分解后的第一個(gè)對(duì)角元素矩陣中。本文算法結(jié)合DWT和Turbo糾錯(cuò)碼的特性,再利用奇異值的特點(diǎn),使其具備較強(qiáng)的魯棒性和穩(wěn)健性。通過對(duì)比實(shí)驗(yàn)發(fā)現(xiàn)本文算法尤其對(duì)高斯噪聲、PSNR攻擊、JPEG壓縮、椒鹽噪聲等攻擊具備魯棒性,是一種高效、實(shí)用的數(shù)字圖像水印算法。
本文利用了矩陣奇異值分解的能量穩(wěn)定特性以及