趙 杰 楊濱峰 李亞文
(商洛學院電子信息與電氣工程學院 商洛 726000)
信息技術發展使得數字圖像的版權保護與數字內容安全性等問題成為社會的熱點。數字水印技術作為數字內容認證的重要手段受到了學者們的重視,近年來人們已經提出了眾多數字水印算法[1~4]。常見的方法會對原始載體數據進行一定的修改,在水印的魯棒性和不可感知性上存在著矛盾,在某些應用場合也不適用。零水印算法[5]無需對原始載體信息進行修改,較好地解決了水印的魯棒性和不可感知性之間的矛盾。常見的零水印算法有基于空域、變換域、奇異值分解等,多數計算復雜度較高[6~11]。本文提出了一種基于小波提升和K鄰點均值的圖像零水印算法。為提高安全性,水印圖像首先要進行置亂變換[12],然后對載體圖像進行一級小波提升分解,利用低頻子圖分塊的K鄰點均值生成特征矩陣,特征矩陣和水印進行運算得到秘密圖像,提取時利用秘密圖像和置亂密鑰可提出水印信息。
K鄰點均值的基本思路是:在一個窗口內,屬于同一集合體的像素,其灰度值相關性較高,于是可用窗口內與中心像素的灰度最接近的K個鄰點像素的平均灰度值來代替窗口中心像素的灰度值[13]。一個n×n窗口的K鄰點均值為

如果以M×N大小的二值圖像W作為水印圖像,對Q×S大小的灰度圖像P進行零水印注冊,步驟如下:
1)將水印圖像W 進行置亂,記為WS。
2)對原始載體圖像P進行一級小波提升分解,提取其低頻分量,記為PL。
3)將 PL分成 M×N個互相不重疊的小塊PLB(x,y),其中 x=1,2,…M;y=1,2,…N 。這些小塊不一定要完全覆蓋原始載體圖像。計算每個PLB(x,y)的 K 鄰點均值,記為 BM(x,y),所有BM(x,y)的均值記為PLM。為削弱噪聲等的影響,可取較大的K值。
4)利用系數關系,生成構造圖像F:
若 BM(x,y)>PLM
則 F(x,y)=1;
否則 F(x,y)=0。
5)將F和WS進行異或,得到零水印信息FE,并將其進行注冊。
使用Matlab 7.12進行實驗仿真,選擇“Lena”灰度圖像作為原始載體圖像,選用32×32的有意義二值圖像作為原始水印,如圖1所示。

圖1 原始載體圖像和原始水印

測試1:對載體圖像分別進行加性噪聲、壓縮、濾波等常見操作,測試其相關系數,并與DCT系數方法作比較,結果如表1所示。

表1 攻擊測試
測試2:JPEG壓縮是常見的圖像處理操作,因此,再做一組測試,進一步對比兩種算法對JPEG壓縮處理的魯棒性,測試結果如表2所示。

表2 JPEG壓縮攻擊測試
從表1和表2測試結果看出,本文算法在面對濾波、噪聲、JPEG壓縮等處理時有較強的魯棒性,在剪切攻擊時相似度有明顯降低;針對噪聲和JPEG壓縮,本文算法有較大優勢。
測試3:為了驗證本文算法的可靠性,對于其他圖像是否會出現誤判的情況,分別選取boat、elaine、house、pepper、baboon和 lake等多幅圖像作為對比圖像進行虛警測試,這些圖像檢測的相似度均較低,檢測出的信息混亂。如選擇合適的閾值,該算法對其他未注冊圖像很少會出現誤判情況。

表3 虛警測試部分結果
數字水印取證技術是這些年的研究熱點,部分高校已經將其納入理論或實踐教學中。本文提出了一種基于小波提升和K鄰點均值的零水印算法,運算復雜度較低,可以抵抗一些常見的攻擊尤其是JPEG壓縮處理。實驗結果表明,本算法有較強的魯棒性。水印為有意義二值圖像,但水印實質性的信息容量不高,這也是大多數水印算法存在的問題,還需進一步研究解決。