唐 晗,陳留洋,魯榮波
(1.吉首大學信息科學與工程學院,湖南 吉首 416000;2.洛陽師范學院國土與旅游學院,河南 洛陽 471934)
隨著網(wǎng)絡的發(fā)展與計算機的普及,數(shù)字作品的儲存、復制及傳播越來越方便,人們傳遞和共享信息的方式逐漸從紙質作品向數(shù)字作品過渡.數(shù)字作品方便攜帶,還能隨時隨地傳播和編輯,這使得其被盜版的風險增大.研究表明,對數(shù)字作品進行數(shù)字水印技術處理,可以有效地保護信息安全、降低盜版風險[1].
為了提高數(shù)字水印的不可見性和魯棒性,有學者利用不同的信息特征作為水印信息,還有學者選擇不同的水印嵌入位置、不同的水印嵌入因子強度等,并設計了相應的水印算法[2-7].2015年,黃光亞等[8]提出了基于三維軸距的去噪算法,算法的去噪效果很好.由于三維軸距具有計算量小,且軸距越大概率越小的特點,因此筆者擬基于構建三維軸距的方法設計新的水印算法,以期讓水印具有較強的不可見性和魯棒性,解決版權歸屬不明等問題.
三維直方圖[9]由鄰域均值、圖像灰度及鄰域中值組成.對于大小為M×N的圖像,像素點(i,j)處模板為k×k的鄰域均值用g(i,j)表示,像素點(i,j)的灰度用f(i,j)表示,則有[8]
(1)
用h(i,j)表示(i,j)處模板為k×k的鄰域中值,
h(i,j)=med{f(i+m,j+n)}.
(2)
其中:m=-(k-1)/2,-(k-1)/2+1,…,(k-1)/2;n=-(k-1)/2,-(k-1)/2+1,…,(k-1)/2;med代表中值運算.根據(jù)三維直方圖的定義,將f(i,j),g(i,j)和h(i,j)構成的三元組(x,y,z)定義為三維直方圖的空間分布,即在三維坐標系中X軸表示灰度f(i,j),Y軸表示鄰域均值g(i,j),Z軸表示鄰域中值h(i,j).
1.2 三維軸距
以8 bit整型數(shù)據(jù)保存的圖像作為研究對象,其灰度分布范圍為[0,255],稱由(0,0,0)到(255,255,255)的對角線為圖像分布的中軸線[8].像素點f(i,j)的三維軸距是指三維直方圖中的點(x,y,z)到中軸線的距離(用d表示),如圖1所示.
圖1 三維軸距d
圖1中,矢量a表示點(x,y,z)的單位向量,b表示中軸線方向的單位矢量,于是
|a×b|=|a|·|b||sinθ|.
(3)
結合(3)式和圖1可得
d=|a|·|sinθ|=|a×b|/|b|.
(4)
為了保證水印信息的安全,在水印嵌入之前通常先對水印圖像W(x,y)進行加密.筆者采用計算鬼成像加密技術[10]對原水印圖像進行預處理,計算鬼成像加密系統(tǒng)如圖2所示.
圖2 計算鬼成像加密系統(tǒng)
利用粒子群優(yōu)化算法,在載體圖像的三維軸距最大點的像素點中尋找最優(yōu)值作為水印嵌入位置.水印嵌入流程如圖3所示.
圖3 水印嵌入流程
水印嵌入的具體步驟如下:
Step1對原水印圖像作預處理.
Step2讀入載體圖像,利用(1),(2)式畫出三維直角坐標系.
Step3利用(4)式求軸距最大時所有像素點的個數(shù).
Step4以所有像素點個數(shù)作為粒子群尋優(yōu)的初始值.以峰值信噪比(Peak Signal to Noise Ratio,PSNR,用R表示)和歸一化相關系數(shù) (Normalized Correlation,NC,用C表示)的線性組合來確定粒子群的適應度函數(shù),適應度函數(shù)可以反映水印的魯棒性和不可見性.PSNR越大,說明水印的不可見性越好;NC越接近1,說明水印的抗攻擊性越強.設置適應度函數(shù)[12]
f=k1logR+k2C.
其中:k1,k2∈(0,1),且k1+k2=1,這里取k1=0.3,k2=0.7;
(5)
(6)
Step5將所有像素點的適應度值從大到小排序,選擇適應度值最大的點作為水印嵌入的位置.水印嵌入原則是加法準則,將嵌入水印的位置的像素點作為水印提取的密鑰.
Step6輸出含水印的圖像.
水印提取的步驟如下:
Step1讀入圖像,由密鑰找到嵌入水印的位置,利用減法準則提取嵌入的水印圖像.
Step2利用計算鬼成像加密系統(tǒng)的相位密鑰Pi(x,y)進行計算,完成水印圖像重建.
利用Matlab軟件進行不可見性仿真實驗.選擇規(guī)格256×256的2幅圖像(圖4和圖5)作為載體圖像,32×32的二值圖(圖6)作為水印圖像.通過計算可得,載體圖像(圖4)與嵌入水印圖像(圖7)的PSNR為40.922 8 dB,提取出的水印圖像(圖8)與原始水印圖像(圖6)的NC達到0.998 3;載體圖像(圖5)與嵌入水印圖像(圖9)的PSNR為39.744 8 dB,提取出的水印圖像(圖10)與原始水印圖像(圖6)的NC為0.983 3.由此可知,基于三維軸距的水印算法下的水印具有良好的不可見性.
圖4 “小女孩”原載體圖像
圖5 “Lena”原載體圖像
圖6 嵌入載體圖像中的原始水印圖像
圖7 “小女孩”含水印圖像
圖8 從“小女孩”提出的水印圖像
圖9 “Lena”含水印圖像
圖10 從“Lena”提出的水印圖像
利用Matlab軟件做多種攻擊的仿真實驗.選擇規(guī)格256×256的“Lena”圖像作為載體圖像,32×32的“王”字圖像作為水印圖像.令JPEG壓縮因子為50,均值濾波窗口大小為5×5,中值濾波為2×2,對比度增強30%,幾何剪切為1/4,等比放大倍數(shù)為1.3,旋轉15°.為了驗證算法的魯棒性,將受各種攻擊的本研究的NC測試結果與文獻[13-15]中的進行對比(表1).
表1 NC測試結果對比
由表1可知,各種攻擊下的本研究的NC結果都優(yōu)于文獻[13-15],說明基于三維軸距的水印算法下的水印的抗攻擊性最強.
為了提高水印的不可見性和魯棒性,提出了基于三維軸距的水印算法.首先利用計算鬼成像加密技術對原水印進行預處理,提高水印的安全性;然后通過構建三維軸距的方法,計算得到軸距最大時的所有像素點;最后利用粒子群優(yōu)化算法在這些像素點中找到最優(yōu)值作為水印的嵌入位置,完成水印的嵌入.由仿真實驗結果可知,在多種攻擊下(如JPEG壓縮、對比度增強、濾波、旋轉及放縮等),基于三維軸距的水印算法能使水印具有良好的不可見性和優(yōu)越的魯棒性.