王琳娟 李君霞
摘 要: 通過(guò)仿真實(shí)驗(yàn)和K-S假設(shè)檢驗(yàn)驗(yàn)證了離散余弦變換(DCT)具有“能量集中”的特點(diǎn)和奇異值分解(SVD)具有抗旋轉(zhuǎn),抗鏡像,抗轉(zhuǎn)置,抗剪切的特點(diǎn)。為了充分利用這些特點(diǎn),針對(duì)大多算法在嵌入水印時(shí)需要調(diào)制嵌入的問(wèn)題,提出一種基于分塊的多級(jí)DCT和SVD的魯棒性水印算法,該算法在嵌入水印時(shí)進(jìn)行多級(jí)DCT變換和SVD分解、采用直接替換方式嵌入,設(shè)置多重密鑰以提高算法的魯棒性。仿真實(shí)驗(yàn)及分析表明,該算法抗噪、抗壓縮和抗幾何攻擊的能力都較強(qiáng),是一種強(qiáng)魯棒性算法。
關(guān)鍵詞: 數(shù)字水印; SVD; 多級(jí)DCT; 分塊
中圖分類(lèi)號(hào):TP309.7 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2017)09-51-05
Abstract: By simulation and Kolmogorov-Smirnov (K-S) hypothesis test, it is confirmed that the discrete cosine transform (DCT) has the characteristics of energy concentration and the singular value decomposition (SVD) has the characteristics of anti-rotation, anti-mirror, anti-transposition, anti-cut etc. To take full advantage of all characteristics of DCT and SVD and to overcome the fault that most algorithms need embedding watermarks by modulation technique, a robust watermarking algorithm based on block-divided multi-level DCT and SVD is proposed. In order to improve the robustness of the algorithm, multi-level DCT and SVD, and the direct replacement method are used to embed the watermarks. In addition, multiple keys are set for extracting the watermarks. The simulation results show that the algorithm has a stronger robustness against noises, compress and geometric attacks, and it's a strong robust algorithm.
Key words: digital watermarking; SVD; multiple-level DCT; block-divided
0 引言
隨著信息的數(shù)字化、網(wǎng)絡(luò)化,數(shù)字產(chǎn)品的發(fā)布和傳播越來(lái)越便捷,它給人們生活帶來(lái)方便的同時(shí),也帶來(lái)了信息的非法復(fù)制、非法篡改、版權(quán)保護(hù)等安全問(wèn)題。數(shù)字水印技術(shù)是實(shí)現(xiàn)數(shù)字產(chǎn)品安全保護(hù)的重要手段之一[1-4]。該技術(shù)是從信息隱藏技術(shù)發(fā)展而來(lái)的,是數(shù)字信號(hào)處理,圖像處理,密碼學(xué)應(yīng)用,算法設(shè)計(jì)等學(xué)科的交叉領(lǐng)域。目前,數(shù)字水印算法主要有空域算法和變換域算法[5-6],本文提出一種變換域算法。
首先分析了離散余弦變換的特點(diǎn),指出并驗(yàn)證了離散余弦變換所具有能量集中的特點(diǎn);其次用K-S假設(shè)檢驗(yàn)分析驗(yàn)證了奇異值分解具有抗幾何攻擊的特點(diǎn);然后針對(duì)多數(shù)算法需要調(diào)制嵌入水印的問(wèn)題[7-8],提出一種基于分塊的多級(jí)離散余弦變換和奇異值分解的水印簡(jiǎn)單算法,該算法在嵌入水印時(shí)采用直接替換的策略,算法實(shí)現(xiàn)簡(jiǎn)單且設(shè)置了多重密鑰,安全性高;最后給出了仿真結(jié)果和性能分析,結(jié)果表明,本文算法抗各種攻擊能力強(qiáng),具有很強(qiáng)的魯棒性。
1 離散余弦變換(DCT)
稱(chēng)B(p,q)為A的DCT系數(shù)。圖1給出了matalbR2012自帶圖像autumn.tif和office_3.jpg這兩副圖像的DCT系數(shù)矩陣的圖像顯示,圖1(a)為原始圖像,圖1(b)為DCT系數(shù)的灰度顯示,圖1(c)為DCT系數(shù)的色圖顯示。
從圖1中可以看出,DCT系數(shù)是具有能量集中的特點(diǎn)(集中在左上角低頻部分),可用于圖像壓縮,且壓縮比高,誤碼率低,與國(guó)際數(shù)據(jù)壓縮標(biāo)準(zhǔn)(JPEG、MPEG)兼容[9-10]。
對(duì)圖1(a)中兩副圖像進(jìn)行DCT編碼壓縮和解碼,分別用DCT變換后左上角的10/64、1/64的系數(shù)恢復(fù)得到的壓縮后的圖像(如圖2所示),即圖2第一行用10/64的DCT系數(shù)復(fù)原圖像,圖2第二行用1/64的DCT系數(shù)復(fù)原圖像??梢钥闯?,圖2第一行復(fù)原效果圖與原圖效果相當(dāng),圖2第二行復(fù)原效果圖與原圖相比有些模糊,但復(fù)原效果還可以,基本上圖像細(xì)節(jié)都可以保留。這就說(shuō)明了DCT變換可用于圖像壓縮,且壓縮比較高,將其應(yīng)用于圖像的數(shù)字水印技術(shù),可使含水印圖像具有一定的抗壓縮能力。
2 奇異值分解及幾何攻擊分析
2.1 奇異值分解定義
圖像的奇異值分解是將圖像看成一個(gè)矩陣進(jìn)行的一種正交矩陣分解。設(shè)圖像A是大小為M*N的實(shí)矩陣,則必然存在一個(gè)M*M階的正交矩陣Q和一個(gè)N*N的正交矩陣R,使:
其中,矩陣H是一個(gè)M*N的矩陣,∑是一個(gè)對(duì)角陣,稱(chēng)式⑵為A的奇異值(SVD)分解式,∑的主對(duì)角元素為A的奇異值。若r為A的秩,則,且,即r為A的非零奇異值的個(gè)數(shù)。另外,奇異值不要求矩陣是方陣。endprint
文獻(xiàn)[11,12]指出圖像的奇異值具轉(zhuǎn)置、旋轉(zhuǎn)、位移、放大等不變性,因此將其應(yīng)用于圖像的水印處理時(shí)可使水印信息具有良好抗幾何失真性。
2.2 奇異值幾何攻擊分析
幾何攻擊是一種常見(jiàn)的圖像攻擊方式,若能從攻擊后的圖像中有效的提取出水印信息,則說(shuō)明該數(shù)字水印算法具有一定的魯棒性。文中從常見(jiàn)的幾何攻擊來(lái)分析奇異值特性。實(shí)驗(yàn)選取matlabR2012自帶圖像cameraman.tif、autumn.tif、office_3.jpg、forest.tif四幅圖像轉(zhuǎn)換成灰度圖像作為實(shí)驗(yàn)圖像,對(duì)這四幅圖像進(jìn)行轉(zhuǎn)置、垂直鏡像、旋轉(zhuǎn)1度、旋轉(zhuǎn)3度、旋轉(zhuǎn)10度、橫向放大2倍、剪切等攻擊,鑒于篇幅所限,本文只給出cameraman.tif的幾何攻擊示意圖(如圖3)。求出原始圖像及攻擊后圖像的非零奇異值進(jìn)行分析比較,發(fā)現(xiàn)轉(zhuǎn)置、鏡像攻擊后的奇異值相同,橫向擴(kuò)展后的奇異值放大倍,剪切攻擊后奇異值近似。為了進(jìn)一步比較奇異值的差異,對(duì)攻擊后圖像的奇異值與原圖像的奇異值進(jìn)行Kolmogor-ov Smirnov假設(shè)檢驗(yàn),檢驗(yàn)其是否來(lái)自同一分布,假設(shè)各種攻擊后的奇異值與原圖像的奇異值來(lái)自同一分布,檢驗(yàn)結(jié)果如表1(說(shuō)明:文中的檢驗(yàn)都是在顯著性水平為0.5下檢驗(yàn),且對(duì)橫向擴(kuò)展后的奇異值除以與原圖像進(jìn)行檢驗(yàn))。表2給出了接受假設(shè)的概率,表中h=0表示接受假設(shè),表示服從同一分布,h=1表示拒絕假設(shè)。
從表1和表2可以看出,轉(zhuǎn)置、鐿像后的奇異值與原圖像奇值服從同一分布,概率為100%,也就是說(shuō),奇異值具有抗轉(zhuǎn)置、抗鏡像性;橫向或縱向擴(kuò)大L倍的奇異值除以后與原圖像也服從同一分布,概率也為100%,即說(shuō)明奇異值具有抗伸縮性;旋轉(zhuǎn)后的圖像隨著旋轉(zhuǎn)角度的增加其奇異值與原圖像奇異值服從同一分布的概率在減少,當(dāng)旋轉(zhuǎn)到10?時(shí),前三幅圖像已經(jīng)拒絕假設(shè),即旋轉(zhuǎn)后圖像的奇異值與原圖像奇異值不是來(lái)自同一分布,也就說(shuō)明奇異值具有一定的抗旋轉(zhuǎn)性;剪切后的圖像也隨著剪切部分的增加其奇異值與原圖像的奇異值服從同一分部的概率在減小,說(shuō)明奇異值具有一定的抗剪切性,當(dāng)剪切部分占所有比例較小時(shí),奇異值基本不變。
3 水印嵌入及提取
上文中指出DCT具有能量集中的特點(diǎn),為了更好地利用這一特點(diǎn),文獻(xiàn)[7]提出了一種基于分塊的多級(jí)離散余弦變換的數(shù)字水印算法,該算法對(duì)原始載體圖像進(jìn)行多級(jí)DCT變換,然后選擇合適的系數(shù)嵌入水印,并通過(guò)實(shí)驗(yàn)分析指出算法在抗JPEG壓縮、抗高斯噪聲攻擊等方面具有更好的魯棒性。為了充分利用多級(jí)DCT的優(yōu)點(diǎn)和SVD的抗轉(zhuǎn)置、抗鏡像、抗旋轉(zhuǎn)、抗剪切的優(yōu)點(diǎn),本文設(shè)計(jì)了一種基于分塊的多級(jí)DCT和SVD的水印嵌入和提取算法。同時(shí),為了提高水印的安全性[13],本文將水印信息隨機(jī)地嵌入到每個(gè)DCT分塊中,并且嵌入到每個(gè)分塊的什么位置也是隨機(jī)的,嵌入算法和提取算法具體描述如下。
3.1 嵌入算法
設(shè)載體圖像為I,大小為M×M;水印圖像為J,大小為N×N。
⑴ 對(duì)載體圖像I進(jìn)行分塊,設(shè)每塊大小為K1×K1(K1?M/N),對(duì)每個(gè)分塊進(jìn)行L級(jí)DCT變換。文中以L(fǎng)=2為例,首先對(duì)每個(gè)分塊進(jìn)行第一級(jí)DCT變換,然后再選擇每塊左上角K2×K2系數(shù)對(duì)每塊進(jìn)行第二級(jí)DCT變換,得到變換后的系數(shù)圖像A1。
⑵ 將變換后的系數(shù)圖像A1進(jìn)行SVD分解得到正交矩陣U1、V1和奇異值矩陣S1。
⑶ 設(shè)置隨機(jī)種子seed1,產(chǎn)生個(gè)隨機(jī)整數(shù),將水印信息隨機(jī)的分配到A1的每個(gè)分塊中。
⑷ 設(shè)置隨機(jī)種子seed2,產(chǎn)生嵌入時(shí)塊中隨機(jī)位置,將水印信息嵌入其中。
⑸ 設(shè)置嵌入強(qiáng)度α,將水印圖像J嵌入到由seed1和seed2產(chǎn)生的隨機(jī)位置中,得到含有水印信息的系數(shù)圖像A2。(說(shuō)明:這里嵌入時(shí)采用直接賦值替換的方式嵌入,例如J(i,j)的嵌入位置為A2(x,y)時(shí),嵌入方式為:A2(x,y)=α*J(i,j)
⑹ 將新的矩陣A2進(jìn)行SVD分解得到正交矩陣U2、V2和奇異值矩陣S2。
⑺ 令,A3即為嵌入水印信息后的系數(shù)圖像。
⑻ 將A3進(jìn)行分塊,每塊進(jìn)行二級(jí)反DCT變換得到含水印圖像B。
3.2 提取算法
⑴ 將B進(jìn)行分塊,每塊大小為K1×K1,首先對(duì)每塊進(jìn)行第一級(jí)DCT變換,然后再取每塊左上角K2×K2的系數(shù)進(jìn)行第二級(jí)DCT變換,得到B1。
⑵ 對(duì)B1進(jìn)行SVD分解得到正交矩陣U3、V3和奇異值矩陣S3。
⑶ 令,其中B2即為含有水印信息的系數(shù)矩陣。(其中,U2,V2在嵌入過(guò)程中產(chǎn)生。)
⑷ 設(shè)置隨機(jī)種子seed1和seed2,得出水印信息W(i,j)所在的塊和塊中的位置。
⑸ 設(shè)置嵌入強(qiáng)度α,從B2中提取水印信息W。(說(shuō)明:提取方式和嵌入類(lèi)似,假如W(i,j)對(duì)應(yīng)的水印信息在B2(x,y)處,則W(i,j)=B2(x,y)/α。
4 仿真結(jié)果及分析
為了說(shuō)明實(shí)驗(yàn)的有效性,本文以圖4(a)為載體圖像I,圖像大小為512*512,以圖4(b)為水印圖像J(二值圖像),圖像大小為64*64,取K1=8,K2=7,α=35,seed1=25,seed2=10.5,由seed2產(chǎn)生隨機(jī)位置位于A(yíng)2的每個(gè)分塊的最左下角三個(gè)位置之一。
這里用峰值信噪比(PSNR)、相關(guān)系數(shù)(NC)和人眼感知水印是否存在來(lái)評(píng)價(jià)水印嵌入和提取的效果,其中峰值信噪比和相關(guān)系數(shù)是定量的,而人眼感知?jiǎng)t是定性的。
為了說(shuō)明第3節(jié)所述算法(簡(jiǎn)稱(chēng)本文算法),本文還設(shè)計(jì)了僅基于分塊的多級(jí)DCT算法(簡(jiǎn)稱(chēng)算法1)和僅基于分塊的SVD算法(算法2),算法1的基本思想是首先對(duì)載體圖像進(jìn)行分塊并對(duì)每一塊進(jìn)行多級(jí)DCT變換,然后將水印信息嵌入其中,最后對(duì)每一分塊進(jìn)行多級(jí)反DCT變換得到含水印的圖像。算法2的基本思想是首先對(duì)載體圖像進(jìn)行異值分解得到兩個(gè)正交矩陣Q、R和奇異值矩陣H,并將水印信息隨機(jī)地嵌入到載體圖像的每一個(gè)塊中并對(duì)嵌入信息后的載體進(jìn)行奇異值分解得到兩個(gè)正交矩陣Q1、R1和奇異值矩陣H1,最后用Q、R1和H根據(jù)文中式⑷得到含水印的圖像。說(shuō)明:為了使算法具有可比較性,所提到的算法在嵌入時(shí)都采用相同的嵌入方法和嵌入強(qiáng)度,隨機(jī)塊位置和塊中位置都采用相同的隨機(jī)種子,并且分塊的大小及離散余弦變換的級(jí)數(shù)也都相同。endprint
表3給出了不同α采用三種算法的PNSR值和NC值,從表中可以看出峰值信噪比對(duì)于相同的α本文算法都高于算法1和算法2,且在嵌入強(qiáng)度較低時(shí),算法2提取出來(lái)的水印圖像比算法1和本文算法好,其N(xiāo)C值基本等于1。隨著嵌入強(qiáng)度的增大,本文算法和算法2的NC值也都基本等于1,都比算法1高,但算法1的NC值也接近于1。整體來(lái)說(shuō),本文算法嵌入水印后的圖像透明性好,在未受任何攻擊下提取出來(lái)的水印信息也接近于原水印圖像。圖6分別為本文算法、算法1、算法2在嵌入強(qiáng)度α=35時(shí)得到的含水印圖像及提取出來(lái)的水印信息。從視覺(jué)上看,三種算法得到的含水印圖像人眼都感知不到水印的存在,且基本上在未受任何攻擊下都能較好地提取出水印信息,NC值都接近于1。
為了驗(yàn)證算法的有效性,對(duì)圖5中三種算法得到的含水印圖像進(jìn)行各種攻擊見(jiàn)表4。從表4中可以看出,算法1和算法2都有一定的抗高斯低通濾波、抗JPEG壓縮、抗噪能力,算法1不具備抗剪切和抗旋轉(zhuǎn)的能力,算法2具備一定的抗剪切和抗旋轉(zhuǎn)能力,而本文算法對(duì)各種攻擊其性能都高于算法1和算法2,而且對(duì)于其中的一些攻擊提取出來(lái)的水印和原水印圖像幾乎完全一樣。實(shí)驗(yàn)中還加大了各種攻擊力度來(lái)驗(yàn)證本文算法的有效性,鑒于篇幅限制,未在表2中全部給出。實(shí)驗(yàn)表明,文中算法具有較強(qiáng)的抗噪、抗壓縮和抗幾何攻擊能力,是一種強(qiáng)魯棒性算法。
5 總結(jié)
本文提出了一種基于分塊的多級(jí)DCT和SVD的水印嵌入和提取算法,嵌入時(shí)設(shè)置兩個(gè)隨機(jī)種子,一個(gè)用于產(chǎn)生嵌入時(shí)的隨機(jī)分塊,另一個(gè)用于產(chǎn)生嵌入時(shí)分塊中的隨機(jī)位置,且采用最簡(jiǎn)單的直接替換嵌入方式。實(shí)驗(yàn)表明,本文算法是一種有效的水印算法,在進(jìn)行各種攻擊后都能較好的提取出水印,具有較強(qiáng)的抗噪、抗壓縮和抗幾何攻擊能力。但是,不足之處在于提取時(shí)需要載體圖像的部分奇異值信息,這也是今后算法需要改進(jìn)的地方。
參考文獻(xiàn)(References):
[1] 項(xiàng)世軍,羅欣榮,石書(shū)協(xié).一種同態(tài)加密域圖像可逆水印算法[J].
計(jì)算機(jī)學(xué)報(bào),2016.39(3):571-581
[2] 任小康,范麗,白勇峰.一種基于DWT-SVD的彩色圖像水印
嵌入方法[J].微電子學(xué)與計(jì)算機(jī),2011.28(1):113-115
[3] 馬婷,高大鵬,陳農(nóng)田.復(fù)合彩色數(shù)字水印圖像抗攻擊優(yōu)化仿
真[J].計(jì)算機(jī)仿真,2016.33(6):419-422
[4] 陳寧,馬會(huì)杰.基于Contourlet和SVD的魯棒雙水印算法[J].
計(jì)算機(jī)應(yīng)用研究,2012.29(7):2700-2702
[5] 韓紹程,王蕊,張兆寧.基于BCS和SVD的混合變換域雙彩色
圖像水印算法[J].計(jì)算機(jī)工程與設(shè)計(jì),2016.37(7):1841-1846
[6] Rania A.Ghazy, Alaa M.Abbas, Nayel Al-Zubi.
Block-based SVD image watermarking in spatial and transform domain[J].International Journal of Electronics,2015.102(7):1091-1113
[7] 肖俊,王穎.基于多級(jí)離散余弦變換的魯棒數(shù)字水印算法[J].
計(jì)算機(jī)學(xué)報(bào),2009.5(32):1055-1061
[8] Mohammad Reza Akbarzadeh Lari,Sedigheh Ghofrani,Des
Mclernon. Using Curvelet transform for watermarking based on amplitude modulation. Signal[J].Image and Video Processing,2014.8(4):687-697
[9] 劉麗,周亞建,張斌.基于DCT和SVD的QR碼數(shù)字水印算法[J].
紅外與激光工程,2012.42(S2):304-311
[10] 謝斌,劉珊,任克強(qiáng).基于DCT的自適應(yīng)多重彩色圖像盲水
印算法[J].電視技術(shù),2014.38(9):21-24
[11] 李國(guó)明,李象霖.采用Torus映射與SVD變換的圖像數(shù)字水
印方法[J].計(jì)算機(jī)仿真,2011.28(6):125-129
[12] 艾麗華,陳青.一種新的基于奇異值分解的小波域盲水印[J].
計(jì)算機(jī)應(yīng)用研究,2011.28(3):1155-1157
[13] 朱香衛(wèi),肖亮,吳惠中.數(shù)字圖像水印性能評(píng)估指標(biāo)的研究[J].
通信技術(shù),2009.1(42):256-258endprint