張?zhí)祢U, 葉紹鵬, 劉鑒興, 柏浩鈞
(1. 重慶郵電大學(xué)通信與信息工程學(xué)院, 重慶 400065; 2. 重慶郵電大學(xué)信號(hào)與信息處理重慶市重點(diǎn)實(shí)驗(yàn)室, 重慶 400065)
數(shù)字通信的快速發(fā)展使得數(shù)字圖像在互聯(lián)網(wǎng)上非法復(fù)制與傳播,容易導(dǎo)致版權(quán)的欺詐問題。數(shù)字水印是證明版權(quán)所有的有力途徑之一,其在宿主圖像中秘密嵌入被稱為“水印”的所有者信息[1]。傳統(tǒng)的數(shù)字水印通常采用修改空間域或變換域系數(shù)的方法嵌入水印。如,文獻(xiàn)[2]將圖像進(jìn)行分塊處理,根據(jù)每一個(gè)子塊的奇偶性來設(shè)置嵌入規(guī)則,將水印信息嵌入其中;文獻(xiàn)[3]提出了一種基于快速沃爾什-哈達(dá)瑪變換(fast Walsh-Hadamard transform, FWHT)、奇異值分解(singular value decomposition, SVD)的盲水印算法,該算法不可見性和魯棒性欠佳。文獻(xiàn)[4-5]都選擇了修改輪廓波變換后的系數(shù)嵌入水印。上述算法對(duì)圖像數(shù)據(jù)造成不同程度的改變,然而,水印的不可見性和抗攻擊能力是相互制約的。在文獻(xiàn)[6]中作者給出了一種通過使用載體圖片的特征生成零水印的方案,該方法在沒有改變載體圖片數(shù)據(jù)特征的情形下就實(shí)現(xiàn)了嵌入水印的目的,并且較好地處理了不可見性和魯棒性差的問題。
通常大多數(shù)零水印算法都是結(jié)合不同變換域,提取載體圖像中的特征數(shù)據(jù)來獲得特征矩陣。文獻(xiàn)[7]介紹了一種雙零水印方案,該方法首先利用Douglas-Peucker算法提取矢量地圖的特征頂點(diǎn)和非特征頂點(diǎn),然后構(gòu)造Delaunay三角網(wǎng)格形成特征頂點(diǎn)的拓?fù)涮卣餍蛄泻蚐VD矩陣形成非特征頂點(diǎn)的固有特征序列,該方案綜合了特征信息和非特征信息,提高了水印的容量,但是魯棒性提升并不明顯。文獻(xiàn)[8]中提出一種針對(duì)彩色圖像的零水印算法,首先將彩色圖像分離3個(gè)通道(R、G、B)對(duì)應(yīng)的3幅圖像和一幅灰度圖像。然后構(gòu)造出兩組三維張量。接著利用SVD-離散余弦變換(SVD-discrete cosine transform, SVD-DCT)在三維張量中提取特征矩陣生成零水印。該方案具有一定的創(chuàng)新性,并未提高魯棒性。熊祥光[9]提出了一種空間域的零水印算法,根據(jù)空間域的子塊均值與整體均值的關(guān)系構(gòu)造零水印。該算法大幅度提高了圖像處理攻擊的魯棒性。文獻(xiàn)[10]利用輪廓波變換和奇異值分解以及Hu不變量實(shí)現(xiàn)魯棒性,具備良好抗噪性能,但是在幾何攻擊方面表現(xiàn)不佳。文獻(xiàn)[11]利用Curvelet變換,奇異值分解提取圖像特征,提出一種子塊映射機(jī)制生成零水印的方法。該算法獲得較強(qiáng)的魯棒性,但該算法是基于灰度圖像設(shè)計(jì)的?,F(xiàn)有的基于彩色圖像的零水印算法不夠豐富,或是對(duì)某種攻擊的魯棒性有一定的提高,但對(duì)較為復(fù)雜的攻擊,魯棒性仍有待提升。上述零水印算法結(jié)合多種變換域,而Tetrolet變換由Krommweh[12]在2009年提出,兼顧小波變換與輪廓波變換的優(yōu)勢,文獻(xiàn)[13]利用傳統(tǒng)的水印算法修改Tetrolet系數(shù),所獲得效果并不佳,不可見性差,而且抗噪性能不高。但Tetrolet在零水印系統(tǒng)中的應(yīng)用幾乎還是一片空白。
基于此,本文結(jié)合Tetrolet變換,提出一種利用非負(fù)矩陣分解(nonnegative matrix factorization, NMF)分解,統(tǒng)計(jì)圖像的頻數(shù)質(zhì)心特性,并采用信息編碼的規(guī)則對(duì)水印加密的新型零水印算法。
Tetrolet變換由Krommweh[12]提出,是基于對(duì)Haar小波的改進(jìn),采用類似于“俄羅斯方塊”自適應(yīng)的方式填充四格拼板。該變換方法充分考慮了輪廓波變換等多尺度多分辨率分析的優(yōu)點(diǎn),能較全面考慮圖象的幾何特性,能較稀疏地描述圖象,從而使得能量系數(shù)比較集中,在圖像壓縮,噪聲抑制,特征提取等方面均有不錯(cuò)的效果。Tetrolet變換算法步驟如下:
(1) 對(duì)圖像I0進(jìn)行4×4分塊,每塊為Qi, j(i,j=0,1,…,N/2r+1-1)。
(2) 對(duì)每塊Qi, j采用四格拼版的形式進(jìn)行填充,一共有117種方式。最基礎(chǔ)的4個(gè)拼版具有5種形式,如圖1所示。若不考慮旋轉(zhuǎn)與鏡像,有22種填充方式,如圖2所示。
圖1 5種基本四格拼版
Fig.1 Five basic four-collages
圖2 22種基本填充方式Fig.2 22 basic filling methods
(1)
(2)
(4) 將低頻系數(shù)重新進(jìn)行排列,作為下一級(jí)的輸入,重復(fù)上述步驟直至分解到r級(jí)結(jié)束。
Tetrolet變換的詳細(xì)過程可參考文獻(xiàn)[12-14]。Tetrolet變換使圖像得到的低頻系數(shù)能量更加集中,應(yīng)用于水印系統(tǒng),能提高水印的魯棒性和抗噪能力。
NMF分解最早由Lee和Seung于1999年在《Nature》上提出,用于人臉識(shí)別。NMF應(yīng)用于數(shù)字水印系統(tǒng)具有以下特點(diǎn):① 分解結(jié)果非負(fù),恰好滿足灰度值非負(fù)的條件,具有明確的物理意義,同時(shí)對(duì)高維數(shù)據(jù)的降維處理提高了運(yùn)算速度。② 能挖掘數(shù)據(jù)本身的特征結(jié)構(gòu)而不改變數(shù)據(jù)結(jié)構(gòu)[15]。NMF可以描述為,對(duì)任意一個(gè)給定非負(fù)矩陣V,總能有非負(fù)矩陣W,H使得:
Vn×m=Wn×rHr×n+ε
(3)
式中:W為基矩陣;H為系數(shù)矩陣;r為預(yù)設(shè)參數(shù),滿足
(4)
步驟 1對(duì)基矩陣W和系數(shù)矩陣H隨機(jī)賦初值。
步驟 2根據(jù)式(3)對(duì)基矩陣W和系數(shù)矩陣H進(jìn)行更新:
(5)
式中:Hkj是第(k-1)r+j次循環(huán)結(jié)果;Wik是第(i-1)n+k次循環(huán)結(jié)果。
步驟 3重復(fù)步驟2至收斂,即可得到最優(yōu)的基矩陣W和系數(shù)矩陣H。
Polar碼是根據(jù)Arikan[16]通過信道產(chǎn)生的極化現(xiàn)象提出來的,而按照信道極化理論,Polar碼在理論上能到達(dá)最大信道容量。在二進(jìn)制輸入的離散無記憶通道中,經(jīng)過信道極化后,信道被分割為純噪信道和無噪信道,在無噪信道中傳送消息比特,在純噪信道中傳輸預(yù)置的凍結(jié)比特。
Polar碼符合二元線性分組碼的基本特性,編碼由信息位和生成矩陣決定。編碼過程如下:
(6)
(7)
式中:GN(A)代表GN中A集對(duì)應(yīng)的行構(gòu)成的生成矩陣;⊕為異或符號(hào);Ac為A的補(bǔ)集。極化碼的編碼可以由如下參數(shù)確定:碼長N,信息位A,信息位的個(gè)數(shù)K,K/N為碼率,凍結(jié)位uA,通常置為“0”符號(hào),故表示為P(N,K,A,uAc)。
二維交織技術(shù)是將圖像以交織單元的形式進(jìn)行置亂,將成串的錯(cuò)誤分散到圖像的各個(gè)區(qū)域。交織技術(shù)將錯(cuò)誤分散,Polar碼對(duì)錯(cuò)碼進(jìn)行糾錯(cuò),二者結(jié)合提高水印系統(tǒng)抗突發(fā)錯(cuò)誤能力。首先把2n×2n的矩陣作為交織的單元,再把這個(gè)單位等分為四個(gè)象限,每個(gè)象限再分四個(gè)象限,以此類推,直至分為2×2的最小單元為止。具體構(gòu)造步驟如下:
先將2×2最小單元里的4個(gè)元素按式(8)排列成交織方陣,再按式(9)進(jìn)行升維得到高階的交織方陣。
(8)
(9)
式中:0,1,2和3均為2×2的矩陣。
如流程圖3所示,對(duì)載體圖像處理的具體步驟如下:
步驟 1將輸入的彩色載體圖像(大小為M×M)轉(zhuǎn)化到Y(jié)CbCr空間,然后分離亮度Y通道,同時(shí)對(duì)Y分量進(jìn)行Tetrolet變換,得到其低頻系數(shù)wlm與高頻系數(shù)whm。
步驟 2取低頻系數(shù)wlm進(jìn)行8×8分塊,對(duì)每一子塊進(jìn)行NMF分解,得到各子塊的一維基向量。
步驟 3依次根據(jù)一維基向量構(gòu)造頻數(shù)質(zhì)心,算出每個(gè)子塊的質(zhì)心。
步驟 4采用局部閾值生成的方法,計(jì)算出每相鄰的8×8子塊質(zhì)心值的平均值作為閾值,在這8×8子塊質(zhì)心值中大于閾值設(shè)置為1,小于閾值設(shè)置0,得到M/8×M/8特征矩陣T。
圖3 生成特征矩陣
Fig.3 Generating characteristics matrix
頻數(shù)質(zhì)心能夠穩(wěn)定表示圖像特征。這里,對(duì)步驟3中構(gòu)造質(zhì)心頻數(shù)的過程做詳細(xì)介紹。一維基向量中數(shù)據(jù)D={x1,x2,…,xn}映射到x軸上,取最大值為max,最小值為min,將數(shù)據(jù)分為k組,組距為t,設(shè)定子區(qū)間[min,min+t),[min+t,min+2t),…,[min+(i-1)t,min+it),…,[min+(k-1)t,max],統(tǒng)計(jì)D中數(shù)據(jù)在各個(gè)區(qū)間的次數(shù)C=[m1,m2,…,mi,…,mk],m1+m2…+mi+…+mk=n,根據(jù)公式Xi=min+it-t/2,依次求出各個(gè)子區(qū)間的中位數(shù),得到對(duì)應(yīng)的中位數(shù)序列X=[X1,X2,…,Xi,…,Xk]。根據(jù)式(10)求其質(zhì)心:
(10)
零水印生成的過程如圖4所示,具體步驟如下:
步驟 1采用reshape的方式將m×m的二值水印圖像降維成一維序列,對(duì)該序列用Polar碼的編碼規(guī)則N=2m×2m,K=m×m,碼率r=1/4的參數(shù)進(jìn)行編碼得到wb。再根據(jù)式(8)和式(9)進(jìn)行SP二維交織形成帶有水印信息的交織方陣S。
步驟 2將交織方陣S與特征矩陣T進(jìn)行異或(exclusive OR, XOR)操作生成零水印信息Z注冊到版權(quán)保護(hù)中心。運(yùn)算方式為
Z=XOR(S,T)
(11)
圖4 生成零水印Fig.4 Generating zero watermark
水印的提取與嵌入過程相似,見流程圖5,具體步驟如下:
步驟 1將受到攻擊的載體圖像按第3.1節(jié)中步驟2~步驟4的操作,提取出特征矩陣T′。
步驟 2把特征矩陣與零水印Z進(jìn)行異或操作得到含水印信息的交織矩陣S′。
S′=XOR(Z,T′)
(12)
步驟 3對(duì)S′進(jìn)行去交織,Polar碼解碼,重構(gòu)為m×m的圖像即可得到版權(quán)水印w′。
圖5 提取零水印Fig.5 Extracting zero watermark
如圖6所示,仿真實(shí)驗(yàn)載體圖像選取1 024×1 024的24位真彩色圖像,選用32×32的“印”作為二值水印圖像。
圖6 彩色載體圖像與水印圖像Fig.6 Color carrier image and watermark image
本文采用歸一化相關(guān)系數(shù)(normalized coefficient, NC)來評(píng)估該算法的唯一性和魯棒性。NC是指提取的水印圖像與原始的水印圖像之間的相似度。NC的公式如下:
(13)
式中:W(wx,wy)表示原始的水印圖像;W′(wx,wy)表示提取的水印圖像。
由于不同載體圖像產(chǎn)生的特征圖像不同,不同圖像產(chǎn)生的特征矩陣也應(yīng)該不同,即不同圖像產(chǎn)生的零水印之間的相關(guān)性應(yīng)該相對(duì)較小。因此,為了驗(yàn)證不同載體圖像之間的虛警率,對(duì)實(shí)驗(yàn)圖像進(jìn)行兩兩測試,NC值越高,說明虛警率越高,實(shí)驗(yàn)結(jié)果如表1所示。從表1可以看出,當(dāng)提取水印的圖像與原始載體圖像一致時(shí),算法都能將水印完整的提取出來;當(dāng)提取水印的圖像與原始載體圖像不一致時(shí),所提取水印最高NC值為0.685 4,如圖7所示,從圖中也難獲取與原始水印的信息。因此,本文算法具有較低的虛警率與良好的安全性。
表1 虛警率檢測的NC值
圖7 表1中NC=0.685 4的水印圖像Fig.7 Watermark image with NC=0.685 4 in Table 1
4.2.1 非幾何攻擊
非幾何攻擊是常規(guī)的圖像處理方式對(duì)圖像的像素值進(jìn)行修改,并未修改其相對(duì)位置。為測試本文算法在非幾何攻擊下的魯棒性,分別對(duì)4幅載體圖像添加高斯噪聲、椒鹽噪聲、泊松噪聲攻擊,攻擊的參數(shù)均值為0,方差為0.1和0.5;采用模板大小為3×3,9×9的均值濾波,維納濾波和高斯低通濾波分別進(jìn)行攻擊;JPEG壓縮因子為10、30、50進(jìn)行攻擊。
由表2可以看出,這4幅載體圖像在不同類型、不同強(qiáng)度的噪聲攻擊下,NC值最低在0.93以上。對(duì)于濾波攻擊和壓縮攻擊,大部分NC值幾乎為1,說明本文算法能有效抵抗非幾何攻擊。
表2 非幾何攻擊實(shí)驗(yàn)的NC值
4.2.2 幾何攻擊
幾何攻擊對(duì)圖像的特征改變較大,通常情況下會(huì)同時(shí)改變像素值與像素的相對(duì)位置。為檢驗(yàn)本文算法對(duì)幾何攻擊的魯棒性,對(duì)這4幅圖像采用旋轉(zhuǎn)攻擊、剪切攻擊、行列偏移攻擊,實(shí)驗(yàn)結(jié)果如表3所示。為驗(yàn)證Polar碼編碼+二維交織算法能抵抗突發(fā)錯(cuò)誤,優(yōu)化水印系統(tǒng)性能,對(duì)Lena圖像進(jìn)行剪切攻擊,采用加入交織算法與未加入交織算法的方式進(jìn)行對(duì)比,提取效果如圖8所示。
由表3可得,旋轉(zhuǎn)攻擊對(duì)圖像影響較大,在旋轉(zhuǎn)10°的條件下NC值仍在0.9以上。對(duì)于行列偏移攻擊會(huì)使圖像整體位置發(fā)生改變,在偏移20列時(shí),本文算法仍然能將水印信息較好的恢復(fù),NC值均在0.95以上。對(duì)于剪切攻擊,在剪切1/4以內(nèi)具有不錯(cuò)的魯棒性,如果剪切面積變大,會(huì)造成數(shù)據(jù)大量丟失,難以提取圖像特征。故本文算法在幾何攻擊下也具有不錯(cuò)的魯棒性。如圖8所示,圖8(d)~圖8(f)是采用Polar編碼在圖8(a)~圖8(c)中所提取的水印,圖8(h)~圖8(j)采用Polar編碼+二維交織算法在圖8(a)~圖8(c)中所提取的水印??梢悦黠@看出,未用交織算法所提取的水印容易出現(xiàn)突發(fā)錯(cuò)誤,加入交織技術(shù)后所提取的水印信息明顯清晰,NC值提高,故Polar編碼+二維交織算法能夠?qū)λ⌒畔⑦M(jìn)行糾錯(cuò),防止突發(fā)錯(cuò)誤,達(dá)到增強(qiáng)抗幾何攻擊的能力。
表3 幾何攻擊實(shí)驗(yàn)的NC值
圖8 未交織與交織提取水印對(duì)比Fig.8 Comparison of uninterleaved and interleaved watermarks
4.2.3 組合攻擊與其他攻擊
為進(jìn)一步驗(yàn)證本文算法的魯棒性,采用以下攻擊方式進(jìn)行測試,實(shí)驗(yàn)結(jié)果如圖9所示。其中攻擊的參數(shù)設(shè)置如下:① 高斯噪聲(均值為0,方差0.1)+剪切攻擊(中心剪切1/4);② 均值濾波(模板大小為9×9)+旋轉(zhuǎn)攻擊(10°);③ 直方圖均衡化+旋轉(zhuǎn)攻擊(5°)+行列偏移(向下10行,向右10列);④ 篡改攻擊(中心剪切1/4);⑤ 8×8馬賽克攻擊。圖9(a)~圖9(e)所提取的水印分別對(duì)應(yīng)圖9(f)~圖9(j)。由圖9(a)~圖9(e)可以看出,組合攻擊使得圖像質(zhì)量變差,但水印提取較為清晰。對(duì)于馬賽克攻擊和1/4篡改攻擊也有良好的提取效果。本文采用Tetrolet變換和NMF分解統(tǒng)計(jì)頻數(shù)質(zhì)心能穩(wěn)定的提取特征矩陣,另加上Polar的糾錯(cuò)能力,因此能很好地恢復(fù)水印信息。
圖9 不同攻擊方式與提取的水印Fig.9 Different attack methods and extracted watermarks
選取Lena載體圖像,將本文算法與近年來具有代表性的文獻(xiàn)[8]中所提基于變換域的零水印算法,以及文獻(xiàn)[9]中所提空域強(qiáng)魯棒零水印算法進(jìn)行對(duì)比。分別采用均值為0的高斯噪聲攻擊、均值濾波攻擊、JPEG壓縮、旋轉(zhuǎn)攻擊、行列偏移攻擊、剪切1/4攻擊,實(shí)驗(yàn)結(jié)果如圖10所示。
在非幾何攻擊方面,選取常見的加噪,濾波,壓縮攻擊。如圖10(a)所示,3種算法隨著噪聲強(qiáng)度的增加,所提取水印NC值均呈下降趨勢,本文算法所提取NC值下降趨勢較為緩慢,且都高于其他兩種算法。對(duì)于濾波與JPEG壓縮攻擊,如圖10(b)、圖10(c)所示3種算法均有良好的魯棒性,NC都在0.96以上,但就變化趨勢而言,更加能凸顯本文算法的穩(wěn)定性;即使在11×11模板濾波下或壓縮因子為10的JPEG壓縮下,本文算法所提取水印NC依然更接近1。對(duì)于幾何攻擊,選取具有代表性的旋轉(zhuǎn)、剪切、平移攻擊方式。如圖10(d)所示,對(duì)于平移與旋轉(zhuǎn)攻擊,隨著旋轉(zhuǎn)角度的增大,本文算法下降趨勢較為穩(wěn)定,且NC值均高于其他二者。對(duì)不同區(qū)域剪切攻擊方面,本文算法所提取水印NC值略低于其他兩種算法,但NC值也在0.9以上。綜上所述,就整體而言本文算法魯棒性優(yōu)于其他二者。
圖10 不同算法對(duì)比結(jié)果Fig.10 Comparison of different algorithms
在無損的要求下進(jìn)行版權(quán)保護(hù),本文設(shè)計(jì)了一種基于彩色圖像Tetrolet的頻數(shù)質(zhì)心算法,能根據(jù)圖像的統(tǒng)計(jì)與局部特征,穩(wěn)定地提取圖像特征;將Polar碼和交織算法與零水印系統(tǒng)結(jié)合,在水印提取時(shí)能避免突發(fā)錯(cuò)誤并具有糾錯(cuò)能力,能更好地提取水印。經(jīng)大量仿真實(shí)驗(yàn)驗(yàn)證,本文算法具有良好的魯棒性和抗幾何攻擊能力。因此,可以廣泛地應(yīng)用在數(shù)字產(chǎn)品的版權(quán)保護(hù)中,在接下來的工作中,我們將致力于降低算法的復(fù)雜度,并將所提算法擴(kuò)展到視頻零水印算法中。