一種矢量地圖可逆信息隱藏方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及地理信息科學(xué)、信息隱藏領(lǐng)域,具體講是一種旋轉(zhuǎn)、均勻縮放、平移不 變的矢量地圖可逆信息隱藏方法。
【背景技術(shù)】
[0002] 現(xiàn)今,矢量地圖作為地理信息系統(tǒng)(Geographical Information System,GIS)的 基礎(chǔ)數(shù)據(jù)在軍事、民用制圖、城市規(guī)劃、導(dǎo)航等領(lǐng)域得到了廣泛的應(yīng)用。獲取矢量地圖數(shù)據(jù) 要耗費(fèi)大量人力、物力,而借助網(wǎng)絡(luò)和地理信息處理工具,這些具有巨大經(jīng)濟(jì)價(jià)值的數(shù)據(jù)很 容易被非法復(fù)制、篡改和傳播,使地理信息生產(chǎn)者和發(fā)布者蒙受重大損失。因此,如何有效 地保護(hù)矢量地圖數(shù)據(jù)的版權(quán)及其完整性已成為地理信息產(chǎn)業(yè)迫切需要解決的問題。
[0003] 矢量地圖信息隱藏技術(shù)是一種有效保護(hù)矢量地圖版權(quán)和認(rèn)證完整性的前沿技術(shù), 它是在不影響矢量地圖可用性的前提下,將秘密信息即水印隱藏在其中,并在需要時(shí)利用 一定的檢測(cè)方法將其提取出來的方法?,F(xiàn)有的大部分矢量地圖信息隱藏方法通過修改頂點(diǎn) 坐標(biāo)嵌入水印,這會(huì)給矢量地圖的精度帶來一定的擾動(dòng)。而這種擾動(dòng)在一些對(duì)矢量地圖精 度有極其嚴(yán)格要求的高保真應(yīng)用場(chǎng)景中是不容許的。為此,研究學(xué)者提出了水印提取后能 夠恢復(fù)矢量地圖原始數(shù)據(jù)的可逆信息隱藏方法。
[0004] 近年來,可逆信息隱藏技術(shù)已在圖像、視頻,音頻以及文本數(shù)據(jù)領(lǐng)域取得了相當(dāng)多 的研究成果,但在矢量地圖可逆信息隱藏技術(shù)方面,人們?nèi)〉玫某晒€比較少。Voigt等人 于2004年首先給出了一種用于二維矢量數(shù)據(jù)的可逆信息隱藏算法。該算法通過更改8個(gè)頂 點(diǎn)的整數(shù)DCT系數(shù)完成水印信息的嵌入,并在提取水印信息的同時(shí)無損恢復(fù)原始矢量地圖 數(shù)據(jù)。這種方法能靈活調(diào)整隱藏容量以滿足不同的應(yīng)用需求。但是這種算法在變換域?qū)崿F(xiàn), 不容易控制水印的嵌入給二維矢量數(shù)據(jù)帶來的擾動(dòng),且嵌入容量不高。Wang等人基于Tian 的差值擴(kuò)大思想提出了兩種二維矢量地圖的可逆信息隱藏算法。一種算法通過直接改變相 鄰坐標(biāo)的差值嵌入水印;另外一種方法則通過改變頂點(diǎn)間曼哈頓距離的差值嵌入水印。這 兩種方法簡(jiǎn)單易于實(shí)現(xiàn),但由于嵌入水印時(shí)沒有考慮矢量地圖的形狀特征,使得含水印矢 量地圖在放大的狀態(tài)下具有不自然的外形特征。周璐等人提出了一種基于差值直方圖的矢 量地圖可逆信息隱藏算法。此方案首先計(jì)算相鄰頂點(diǎn)對(duì)的差值的直方圖,然后優(yōu)先選擇絕 對(duì)值小的差值嵌入水印。該方案能夠較好地保持矢量地圖形狀特征,但嵌入容量不足。鐘尚 平等人提出一種采用復(fù)合整數(shù)變換差值擴(kuò)大法的矢量地圖可逆信息隱藏算法以提高水印 信息的透明性和水印的嵌入容量。這種方法在嵌入水印時(shí)充分考慮矢量地圖圖元的形狀特 征,有較好的水印嵌入容量,但并不適用于點(diǎn)圖元。Cao等人給出了通過改變中間值和平均 值的關(guān)系迭代嵌入水印信息的方法。該方法的嵌入容量較高,但多次迭代嵌入水印后,含水 印矢量地圖質(zhì)量可能不夠高?;谔摂M坐標(biāo)的思想,Wang等人提出了一種高嵌入容量的可 逆信息隱藏方法。該方法能夠有效控制水印嵌入給矢量地圖帶來的精度擾動(dòng)。這些二維矢 量地圖可逆水印算法側(cè)重于無損恢復(fù)原始數(shù)據(jù)、高嵌入容量和低精度擾動(dòng),不能容忍旋轉(zhuǎn)、 縮放和平移攻擊。但在一些應(yīng)用中,旋轉(zhuǎn)、縮放和平移后的矢量地圖仍具有使用價(jià)值。因此, 一個(gè)好的矢量地圖可逆信息隱藏算法應(yīng)具有旋轉(zhuǎn)、縮放和平移不變性,即能夠容忍旋轉(zhuǎn)、縮 放和平移操作,對(duì)旋轉(zhuǎn)、縮放和平移魯棒。
[0005] 綜上所述,雖然人們目前提出了一些用于矢量地圖可逆信息隱藏方法,試圖解決 在傳遞秘密信息的同時(shí),恢復(fù)原始數(shù)據(jù)的問題,但這些方法在抵抗旋轉(zhuǎn)、縮放和平移攻擊方 面還存在不足。
[0006] 另外,專利申請(qǐng)?zhí)?013102366569,名稱為"一種基于LSD平面的矢量地圖可逆信息 隱藏方法";專利授權(quán)公告號(hào)CN102110281B,名稱為"一種針對(duì)shape點(diǎn)圖層數(shù)據(jù)的差值擴(kuò)展 水印嵌入與提取方法";專利授權(quán)公告號(hào)CN101604440B,名稱為"基于空間特征的矢量地圖 可逆水印處理方法"的中國(guó)專利文件中也涉及矢量地圖的可逆信息隱藏問題,但本專利申 請(qǐng)采用方法不同,都不能同時(shí)對(duì)旋轉(zhuǎn)、均勻縮放和平移魯棒。
[0007] 美國(guó)專利庫中的 "Reversible watermarking using expansion,rate control and iterative embedding",與本專利申請(qǐng)針對(duì)內(nèi)容不同,具體方法也不同。
【發(fā)明內(nèi)容】
[0008] 本發(fā)明提出一種矢量地圖可逆信息隱藏方法,一方面該方法依據(jù)參照頂點(diǎn)和矢量 地圖的精度誤差容限,計(jì)算歸一化量化步長(zhǎng),量化參照頂點(diǎn)和每個(gè)頂點(diǎn)所在的直線,通過改 變每個(gè)頂點(diǎn)在其量化區(qū)間內(nèi)的位置嵌入水印,獲得較好不可見性的同時(shí),對(duì)旋轉(zhuǎn)、均勻縮放 和平移操作魯棒;另一方面該算法在水印提取后,無損恢復(fù)矢量地圖原始數(shù)據(jù),能夠有效確 保矢量地圖的精確使用。該方案可逆,具有較好的不可見性和可逆性,能夠抵抗旋轉(zhuǎn)、均勻 縮放和平移攻擊,是一種用于矢量地圖可逆信息隱藏的實(shí)用算法。
[0009] 矢量地圖圖元(點(diǎn)圖元、線圖元和面圖元)是由大量密集的頂點(diǎn)按照特定的順序排 列而成的,地圖數(shù)據(jù)就是這些頂點(diǎn)的二維坐標(biāo)序列。矢量地圖可逆信息隱藏技術(shù)是一種傳 遞秘密信息的重要手段,已有的矢量地圖可逆信息隱藏技術(shù)不能在兼顧高嵌入容量的同 時(shí),抵抗旋轉(zhuǎn)、均勻縮放和平移攻擊。針對(duì)上述問題,本發(fā)明提出一種矢量地圖可逆信息隱 藏方法,包括如下步驟:
[0010] ⑴獲取頂點(diǎn)坐標(biāo);
[0011 ]順次掃描矢量地圖頂點(diǎn),獲取頂點(diǎn)坐標(biāo)序列V = {Vj (Xj,yj) I j = 1,2,…,η},vj表示 頂點(diǎn)序列V中的第j個(gè)頂點(diǎn),xj和yj分別表示頂點(diǎn)vj的x坐標(biāo)和y坐標(biāo),n表示序列V的頂點(diǎn)數(shù) 目;
[0012] (2)選擇參照頂點(diǎn);
[0013] 在密鑰Key的控制下,從步驟(1)的序列V中隨機(jī)選取兩個(gè)頂點(diǎn)作為水印嵌入過程 中米用的參照頂點(diǎn),將選取的參照頂點(diǎn)記為頂點(diǎn)¥1!(11 ?1,5^1)和頂點(diǎn)¥£2(1£2,5^2),11!和5^1分 別表示頂點(diǎn)vfi的X坐標(biāo)和y坐標(biāo),xf2和yf2分別表示頂點(diǎn)vf2的X坐標(biāo)和y坐標(biāo);
[0014] (3)計(jì)算量化步長(zhǎng);
[0015] 依據(jù)矢量地圖的精度誤差容限τ,計(jì)算嵌入?yún)?shù)Qw和歸一化量化步長(zhǎng)Sw,參數(shù)Qw將 直接作為水印提取及數(shù)據(jù)恢復(fù)階段的輸入?yún)?shù);
[0016] (4)嵌入水??;
[0017] 依據(jù)步驟⑶得到的量化步長(zhǎng)Sw,利用量化的方法,在步驟⑴的序列V的頂點(diǎn)中嵌 入水印,得到含水印頂點(diǎn)坐標(biāo)序列V' = {v/ (x/,y/ ) | j = l,2,···,n},vj'表示V'中的第j個(gè) 頂點(diǎn),xj '和yj '分別表示頂點(diǎn)vj '的χ坐標(biāo)和y坐標(biāo);
[0018] (5)水印提取及無損恢復(fù);
[0019] 依據(jù)參照頂點(diǎn)和嵌入?yún)?shù)Qw,從步驟(4)含水印頂點(diǎn)坐標(biāo)序列V'中提取含水印矢 量地圖水印信息并恢復(fù)其原始數(shù)據(jù);具體步驟如下:
[0020] (5.1)獲取含水印頂點(diǎn)坐標(biāo);
[0021] 依據(jù)步驟(1),獲取含水印矢量地圖的頂點(diǎn)坐標(biāo)序列V' = {v/(x/,y/)|j = l, 2,…,η};其中,vj '表示V '的第j個(gè)頂點(diǎn),χj '和yj '分別表示頂點(diǎn)vj '的χ坐標(biāo)和y坐標(biāo),η表示 序列V'的頂點(diǎn)數(shù)目。
[0022] (5.2)選擇參照頂點(diǎn);
[0023]在密鑰Key的控制下,從頂點(diǎn)坐標(biāo)序列V'中隨機(jī)選取兩個(gè)頂點(diǎn)作為水印嵌入過程 中采用的參照頂點(diǎn);
[0024] (5.3)計(jì)算量化步長(zhǎng);
[0025] 依據(jù)Qw和步驟(3)的公式,計(jì)算歸一化量化步長(zhǎng)Sw;
[0026] (5.4)提取水印和恢復(fù)原始數(shù)據(jù);
[0027] 提取步驟(1)中含水印頂點(diǎn)序列V'的水印信息,恢復(fù)V'的原始數(shù)據(jù),最終得到恢復(fù) 后的頂點(diǎn)序列¥={^(取,71)|1 = 1,2,~,11},恢復(fù)矢量地圖原始數(shù)據(jù)。
[0028] 進(jìn)一步的,所述的計(jì)算嵌入?yún)?shù)仏和歸一化量化步長(zhǎng)5|的方法為:
[0030]其中,||VflVf2||為參照頂點(diǎn)Vfl和Vf2之間的歐幾里得距離,參數(shù)Q w將直接作為水印提 取及數(shù)據(jù)恢復(fù)階段的輸入?yún)?shù)。
[0031 ]進(jìn)一步的,假設(shè)頂點(diǎn)Vj (Xj,yj) (j = 1,2,…,n,Vj矣Vfi,Vj矣Vf2)為待嵌入水印的頂 點(diǎn),為待嵌入的水印,c為每個(gè)頂點(diǎn)中嵌入的水印比特?cái)?shù)目,所述的嵌入水印的 具體步驟如下:
[0032 ] (4.1)依據(jù)歸一化量化步長(zhǎng)Sw,以參照頂點(diǎn)vfi為起點(diǎn),將參照頂點(diǎn)vfi和頂點(diǎn)vj確定 的直線量化,并計(jì)算頂點(diǎn)~所在的量化區(qū)間的索引值;/
[0034] 其中,l|VflVj||