王 林,田啟川
(太原科技大學(xué) 電子信息工程學(xué)院,山西 太原030024)
隨著計(jì)算機(jī)技術(shù)與網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,數(shù)字作品被非法使用的情況非常普遍,嚴(yán)重侵犯了作品所有者的版權(quán)。如何在網(wǎng)絡(luò)環(huán)境中實(shí)施有效的版權(quán)保護(hù)和信息安全手段成為一個(gè)迫在眉睫的現(xiàn)實(shí)問題。數(shù)字水印的出現(xiàn)為解決這一問題提供了有效方法[1]。
數(shù)字圖像水印算法一般分為空域水印和變換域水印兩大類。空域水印是直接將水印添加到數(shù)字作品中。變換域水印算法先將原始載體作某種變換,然后把水印嵌入到載體的變換域中。相對于直接加載在原始載體產(chǎn)品數(shù)據(jù)上的空域技術(shù),這種方法具有較好的魯棒性,已經(jīng)成為一種主流的研究方向。
現(xiàn)有的大多數(shù)彩色圖像數(shù)字水印算法是基于變換域的,只有少數(shù)是在空域嵌入水印的,而且也只在彩色圖像的亮度分量中嵌入[2-3]。盡管有學(xué)者提出在彩色圖像的RGB分量的G分量中嵌入水印[4-5],但這樣也只是嵌入一個(gè)二值水印,嵌入的信息量也是非常小的,不能滿足大容量的嵌入水印信息的要求。
劉瑞楨[6-7]等較早提出了一種基于奇異值分解(SVD)的灰度圖像水印算法,隨后一些針對該算法的改進(jìn)算法相繼提出[8-11],但是通過分析發(fā)現(xiàn),該算法存在嚴(yán)重的缺陷,即從不含水印的圖像中也可能提取出水印。
本文針對參考文獻(xiàn)[7]存在的缺陷,提出一種改進(jìn)的SVD數(shù)字水印算法,并把載體圖像推廣至彩色圖像。奇異值分解與人類視覺系統(tǒng)(HVS)沒有必然的聯(lián)系,它體現(xiàn)的是圖像的內(nèi)蘊(yùn)特性。本文采用一個(gè)二值水印圖像同時(shí)向RGB三個(gè)通道嵌入水印。仿真結(jié)果表明,該算法具有良好的不可見性和魯棒性。
從線性代數(shù)的角度看,數(shù)字圖像可看作一個(gè)矩陣,據(jù)矩陣?yán)碚摽芍粋€(gè)N×N大小的矩陣A必存在SVD分解:
其中,U∈RN×N和 V∈RN×N均為正交矩陣,S∈RN×N為對角陣,H表示矩陣的轉(zhuǎn)置。
從圖像處理的角度來看,奇異值分解應(yīng)具有以下主要特性:(1)一幅圖像的奇異值具有相當(dāng)好的穩(wěn)定性,也就是說,當(dāng)圖像受到輕微的擾動時(shí),它的奇異值不會發(fā)生劇烈的改變;(2)奇異值能夠表現(xiàn)出圖像內(nèi)在的代數(shù)特性。
根據(jù)矩陣?yán)碚?,一個(gè)矩陣的奇異值是確定的,但不同矩陣可以有相同的奇異值,這是矩陣與奇異值之間的多對一性質(zhì)。
矩陣的奇異值分解(SVD)的一個(gè)優(yōu)點(diǎn)是,它不僅能處理方陣,還能處理長矩陣。本文將利用這一優(yōu)點(diǎn)進(jìn)行奇異值分解算法的嵌入,現(xiàn)在很多流行的水印算法都不能直接處理長矩陣。
劉瑞楨等人提出了一種利用SVD來嵌入水印的算法,其基本流程如下:
(1)嵌入過程。設(shè)A為載體圖像,W為水印,a為嵌入水印強(qiáng)度因子,按如下方法構(gòu)造水印圖像AW:
(2)提取過程。假設(shè)A*W為可能損壞的含水印圖像,嵌入過程 U1、V1、a、S作為密鑰,提取步驟如下:
最后,通過計(jì)算W與W*的相關(guān)度來評判水印存在否。該算法采用盲檢測,不需要原圖像。然而該算法卻存在嚴(yán)重缺陷,即在提取水印的過程中,待檢測圖像唯一被用到的信息只有其奇異值對角陣S,當(dāng)待檢測圖像與含水印圖像AW的奇異值相同時(shí),水印即可以被成功提取。但是,根據(jù)SVD分解的多對一性質(zhì),可以看到存在許多隨機(jī)選取的圖像的奇異值與AW的奇異值相同或類似,而圖像本身卻完全不同的情況。
通過以上分析可以看出,已有算法的主要問題是沒有考慮到不同圖像的奇異值可能接近甚至相同的問題,提取水印時(shí)用到的信息又并未與提取圖像本身保持一定程度的一一對應(yīng),導(dǎo)致對隨機(jī)選取的圖像和原始載體圖像誤檢測率較高。這不但降低了算法本身的可信度,而且當(dāng)算法應(yīng)用于通過版權(quán)認(rèn)證進(jìn)行某種授權(quán)等應(yīng)用環(huán)境時(shí),已有算法對隨機(jī)選取的圖像和偽造圖像的誤識別將使算法安全性大大下降。因此,本文提出一種新的基于SVD的彩色圖像的RGB域水印算法來解決以上問題。
一幅大小為M×M的RGB彩色載體圖像A,它有紅色分量 AR、綠色分量 AG、藍(lán)色分量 AB三個(gè)分量,假設(shè)水印信號是一個(gè)大小為M×M的二值圖像M1,另取兩個(gè)大小也為M×M的零矩陣 M2、M3,這樣,載體圖像和水印分別為三個(gè)二維矩陣。首先,把每一個(gè)矩陣所有對應(yīng)的行組成一個(gè)大的向量,載體和水印分別得到三個(gè)大小為1×M的塊矩陣,即載體[XR,XG,XB],水印[W1,W2,W3],最后把得到的 [XR,XG,XB]組成一個(gè)新的大小為3×M的塊矩陣X,同理得到水印塊矩陣W,實(shí)現(xiàn)了三維空間向二維的轉(zhuǎn)換。轉(zhuǎn)換過程如式(2)、式(3)所示:
(三維)(矩陣→行)(二維)
本文采用大小為 256×256×3的彩色圖像 A作為載體,水印采用大小為 128×128的二值圖像,同時(shí)在彩色圖像的RGB域內(nèi)嵌入水印。
3.2.1 水印的嵌入算法步驟
(1)將原始彩色載體圖像A的RGB 3個(gè)分量取出,得到 AR、AG、AB,為使水印圖像與載體圖像匹配,把二值水印圖像放大4倍,得到和載體圖像一樣大的水印圖像M1,并同時(shí)生成兩個(gè)大小和M1一樣大的矩陣M2、M3,得到新的水印矩陣 M1、M2、M3。
(2)按照3.1描述的方法得到載體圖像塊矩陣X,大小為 3×256;水印塊矩陣 W,大小也為 3×256。
(3)對X進(jìn)行奇異值分解,X?USVH,對每一塊矩陣進(jìn)行同樣的分解,直到所有的都進(jìn)行完為止。然后按照以下的嵌入規(guī)則把水印信號依次嵌入每一塊分解的S矩陣中。
其中,H表示矩陣的共軛轉(zhuǎn)置,a是嵌入水印強(qiáng)度因子。
(4)將得到的修改后的塊矩陣XW,取出其新的紅色分量 XWr,綠色分量 XWg,藍(lán)色分量 XWb,重構(gòu)原始圖像得到AW。
由水印的透明性知,嵌入水印的強(qiáng)度不應(yīng)過大,否則將影響載體圖像的質(zhì)量,所以a的值要盡量小。文中取 a=0.03,在奇異值分解的過程中,矩陣 U、V和 S作為用戶的密鑰,不包含任何的水印信息。
嵌入水印后得到含水印的塊矩陣XW,最后,通過重構(gòu)得到含水印的彩色圖像AW。
3.2.2 水印的提取步驟
水印的提取是嵌入的逆過程,假設(shè)接收端收到可能受到損壞的圖像為用上面的同樣的方法對處理可得到按以下步驟提取二值水印:
(1)由用戶密鑰求得原始圖像的轉(zhuǎn)換矩陣X,USVH?X。
(2)由下式求得水印塊矩陣w*:
(3)重構(gòu)水印,得到水印信號M1*。
劉瑞楨的算法只在灰度載體圖像奇異值中含有水印信息,傳輸過來的圖像只要其奇異值和原載體圖像的奇異值相同或相近便可成功提取出水印。但是,本文的算法只有原始載體彩色圖像含有密鑰信息,接收端必須得到真實(shí)的含水印的圖像才能夠恢復(fù)出原始水印。攻擊者即使得到 XW,對其進(jìn)行 SVD分解,XW?U*SW*V*H,SW*是一對角陣,并且不包含任何水印信息,因此,即使U*和V*與U和V相似,攻擊者也提取不出正確的水印,因此,本文提出的算法具有一定的安全性,能更好地保護(hù)版權(quán)所有者的合法權(quán)益。
為了驗(yàn)證本算法的性能,仿真實(shí)驗(yàn)采用256×256×3大小的baboonorg.bmp圖像作為載體圖像,水印采用大小為 128×128的寫有‘太原科大’的二值圖像。用Matlab R2010a進(jìn)行實(shí)驗(yàn)仿真,然后按照本文所提的水印嵌入算法和水印檢測算法進(jìn)行實(shí)驗(yàn)。為了驗(yàn)證算法的魯棒性,又對利用該算法嵌入水印后的原始圖像用高斯低通濾波、加入高斯噪聲、椒鹽噪聲、JEPG壓縮等方式進(jìn)行攻擊,然后用本文所提的水印檢測算法進(jìn)行檢測。
本文將視覺上可直觀認(rèn)知的二值圖像作為水印,所以人眼的主觀評價(jià)可以作為水印算法的一個(gè)評價(jià)標(biāo)準(zhǔn)。除此之外,本文還以峰值信噪比PSNR(Peak SigIlal to Noise Ratio)作為水印嵌入后圖像失真量的度量指針,并以歸一化相關(guān)系數(shù)NC作為另一個(gè)評價(jià)水印提取算法的客觀標(biāo)準(zhǔn)。
峰值信噪比(PSNR)表示信號最大可能功率和影響它的表示精度的破壞性噪聲功率的比值。對于一幅M×N的圖像,PSNR定義如下:
歸一化相關(guān)系數(shù)NC用于度量提取出來的水印與原始水印的相似度。本文使用的定義如下:
水印嵌入前后的結(jié)果分別如圖1和圖2所示。從圖中可以看出,從視覺上,水印的嵌入并不能使人覺察到圖像質(zhì)量的下降,可見該算法有較好的不可感知性。
圖1 嵌入前的載體圖像和水印圖像
圖2 嵌入后載體圖像和提取出的水印圖像
經(jīng)不同壓縮因子的壓縮后,所提取出來的水印圖像如圖3所示。
圖3 JPEG壓縮后提取出的水印圖像
對含水印圖像進(jìn)行不同壓縮因子的壓縮后,得到的PSNR和NC值如表1所示。
從表1和圖3可以看出,該算法有很好的抗JPEG壓縮性,提取出的水印在視覺上沒有嚴(yán)重的質(zhì)量下降,可以很容易地識別。
表1 對含水印圖像進(jìn)行不同壓縮因子壓縮后,得到的PSNR和NC值
對沒有嵌入水印的原始載體圖像提取水印圖像,利用本算法是提取不出任何水印信息的,如圖4和圖5所示,這說明了本算法的安全性。
圖6是對含水印圖像進(jìn)行高斯低通濾波、高斯噪聲、椒鹽噪聲和剪切等常見的圖像攻擊所提取出的水印圖像。
從圖6可看出,本算法對高斯低通濾波、高斯噪聲、椒鹽噪聲等常見的圖像攻擊具有較好的魯棒性。
本文提出了一種基于奇異值分解的彩色圖像水印算法。與已有的算法相比,該算法在彩色圖像的RGB空間域嵌入一個(gè)二值水印。此外,在接收端只需要三個(gè)密鑰就可以提取出水印。由于這些密鑰不含有任何水印信息,從任意圖像是提取不出正確的水印的,可見該算法具有一定的安全性。
另外,實(shí)驗(yàn)結(jié)果表明,該算法不僅具有較好的安全性和不可見性,而且對于常見噪聲、裁剪以及JPEG圖像壓縮處理等攻擊手段具有較強(qiáng)的魯棒性,特別是對JPEG壓縮和裁剪表現(xiàn)出較好的魯棒性。該算法對幾何攻擊等的魯棒性還有待增強(qiáng),同時(shí)其自身的安全性也有待提高,這些都是需要進(jìn)一步研究和解決的問題。
圖6 圖像進(jìn)行各種常見處理后提取水印圖像的實(shí)驗(yàn)結(jié)果
[1]金聰.數(shù)字水印理論與技術(shù)[M].北京:清華大學(xué)出版,2008.
[2]程衛(wèi)東,劉紅梅.利用亮度分量的彩色圖像信息隱藏算法[J].中山大學(xué)學(xué)報(bào)(自然科學(xué)版),2001,40(5):47-51.
[3]VOYATZIS G,PITAS I.Chaotic watermarks for embedding in the spatial digital image domain[J].Proceedings of ICIP′98,1998,10.
[4]劉連山,李人厚,高琦.一種基于彩色圖像綠色分量的數(shù)字水印嵌入方法[J].西安交通大學(xué)學(xué)報(bào),2004,38(12):1256-1259.
[5]NIKOLAIDIS N, PITAS I.Robust image watermarking in the spatial domain[J].Signal Processing,1998,66(3):385-403.
[6]Liu Ruizhen, Tan Tienniu.An SVD-based watermarking scheme for protecting rightful ownership[J].IEEE Transactions on Multimedia,2002,4(1):121-128.
[7]劉瑞楨,譚鐵牛.基于奇異值分解的數(shù)字圖像水印方法[J].電子學(xué)報(bào),2001,29(2).
[8]HUANG F J,GUAN Z H.A hybrid SVD-DCT watermarking method based on LPSNR[J].Pattern Recognition Letters,2004,25:1769-1775.
[9]周波,陳健.基于奇異值分解的、抗幾何失真的數(shù)字水印算法[J].中國圖象圖形學(xué)報(bào),2004,9(4):506-512.
[10]孫銳,孫洪,姚天任.基于奇異值分解的半脆弱水印技術(shù)算法[J].電路與系統(tǒng)學(xué)報(bào),2002,7(3):62-65.
[11]CHANG C C,TSAI P Y,LIN C C.SVD-based digital image watermarking scheme[J].Pattern Recognition Letters,2005,26:1577-1586.