張 明,楊 輝,黃炳家,鄭秋梅
(中國石油大學(華東),青島 266580)
隨著圖書電子資源的發展,圖書版權保護一直是圖書出版領域的一個難題[1],同時,數字水印技術作為近年來版權保護的重要技術受到越來越多的關注.現在的數字水印算法主要基于空間域和變換域兩種,但是仍然難以實現水印嵌入容量、不可見性和魯棒性三者的平衡[2].文獻[3]提出了基于離散時間混沌系統的新的小波變換水印算法,不僅計算量大,而且對幾何攻擊魯棒性效果差.文獻[4]提出了將二維碼奇異值分解后嵌入到載體圖像中,雖然在無攻擊情況下能正確識別出二維碼圖像,但算法在受噪聲和對比度變化攻擊后魯棒性很差.文獻[5]提出了一種結合離散小波變換、離散余弦變換和奇異值分解的混合域水印算法,過程繁瑣,且對幾何攻擊魯棒性也表現不好.二維碼技術作為一項研究熱點,以信息存儲量大,可靠性能高,自動糾錯能力強[4]等優點已經廣泛應用于各行各業中.結合二維碼的特點,筆者提出了一種基于Arnold 算法和主成分分析(PCA)的二維碼數字水印算法,將圖書鑒權圖像信息置亂后嵌入到圖書二維碼圖像信息中,能有效的實現圖書版權的保護.
二維碼是一種按特定規則排列的黑白相間的模塊圖形,其中每個模塊代表一個單元,每個單元又被編碼為1 bit 的數據,這些數據都是“0”,“1”二進制比特流,能通過特定設備進行識別和讀寫.
二維碼主要包括兩部分內容,數據區和檢測區[6](如圖1).數據區主要存儲數據,檢測區主要用于符號定位和信息結構確認.二維碼的結構不僅保證了自己具有一定的校驗功能,而且識別范圍廣,處理速度快,能夠對不同行的信息進行自動識別,對圖像的幾何變換能夠自動處理等功能.同時二維碼可以編碼任何可讀信息,例如圖片、聲音和文本,并以二維條型碼形式顯示出來,也可表示為圖像數據,極大方便了信息的處理[7].結合二維碼自動糾錯能力強、嵌入容量大、安全性高的特點,將二維碼應用于數字水印版權保護中將起到事半功倍的效果.
目前圖像變換主要基于像素的大小和像素的位置兩種形式,根據這種特點圖像置亂加密也主要分為兩種:像素大小的加密和像素位置的加密.Arnold 變換[8]是一種經典的位置加密方法,圖像經過某種運算形成表面雜亂無章,無法解釋但隱含一定規律的圖像,這種變換可以有效抵抗圖像在幾何變換方面的攻擊,同時,Arnold 變換存在的周期性讓圖像恢復變得簡單易行.
Arnold 變換公式如下:設某圖像某點的坐標為(x,y),然后將點(x,y) 變換到另一點(x′,y′)的變換原則為:

其中,N為正方形的邊長.
則Arnold 反變換為:

數學方法證明當進行n次Arnold 變換后,即:

Arnold 反變換為:

式中(x,y),和(x′,y′)分別是圖像置亂前后的像素位置.
與其他置亂方法相比,Arnold 變換做到了水印圖像之間相關性的真正消除,且加密方法簡單易于實現,因此Arnold 置亂得到了普遍的應用.
PCA 是一種多元降維算法[9,10],通過一定的運算把某一些相關或相似數據變量轉換成新的數據變量,這些新變量兩兩不相關且在反映原始圖像信息方面保持客觀不變性,新變量具有隨方差逐漸遞減的特點.
設有n個樣本X1,···,Xp,p維向量x=(x1,···,xp)T,i=1,2,···,n,n>p,構造初始矩陣如下:

PCA[10,11]的計算基本過程如下:
(1) 標準化過程.對矩陣X進行標準化處理:

其中,

(2) 計算矩陣Z的相關系數矩陣R.
其中,

(3) 樣本相關矩陣R的特征方程.根據下式求得p個特征值:

排列順序為λ1≥λ2≥···≥λp≥0 .根據特征值 λi求出特征向量ei(i=1,2,···,p),然后根據ei形成特征系數矩陣U=(e1,e2,···,ep)T.
(4) 確定主成分數.通常意義上規定,每個主成分在所有樣本分析中所占的百分數稱為貢獻率 (CR),相應的主成分總和對各個成分的方差之和的貢獻率稱為累積貢獻率(ACR).
設 λi表示第i個特征值,則相應的第i個主元素的CR(r)為

其中,λi為特征值,i=1,2,···,p.
綜合前面公式求得前m個主成分的ACR(m)為:

在實際應用中,一般采取ACR≥ 85%確定m值,這樣才能使所提取信息的達到好的利用率.
(5) 變換真正的主成分.按下式計算主成分:
為了將水印信息嵌入到二維碼載體圖像最有效的位置,本文采用PCA 從二維碼載體圖像中選擇提取出了最有效的圖像主要系數.與其他的頻域變換不同,PCA 提取的主成分系數同時包含圖像的高頻分量和低頻分量.因此,水印嵌入這些系數中可以充分的避開普通頻域算法的各種難題.在利用二維碼編碼特性以及PCA 優點的基礎上,通過選取適當的水印嵌入算法,并結合行之有效的嵌入系數和嵌入強度,大大提高了水印算法的魯棒性.
算法嵌入:原始水印采用Arnold Cat 變換進行初步加密置亂,得到水印圖像W,將原始二維碼圖像分塊,然后進行主成分分析,得到有效的系數,根據實驗篩選出最佳的嵌入系數,利用加法原則把水印圖像W嵌入到這些系數中,最后實現主成分分析逆變換,獲得嵌入水印的載體圖像.
算法提取:對帶有水印的載體圖像進行PCA 分析,得到新的主要成分,根據前面嵌入算法中的參數和加法原則進行變換,得到加密水印,最后通過Arnold Cat 逆變換可得到原始水印圖像.
算法流程圖如圖2.
在嵌入原始水印前,本文采用Arnold Cat[12]變換對圖像進行初步加密置亂,算法不僅計算簡單易行,而且能有效抵抗裁剪等幾何攻擊,再通過其變換的周期性,恢復原始圖像.圖3分別顯示了原始水印以及置亂后的水印,算法的密鑰key=0.2345.

圖3 原始水印圖像和加密置亂后水印圖像
設原始二維碼圖像是I,水印是W,加密置亂后的水印是W′.具體嵌入過程如下:
(1) 首先,把二維碼圖像進行8 ×8塊處理,最終分成許多子塊In(n=1,2,···,4096).然后標準化每個子塊In并生成矩陣Z(i,j).
(2) 根據矩陣Z(i,j)計算出相應的相關系數矩陣R(i,j).
(3) 根據相關系數矩陣R的特征方程,得到P個特征根值,然后依次按照降序排列,即λ1≥λ2≥···≥λp≥0.在獲得特定值 λi后,就可以根據 λi計算求得相應的特征向量ei(i=1,2,···,p),然后綜合利用e組成相應的矩陣為U=(e1,e2,···,ep)T.
(4) 變換形成真正的主成分.計算公式為

(5) 水印嵌入.
式中,i=1,2,···,m,m為提取的主成分個數;a為水印嵌入強度;y和Y′分別是原始的主要成分以及將水印嵌入后的主要成分.
根據嵌入處理過程對主成分系數Y′進行逆變換,生成含有水印的載體圖像IW.

步驟(1)將二維碼載體圖像層層分塊并進行了標準化處理,為后面進行PCA 主成分分析奠定了基礎.步驟(2)-(4) 是將每塊的圖像實施主成分分析,分解找出每塊的主成分系數,它們是原始二維碼圖像低頻分量和高頻分量的結合體,把水印充分合理的嵌入到這些系數中可以有效提高算法的魯棒性.最后一步是根據實驗篩選出最佳的嵌入系數,然后根據式(9)實現水印的合理嵌入.
筆者根據主成分自身擁有的特點,選用簡單的加法原理實現水印的有效嵌入.經過實驗證明,不同的水印嵌入系數,對水印算法的魯棒性和不可見性有不同的效果.當系數a越大,水印魯棒性表現會越好,但是相應的不可見性表現會越差.所以系數a必須通過實驗選取,根據實驗a選擇0.03.
在水印提取步驟中,根據Arnold Cat[12]加密后密鑰key,強度系數a獲得完整水印.具體步驟如下:
(1) 首先將原始二維碼圖像I依次根據嵌入過程中的前4 步驟計算得到原始主要成分yi(i=1,2,···,m).
(2)把包含水印的圖像IW同樣依次根據嵌入步驟中的前4 步驟分析獲得新的主要成分Y′i(i=1,2,···,m).
(3) 根據如下公式提取水印.

式中,i=1,2,···,m,m是 提取的主成分數量,a是水印嵌入系數,yi是嵌入前載體圖像的主成分系數,Y′是水印圖像的主成分系數,w是提取后的水印.
原始二維碼圖像自帶信息容量大,可靠性能高,自動糾錯能力強等特點,不僅能提高嵌入容量而且能有效抵抗一些攻擊.同時,對二維碼載體圖像進行PCA 分析,獲得圖像的主要成分,這些主要成分可以最佳的表示圖像主要特征,它們不僅代表高頻分量而且含有低頻分量,將水印和主成分合理的融合,可以最優化的實現水印不可見性和魯棒性平衡.結合以上兩種特點,新算法水印魯棒性表現很強.
3.1.1 峰值信噪比(PS NR)
峰值信噪比是評價兩幅圖像相似程度最通用的指標.PS NR[11-14]值越大,表示兩幅圖像越接近.計算公式為:

式中,I是原始載體圖像,I′是含有水印后的圖像,M,N表示圖像的大小.
3.1.2 歸一化相關系數(NC)
歸一化相關系數是評價原始水印與提取水印之間相似度的有效指標.NC[11-14]值越大越好,計算公式為:

式中,w(i)是 原始水印,w′(i)是算法提取出的水印,L代表水印的長度.
通過PSNR評估新算法的有效魯棒性,圖4是二維碼載體圖像以及含有水印的二維碼圖像,通過計算求得兩者之間的PSNR=42.8876.說明兩圖像相似程度高[2-5],所以新算法有效的實現了水印不可見性低的效果.

圖4 原始載體圖像和加水印后圖像
在本文中,我們使用文獻[3]提出的水印算法做比較,依次進行無攻擊實驗,以及例如裁剪,旋轉,噪聲和圖像變化等攻擊實驗.

表1 各種攻擊后提取的水印的NC 值
圖5顯示了原始水印圖像以及提取的水印圖像,前者經過PCA 獲得的系數是表示圖像主要特征的對角矩陣,把鑒權水印信息和獲得的系數合理的融合能充分的抵抗攻擊,但是相應的,算法進行變換以及逆變換的過程中,某些信息會有所丟失.圖6至圖10是本文的算法和文獻[3]算法在裁剪,旋轉,高斯噪聲,圖像變化和對比度變化等攻擊后提取的水印圖像.可以看出只有在無攻擊條件下,新水印算法的性能比文獻[3]水印算法的性能稍差,但是在其他攻擊例如噪聲、對比度變化等攻擊后,新算法都優于文獻[3],而且在幾何攻擊旋轉以及裁剪的NC值明顯優于文獻[3].本文通過結合二維碼的特征和PCA 算法,將水印合理有效的嵌入到最優主成分中,最大限度的實現了保持水印結構完整性的可能.

圖5 原始水印圖像和提取的水印圖像

圖6 裁剪攻擊

圖7 旋轉攻擊

圖8 高斯噪聲攻擊

圖9 圖像增亮攻擊

圖10 降低對比度攻擊
由于二維碼信息存儲量大,可靠性能高,自動糾錯能力強等特點,本文結合PCA 算法提出了一種基于二維碼版權保護的數字水印算法,將Arnold 加密后的鑒權信息合理嵌入到二維碼載體中.實驗結果表明,與文獻[3]提出的水印算法相比,新算法不僅在旋轉、裁剪等幾何攻擊方面表現出了很強的魯棒性,在圖像亮度增減、對比度的增減和噪聲的增加等攻擊方面,該算法也大大提高了水印的魯棒性.