張麗艷,溫萬欽
(大連交通大學 電氣信息工程學院,遼寧 大連 116028) ①
隨著互聯網技術的飛速發展,數字信息的復制、傳播、引用也隨之泛濫,由此引發了嚴重的侵犯版權問題,數字知識產權的保護已成為迫切需要解決的問題.數字水印作為多媒體認證和防偽的重要工具,對數字知識產權保護有著重大的現實意義和實用價值.
目前各類水印算法主要研究水印的隱蔽性和魯棒性問題. 李云亞等[1]探討了當前國內外各類抗攻擊的圖像水印技術,隨著新的攻擊形式的出現,圖像水印面臨新的挑戰,神經網絡與深度學習技術在圖像領域的發展使圖像水印的抗攻擊性能和算法的復雜程度有了改進的空間. 張帥等[2]利用圖像信息熵與邊緣熵的理論,確定了適合水印嵌入的分塊,提高了水印的隱蔽性. 趙睿琦[3]基于DWT-SVD(離散小波變換,Discrete Wavelet Transform,DWT;奇異值分解,Singular Value Decomposition,SVD)技術提出非盲水印和盲水印兩種水印算法,對提出的兩種算法分別進行JPEG壓縮、均值濾波、高斯噪聲等攻擊,該算法在較強的均值濾波和椒鹽噪聲攻擊下的魯棒性均表現不佳,還有很大的改進空間. 程艷艷[4]基于DCT變換對選擇的子塊進行分解,通過構建粒子群算法的適應度函數,迭代獲取最優的嵌入強度,將水印信息隱藏到上Hessenberg矩陣中,生成水印圖像,取得了理想的隱蔽性和魯棒性.為此本文將參考文獻[3-4]的方法結合起來,在文獻[3]的基礎上提出了一種基于DWT-HD-SVD的水印方法,增強水印的魯棒性.
離散小波變換是一種信息保持型的可逆變換,信號的信息保留在小波變換的系數中[5].小波變換將圖像分解成不同空間、不同頻率的子圖像,使得原圖像或信號的能量重新分配,得到一種能量緊湊的圖像表示方式,圖像信息的局部特征可通過小波系數而改變.小波變換后可將圖像劃分為4個子帶:低-低、低-高、高-低和高-高,圖像經過一級DWT后包含的大部分信息集中到低-低子帶中.
Hessenberg分解(Hessenberg decomposition,HD)是一種矩陣分解方法,具有較低的時間復雜度,可用于方陣分解[6].利用HD分解可以得到更精確的宿主圖像分量,提高嵌入水印圖像的魯棒性.對n×n的方陣X進行HD分解,見式(1):
PHPT=HD(X)
(1)
式中:P為酉矩陣;H為上Hessenberg矩陣.假設h(i,j)表示H矩陣的元素,當i>j+1時,h(i,j)=0.HD通常由Householder正交矩陣Q計算,見式(2):
(2)
式中:μ是Rn中的一個非零向量;In是一個n×n的單位矩陣.HD的計算見式(3):
P=(Q1Q2…Qn-2)TX(Q1Q2…Qn-2)
?H=PTXP
?X=PHPT
(3)
奇異值分解可通過對角化將矩陣中行或列的相關性保存在奇異值中[7].由于奇異值具有較高的穩定性,圖像在遭受小的干擾變化時,它的奇異值基本保持穩定,這對提高數字水印算法的魯棒性具有重要意義.另外SVD的尺度不變性使其可以對任意尺寸大小的圖像矩陣進行分解.
SVD將對稱矩陣分解為兩個正交矩陣U、V和一個對角矩陣S,奇異值以對角陣的形式分離出來.對稱矩陣Y進行SVD分解,見式(4):
USVT=SVD(Y)
(4)
式中:S=diag(σ1,σ2,…,σr,0,…,0),對應降序排列的奇異值系數.
在水印嵌入方案中,宿主圖像C和水印圖像W作為輸入,嵌入水印的圖像C*作為輸出.該水印算法適應多種尺寸的水印圖像,且宿主圖像采用R級小波變換進行分解.水印的嵌入過程見圖1.

圖1 水印嵌入流程圖
Step1:基于R級DWT將宿主圖像C分解為低-低、低-高、高-低和高-高4個子帶,其中R=log2(M/N).
Step2:對DWT變換得到的低-低子帶進行Hessenberg分解.
PHPT=HD(LL)
(5)
Step3:對Hessenberg分解得到的H矩陣進行SVD分解.
HUwHSwHVwT=SVD(H)
(6)
Step4:將水印圖像W進行SVD分解.
UwSwVwT=SVD(W)
(7)
Step5:將HSw和Sw加入一個適當的嵌入強度α,由此計算嵌入的奇異值HSw*.
HSw*=HSw+α·Sw
(8)
Step6:利用逆SVD運算構造一個新的子帶H*.
H*=HUwHSw*HVwT
(9)
Step7:基于逆Hessenberg分解構造一個新的LL*.
LL*=PH*PT
(10)
Step8:執行逆R級DWT變換獲得嵌入水印的圖像C*.
在水印提取方案中,嵌入水印的圖像C*作為輸入,提取到的水印W*作為輸出.提取出的水印大小與原始水印大小相同.水印的提取過程見圖2.

圖2 水印提取流程圖
Step2:對DWT變換得到的LLw子帶進行Hessenberg分解.
PwHwPwT=HD(LLw)
(11)
Step3:對Hessenberg分解得到的Hw矩陣進行SVD分解.
HUw*HSbw*HVw*T=SVD(Hw)
(12)
Step4:計算提取水印所需的奇異值Sw*.

(13)
Step5:通過逆SVD分解重構提取出的水印W*.
W*=UwSw*VwT
(14)
水印的隱蔽性是指原始作品與嵌入水印后的作品在視覺效果上的相似度,前后產生的變化越小隱蔽性越好[8-9].為了定量地描述隱蔽性,把嵌入的水印作為加載到載體圖像上的噪聲,通過圖像質量評價指標——峰值信噪比(Peak Signal-to-Noise Ratio,PSNR)和結構相似性(Structural Similarity,SSIM)來評估水印算法的隱蔽性,見式(15)~式(17):
(15)
(16)
式中:MSE表示宿主圖像和嵌入水印的圖像之間的均方誤差;Ci,j2為宿主圖像中的最大像素值.
通常情況下,水印嵌入前后峰值信噪比低于30 dB,說明水印的隱蔽性比較差,如果高于37 dB,肉眼很難看出水印嵌入前后的差別,說明水印的隱蔽性較好,總之,PSNR值越大說明隱蔽性越好[10].
(17)
式中:μC和μC*分別是C和C*的平均值;σC2和σC*2分別是C和C*的方差值;σCC*是C和C*的協方差;d1和d2是兩個用來維持穩定的常數.嵌入水印的圖像與宿主圖像的相似度越高,SSIM值越趨近于1[11].
這幾年,李敬益和社區同事在處理矛盾糾紛上又想出了新方法。他們在社區范圍內發放“彩云社區無憂卡”和“彩云社區民情聯系卡”。這兩張卡的正面是訴求者的基本信息與訴求內容,背面是社區工作人員的手機號碼。
水印的魯棒性是指數字作品在經過某種有意或無意的處理后,嵌入的水印信息仍能保持部分完整性,并能被準確鑒別. 評估魯棒性可利用原始水印與提取出的水印之間的歸一化相關系數(Normalized Cross Correlation,NC),見式(18).
(18)
NC值越接近 1 說明提取出的水印越接近原始水印,在未受攻擊的情況下該值應該是 1,在受到攻擊的情況下該值越高說明算法的魯棒性越好.
本文基于英特爾單核2.6 GHz的CPU和8.0 GB的RAM計算機硬件平臺,Matlab R2020b軟件環境,來進行仿真實驗.選用512×512的Lena圖像作為宿主圖像,256×256、128×128、64×64的“大連交大”字樣的圖像作為水印,仿真中用到的圖像攻擊類型及規格參數見表1,其中QF為品質因數; CR為分解率 ; HE為直方圖均衡化.

表1 圖像攻擊類型及規格參數
在水印算法中,不同圖像的嵌入強度有所差異,如果設置了最佳嵌入強度,可優化算法性能[12].本文分別對256×256、128×128、64×64 3種不同尺寸的水印圖像進行測試,選取嵌入強度α的范圍為[0,0.2],以256×256的水印圖像為例,不同嵌入強度下的仿填性能見圖3.

(a) NC值

(c) SSIM值續圖3 256×256水印不同嵌入強度下的仿真性能
仿真結果表明:在α的動態變化范圍內,PSNR值呈遞降趨勢,考慮到算法的隱蔽性,取一個PSNR的適當值作為評價標準;SSIM值在α變化范圍內基本維持穩定,SSIM值越大,嵌入水印的圖像與宿主圖像差異較小;除直方圖均衡化攻擊外,其余類型攻擊的NC值均與α呈正相關性,嵌入強度在0.02之前增幅較大,隨后逐漸趨近于1.高斯低通濾波、均值濾波和運動模糊類型的收斂速度較慢.綜合3個評價指標,確定256×256、128×128、64×64 3種尺寸水印的最佳嵌入強度分別為0.05、0.10、0.12.
水印算法的隱蔽性建立在不受攻擊的基礎上,嵌入后的水印必須是人眼不可見的.未受攻擊的水印嵌入與提取結果見圖4.仿真結果表明,該水印算法在主客觀分析上均滿足隱蔽性要求.

圖4 未受攻擊的水印嵌入與提取結果
表2給出了在各類攻擊下提取的水印質量分析結果.

表2 不同水印在不同攻擊下的NC值
從表中可以看出,NC值隨著水印尺寸的減小而增大,且NC值較高.此外這些攻擊所提取的水印幾乎在視覺上都是清晰的,即使運動模糊下提取的水印有輕微的模糊,但水印的主要信息仍然是可識別的.3種尺寸的水印在濾波、噪聲、壓縮和銳化攻擊下,NC值均在0.985之上,表明該水印算法在這些攻擊下具有良好的魯棒性.
為了進一步驗證該算法的魯棒性,本文考慮并測試了攻擊參數動態變化下的情況,見圖5.
圖5(a)顯示了JPEG壓縮攻擊下不同品質因子的水印算法魯棒性,QF越小圖像被壓縮的越多,即使QF=10,3種水印的NC值都高于0.995.圖5(b)顯示了JPEG2000壓縮攻擊下不同壓縮強度的水印算法魯棒性,CR越大圖像壓縮的越多,即使CR=36,3種水印中最差的NC值也大于0.993.圖5(c)和5(d)分別測試了不同參數的高斯低通濾波和中值濾波的水印算法魯棒性,結果表明,3種水印高斯低通濾波器的NC值均大于0.96,中值濾波NC值緩慢下降,但均大于0.945.圖5(e)顯示了高斯噪聲攻擊下不同方差參數水印算法的魯棒性,256×256的水印NC值降幅較大.圖5 (f)顯示了閾值為1,不同銳化強度下水印算法的魯棒性,3種水印的銳化攻擊NC值在0.985之上.

圖5 3種水印不同參數攻擊下的NC值
良好的NC值代表優越的魯棒性,即使是不同大小的水印,也能抵御這幾種類型的攻擊,尤其是JPEG壓縮、JPEG2000壓縮和銳化攻擊.特別是對于64×64的水印,除了JPEG壓縮攻擊的魯棒性略微較低外,其他情況下的魯棒性均優于另外兩種尺寸的水印,且NC值大于0.98,因此該水印算法具有很好的隱蔽性和魯棒性.
使用相同的宿主圖像和水印圖像,在相同規格的攻擊類型下,將本文提出的水印算法與文獻[3]和文獻[4]中的算法的魯棒性做進一步對比分析,對比結果見表3.本文提出的算法在椒鹽噪聲、中值濾波及JPEG壓縮中相比文獻[3-4]的抗攻擊性均表現出一定的優勢.在旋轉幾何攻擊下本文算法的性能略優于文獻[3],但不及文獻[4],還有較大的改進空間.

表3 相關文獻算法與本文算法的魯棒性對比
本文提出了一種基于DWT-HD-SVD變換的數字圖像水印算法.首先對不同尺寸水印的算法性能指標進行分析,找到適當的不同水印嵌入強度,在此基礎上通過多種規格參數的模擬攻擊,對該算法的隱蔽性和魯棒性進行了仿真分析,最后與相關文獻算法的魯棒性進行了對比.實驗結果表明,該算法得到的嵌入水印圖像不僅具有良好的視覺質量,而且在不同的攻擊下均可提取出清晰的水印圖像,表現出更強的魯棒性,即使是不同尺寸的水印,該算法也具有很好的隱蔽性和魯棒性.