盧洲 胡平
摘 要:以離散余弦變換(DCT)為基礎(chǔ),針對(duì)產(chǎn)品版權(quán)保護(hù)問(wèn)題提出了一種改進(jìn)的數(shù)字水印算法。其基本思想是根據(jù)宿主圖像的特征,在不同區(qū)域分別嵌入可見(jiàn)水印和不可見(jiàn)水印,用canny算子對(duì)宿主圖像進(jìn)行邊緣檢測(cè),并結(jié)合紋理和亮度特征,將可見(jiàn)水印圖像分塊嵌入宿主圖像中。嵌入不可見(jiàn)水印時(shí),首先對(duì)二值不可見(jiàn)水印圖像進(jìn)行混沌序列加密等預(yù)處理,再根據(jù)對(duì)宿主圖像離散余弦變換(DCT)的結(jié)果,自適應(yīng)地進(jìn)行嵌入。實(shí)驗(yàn)結(jié)果表明,本算法生成的含水印圖像既可保持宿主圖像的質(zhì)量,又能使可見(jiàn)水印細(xì)節(jié)可見(jiàn)。此外,不可見(jiàn)水印對(duì)宿主圖像影響較小并具有較好的魯棒性。
關(guān)鍵詞:DCT;版權(quán)保護(hù);版權(quán)通知;Canny算子;自適應(yīng)
中圖分類(lèi)號(hào):TP309 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-2163(2015)01-
Abstract: An improved digital watermarking algorithm about copyright protection of products is presented based on the discrete cosine transform (DCT). The basic idea is based on the characteristics of the host image, visible and invisible watermark are embedded in different regions. By using canny edge detection operator combined with the texture and brightness characteristics of the host image, the visible watermark image is embedded into the host image block by block. When embedded the invisible watermark, firstly the binary invisible watermark image is preprocessed via encrypting chaotic sequence etc. And then according to the results of the discrete cosine transform (DCT) of the host image, watermark image is embedded adaptively. The experimental results show that the watermark image generated by the proposed algorithm can not only maintain the quality of the host image, but also make the visible watermark details be seen clearly. In addition, invisible watermark has less effect on the host image and has good robustness.
Key words: DCT; Copyright Protection; Copyright Notification; Canny Operator; Adaptive
0引 言
計(jì)算機(jī)技術(shù)的飛速發(fā)展以及信息媒體的數(shù)字化,極大地提高了信息表達(dá)的效率和準(zhǔn)確性,但是數(shù)字產(chǎn)品的版權(quán)保護(hù)成為迫切需要解決的實(shí)際問(wèn)題。數(shù)字水印技術(shù)作為信息隱藏技術(shù)領(lǐng)域的一個(gè)重要分支,在如今的計(jì)算機(jī)、自動(dòng)化、信息等領(lǐng)域有著廣闊的應(yīng)用前景。人們可以在數(shù)字載體中嵌入數(shù)字、序列號(hào)、文字、圖像標(biāo)志等版權(quán)信息,這些信息能起到較好的版權(quán)保護(hù)、信息隱藏、數(shù)據(jù)文件的真?zhèn)舞b別等作用。根據(jù)水印的可見(jiàn)性,分為可見(jiàn)水印和不可見(jiàn)水印??梢?jiàn)水印是肉眼可以看見(jiàn)的,不可見(jiàn)水印指將水印信號(hào)嵌入到數(shù)字圖像、音頻或視頻中,雖然表面上很難發(fā)覺(jué)到這些數(shù)字作品的變化,但是如果發(fā)生版權(quán)糾紛時(shí),即可從這些數(shù)字作品中提取水印,來(lái)證明數(shù)字作品的版權(quán),而其與可見(jiàn)水印相比應(yīng)用更加廣泛。
1 數(shù)字水印算法綜述
基于DCT域的數(shù)字水印算法[1],根據(jù)對(duì)宿主圖像DCT的計(jì)算方法分為兩大類(lèi):一類(lèi)是直接對(duì)整幅圖像進(jìn)行DCT計(jì)算,選取合適頻段的系數(shù),嵌入水印。另一類(lèi)是,首先將整幅圖像分成塊,對(duì)每一塊分別進(jìn)行DCT計(jì)算,在每一塊中選取合適頻段的系數(shù),并將水印信息分散嵌入到每一塊所選取的DCT系數(shù)中[2-3]。
二維離散余弦變換不但能夠?qū)D像的主要能量集中到低中頻系數(shù)上,而且使得引起圖像的塊效應(yīng)達(dá)到最小,能夠?qū)崿F(xiàn)能量集中和計(jì)算復(fù)雜性的良好折衷。離散余弦變換的實(shí)變換特性,良好的能量壓縮能力和解相關(guān)能力,可以通過(guò)快速算法計(jì)算等優(yōu)點(diǎn)使其在數(shù)字水印嵌入算法的研究中具有強(qiáng)大的吸引力。
本文提出的水印算法如圖1所示。對(duì)于灰度圖像,可見(jiàn)水印的嵌入和不可見(jiàn)水印圖像都是在其DCT域中進(jìn)行的。根據(jù)canny算子計(jì)算出宿主圖像的邊緣信息并結(jié)合其紋理、亮度等信息自適應(yīng)地嵌入可見(jiàn)水印。而不可見(jiàn)水印的嵌入[4]同樣利用了上述宿主圖像的信息,在選取了合適的位置后實(shí)現(xiàn)自適應(yīng)嵌入。在提取不可見(jiàn)水印的過(guò)程中,根據(jù)不可見(jiàn)水印嵌入時(shí)用到的密鑰提取水印信息,然后將提取出的信息與原始水印信息作對(duì)比,即可判斷出可疑圖像中是否含有不可見(jiàn)水印。
2可見(jiàn)水印嵌入算法
2.1嵌入準(zhǔn)則
取大小為的灰度圖像為原始宿主圖像和大小為的二值圖像為可見(jiàn)水印圖像。首先在宿主圖像中選取水印圖像大小的區(qū)域作為嵌入?yún)^(qū)域,該部分圖像取為并分成互不重疊的子塊(k=0,1,…),然后對(duì)各個(gè)子塊進(jìn)行DCT變換得到。數(shù)字水印算法中最常見(jiàn)的水印嵌入準(zhǔn)則有線性加法、乘法和量化索引調(diào)制??紤]到可見(jiàn)水印的特性,本文中采用線性加法嵌入準(zhǔn)則,公式為:
其中,和分別表示宿主圖像和水印圖像的第子塊的DCT系數(shù);表示水印嵌入后圖像的第子塊的DCT系數(shù);是子塊的嵌入系數(shù)。
因此,該算法的關(guān)鍵在于的設(shè)計(jì)。要取得合適的,必須要結(jié)合人類(lèi)視覺(jué)系統(tǒng)(HVS)特性。算法的目標(biāo)為既要滿足可見(jiàn)水印細(xì)節(jié)部分可見(jiàn)的要求,又可自適應(yīng)地根據(jù)宿主圖像特性嵌入水印,在提高水印的魯棒性和安全性同時(shí),還要保證不降低宿主圖像的質(zhì)量。水印算法如圖1所示。
2.2 嵌入系數(shù)
從人類(lèi)視覺(jué)系統(tǒng)HVS的特點(diǎn)出發(fā),為保證不降低宿主圖像的質(zhì)量和可見(jiàn)水印細(xì)節(jié)部分的可見(jiàn)性,對(duì)原始宿主圖像各個(gè)分塊進(jìn)行分析。在此前提下,有三個(gè)主要方面決定了嵌入系數(shù)。具體來(lái)說(shuō),這三個(gè)方面可做如下表述:
其一,圖像亮度的影響。原始圖像的背景亮度越強(qiáng),則人眼對(duì)其中的像素改變就不敏感,這使得水印的可見(jiàn)性不強(qiáng),應(yīng)該加強(qiáng)水印嵌入的強(qiáng)度。反之,如果原始圖像背景亮度較弱,則應(yīng)該降低水印嵌入的強(qiáng)度以保證原始圖像的質(zhì)量。對(duì)原始宿主圖像進(jìn)行分塊DCT變換,得到的系數(shù)矩陣。根據(jù)DCT變換的特點(diǎn),經(jīng)變換后各個(gè)子塊的能量集中到直流分量中。而直流分量代表了子塊的亮度信息,該值越大,子塊的背景亮度越強(qiáng),則嵌入系數(shù)就應(yīng)該越大。
其二,邊緣信息的影響。圖像的邊緣信息可以用來(lái)衡量圖像的復(fù)雜度和對(duì)比度,邊緣點(diǎn)密度高,則說(shuō)明其對(duì)比度高,且圖像復(fù)雜,在這些區(qū)域往往包含有重要信息。本算法中用canny算子對(duì)原始宿主圖像的各個(gè)分塊進(jìn)行邊緣檢測(cè),根據(jù)邊緣點(diǎn)密度信息決定嵌入的強(qiáng)度。
其三,紋理強(qiáng)度的影響。在圖像中紋理較強(qiáng)的區(qū)域,人的視覺(jué)系統(tǒng)對(duì)圖像的失真和噪聲的敏感度較低,故視覺(jué)門(mén)限明顯高于其他區(qū)域。對(duì)于紋理強(qiáng)度,可以用灰度值方差來(lái)衡量。所以計(jì)算各個(gè)子塊的平均灰度值,進(jìn)而求得各個(gè)子塊的灰度值方差,再由灰度值方差決定嵌入的強(qiáng)度。
若以表示各個(gè)子塊的亮度的歸一化值,表示各個(gè)子塊的邊緣密度的歸一化值,表示各個(gè)子塊的紋理強(qiáng)度的歸一化值。數(shù)學(xué)表示為:
其中,為各個(gè)子圖像塊的亮度值,和分別表示子塊中亮度最大和最小的值;為各個(gè)子塊的邊緣密度值,和分別表示圖像塊中邊緣密度最大和最小邊緣密度值;為各個(gè)子塊的紋理強(qiáng)度值,和分別表示圖像塊中紋理強(qiáng)度最大和最小的值。
2.3 嵌入步驟
在嵌入可見(jiàn)水印之前,首先在宿主圖像中選取和水印圖像同樣大小的區(qū)域并取為,把選擇的區(qū)域和水印圖像分成互不重疊的子塊、,然后分別對(duì)各個(gè)子塊進(jìn)行DCT變換得到、。然后計(jì)算得到各個(gè)子塊的嵌入系數(shù),再根據(jù)式(1)得到嵌入水印后的各個(gè)子塊的DCT系數(shù),最后對(duì)各個(gè)子塊進(jìn)行IDCT變換獲取嵌入水印的圖像。
3 不可見(jiàn)水印的嵌入和提取算法
3.1嵌入準(zhǔn)則
對(duì)于不可見(jiàn)水印的嵌入,重點(diǎn)要考慮的是保證其不可見(jiàn)性和魯棒性。鑒于對(duì)這兩個(gè)性質(zhì)的要求,本文提出了一種自適應(yīng)的嵌入算法。為了既滿足水印圖像的不可感知性,又滿足對(duì)各種攻擊的魯棒性。根據(jù)離散余弦變換后的參數(shù)特性,低頻系數(shù)具有較大的值,決定了圖像的質(zhì)量和視覺(jué)效果,而高頻系數(shù)較易被低通濾波去掉,穩(wěn)定性不好,所以選擇中頻分量并用加密的不可見(jiàn)數(shù)字水印序列對(duì)其進(jìn)行調(diào)制[5]。
3.2加密算法
為了提高水印圖像應(yīng)對(duì)各種攻擊的魯棒性,首先對(duì)其進(jìn)行加密處理。加密后的二值水印圖像類(lèi)似于隨機(jī)二值序列,隱蔽性好,不易被察覺(jué),同時(shí),有助于提高水印系統(tǒng)的安全性。通過(guò)圖像加密,如果攻擊者沒(méi)有加密的密鑰,水印也很難被正確的檢測(cè)出來(lái)。
目前水印加密技術(shù)有很多種,主要有Arnold變換、幻方、Hilbert曲線、混沌映射等。而Arnold變換和混沌映射是最常用的兩種方法。本文中采用混沌映射中的Logistic映射法,其定義形式如下:
初始值選為,這樣一來(lái)得到的序列S的取值范圍是單極性的,且。一般的取值選為接近4的實(shí)數(shù)。為了將生成的實(shí)數(shù)序列S轉(zhuǎn)化成二值序列,可以采用設(shè)置閾值的方法。
3.3嵌入過(guò)程
嵌入之前,首先由水印圖像生成混沌水印。文章提出了一種改進(jìn)的自適應(yīng)算法[6-8],首先將原始宿主圖像分成的互不重疊的子塊,然后對(duì)各個(gè)子塊進(jìn)行DCT變換,選取每一塊圖像子塊DCT變換后的(3,3)和(4,4)位置作為具體的水印信息嵌入位。選擇要嵌入水印信息的DCT中頻系數(shù),,計(jì)算其周?chē)牧鶄€(gè)DCT系數(shù);;;;;,并計(jì)算這六個(gè)系數(shù)的均值。
嵌入時(shí),在每一塊圖像塊中嵌入一位水印信息,選取加密后的水印的比特位。首先對(duì)各個(gè)分塊進(jìn)行DCT變換,在每一個(gè)系數(shù)矩陣中選取上文提到的六個(gè)系數(shù),并計(jì)算相應(yīng)的均值再比較該值和、的大小。如果=1且在、之間,則不用修改DCT系數(shù),否則修改或者,使的值介于、之間,即(或者)=;如果=0且在、之間,則通過(guò)修改或者,(或者)=,使值要么大于和或者小于和。否則不用修改DCT系數(shù)。嵌入水印后再進(jìn)行DCT變換得到包含水印的原始圖像。
每個(gè)子塊的嵌入強(qiáng)度是自適應(yīng)的,在嵌入可見(jiàn)水印的時(shí)候已經(jīng)討論了亮度和紋理的影響,而在嵌入不可見(jiàn)水印時(shí)也同樣需要將兩者考慮在內(nèi)。所以令:
如上文所述,表示各個(gè)子塊的亮度的歸一化值,表示各個(gè)子塊的紋理強(qiáng)度的歸一化值,是各個(gè)子塊的不可見(jiàn)水印嵌入系數(shù)。
3.4提取過(guò)程
水印的提取過(guò)程和嵌入過(guò)程相反[9],首先對(duì)包含水印的圖像進(jìn)行分塊DCT變換。然后得到六個(gè)系數(shù)值并計(jì)算得到其對(duì)應(yīng)的均值。比較、與的大小,以介于和之間代表信息“1”,其他的情況代表信息“0”。將“1”、“0”序列排成一維序列,根據(jù)二維水印的大小轉(zhuǎn)換為二維水印進(jìn)而對(duì)進(jìn)行解密,便可以恢復(fù)出水印圖像。
4實(shí)驗(yàn)與結(jié)果分析
選取大小的灰度lena圖像為原始宿主圖像,大小的二值圖像為可見(jiàn)水印圖像,大小的二值圖像為不可見(jiàn)水印圖像。
4.1可見(jiàn)水印實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)結(jié)果如圖2所示。
可以看出,直方圖分布變化不大, 且更加平滑集中, 說(shuō)明水印和原圖的統(tǒng)計(jì)特性較一致, 攻擊者若想破壞或移走可見(jiàn)水印, 又不損壞原圖的使用質(zhì)量是很困難的。
4.2不可見(jiàn)水印實(shí)驗(yàn)結(jié)果
分別用原始密鑰對(duì)水印圖像進(jìn)行l(wèi)ogistic加密。不可見(jiàn)水印嵌入時(shí),嵌入強(qiáng)度越大,抗噪聲能力越強(qiáng),但不可感知性就越差。嵌入提取的仿真實(shí)驗(yàn)結(jié)果如圖4所示。
為驗(yàn)證算法的魯棒性和可靠性,對(duì)嵌入水印后的圖像進(jìn)行攻擊實(shí)驗(yàn)[10]。如JPEG壓縮、噪聲干擾、濾波、剪切等。在各種攻擊后提取出來(lái)的水印圖像如圖5所示。
如圖5所示,該算法在攻擊試驗(yàn)下仍能夠恢復(fù)出水印。在性能上,算法面對(duì)JPEG壓縮和均值濾波下的魯棒性較好,但是在高斯噪聲和椒鹽噪聲的干擾下恢復(fù)的效果較差。
5 結(jié)束語(yǔ)
本文設(shè)計(jì)了一種基于DCT變換的數(shù)字水印算法,把嵌入可見(jiàn)水印和不可見(jiàn)水印結(jié)合在一起。該算法重點(diǎn)是對(duì)嵌入系數(shù)的討論,可見(jiàn)水印和不可見(jiàn)水印同時(shí)用到了基于紋理、亮度的嵌入準(zhǔn)則,可見(jiàn)水印還考慮了邊緣密度的影響。嵌入不可見(jiàn)水印時(shí),為了提高算法的魯棒性,預(yù)先對(duì)水印圖像進(jìn)行加密處理。從實(shí)驗(yàn)結(jié)果看,自適應(yīng)的可見(jiàn)水印嵌入能夠很好地將水印嵌到圖像的指定位置并且對(duì)宿主圖像的影響很小,不可見(jiàn)水印的嵌入算法具有較好的抗攻擊能力??梢?jiàn)水印與不可見(jiàn)水印的嵌入都采用自適應(yīng)的方法,提高水印魯棒性、可靠性。由于該算法仍然有所缺陷,比如對(duì)于噪聲的干擾比較明顯,下一步研究中將集中解決這些問(wèn)題。
參考文獻(xiàn):
[1]HAN W Y, YANG Y, ZHI H L. Digital watermark encryption algorithm based on Arnold and DCT transform [J]. Lecture Notes in Electrical Engineering, 2011, 138: 613–621.
[2]CHRYSOCHOS E, FOTOPOULOS V, SKODRAS A N. Robust Watermarking of digital images based on chaotic mapping and DCT [R]. Europe:16th European Signal Processing Conference (EUSIPCO 2008), August 2008:25-29.
[3]BAHI J, GUYEUX C. A new chaos-based watermarking algorithm[C]//SECRYPT 2010, International conference on security and cryptography, Athens, Greece: [s.n.], 2010:35-40.
[4]CHEN L W, LI M F. An effective blind watermark algorithm based on DCT[J]. Proceedings of the 7th World Congress on Intelligent Control and Automation, WCICA'08, 2008:6817-6821.
[5]ZHAO Y L, ZHENG X S , LI N, et al. A Digital Image Watermark Algorithm Based on DC Coefficients Quantization[J].Proceedings of the 6th World Congress on Intelligent Control and Automation, 2006,2: 9734 - 9738 .
[6]朱香衛(wèi),肖亮,吳慧中. 基于變換域數(shù)字圖像水印技術(shù)的研究[J].通信技術(shù), 2008, 41(12):334-339.
[7]閆麗君,康寶生,岳曉菊. 改進(jìn)的基于DCT的自適應(yīng)水印算法[J]. 計(jì)算機(jī)工程與應(yīng)用, 2011,47(8):197-200.
[8]張偉,陳新龍,詹斌. 基于DCT的圖像水印算法研究與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展, 2009,19(9):157-161.
[9]袁修貴,周振. 一種新的基于DWT、DCT和SVD的魯棒水印算法[J].計(jì)算機(jī)工程與科學(xué),2011,33(1):112-115.
[10]GOLSHAN F, MOHAMMADI K. Evolutionary-generated watermark for robust digital image watermarking in DCT_SVD domain [J]. International Review on Computers and Software, 2011, 6:155-161.