摘要:提出了一種基于偽隨機調制技術的混合域彩色圖像盲水印算法,先將彩色圖像由RGB空間轉換到HSI空間,并取出飽和度分量S,隨后對S分量多小波變換后的中頻區域進行分塊DCT變換,對每個DCT系數子塊,按一定的方案提取出若干個中頻系數。然后使用密鑰產生兩個互不相關的偽隨機數列,用其調制前面選出的DCT系數來嵌入水印。通過比較兩個偽隨機數列和待檢測系數相關性的大小來實現水印的提取,不需要原始圖像參與。實驗結果表明,該算法能有效抵抗剪切、JPEG壓縮、放縮和較大強度的噪聲攻擊等攻擊操作。
關鍵詞:數字水印;偽隨機數調制;多小波變換;DCT變換;盲提取
中圖分類號:TP391文獻標識碼:A文章編號:1009-3044(2010)02-437-03
A Blind Watermarking Algorithm Based on Pseudo-random Number Modulation in the Mixed-domain
WANG Zhi-wei1, GONG Xiao-jing2, HAN Shao-cheng3
(1.College of Continuing Education of Civil Aviation University of China, Tianjin 300300, China; 2.Basic Experimental Centor of Civil Aviation University of China, Tianjin 300300, China; 3.General Semiconductor (China) Co., Ltd., Tianjin 300457, China)
Abstract: A blind watermarking algorithm based on pseudo-random modulation technique in the mixed-domain for color images is proposed , First color image is converted from RGB space to HSI space, and the saturation component S is got , then the S-component after multi-wavelet transform generate some mid-frequency regions, then apply block DCT transform on the regions, at last pick out some mid-frequency coefficients for each DCT sub-block according to a certain program. Generate two unrelated pseudo-random series with keys, with which modulation the DCT coefficients selected in the front to embed watermark.. The Watermark is extracted throughcomparing correlation coefficient between the coefficients to be detected and each pseudo-random series, which do not need the original image. Experimental results show that the algorithm can resist shear, JPEG compression, zoom and greater intensity noise attack and so on effectively.
Key words: digital watermarking; pseudo-random number modulation; multi-wavelet transform; DCT transform; blind extraction
隨著數字作品版權問題的突顯,數字水印技術近年來備受關注并成為一項重要的研究內容。根據水印的嵌入方式不同,水印算法可分為空域算法和變換域算法??沼蛩惴ㄏ鄬唵?、實時性較強,但魯棒性差。變換域算法具有很好的魯棒性,常見的變換域方法有:離散傅里葉變換(DFT)、離散余弦變換(DCT)和離散小波變換(DWT)等。由于小波變換具有多分辨率分析的特性,并且能夠與國際圖像壓縮標準相兼容,因此在數字水印技術中得到廣泛應用。多小波作為單小波技術的新發展,它能同時擁有正交性、對稱性、緊支撐性等良好的性質,與單小波相比具有更多的優越性[1]。一些研究表明,基于多小波變換的水印算法較單小波具有更好的抗噪聲、濾波和壓縮等攻擊操作的性能[2-3]。
現有圖像數字水印算法,為了實現水印的盲提取,大多采用基于量化[4]或基于系數關系[5]的方法嵌入水印。文獻[6]結合小波變換的多分辨率特性和離散余弦變換的能量壓縮能力以及解相關能力,提出了一種DWT和DCT相結合的水印嵌入算法,可以實現盲檢測,但嵌入水印是偽隨機序列。與此類似,考慮到圖像經過小波變換后的各個子帶圖像中相鄰小波系數之間仍存在著很強的相關性,本文結合DMWT和DCT變換各自的優點,提出了一種基于偽隨機數調制的混合域盲水印算法,由于彩色圖像HSI模型下的飽和度分量比較適合作為水印的嵌入域[7],將水印嵌入到彩色圖像飽和度分量多小波變換后的中頻區域上,仿真結果表明,算法具有很強的魯棒性。
1 相關理論
1.1 多小波變換
多小波變換與小波變換相比更具一般性,首先,其濾波器系數是矩陣而不是標量;其次,可以構造尺度因子大于2的多小波。一般地,多小波含有r個尺度函數和與其對應的r個小波函數,r=2時多小波的尺度函數和小波函數可以用以下向量的形式分別表示:
這里Ф(t)被稱作多尺度函數, Ψ(t)被稱作多小波函數。和單小波一樣,多小波也有雙尺度方程:
對于多小波,{Hk}和{Gk}是2×2的矩陣濾波器。
這里{hk(n)}和{gk(n)}分別是尺度濾波器序列和小波濾波器序列,它們滿足∑nh2 k(n)=1,∑ng2 k(n)=1,這里k=1,2[3]。
1.2離散余弦變換
二維DCT是先將圖像分成N×N像素塊,然后對N×N像素塊逐一進行DCT變換。N×N像素矩陣f(i,j)的二維DCT變換的定義為:
相應的DCT逆變換定義為:
這里,
2 算法實現
設原始圖像采用N×N大小的RGB彩色圖像,水印為M×M大小的有意義的二值圖像,其中N=2PM,P為正整數。
2.1 水印預處理
二值水印信號的預處理過程如下:
1) Arnold置亂:利用Arnold變換(見公式6)對水印圖像IW進行置亂,根據Arnold變換的周期性,選擇合適的迭代次數K來達到最佳的置亂度。置亂的水印圖像在恢復過程中,只須進行T-K迭代運算即可,這里T為置亂周期。
2) 利用Logistic映射生成實數序列:利用Logistic映射得到一個混沌序列X={xi,1≤i≤N×N},確定μ和初值x0,從序列中選取M×M個元素,通過定義閾值Τ得到一個二值混沌序列{y(k):k=1,2,…, M×M}。如果Xk>Τ,則y(k)=1,否則y(k)=0。在此處二值混沌序列的初始值x0可作為密鑰key1,μ=3.8889。
3) 水印加密:將步驟(1)中置亂后的水印圖像掃描成一維向量與步驟(2)中借助Logistic映射生成的二值序列進行異或運算,得到加密后的二值水印序列。設原始水印圖像Arnold置亂后的結果為I'W,則加密后水印序列W可表示為:
(7)
2.2 水印嵌入
水印嵌入具體步驟如下:
Step1: 將大小512×512的RGB原始圖像I轉換到HSI空間,取出飽和度分量S,記為IS。
Step2: 對IS進行一層多小波變換,得到LL1、LH1、HL1、HH1四幅子圖,隨后對LH1、HL1再分別進行一層多小波變換,并取出LH12、HL12、LH22、HL22,如圖1所示,作為水印的嵌入區域。
Step3: 將經過Arnold置亂和混沌加密后的水印W,按以下方式分成四個部分:W1=W(1:16,1:16),W2=W(1:16,17:32),W3=W(17:32,1:16),W4=W(17:32,17:32),同時按照一定的順序和LH12、HL12、LH22、HL22四幅子圖對應起來。
Step4: 對LH12、HL12、LH22、HL22分別進行8×8分塊的DCT變換并按Zig-Zag方式掃描成一維向量,選出若干個待調制的中頻系數。選擇中頻系數的方案如圖2所示。
Step5: 通過密鑰生成兩個均值為0,且不相關的偽隨機數列,記為PN_0和PN_1,保證序列的取值在-1和1之間,同時長度和前面所選中頻系數的個數相同。
Step6: 按照Step3對應起來的關系,完成水印信息的嵌入,在每一個8×8的子塊中嵌入1位水印信息,規則如下:
其中,D、D'是修改前后的系數。
Step7: 修改后的系數依次經歷Zig-Zag逆掃描、DCT逆變換和多小波逆變換,最終得到含水印的圖像。
2.3 水印提取
水印提取的具體步驟如下:
Step1: 將待測試圖像IW轉換到HIS空間,提取出飽和度分量S,記為IWS。
Step2: 對IWS分量進行一層多小波變換,得到LLW1、LHW1、HLW1、HHW1四幅子圖,隨后對LHW1、HLW1再分別進行一層多小波變換,并取出LHW12、HWL12、LHW22、HLW22。
Step3: 對LHW12、HWL12、LHW22、HLW22分別進行8×8分塊的DCT變換并按Zig-Zag方式掃描成一維向量,按照圖5-16給出的方案選出中頻系數。
Step4: 分別計算選出的中頻系數一維向量D*和偽隨機數列PN_0和PN_1的相關值,按以下規則判決提取每一位水印信息:
Step5: 將分別判決出的四個二值方陣重組在一起,經過混沌解密和反Arnold變換得到最終提取出來的水印信息。
3 實驗結果
實驗采用大小為512×512的Lena圖像作為原始載體圖像,如圖3(a)所示。水印圖像取大小為32×32的二值圖像,如圖3(b)所示。圖3(c)是嵌入水印后的圖像,圖3(d)為從(c)中提取出來的水印信息。嵌入水印后圖像PNSR=36.7165,從圖3可以看出,人眼無法察覺原始圖像和含水印圖像有什么差別,證明該算法能保證水印的不可見性。同時,從不經歷任何攻擊的圖像中能提取出相似度極高(NC=1)的水印信息來。
對含水印的圖像進行了不同程度的剪切、JPEG壓縮、添加噪聲及放縮攻擊實驗,實驗結果如表1所示。由表1中數據和提取出的水印信息可知,該算法對加剪切、JPEG壓縮和添加噪聲均有很好的魯棒性,特別是抵抗噪聲的性能很強,含水印圖像在經歷噪聲密度為0.2的椒鹽噪聲和強度為0.04的高斯噪聲后,提取出來的水印基本清晰可見,這在其它盲水印算法中是很難辦到的。
圖3 水印嵌入及提取實例
表1 實驗仿真結果
4 結束語
本文采用偽隨機調制技術,提出了一種DMWT和DCT相結合的盲水印算法。實驗證明,含水印的圖像在經歷了幾種常見的攻擊操作后,從中能提取出準確度較高的水印信息,同時,由于采用Arnold置亂和混沌技術加密水印,攻擊者在不知道密鑰的情況下,不可能提取出水印,具有很好的安全性。算法不足之處在于,由于同時使用了DMWT和分塊DCT變換,不適合嵌入信息量較大的水印,而且對旋轉攻擊無能為力。
參考文獻:
[1] 韓紹程,張兆寧,張玉金.基于奇異值分解的多小波域灰度圖像水印算法[J].現代電子技術,2009(7):72-75.
[2] Mahmoud I. Khalil. Digital Image Watermarking: Scalar Wavelet versus Multiwavelet[J].IET Image Process,2007,1(2):223-230.
[3] Shen L.Symmeritic and anti-symmeritic orthonormal multiwavelet and related scalar wavelet. Appl.Comput.Harmon.Anal, 2000,8(5):258-279.
[4] Murakami K, Ueno Y.A robust digital watermark using multiresolution analysis of image[C].5th International Conference on signal processing,2000,2:1263-1268
[5] Hong I, kim I, Han S S.A Blind watermarking technique using wavelet transform[C].IEEE International Symposium on Industrial Electronics,2001,3:1946-1950
[6] 王秋生.變換域數字水印嵌入算法研究[D].哈爾濱:哈爾濱工業大學,2002.
[7] 張力之,周激流,楊柱中,等.基于HSI模型的彩色圖像數字水印[J].四川大學學報,2008,45(1):76-80.