藍夏梅 ,李宏昌
(1.武警工程大學 研究生管理大隊,陜西 西安 710086;2.武警工程大學 理學院,陜西 西安 710086)
數字水印算法中,基本上是針對灰度圖像的,對于彩色圖像數字水印算法的研究相對較少。針對彩色圖像數字水印的算法,參考文獻[1]認為,人類視覺系統對藍色的變化不太敏感,因此在藍色分量當中嵌入水印;參考文獻[2]同時在紅(R)、綠(G)和藍(B)3 個顏色分量通道嵌入水印,雖然效果較好,但計算量太大,不宜采用;參考文獻[3]認為在綠色分量中嵌入水印能有效抵抗JPEG有損壓縮。一般的彩色圖像數字水印方案在嵌入水印時都是按照固定的顏色分量進行嵌入,并沒有考慮選擇合適的顏色分量對不同彩色圖像的數字水印進行操作。本文提出一種雙水印算法,可以在DCT域中加入魯棒水印和半脆弱水印,利用人類視覺隱蔽特性,在RGB顏色空間中,根據各顏色分量的特性選擇適當的顏色分量嵌入和提取水印。實驗表明,該算法穩健性較好,可以抵抗常見的圖像處理等攻擊,達到水印不可見性與魯棒性的良好折中。
一般情況下,數字水印算法都選擇固定的顏色分量進行水印的嵌入,本文根據RGB各顏色分量的特性來選擇嵌入的位置。顏色分量選取的具體步驟如下[4]:
(1)對 RGB顏色空間的各個分量 R、G、B進行 DCT變換,得到各分量的 DCT 圖像 R1、G1、B1。
(2)計算 R1、G1、B1的掩蔽特征向量, 記為 F={L,W},其中L表示亮度掩蔽特性分量,W表示紋理掩蔽特性分量。
根據人類視覺隱蔽特性,選擇掩蔽強度最大的顏色分量嵌入魯棒水印,選擇掩蔽強度次于隱蔽強度最大的顏色分量的顏色分量嵌入半脆弱水印。
若圖像大小為 M×N,X(i,j)表示圖像上第 i行 j列像素點的像素值,圖像亮度隱蔽特性L和紋理隱蔽特性W的計算公式為:

(3)對 R1、G1、B1的掩蔽特征向量進行比較,選擇綜合掩蔽特性最好的顏色分量嵌入魯棒水印,對剩余的兩個顏色分量進行比較,選擇綜合隱蔽特性好的顏色分量嵌入半脆弱水印。
2.1.1 魯棒水印的生成
實驗中采用64×64的二值有意義圖像作為水印圖像,為了保證水印的安全性,首先對水印圖像進行N次Arnold變換,破壞其空域相關性,以抵抗諸如剪切、JPEG壓縮之類的攻擊。其次,通過混沌系統產生的混沌序列對水印圖像進行加密,以確保水印的安全性[5]。
2.1.2 半脆弱水印的生成
將圖像縮小至64×64大小,通過Canny算子提取圖像的圖像邊緣特征作為水印信息,對提取的水印信息進行 N次Arnold變換,得到水印圖像 w2[6-8]。
選擇原始載體圖像為512×512的彩色圖像,魯棒水印為64×64的二值圖像,半脆弱水印為圖像特征的二值圖像。嵌入過程如下:
(1)對原始載體圖像I進行RGB分解。
(2)選取嵌入魯棒水印和嵌入半脆弱水印的顏色分量。
(3)將水印圖像進行15次Arnold變換,得到置亂后的水印圖像,對此進行混沌加密,得到加密后的水印圖像w1。
(4)在選取的嵌入魯棒水印分量上進行 8×8分塊的DCT變換,按照JPEG質量因子為0.5的量化表對DCT變換系數進行量化,并對量化后的系數進行zig-zag排序。
(5)將水印w1嵌入到每個 8×8 分塊中,記為 Ii×j,在每個分塊中選擇兩個中頻系數 X11、X16。具體嵌入規則為:如果 w1[i,j]=1,X11
(6)對每個分塊進行IDCT變換,得到魯棒水印分量上的含水印圖像。
(7)將圖像縮小至64×64大小,通過Canny算子提取圖像的邊緣特征作為水印信息,對提取的水印信息進行32次 Arnold變換,得到水印圖像 w2。
(8)在選取嵌入半脆弱水印的分量上進行 8×8分塊的DCT變換,按照JPEG質量因子為0.5的量化表對DCT變換系數進行量化,并對量化后的系數進行zig-zag排序。
(9)將水印圖像 w2嵌入到每個 8×8分塊的低頻系數中,記為 Ii×j,在每個分塊中選擇兩個中頻系數 X3、X7。具體嵌入規則為:如果 w2[i,j]=1,X3
(10)對每個分塊進行IDCT變換得到半脆弱水印分量上的含水印圖像。
(11)將得到的魯棒水印的顏色分量、半脆弱水印的顏色分量上的含水印圖像,與原始載體圖像中沒有嵌入水印圖像的分量合成為含水印的彩色圖像。
水印提取不需要原始載體圖像和原始水印,提取算法是水印嵌入算法的逆過程,具體提取步驟如下。
(1)對嵌入水印后的載體圖像進行RGB分解。
(2)根據顏色分量選取方法確定嵌入魯棒水印和半脆弱水印的顏色分量。
(3)對嵌入魯棒水印的顏色分量進行 8×8分塊的DCT變換。
(4)提取嵌入的二值水印圖像。
(5)對提取出的水印圖像進行 15次 Arnold變換,得到魯棒水印圖像。
(6)對嵌入半脆弱水印的顏色分量進行 8×8分塊的DCT變換。
(7)提取嵌入的半脆弱水印。
(8)對提取的半脆弱水印進行 32次 Arnold變換,得到半脆弱水印圖像。
為了判定含水印圖像的部分內容是否遭受惡意篡改,可按如下步驟進行認證。
(1)從含水印圖像H中提取出半脆弱水印圖像。
(2)將 H縮小至 64×64大小,通過 Canny算子提取圖像的圖像邊緣特征。
(3)由提取出的水印圖像和提取的圖像邊緣特征進行差值圖像處理,生成一個差值圖像。
(4)依據差值圖像判斷嵌入水印后的圖像是否遭受惡意篡改,并進行篡改定位。
采用24位真彩色lena圖像和pepper圖像作為實驗對象,驗證算法的有效性。
將彩色圖像在RGB顏色空間進行顏色分量的分解,得到R、G、B 3個顏色分量圖像。lena圖像及其RGB空間各顏色分量如圖1所示;pepper圖像及其RGB空間各顏色分量如圖2所示。

圖1 lena圖像RGB空間各顏色分量

圖2 pepper圖像RGB空間各顏色分量
根據本文提出的顏色分量選取方法,選擇嵌入魯棒水印和半脆弱水印的顏色分量。計算出lena圖像的掩蔽特性如表1所示,pepper圖像的掩蔽特性如表2所示。

表1 lena圖像的掩蔽特性表

表2 pepper圖像掩蔽特征表
從表1可以看出,lena彩色圖像的B分量亮度掩蔽特性和紋理掩蔽特性最大,則選擇綜合掩蔽特性最好的B分量易進行魯棒水印的操作,而G分量的亮度掩蔽特性和紋理掩蔽特性比R分量的好,則選擇G分量易進行半脆弱水印的操作;對于pepper彩色圖像而言,G分量的亮度掩蔽特性和紋理掩蔽特性最大,則選擇綜合掩蔽特征最好的G分量易進行魯棒水印的操作,而R分量的亮度掩蔽特性和紋理掩蔽特性比B分量好,則選擇R分量易進行半脆弱水印的操作。
水印嵌入效果如圖 3所示。其中,圖 3(a)為原始lena圖像,圖 3(b)為嵌入水印后的 lena圖像,峰值信噪比PSNR=39.89 dB。顯然,該算法具有良好的不可感知性,嵌入前后看不出有什么區別。同時,在沒有攻擊的情況下,可正確無誤地提取出嵌入的水印圖像。圖3(c)、圖 3(d)為嵌入前的雙水印圖像,圖 3(e)、圖 3(f)為嵌入后提取的雙水印圖像(NC=1)。
對含水印圖像做常見的攻擊測試,驗證本文算法的魯棒性。采用歸一化相關系數(NC)衡量提取出的水印圖像與原始水印圖像的相似程度。表3為通過本文算法提取出的魯棒水印和半脆弱水印的NC值。

圖3 水印嵌入效果

表3 lena圖像雙水印實驗結果
對含水印圖像進行剪切、拼貼攻擊等惡意的篡改,驗證算法的有效性及篡改定位的準確性。以拼貼攻擊為例,半脆弱水印的檢測效果如圖4所示。

圖4 半脆弱水印的檢測
本文針對真彩色圖像,在圖像低頻系數上嵌入魯棒水印標示版權,并在圖像中頻系數上嵌入檢測篡改的半脆弱水印。仿真實驗表明,該算法具有良好的不可感知性,嵌入的水印對剪切、JPEG壓縮等各種圖像處理魯棒性好,而且對惡意篡改非常敏感并能夠準確定位篡改位置,具有實用價值。
[1]于帥珍,沈建國.基于 DCT和 DWT的彩色圖像盲數字水印算法[J].計算機應用與軟件,2007,24(8):210-212.
[2]楊益,李云峰.基于DCT的彩色圖像數字水印算法[J].計算技術與自動化,2008,27(4):136-139.
[3]石紅芹,呂方亮,劉遵雄.基于混沌加密的彩色圖像盲數字水印算法[J].計算機工程,2011,37(20):105-107.
[4]常競,王玲.一種顏色分量選取方案在彩色圖像數字水印中的應用[J].計算機應用與軟件,2009,26(3):255-257.
[5]楊永峰.彩色圖像數字水印技術研究[D].蘭州:蘭州理工大學,2007.
[6]張建軍.基于JPEG的半脆弱數字水印技術研究[D].長春:吉林大學,2010.
[7]呂林濤,郝亮.面向圖像內容認證的半脆弱數字水印算法[J].計算機應用.2010,30(5):1239-1242
[8]李海華.基于圖像特征的認證水印技術研究[D].杭州:杭州電子科技大學,2009.