一種用于二值文本圖像的數(shù)字水印算法_第1頁
一種用于二值文本圖像的數(shù)字水印算法_第2頁
一種用于二值文本圖像的數(shù)字水印算法_第3頁
一種用于二值文本圖像的數(shù)字水印算法_第4頁
一種用于二值文本圖像的數(shù)字水印算法_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

一種用于二值文本圖像的數(shù)字水印算法

1文本水印方法的比較隨著電子商務和電子商務的發(fā)展,公司、事業(yè)單位、政府機構(gòu)和國家安全等有關部門正在處理大量書面文件,包括合同、威脅和其他重要文件。研究這些文本文件的版權(quán)保護和內(nèi)容安全是一個重要問題,數(shù)字水印技術(shù)為上述問題的解決提供了一種途徑。另外,很多文本文件不僅以數(shù)字形式存在,還會通過打印、復印等途徑以紙張的形式傳播。而隨著數(shù)字化技術(shù)的迅猛發(fā)展,這種方式已經(jīng)變得相當普遍,這也使得很多重要或者機密信息以紙質(zhì)文件為傳播途徑而泄漏出去。因此,研究基于紙質(zhì)文件的能夠抵抗打印和復印的數(shù)字水印技術(shù)顯得尤為重要。概括來講,文本水印算法主要分為5大類:基于文檔結(jié)構(gòu)、基于自然語言處理技術(shù)、基于二值圖像水印技術(shù)、基于字符幾何特征以及基于底紋的方法。下面簡要描述這幾類方法。1)基于文檔結(jié)構(gòu)的文本水印方法主要是利用文本文件的特點通過輕微調(diào)整其結(jié)構(gòu)來完成編碼,比如說調(diào)整行間距或者字間距,此類方法無法抵抗對于文本內(nèi)容和格式變化的攻擊,隱藏的信息量少。2)基于自然語言處理技術(shù)的文本水印方法是在不改變文本原意的情況下通過等價信息替換、語態(tài)轉(zhuǎn)換等辦法來實現(xiàn)水印嵌入,該類方法具有較好的不可見性,隱藏信息量大,但不適用于文本內(nèi)容不宜更改的情況,從而不具有普適性。3)基于二值圖像水印技術(shù)的文本水印方法是通過將文本文件轉(zhuǎn)化為二值圖像之后再進行水印嵌入。目前針對二值圖像的水印算法大多是基于圖像分塊來做的[5~7]。其中比較有代表性的是Wu等在文獻中提出的方法,文中指出其方法可以抵抗打印掃描攻擊,但為了精確定位掃描之后的圖像,需要在原始圖像上加一個標志框,并且文獻中的實驗是在低分辨率(72DPI)下打印,用高分辨率(600DPI)掃描。這相當于對圖像做了放大處理,從而有利于對打印掃描圖像的像素級別的精確恢復,但通常情況下,打印機分辨率不會低于300DPI。上述兩個缺點限制了該算法的應用范圍。Borges等提出了一種通過調(diào)節(jié)字符灰度級來嵌入水印的方法。事實上,圖像在經(jīng)過半色調(diào)處理后,字符灰度級的調(diào)節(jié)體現(xiàn)在字符圖像區(qū)域中黑色像素點疏密程度的變化,因此該方法本質(zhì)上還屬于二值圖像水印算法的范疇。實踐表明該方法可以從打印原件中成功提取水印信息,但對于原件的復印件卻不能奏效。4)基于字符幾何特征的文本水印方法是通過修改字符的幾何特征(例如筆畫的位置),達到人為可以識別的幾種模式(如上移某個筆畫代表1,下移某個筆畫代表0)從而實現(xiàn)水印嵌入[8~10]。由于漢字等字符的字型結(jié)構(gòu)特點以及字體風格的影響,字符修改后的視覺效果不理想,同時該方法的實現(xiàn)需要特殊字庫的支持,這對該技術(shù)的應用帶來了很大的不便。5)基于底紋的文本水印方法是在正常打印文件的同時額外疊加一層底紋數(shù)據(jù),其中不同的點陣模式代表了不同的水印信息。這類方法的優(yōu)點是水印信息容量大,并可以抵抗若干次復印;缺點是浪費油墨,從而使得打印成本升高,并且在一定程度上還會影響文檔的正常閱讀。綜上所述,現(xiàn)有的文本水印方法并不能在保持理想視覺效果的前提下,實現(xiàn)從文本打印原件和復印件中全盲地提取水印信息。針對上述缺陷,本文提出一種用于文本文件的數(shù)字水印算法,該算法實現(xiàn)簡單,嵌入水印信息后的文本圖像視覺效果良好,并且信息提取時可以做到全盲,另外還可以有效地抵抗打印、復印(包括縮小復印)的攻擊。2算法描述2.1實驗數(shù)據(jù)的驗證嵌入水印的電子文檔在流轉(zhuǎn)過程中,其內(nèi)容可能會被惡意或者無意地篡改,水印信息很容易被破壞甚至完全丟失。為此,選擇在文檔打印時才即時地嵌入水印信息,從而可以有效降低水印信息受到人為攻擊的風險。具體的做法為:當待打印文本文件輸出至目標打印機時,首先截獲系統(tǒng)的打印命令參數(shù)和目標打印機的DEVMODE屬性設置;接著將文本文件數(shù)據(jù)先打印至虛擬GDI(graphicdeviceinterface)點陣打印機,從而獲取每頁文本文件的點陣圖像數(shù)據(jù),并即時地嵌入水印信息;最后根據(jù)DEVMODE設置將嵌入水印后的點陣數(shù)據(jù)發(fā)送至目標打印機進行實際輸出。注意到一般黑白打印機能夠接收的數(shù)據(jù)通常為光柵化后的二值圖像數(shù)據(jù),因此本文所述方法是針對二值文本圖像來實現(xiàn)的。由于打印、復印和掃描等過程對原始文件添加了不可估計的隨機噪音,對此類噪音目前還沒有精確的數(shù)學模型來描述,而且它還與打印機、復印機和掃描儀等設備自身的性能以及狀態(tài)密切相關。為此希望找到文檔圖像在打印掃描前后的一個不變量,并利用該不變量來實現(xiàn)水印嵌入。假定打印前一個字符的圖像為F,打印掃描后得到的灰度圖像為Fw(為了說明方便,這里考慮連續(xù)調(diào)圖像,并用0和1分別表示白色和黑色像素點,用0和1之間的數(shù)表示中間的灰度級)。圖1給出了打印掃描前后一個漢字及其局部放大顯示,可以看到打印到紙上的圖像會產(chǎn)生誤差擴散。因此,打印掃描過程所帶來的圖像由F到Fw的轉(zhuǎn)變可以近似地描述為一個卷積的過程其中K是某個核函數(shù),它只依賴于打印過程而不依賴于具體的字符,x表示圖像像素點。假定I是字符圖像區(qū)域,對式(1)左右兩端做積分,得到注意到,積分∫IF(x)dx表示的是原始字符圖像所包含的黑點數(shù),∫IFw(x)dx可以近似地看作掃描圖像所包含的黑點數(shù),而∫IK(x)dx是不依賴于字符圖像的一個常數(shù)。因此,式(2)說明,打印掃描前后字符圖像所包含的黑點數(shù)呈現(xiàn)出一種線性關系。于是,假定A和Aw分別是打印掃描前后每個字符圖像所包含黑點數(shù)的平均值,則由式(2)可以得到這樣就找到了一個打印掃描過程的不變量,即每個字符所包含的黑點數(shù)與全部字符的黑點數(shù)的平均值的比值在打印掃描前后是不變的。注意,本文采用“除以均值”的方式則避免了式(2)中出現(xiàn)的依賴于打印掃描過程的參數(shù)∫IK(x)dx。本文正是想利用這個不變量來進行水印嵌入。下面通過實驗數(shù)據(jù)來驗證上述理論分析的合理性。首先將一幅二值文本圖像進行字符切分,然后統(tǒng)計每個字符圖像所包含的黑點數(shù),得到序列x1,x2,L,xn,其平均值為;接著對打印掃描后的文檔圖像進行相同的字符區(qū)域切分,然后再次統(tǒng)計每個字符內(nèi)黑點數(shù)(按照灰度值求和的方式),得到另一個序列y1,y2,L,yn,其平均值是。圖2顯示了打印掃描前后單個字符圖像內(nèi)的黑點數(shù)與平均黑點數(shù)之間的比例關系,其中實線表示的是打印前的比例關系,虛線為打印掃描后的比例關系。由圖2可以看出,基本保持一致。這里是對100個中文楷體小四號漢字作出的統(tǒng)計。同時,在圖2中為了顯示更加清楚,將上述比值(打印前)進行了排序。2.2計算組合調(diào)整部分a中的條件文件平均點火數(shù)如圖3所示,水印嵌入過程如下。1)對二值文本圖像進行字符切分,并將切分出的字符分為兩組:嵌入部分A和調(diào)整部分B。設分組A和B中每個字符圖像所包含的黑點數(shù)分別為x1,x2,L,xNA和y1,y2,L,yNB,然后計算所有字符圖像所包含的黑點數(shù)的平均值2)假定水印信息為w1,w2,L,wNA。根據(jù)iw為0或1將ix修改為ix~,使得xi~m是最靠近某個選定步長K>0的偶數(shù)倍或者奇數(shù)倍。接著計算嵌入部分A中的每個字符的黑點數(shù)的改變量并計算所有改變量之和?=∑NAi=1?i。3)將調(diào)整部分B中每個字符所包含的黑點數(shù)yi修改為,使得這里指出,在經(jīng)過步驟2)和3)之后整篇文檔字符的平均黑點數(shù)保持不變,這也是為什么本文稱分組B為“調(diào)整”部分的原因。4)由步驟2)和3)可以得到每個字符需要翻轉(zhuǎn)的黑點數(shù),然后按照翻轉(zhuǎn)量的正負來翻轉(zhuǎn)圖像邊緣相應數(shù)目的白色或者黑色像素點,從而實現(xiàn)水印嵌入。2.3計算全圖像字符進行水印嵌入如圖4所示,這里針對嵌入水印后的紙質(zhì)文本文件給出水印提取過程的具體步驟。1)將嵌入水印的紙質(zhì)文本文件通過掃描得到灰度圖像,接著按照與水印嵌入相同的方式進行字符切分并將所有字符分成嵌入部分A和調(diào)整部分B。2)分別計算A和B中字符所包含的黑點數(shù),設其分別為。接著計算整個圖像字符所包含的黑點數(shù)的平均值這里,黑點數(shù)仍舊是按照前述方法對于灰度值求和得到。3)最后使用奇偶量化方法實現(xiàn)水印提取:如果是偶數(shù),則認為水印信息為0,否則認為為1。其中K是水印嵌入過程中所使用的量化步長。不難驗證,在嚴格遵守乘性模型的假設之下使用上述方法可以成功實現(xiàn)水印的嵌入和提取,本文將在第3節(jié)中給出詳細實驗數(shù)據(jù)來驗證上述理論分析的可行性。2.4翻轉(zhuǎn)邊界點的可翻轉(zhuǎn)性灰度圖像的像素取值可以是0到255之間的任何整數(shù),而根據(jù)人類視覺系統(tǒng)模型,小幅度地修改單個像素點的取值并不能帶來視覺上的影響,這是幾乎所有灰度圖像水印算法的出發(fā)點。但二值圖像與灰度圖像不同,其取值只有0和1兩個,分別對應于白點和黑點,即使改變了一個像素點的取值也可能影響整個圖像的視覺效果。因此二值圖像的水印算法都是基于修改邊界點來做的,本文所述的方法也是如此。下面就來討論如何修改二值文本圖像中字符的邊界點,使得每個字符邊緣所能修改的像素點盡可能多,并且不會明顯影響圖像的視覺效果。Wu等在文獻中提出了一種翻轉(zhuǎn)二值圖像邊界點的辦法,本文在其研究的基礎上提出一種新的用于二值文本圖像的邊界點翻轉(zhuǎn)策略,和文獻的方法相比較,本文的方法具有更好的視覺效果。對如圖5所示的點x的3×3鄰域(其中yi=0或1分別表示該點是白點或黑點)定義函數(shù)f(x)如下它描述了點x附近的視覺復雜程度。定義點x為邊界點,如果它的8鄰域中既有黑點也有白點。注意到f(x)是偶數(shù)并且其取值介于0和8之間,以及當x是邊界點時f(x)不能為0。于是對于邊界點x,f(x)的取值只能是2、4、6或者8。如表1所示,統(tǒng)計了在包含1000個漢字(英文單詞)的二值文本圖像中使f(x)取值為2的黑色邊界點所占的比例,從中可以看出二值文本圖像的邊界點幾乎都是使函數(shù)f(x)取值為2的點。因此對于二值文本圖像,考慮f(x)=4、6或者8的邊界點是沒有意義的,下面只考慮f(x)取值為2的邊界點,并簡稱為簡單邊界點。文獻對二值圖像邊界點的可翻轉(zhuǎn)性給出了一個評分標準(見表2,這里僅考慮簡單邊界點,其模版類型如圖6所示),翻轉(zhuǎn)分數(shù)越高的邊界點對于圖像的視覺影響就越小,另外文獻認為分數(shù)大于0.1的邊界點是可翻轉(zhuǎn)的。下面來考察簡單邊界點的可翻轉(zhuǎn)性,給出以下原則。1)11W和71B類型的邊界點不可翻轉(zhuǎn),否則會增加一個類似噪音的點。31W和51B類型的邊界點不可翻轉(zhuǎn),否則會破壞圖像局部的光滑性。12W、52W和32B、72B類型的邊界點最好不要翻轉(zhuǎn),另外這4種類型的邊界點很少從而沒有太大的使用價值。這里,本文和文獻的觀點一致,表2中這幾類邊界點的得分都是0或者0.01。2)2W和6B類型的邊界點不可翻轉(zhuǎn)。和1)類似,翻轉(zhuǎn)這兩類邊界點也會破壞圖像局部的光滑性。這和文獻的觀點不同,他們對這兩類邊界點的評分都是0.125,屬于可翻轉(zhuǎn)邊界點。下面通過實例來說明為什么這兩類邊界點不可翻轉(zhuǎn)。如圖7所示,其中的灰點是2W類型的白色邊界點,翻轉(zhuǎn)其中的任何一個都會產(chǎn)生不規(guī)則的類似噪音點的尖點,這對圖像的視覺效果影響很大。類似地,圖8中的灰點是6B類型的黑色邊界點,翻轉(zhuǎn)它們會產(chǎn)生不規(guī)則的凹點從而使圖像的邊界凹凸不平,這對圖像的視覺效果影響也很大。3)51W、6W、71W、72W和11B、12B、2B、31B是可翻轉(zhuǎn)的邊界點,但這幾類邊界點的數(shù)目較少。4W、32W和4B、52B是可翻轉(zhuǎn)的邊界點,這幾類邊界點的數(shù)目非常多,是主要的可翻轉(zhuǎn)邊界點。這里,本文和文獻的觀點一致?;谏鲜鲇懻?給出翻轉(zhuǎn)邊界點的策略如下:1)通過計算函數(shù)f找出所有簡單邊界點;2)當需要加點而翻轉(zhuǎn)白色邊界點時,先翻轉(zhuǎn)51W、6W、71W、72W類型點,然后翻轉(zhuǎn)4W、32W類型點;3)當需要減點而翻轉(zhuǎn)黑色邊界點時,先翻轉(zhuǎn)11B、12B、2B、31B類型點,然后翻轉(zhuǎn)4B、52B類型點;4)除此之外,為了追求更好的視覺效果,當需要翻轉(zhuǎn)的黑色(或者白色)邊界點的一個相同顏色的鄰點(指的8鄰域之內(nèi)的點)已經(jīng)被翻轉(zhuǎn)時則不再翻轉(zhuǎn)該點。圖9顯示了使用本文翻轉(zhuǎn)策略得到的所有可以修改的白色邊界點(用灰色像素點表示),圖10給出了所有可以修改的黑色邊界點(用灰色像素點表示)??梢钥吹?使用上述策略并不會帶來視覺效果的明顯下降。3打印水印信息的提取對如圖11所示的一幅由中文楷體四號文字所組成的二值文本圖像(共有108個漢字)使用本文所述方法對其嵌入27bit水印信息,其中前81個漢字為分組A,后27個漢字為分組B,量化步長為0.15。注意這里將27bit的水印信息重復嵌入了三次,提取時則按照眾數(shù)原則進行提取,即對提取出的對應于同一水印信息的3bit按照取值0或1的多少來決定最后的水印信息。嵌入水印后的圖像如圖12所示。另外,為了更好地說明嵌入水印之后的二值文本圖像的視覺效果,圖13和圖14分別給出了圖11和圖12的局部放大圖,比較圖13和圖14可以看出,嵌入水印后的圖像的視覺效果良好,很難看出字符被修改的痕跡,事實上嵌入水印后的字符只是略微變粗或者變細,并不影響字符的整體框架。使用普通的桌面打印機(分辨率為600DPI,型號為HPLaserJet1200series)將二值圖像打印輸出;接著通過普通掃描儀(分辨率600DPI,型號為HPScanJet4890)將打印原件掃描成灰度圖像格式的電子文件;然后采用第2.3節(jié)中的步驟對其進行水印提取,此時可以成功得到全部27bit的水印信息;再使用普通復印機(分辨率600DPI,型號為京瓷KM-5035,本文中的其他實驗使用的也是這款復印機)對打印文檔復印以及縮小復印,縮小比例分別為86%(A4→B5)和60%,此時也可以從復印文件的掃描圖像中正確提取全部27bit水印。但是當縮小50%復印時,27bit水印中有6bit出錯。另外,針對不同語種、不同字體和字號的文本文件,使用不同的打印機進行了水印嵌入和提取實驗,實驗結(jié)果如表3和表4所示。其中Test1~Test6分別代表的文本文件類型為中文宋體小四號、中文楷體小四號、中文宋體四號、中文楷體四號、英文羅馬體12pt和英文Arial字體12pt。表中的P0代表打印原件,P1和P2分別代表原件的一次復印件和二次復印件(即拿一次復印件再進行第二次復印),P1-86%表示將打印原件P0進行縮放復印,縮放的比率為86%。對于每個實驗都選取了10份包含100個漢字(英文單詞)的文本文件并對其嵌入25bit的水印信息(其中75個字符用于水印嵌入,共重復嵌入三次,另外25個字符用于黑點個數(shù)調(diào)節(jié),量化系數(shù)為0.15)。實驗結(jié)果中的“N/10”表示在10次實驗中有N次可以成功提取全部水印信息。從測試結(jié)果可以看出,采用本文所述算法,在保證嵌入水印圖像的良好視覺效果的前提下,可以從打印和一次復印后的紙質(zhì)文件中成功提取嵌入的水印信息,并且可以支持一定程度的縮小復印,但對二次復印件的檢測效果還不理想。在上述實驗中,掃描儀的分辨率都設為600DPI,但我們也實驗過在800DPI以及1200DPI下掃描文檔,結(jié)果表明高分辨率的掃描只會帶來數(shù)據(jù)處理容量的增大并不會帶來檢測效率的提升。值得注意的是,對于本文提出的算法,保證打印前后切分出的字符序列的一致性是水印信息正確提取的前提。這就需要對于排版結(jié)構(gòu)相對復雜的文檔進行版面

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論