汪傳建,程莉,趙慶展,張麗,郭理
(1石河子大學(xué)信息科學(xué)與技術(shù)學(xué)院,石河子832003;2石河子大學(xué)經(jīng)貿(mào)學(xué)院,石河子832003)
一種基于DCT的地理數(shù)據(jù)版權(quán)保護(hù)方法
汪傳建1,程莉2,趙慶展1,張麗1,郭理1
(1石河子大學(xué)信息科學(xué)與技術(shù)學(xué)院,石河子832003;2石河子大學(xué)經(jīng)貿(mào)學(xué)院,石河子832003)
為了保護(hù)地理數(shù)據(jù)的版權(quán),根據(jù)地理數(shù)據(jù)所具有的特性,提出了一種基于DCT(discrete cosine transform)的地理數(shù)據(jù)水印算法。該算法對地理數(shù)據(jù)進(jìn)行網(wǎng)格化操作以構(gòu)造空域,實施DCT變換,輕微修改DCT系數(shù),然后實施逆DCT變換,得到修改后的空域,通過調(diào)整地理數(shù)據(jù)中點的分布情況嵌入水印信息。實驗結(jié)果表明:本算法能抵抗平移、縮放、旋轉(zhuǎn)和化簡攻擊。
地理數(shù)據(jù);水印;網(wǎng)格化;DCT變換
Abstract:To protect the copyright of geographical data,a geographical data watermarking algorithm is proposed in this paper considering the characteristics of geographical data.We compute minimum bounding rectangle of the geographical data,divide the geographical data into grids on the boundary of the minimum bounding rectangle,count the number of vertices in all cells and derive a grid weigh array.Discrete cosine transform is applied to the grid weigh array.Watermarks are hidden in the DCT coefficients by modifying the signs of DCT coefficients with middle frequencies.Inverse discrete cosine transform is applied to the modified DCT coefficients and modified grid weigh array is derived.The vertices are redistributed according to the modified grid weigh array.Experiments show that the algorithm is robust against translation,scaling,rotation and simplification attack.
Key words:geographical data;watermarking;discrete cosine transform
隨著3S(RS、GIS、GPS)技術(shù)的廣泛應(yīng)用,地理數(shù)據(jù)的基礎(chǔ)性作用日益凸顯,地理數(shù)據(jù)的需求量越來越大;但是地理數(shù)據(jù)的采集和生產(chǎn)離不開專業(yè)的技術(shù)人才,需耗費大量的物力和財力。而且地理數(shù)據(jù)的拷貝非常容易,加上目前缺乏保護(hù)地理數(shù)據(jù)版權(quán)的有效措施,一旦地理數(shù)據(jù)被出售,非法拷貝就難以避免,這損害了數(shù)據(jù)生產(chǎn)者的利益[1]。近年來,國內(nèi)外學(xué)者將數(shù)字水印技術(shù)應(yīng)用于地理數(shù)據(jù),提出了一些地理數(shù)據(jù)水印方法。根據(jù)水印特征域的不同,地理數(shù)據(jù)水印技術(shù)可分為空域水印模式、變換域水印模式。地理數(shù)據(jù)中的地物對象是由有組織的頂點集合構(gòu)成的,地理數(shù)據(jù)實際上是基于某一地理坐標(biāo)系統(tǒng)的頂點坐標(biāo)序列?;诳沼虻牡乩頂?shù)據(jù)水印方法是在精度范圍內(nèi)移動頂點或直接修改頂點的坐標(biāo)值來嵌入水印信息[2-6]?;谧儞Q域的地理數(shù)據(jù)水印模式的主要思路是:合理選擇某種空域載體數(shù)據(jù),對載體實施頻域變換,然后通過修改頻域系數(shù)來實現(xiàn)水印的嵌入。典型的變換域包括DFT域[7-8]、DWT域[9-10]和DCT域[11]。該算法具有抗幾何攻擊、頂點重排等攻擊。但由于變換域的構(gòu)造是基于數(shù)據(jù)頂點坐標(biāo),因此該法難以有效抵抗化簡攻擊。
本文根據(jù)地理數(shù)據(jù)所具有的特性,提出了一種新的基于DCT的地理數(shù)據(jù)水印算法。對地理數(shù)據(jù)進(jìn)行網(wǎng)格化操作以構(gòu)造空域,實施DCT變換,輕微修改DCT系數(shù),然后實施逆DCT變換,得到修改后的空域,通過調(diào)整地理數(shù)據(jù)中點的分布情況嵌入水印信息。
水印信息嵌入過程的基本流程如圖1所示。
圖1 水印嵌入過程Fig.1 Watermark embedding process
1.1 水印生成
本算法采用帶有版權(quán)信息的黑白二值圖像作為原始水印信息。為了增強(qiáng)水印的安全性,首先對原始水印圖片進(jìn)行置亂操作,然后讀取置亂后圖像的數(shù)據(jù)部分作為要嵌入的水印bit串。本文采用基于Arnold變換[12]的置亂方法對水印信息進(jìn)行置亂。本文水印圖像大小為32×32,進(jìn)行 K次置亂操作后得到置亂后的水印圖像W,W即為后面要嵌入的水印信息。置亂次數(shù) K作為密鑰的進(jìn)行保存,水印檢測時用于恢復(fù)出原來的水印圖像。水印圖像的置亂周期 T為24。
1.2 網(wǎng)格化
在對地理數(shù)據(jù)進(jìn)行“網(wǎng)格化”處理之前,本文先用道格拉斯-普克算法對地理數(shù)據(jù)進(jìn)行化簡,將坐標(biāo)點劃分為關(guān)鍵點和非關(guān)鍵點。
為了對地理數(shù)據(jù)進(jìn)行網(wǎng)格化處理,首先計算地理數(shù)據(jù)的最小綁定矩形,然后以最小綁定矩形為邊界,把整個地圖劃分為大小相等的矩形組成的二維網(wǎng)格,將數(shù)據(jù)點分配到各個網(wǎng)格單元中。統(tǒng)計每個網(wǎng)格單元中非關(guān)鍵點的數(shù)目,得到一個網(wǎng)格權(quán)值矩陣G。本文在構(gòu)造網(wǎng)格權(quán)值矩陣時需過濾關(guān)鍵點,而對非關(guān)鍵點只進(jìn)行統(tǒng)計處理。過濾關(guān)鍵點是為了保證地圖嵌入水印之后不會出現(xiàn)嚴(yán)重的變形。同時,確定二維網(wǎng)格時,為了保證水印的嵌入對地圖影響最小,將網(wǎng)格單元大小取值為地理數(shù)據(jù)精度的一半以下。網(wǎng)格大小作為密鑰保存,在水印提取過程中也需要使用該密鑰對水印化數(shù)據(jù)進(jìn)行網(wǎng)格化。
1.3 嵌入水印
對上述網(wǎng)格權(quán)值矩陣 G實施DCT變換,得到DCT頻域系數(shù)矩陣。DCT系數(shù)分為低頻分量、中頻分量和高頻分量。本算法選擇DCT系數(shù)的中頻分量嵌入水印信息。
本文通過修改AC系數(shù)正負(fù)值的方式達(dá)到嵌入水印的目的。具體修改過程如下:
在增加(Add)點的子函數(shù)中,從參數(shù)所指定的網(wǎng)格中任意選擇1個點,如果其后面1個或前1個點也在這個網(wǎng)格內(nèi)時,就在這2個點的連線中取個位置插入1個點(比如連線中點位置);在減少(Remove)點的子函數(shù)中,從該網(wǎng)格中任意選擇1個非關(guān)鍵點,直接刪除即可,因為在進(jìn)行網(wǎng)格化之前已經(jīng)對地圖進(jìn)行了關(guān)鍵點的過濾,地圖的關(guān)鍵點沒有統(tǒng)計在網(wǎng)格單元內(nèi),直接刪除網(wǎng)格單元中的非關(guān)鍵點不會對地圖的使用性造成嚴(yán)重影響。
經(jīng)過水印預(yù)處理(置亂)→網(wǎng)格化→修改網(wǎng)格統(tǒng)計特性(包括DCT變換、修改頻域系數(shù)嵌入水印、逆DCT變換)→調(diào)整網(wǎng)格中頂點的分布4個步驟,完成水印的嵌入,得到的是1個嵌入了給定水印圖片的地理數(shù)據(jù)。
提取水印的過程需要提供嵌入水印時所使用的密鑰 K(置亂次數(shù))、網(wǎng)格單元的大小作為提取水印的參數(shù)。
2.1 網(wǎng)格化
根據(jù)地圖邊界以及給出的網(wǎng)格單元大小,采用與嵌入水印過程中相同的方法對地理數(shù)據(jù)進(jìn)行網(wǎng)格化,并以相同的原則統(tǒng)計每個網(wǎng)格中點的數(shù)目(之前也要將關(guān)鍵點過濾掉),得到網(wǎng)格權(quán)值矩陣 Gd。
2.2 DCT變換以及提取水印
對網(wǎng)格權(quán)值矩陣 Gd做DCT變換,得到對應(yīng)的頻域系數(shù)矩陣Gd-AC,選擇位于正中間的 N×N個頻域系數(shù)DACi(1≤i≤N×N),根據(jù)正負(fù)判別的準(zhǔn)則得到一個 N×N的比特串WSi(1≤i≤N×N),將其作為數(shù)據(jù)域部分寫入1個黑白二值圖像Wd。正負(fù)判別的流程如下:
圖2 未嵌入水印時的地圖Fig.2 The original geographical data
2.3 輸出原始水印圖像
根據(jù)Arnold變換的原理,假設(shè)一 N×N圖像的變換周期為 T,對于一張已經(jīng)置亂過 K(密鑰之一)次的圖像,只需在置亂 T-(KmodT)次就可以恢復(fù)。因此,對于上一步得到的黑白二值圖像Wd,依據(jù)嵌入水印時作為密鑰的置亂次數(shù) K,再對Wd進(jìn)行 T-(KmodT)次置亂就可以得到檢測出的水印圖像W0-d。
使用 PostgreSQL+Post GIS作為地圖數(shù)據(jù)服務(wù)器,MapServer作為地圖顯示服務(wù)器,測試數(shù)據(jù)為MapServer提供的演示數(shù)據(jù),該地圖為加拿大全境地圖,在這里只采用其中的公路(road)圖層作為測試數(shù)據(jù)集。數(shù)據(jù)集存儲在數(shù)據(jù)庫中共計有1548條元組,43489個坐標(biāo)點。數(shù)據(jù)的地理范圍為(-2200000,-712704)至 (3072832,3840000),將其分為256×256的網(wǎng)格,網(wǎng)格單元大小約為20000×15000。采用32×32的黑白二值圖像(Arnold變換周期 T=24)作為原始水印圖像。原始地理數(shù)據(jù)如圖2所示,加水印后的地理數(shù)據(jù)如圖3所示。
圖3 嵌入水印后的地圖Fig.3 The watermarked geographical data
將2幅地圖進(jìn)行疊加并局部放大對比顯示的效果如圖4所示,虛線橢圓中標(biāo)識出的部分即為水印前后地圖變形情況。
以原始水印圖像和提取出來的水印圖像的峰值信噪比(PS N R)及相關(guān)系數(shù)(N C)評價水印檢測的結(jié)果,PS N R是一種評價圖像的客觀標(biāo)準(zhǔn)。對水印圖像進(jìn)行各種惡意攻擊后,通過比較 N C系數(shù)的值,可以得到數(shù)字水印算法抗惡意攻擊的能力,由 N C系數(shù)值的變化給出一個比較客觀的評價準(zhǔn)則。
對比提取的水印與原始水印,當(dāng) N C系數(shù)低于0.5時,基本可以認(rèn)為水印信息被破壞了。因為對于任意一幅水印圖像來說(白底黑字)表示版權(quán)信息的黑字一般會占到整幅圖像的1/2左右。
圖4 疊加并局部放大對比效果Fig.4 Overlaping and scaling locally the original and watermarked geographical data
對于平移、旋轉(zhuǎn)、縮放、化簡、重新排序等幾何攻擊(表1),本算法均能較有效地對抗。
文獻(xiàn)[11]也是一種基于DCT域的地理水印方法,該方法能抵抗幾何攻擊,但不能抵抗化簡攻擊,主要原因是該方法中的DCT變換域是基于數(shù)據(jù)頂點坐標(biāo)構(gòu)造的,而化簡操作會刪除一些隱藏水印信息的頂點,從而破壞水印信息。本文DCT域的構(gòu)造并非直接基于頂點坐標(biāo),而是基于網(wǎng)格中的頂點分布,并通過修改網(wǎng)格中頂點的分布來隱藏水印信息。雖然化簡攻擊可刪除一些頂點,但是化簡攻擊對網(wǎng)格中的頂點分布影響較小,因此,本方法具有一定的抗化簡攻擊能力。
表1 本算法抵抗各種攻擊的效果Tab.1 The robustness of the proposed algorithm
本文結(jié)合圖像置亂技術(shù)、離散余弦變換、人類視覺系統(tǒng)等思想,提出了一種基于網(wǎng)格化的地理數(shù)據(jù)水印算法。算法選擇了檢測結(jié)果直觀、有特殊意義的二值圖像作為原始水印,并在嵌入之前進(jìn)行預(yù)處理。為了兼顧水印的不可見性和魯棒性,選擇在中頻系數(shù)部分嵌入水印。最后用量化標(biāo)準(zhǔn)對算法進(jìn)行了檢測。通過仿真試驗,證明了本算法對常見的非幾何攻擊和絕大多數(shù)幾何攻擊均具有較好的抗攻擊性,但本算法的抗化簡攻擊能力有待改善。
[1]Niu X M,Shao C Y,Wang X T.GIS watermarking:hiding data in 2D vector maps,studies in computational intelligence[M].Berlin:Springer-Verlag,2007.
[2]李嬡媛,許錄平.用于矢量地理空間數(shù)據(jù)版權(quán)保護(hù)的數(shù)字水印[J].西安電子科技大學(xué)學(xué)報:自然科學(xué)版,2004,31(5):719-723.
[3]賈培宏,馬勁松,史照良,等.GIS空間數(shù)據(jù)水印信息隱藏與加密技術(shù)方法研究[J].武漢大學(xué)學(xué)報:信息科學(xué)版,2004,29(8):747-751.
[4]王勛,林海,鮑虎軍.一種魯棒的矢量地理空間數(shù)據(jù)數(shù)字水印算法[J].計算機(jī)輔助設(shè)計與圖形學(xué)學(xué)報,2004,16(10):1377-1381.
[5]Wang C J,Peng Z Y,Peng Y W,et al.Watermarking 2D Vector Maps on Spatial Topology Domain[A].Shiguo Lian.MINES2009[C].Wuhan:IEEE Computer Society Press,2009:71-74.
[6]朱長青,楊成松,李中原.一種抗數(shù)據(jù)壓縮的矢量地理空間數(shù)據(jù)數(shù)字水印算法[J].測繪科學(xué)技術(shù)學(xué)報,2006,23(4):281-283.
[7]Solachidis V,Pitas I.Watermarking polygonal lines using fourier descriptors[J].IEEE Computer Graphics and Applications,2004,24(3):44-51.
[8]Doncel V R,Nikolandis N,Pitas I.An optimal detector structure for the fourier descriptors domain watermarking of 2D vector graphics[J].IEEE Transactions on Visualization and Computer Graphics(TVCG),2007,13(5),851-863.
[9]李媛嬡,許錄平.矢量圖形中基于小波變換的盲水印算法[J].光子學(xué)報,2004,33(1):97-100.
[10]楊成松,朱長青.基于小波變換的矢量地理空間數(shù)據(jù)數(shù)字水印算法[J].測繪科學(xué)技術(shù)學(xué)報,2007,24(1):37-39.
[11]Voigt M,Busch C.Reversible watermarking of 2D-vector data[A].YANG B,MM&Sec 2004[C].Magdeburg:ACM,2004:160-165.
[12]丁瑋,閆偉齊,齊東旭.基于Arnold變換的數(shù)字圖像置亂技術(shù)[J].計算機(jī)輔助設(shè)計與圖形學(xué)學(xué)報,2001,13(4):338-341.
A Geographical Data Copyright Protection Algorithm Based on Discrete Cosine Transform
WANG Chuanjian1,CHENG Li2,ZHAO Qingzhan1,ZHANG Li1,GUO Li1
(1 College of Information Science and Technology,Shihezi University,Shihezi 832003,China;2 College of Economics and Trade,Shihezi University,Shihezi 832003,China)
TP391
A
1007-7383(2010)04-0510-04
2010-01-01
國家科技支撐計劃項目(2007BAH12B01、2007BAH12B07)
汪傳建(1977-),男,講師,從事數(shù)據(jù)庫、地理數(shù)據(jù)庫水印方面研究;e-mail:wcj?inf@shzu.edu.cn。