徐 偉,劉 穎,2,3,朱婷鴿,2,3
(1.西安郵電大學(xué) 通信與信息工程學(xué)院,陜西 西安710121;2.西安郵電大學(xué) 電子信息現(xiàn)場(chǎng)勘驗(yàn)應(yīng)用技術(shù)公安部重點(diǎn)實(shí)驗(yàn)室,陜西 西安 710121;3.陜西省無線通信與信息處理技術(shù)國(guó)合基地,陜西 西安 710121)
常見的水印嵌入方法[1-3]有兩種:基于空間域和基于變換域[4,5]。基于空間域的方法通過改變載體圖像的像素值對(duì)水印進(jìn)行嵌入,該方法實(shí)現(xiàn)簡(jiǎn)單,計(jì)算快且嵌入信息量大,但抗攻擊能力較弱。最低有效位(least significant bit,LSB)算法[6]是最早且具代表性的空域算法。文獻(xiàn)[7]通過圖像壓縮技術(shù)對(duì)傳統(tǒng)LSB算法改進(jìn),具有更好的抗JPEG壓縮的效果?;谧儞Q域的方法通過各種變換將原始圖像變換到不同域,然后改變變換域的系數(shù)值嵌入水印。常用變換域系數(shù)有離散余變換(discrete cosine transform,DCT)、離散小波變換(discrete wavelet transform,DWT)和奇異值分解(singular value decomposition,SVD)系數(shù)[8]。DCT被廣泛用于MPEG圖像壓縮[9],通過DCT變換對(duì)低頻分量嵌入水印[10]具有較好的魯棒性,但抗幾何攻擊性能較弱。文獻(xiàn)[11]提出一種DWT-DCT混合水印方案,先對(duì)載體圖像8×8分塊DWT變換,再對(duì)每塊HL子帶和LH子帶做DCT變換,水印嵌入到對(duì)應(yīng)子帶DCT系數(shù)上,該方法魯棒性強(qiáng),但不可感知性差。文獻(xiàn)[12]提出一種DWT-SVD混合嵌入水印的方法,該方法能夠平衡水印圖像不可感知性和魯棒性,但效果不佳。
針對(duì)水印算法不可感知性和魯棒性不易平衡問題。根據(jù)圖像哈希不可篡改的特點(diǎn),提出一種基于DCT和SVD的圖像哈希水印算法,在離散小波變換域提取載體圖像的低頻系數(shù)矩陣構(gòu)造哈希序列,再將哈希序列以水印的方式嵌入載體圖像中。
1.1.1 特征提取
對(duì)載體圖像進(jìn)行3級(jí)小波分解,如圖1所示。LL3是直流子帶,HL3、LH3和HH3是低頻子帶,HL2、LH2和HH2是中頻子帶,HL1、LH1和HH1是高頻子帶。為了使生成的哈希魯棒性更強(qiáng),我們選取低頻子帶生成哈希。
圖1 三級(jí)小波分解
1.1.2 構(gòu)造圖像水印
通過低頻子帶提取特征構(gòu)造圖像哈希水印,其過程如下:
(1)令X1,X2,X3分別表示中頻子帶HL3、LH3和HH3的系數(shù)集合,讓n表示每個(gè)中頻子帶系數(shù)的個(gè)數(shù),則Xi={xi,1,xi,2,…,xi,n},i=1,2,3。X′1,X′2,X′3分別表示由X1,X2,X3生成的哈希序列集合;
(2)將每個(gè)中頻系數(shù)值的絕對(duì)值與閾值T相比較生成哈希值,可描述為
(1)
其中,X′i={x′i,1,x′i,2,…,x′i,n},i=1,2,3
T=k×std(Xi),k>0
(2)
式中:std(·) 表示Xi的標(biāo)準(zhǔn)差,k是標(biāo)準(zhǔn)差系數(shù)。根據(jù)不同標(biāo)準(zhǔn)差,設(shè)置不同的k值,若k足夠大,則會(huì)丟失更多細(xì)節(jié),反之,則會(huì)保留更多細(xì)節(jié)。
(3)將哈希序列集合X′i存放于大小為m×m的矩陣中,其中m×m=n。 分別得到X′1,X′2,X′3構(gòu)成的矩陣h1、h2和h3;
(4)將h1、h2和h3進(jìn)行邏輯或操作得到哈希水印h,即h=h1|h2|h3。
1.2.1 算法整體框架
既要考慮水印嵌入的魯棒性,又要考慮載體圖像的保真性,為了達(dá)到兩者之間的平衡,我們選取哈希值作為水印信息在頻域中進(jìn)行嵌入。嵌入過程需要載體圖像和水印圖像的輸入,載體圖像經(jīng)過DCT和SVD變換,水印圖像只需要進(jìn)行SVD變換,提取過程則是嵌入的逆過程,具體實(shí)現(xiàn)過程如圖2所示。
1.2.2 水印的嵌入算法
圖像水印的嵌入過程如下所述。
(1)將載體圖像進(jìn)行8×8分塊,對(duì)每個(gè)子塊進(jìn)行DCT變換;
(2)提取每個(gè)DCT子塊的DC系數(shù),得到矩陣DC_block;
(3)對(duì)DC系數(shù)矩陣DC_block進(jìn)行SVD變換,得到奇異值矩陣S_img,即
[U_img,S_img,V_img]=svd(DC_block)
(3)
(4)進(jìn)行水印嵌入,嵌入方式如下
new_S_img=S_img+f×wm
(4)
其中,wm是水印圖像,f是水印嵌入強(qiáng)度。
(5)對(duì)new_S_img進(jìn)行奇異值分解,即
[U,S,V]=svd(new_S_img)
(5)
(6)取矩陣U_img、V_img與矩陣S做SVD逆變換得到新的DC系數(shù)矩陣,即
new_DC_block=U_img*S*V_img′
(6)
(7)將new_DC_block和DCT子塊進(jìn)行重構(gòu),再進(jìn)行DCT逆變換得到含水印的圖像。
圖2 水印的嵌入與提取過程
1.2.3 水印的提取算法
圖像水印的提取過程如下所述。
(1)將含水印的圖像進(jìn)行8×8分塊,對(duì)每個(gè)子塊進(jìn)行DCT變換;
(2)從每個(gè)DCT子塊中收集DC系數(shù),得到矩陣watermarked_block;
(3)對(duì)watermarked_block進(jìn)行SVD變換,得到對(duì)角陣,記為S_watermarked;
(4)提取水印嵌入算法中的U和V與S_watermarked做SVD逆變換,即
new_block=U*S_watermarked*V′
(7)
(5)提取水印嵌入算法中的S_img,根據(jù)下述公式提取水印信息,即
extracted_watermark=(new_block-S_img)/f
(8)
其中,f是水印嵌入強(qiáng)度。
實(shí)驗(yàn)采用PC端的matlab 2016完成。使用www.imageprocessingplace.com的圖像庫中提供的5幅灰度圖像進(jìn)行實(shí)驗(yàn),測(cè)試建議算法性能,載體圖像尺寸均為512×512,水印圖像是大小為64×64的二值圖像,如圖3所示,其中圖3(a)~ 圖3(e)為載體圖像,而圖3(f)~圖3(j)分別是載體圖像生成的二值水印圖像。
圖3 載體圖像與水印圖像
為了將實(shí)驗(yàn)結(jié)果與其它文獻(xiàn)中的結(jié)果進(jìn)行比較,采用峰值信噪比(peak signal to noise ratio,PSNR)和結(jié)構(gòu)相似性(structural similarity,SSIM)評(píng)價(jià)水印的不可感知性性能,用歸一化相關(guān)系數(shù)(normalized correlation coef-ficient,NC)評(píng)價(jià)水印的魯棒性性能。
其中,PSNR和SSIM的計(jì)算公式分別如下
(9)
(10)
式中:μx、μy分別表示圖像X和Y的均值,σx、σy分別表示圖像X和Y的方差,σxy圖像X和Y的協(xié)方差,即
(11)
(12)
(13)
式中:X和Y分別表示載體圖像和嵌入水印后的圖像,M和N分別為圖像的高度和寬度。
其中,NC的計(jì)算公式如下
(14)
式中:W和W*分別表示原始水印和提取的水印圖像,M和N分別為圖像的高度和寬度。
對(duì)嵌入水印后的圖像未攻擊的情況下,計(jì)算水印嵌入前后載體圖像的PSNR和SSIM以及提取水印NC值,衡量水印算法性能,結(jié)果見表1。
表1 未攻擊的性能指標(biāo)測(cè)試
從表1的數(shù)據(jù)可以看出,在未受攻擊時(shí),載體圖像和嵌入水印的圖像之間PSNR達(dá)到54 dB以上,而SSIM達(dá)到0.99以上,說明嵌入水印后的圖像具有較好的保真性,人眼無法察覺是否有水印嵌入,所以滿足水印的不可感知性;并且提取的水印和原始水印幾乎無差異,NC值均為1,所以也滿足水印的魯棒性。
幾種常見的攻擊測(cè)試,如剪切攻擊、高斯噪聲攻擊、椒鹽噪聲攻擊、中值濾波攻擊和旋轉(zhuǎn)攻擊,計(jì)算水印嵌入前后載體圖像的PSNR和SSIM以及提取水印的NC值,如圖4(a)~圖4(e)顯示不同攻擊下的性能評(píng)價(jià)指標(biāo)測(cè)試值。
圖4 經(jīng)不同攻擊的性能指標(biāo)測(cè)試
從圖4中的數(shù)據(jù)可以看出,在受到不同類型的攻擊時(shí),載體圖像和嵌入水印的圖像之間的PSNR值大部分都可以大于28 dB,SSIM也具有較高的值,尤其對(duì)剪切攻擊PSNR值達(dá)到55 dB以上,而SSIM值也可高達(dá)0.98以上,表明該算法具有良好的水印不可感知性。在所有攻擊下的NC值均在0.98以上,表明算法滿足水印的魯棒性。
為了進(jìn)一步說明提出的水印算法性能,選取所提出算法的Lena圖像與文獻(xiàn)[13]中Lena圖像進(jìn)行比較,選用原因是載體圖像都為灰度圖像,水印圖像都是二值圖像,在水印嵌入過程都使用了SVD變換,最后通過PSNR和NC值來衡量水印的不可感知性和魯棒性性能,見表2。
表2 Lena圖像不同攻擊下的算法性能比較
(1)不可感知性方面:從表2的數(shù)據(jù)可知,在未受攻擊時(shí)嵌入水印的PSNR值略高于文獻(xiàn)[13],但是當(dāng)遭受不同類型的攻擊時(shí)PSNR值都高于文獻(xiàn)[13]的算法,表明提出的算法具有較好的不可感知性;
(2)魯棒性方面:由表2的數(shù)據(jù)可知,不論有沒有受到攻擊,提取水印的NC都會(huì)高于文獻(xiàn)[13]中的數(shù)值,說明算法具有較好的魯棒性。
通過各種攻擊對(duì)該方案的魯棒性和安全性進(jìn)行研究,并比較分析。結(jié)果表明,所提出的圖像哈希水印算法在抵抗各種常規(guī)攻擊的能力上具有更好的魯棒性。主要因?yàn)樵谟冢撍惴▽⑤d體圖像進(jìn)行分塊DCT變換,然后將低頻系數(shù)的組合進(jìn)行SVD變換,最后將二值水印嵌入到奇異值所對(duì)應(yīng)的矩陣上,這使得當(dāng)嵌入較高強(qiáng)度的水印時(shí)也能具有較好的視覺不可感知性,并且算法的總體性能表現(xiàn)優(yōu)于文獻(xiàn)[13]。因此,所提出的算法可以有效地應(yīng)用于數(shù)字圖像的版權(quán)保護(hù)。