奚 旭,張 新 長,梁 偉 東
(1.蘇州科技大學(xué)地理科學(xué)與測(cè)繪工程學(xué)院,江蘇 蘇州 215009;2.廣州大學(xué)地理科學(xué)與遙感學(xué)院,廣東 廣州 510006;3.廣州市城市規(guī)劃設(shè)計(jì)有限公司,廣東 廣州 510030)
數(shù)字水印作為信息安全防護(hù)的前沿技術(shù),在矢量地圖的版權(quán)保護(hù)中發(fā)揮重要作用,有效促進(jìn)了矢量地圖的安全共享[1-3]。但傳統(tǒng)的嵌入式水印算法不可避免地會(huì)影響矢量地圖的精度,從而影響數(shù)據(jù)的可用性,因此,具有無損性質(zhì)的零水印算法越來越受到關(guān)注[2-7]。零水印算法不修改被保護(hù)數(shù)據(jù)的任何信息,通過提取數(shù)據(jù)的重要特征構(gòu)建水印,并依托權(quán)威的第三方保存和驗(yàn)證版權(quán)信息[8,9],顛覆了傳統(tǒng)水印的嵌入機(jī)制,實(shí)現(xiàn)了對(duì)數(shù)據(jù)的零干擾,非常契合矢量地圖的使用需求。
目前,矢量地圖的零水印研究已取得豐碩成果。例如:李文德等[10]將相鄰特征點(diǎn)構(gòu)成的直線斜率調(diào)制成二值矩陣作為特征信息,與二值版權(quán)信息異或生成零水印,該方法對(duì)旋轉(zhuǎn)、平移、縮放以及壓縮簡化有良好的魯棒性;Wang等[11]用同心圓將矢量地圖分為多個(gè)環(huán),以每個(gè)環(huán)中的頂點(diǎn)數(shù)作為特征信息構(gòu)建零水印,該方法對(duì)平移、縮放、旋轉(zhuǎn)、隨機(jī)噪聲和裁剪等攻擊有較強(qiáng)的魯棒性;Peng等[12]利用各特征點(diǎn)到矢量地圖幾何中心的距離比作為特征信息構(gòu)建零水印,利用特征點(diǎn)距離比的幾何不變性提升水印方案性能。以上研究均通過挖掘統(tǒng)計(jì)信息實(shí)現(xiàn)零水印算法,利用統(tǒng)計(jì)信息的穩(wěn)定性提升算法的魯棒性。此外,部分學(xué)者基于頻率域構(gòu)建零水印,如呂文清等[13]將特征點(diǎn)的DFT相位按符號(hào)值轉(zhuǎn)為二值矩陣作為特征信息構(gòu)建零水印,該方法在平移、縮放、坐標(biāo)點(diǎn)增減等方面表現(xiàn)出很好的魯棒性;李文德等[14]將DFT的相位由弧度值轉(zhuǎn)換為角度值,并選取均勻分布的角度值取整轉(zhuǎn)化為二進(jìn)制特征值構(gòu)建零水印,同樣繼承了DFT系數(shù)不變性的優(yōu)點(diǎn);韓志聰[15]對(duì)特征點(diǎn)進(jìn)行DWT分解,利用DWT的低頻系數(shù)構(gòu)建零水印,在抗簡化、裁剪、平移、縮放等方面有較好的魯棒性。基于頻率域的零水印繼承了頻率域系數(shù)的幾何不變性,但也是一種特殊的統(tǒng)計(jì)特征零水印,對(duì)應(yīng)的水印算法也具有鮮明的幾何穩(wěn)定性。
綜上,挖掘穩(wěn)定的特征信息是零水印算法的基礎(chǔ),目前研究集中在穩(wěn)定統(tǒng)計(jì)信息的構(gòu)建與挖掘,方式單一易導(dǎo)致針對(duì)性攻擊,故本文結(jié)合深度學(xué)習(xí)方法中的自編碼器(Auto Encoder,AE)挖掘矢量地圖中深層、穩(wěn)定的內(nèi)蘊(yùn)特征,構(gòu)建一種魯棒性較強(qiáng)的零水印算法,為地理空間數(shù)據(jù)版權(quán)保護(hù)提供技術(shù)參考。
自編碼器是深度學(xué)習(xí)的重要組成模塊[16],其核心思想是對(duì)原始輸入值進(jìn)行特征映射(編碼),通過反向傳播算法的訓(xùn)練,將其重構(gòu)為輸出值且盡可能等于輸入值。自編碼器結(jié)構(gòu)(圖1)是包含輸入層、隱藏層和輸出層的3層神經(jīng)網(wǎng)絡(luò),輸入層與輸出層規(guī)模相同,一般情況下隱藏層的神經(jīng)元節(jié)點(diǎn)數(shù)量少于輸入層,可得到輸入層的壓縮表示。自編碼器工作原理為:1)設(shè)未標(biāo)簽數(shù)據(jù)集X(X={x1,x2,…,xn},n為輸入層神經(jīng)元節(jié)點(diǎn)數(shù)量)為輸入層,隱藏層由m個(gè)神經(jīng)元節(jié)點(diǎn)構(gòu)成,一般情況下n>m,利用式(1)進(jìn)行映射,其中激活函數(shù)(Sigmoid函數(shù)或Tanh函數(shù))用于進(jìn)行非線性映射,得到X的特征表達(dá),即隱藏層layer_hide;2)對(duì)隱藏層利用式(2)重構(gòu)輸出層Y,神經(jīng)元節(jié)點(diǎn)數(shù)量同樣為n;3)使用重構(gòu)代價(jià)函數(shù)(式(3))計(jì)算輸入和輸出間的誤差;4)通過誤差反向傳導(dǎo)和批量梯度下降法,迭代尋找最優(yōu)的G和B,使輸入與輸出間誤差最小[17]。
圖1 自編碼器結(jié)構(gòu)Fig.1 Structure of Auto Encoder
(1)
式中:Ge、Be分別為隨機(jī)生成的權(quán)值矩陣和偏置矩陣,激活函數(shù)選用Sigmoid函數(shù)。
(2)
(3)
1個(gè)隱藏層對(duì)輸入數(shù)據(jù)的特征提取能力有限,若將多個(gè)自編碼器堆疊,則抽取能力會(huì)更強(qiáng)大,這種多層自編碼器稱為棧式自編碼器(Stacked Auto Encoder,SAE),其結(jié)構(gòu)如圖2所示。棧式自編碼器工作原理與自編碼器相似,采用無監(jiān)督的逐層貪婪訓(xùn)練法,輸入原始數(shù)據(jù)X,在第一隱藏層編碼壓縮得到X的一階特征h1;將該特征作為第二隱藏層的輸入,編碼壓縮后得到二階特征h2;經(jīng)過多次編碼壓縮,最終得到的特征即為X的深層特征描述。在此基礎(chǔ)上將最后一層的輸出與X進(jìn)行誤差逐層反向傳播,對(duì)各隱藏層參數(shù)進(jìn)行有監(jiān)督的微調(diào)。
圖2 棧式自編碼器結(jié)構(gòu)Fig.2 Structure of stacked Auto Encoder
自編碼器作為一種無監(jiān)督學(xué)習(xí)方法,與其他無監(jiān)督學(xué)習(xí)方法有相似之處:若激活函數(shù)使用線性函數(shù),重構(gòu)代價(jià)函數(shù)使用平方誤差,則其原理類似于主成分分析;若激活函數(shù)使用量化編碼,重構(gòu)代價(jià)函數(shù)使用平方誤差,則與K-means聚類等相似[18]。但自編碼器與K-means聚類不同之處在于,前者用于提取數(shù)據(jù)中的高階特征,同時(shí),有學(xué)者發(fā)現(xiàn)自編碼器的數(shù)據(jù)壓縮能力優(yōu)于主成分分析[19]。綜上,自編碼器的結(jié)構(gòu)簡單,對(duì)數(shù)據(jù)能進(jìn)行有效壓縮,并提取出數(shù)據(jù)深層、穩(wěn)定的特征,因此,將自編碼器運(yùn)用到水印算法中具有可行性。
本文選用棧式自編碼器對(duì)矢量地理數(shù)據(jù)提取特征信息,因其多應(yīng)用于圖像識(shí)別和分類領(lǐng)域,算法中部分內(nèi)容(如使用softmax分類、參數(shù)微調(diào)操作等)可在水印構(gòu)建過程中略去,另外,自編碼器應(yīng)用于圖像分類時(shí)需要較多的訓(xùn)練數(shù)據(jù),而在水印算法中,可構(gòu)建的訓(xùn)練數(shù)據(jù)受到一定限制,所以在模型訓(xùn)練中采用放回式訓(xùn)練。
本文提出的基于自編碼器的零水印算法實(shí)現(xiàn)流程(圖3)為:1)水印圖像生成及處理:生成包含版權(quán)信息的二值水印圖像W,大小為p×p像素;為提升安全性,對(duì)其進(jìn)行Arnold置亂[20],生成加密水印圖像WA,并按照一定規(guī)則讀取WA灰度值,轉(zhuǎn)為水印矩陣WM;灰度值為255,則WM內(nèi)元素記為1,其他不變,形成由0與1構(gòu)成的初始水印序列。2)特征點(diǎn)提取:為提升水印算法抗坐標(biāo)點(diǎn)攻擊的能力,對(duì)原始矢量地圖DO采用道格拉斯—普克算法提取特征點(diǎn),算法的閾值設(shè)為τ,可得特征點(diǎn)集合Vτ={v1,v2,…,vi,…,vn},n為特征點(diǎn)數(shù)量。3)特征信息構(gòu)建:根據(jù)式(4)計(jì)算Vτ中各特征點(diǎn)的橫縱坐標(biāo)之差,對(duì)Vτ各點(diǎn)坐標(biāo)差值的數(shù)值大小進(jìn)行排列,按式(5)取其整數(shù)部分末兩位,轉(zhuǎn)為二進(jìn)制,組成坐標(biāo)差序列集C={C1,C2,…,Ci,…,Cn}。4)模型訓(xùn)練集生成:坐標(biāo)差序列集C的長度為dC,設(shè)自編碼器模型訓(xùn)練集中各圖像大小為d×d,則轉(zhuǎn)化為一維序列后,其長度為d2,按式(6)對(duì)C進(jìn)行補(bǔ)位操作。將C分為3個(gè)序列C1、C2、C3,并均轉(zhuǎn)化為d×d的二維矩陣,再將矩陣圖像化,各二值圖像組成模型的訓(xùn)練集L。5)模型訓(xùn)練:新建一個(gè)空白矩陣,行列大小由訓(xùn)練集L的圖像數(shù)量和d2決定;模型讀取L各訓(xùn)練圖像后,將其轉(zhuǎn)成長度為d2的一維序列,逐行寫入空白矩陣中,生成訓(xùn)練矩陣E。本文的模型訓(xùn)練次數(shù)為10,每次訓(xùn)練可有多次迭代,若某次訓(xùn)練從E中隨機(jī)抽取a行樣本組成樣本矩陣Es,則每次訓(xùn)練可迭代d/a次。設(shè)棧式自編碼器的層數(shù)為3,每層均為1個(gè)自編碼器,每個(gè)自編碼器均包含1個(gè)編碼器和1個(gè)解碼器,每個(gè)自編碼器的學(xué)習(xí)率r設(shè)定為0.01,選取不同的Es輸入式(1)中生成編碼器,再將編碼器輸入解碼器中,利用式(2)還原矩陣Er,并通過式(3)計(jì)算從編碼輸入到解碼輸出間的損失,采用式(7)進(jìn)行模型優(yōu)化。提取第10次訓(xùn)練第3層AE的隱藏層M,并保存同批次的各層權(quán)值矩陣Ge與偏置矩陣Be,作為水印檢測(cè)時(shí)的模型參數(shù)。6)零水印生成:由于各次訓(xùn)練選取訓(xùn)練樣本數(shù)量設(shè)定為a,根據(jù)棧式自編碼器的運(yùn)算性質(zhì),得到的矩陣M大小為p×p,即與水印序列矩陣WM大小一致。M中各元素均為實(shí)數(shù),且mi,j∈[0,1],按式(8)將M轉(zhuǎn)換成特征矩陣Mf,并與矩陣WM按位進(jìn)行異或操作,生成零水印圖像Wzero(式(9))。7)將Wzero提交至IPR( Intellectual Property Rights )注冊(cè)中心,用于后續(xù)版權(quán)驗(yàn)證。
圖3 零水印構(gòu)建流程Fig.3 Construction process of zero-watermarking
(4)
(5)
(6)
式中:“?”為補(bǔ)位符,即在原序列C末尾,按條件補(bǔ)上若干個(gè)或者若干位C序列,補(bǔ)位后d≥3d2。
optimizer(r,cost)=AdamOptimizer(r).minimize(cost)
(7)
式中:r為學(xué)習(xí)率;minimize表示最大限度地最小化;cost為模型定義的代價(jià)函數(shù)。式(7)為TensorFlow的內(nèi)嵌函數(shù),引入二次方梯度校正,用于尋找全局最優(yōu)點(diǎn)的優(yōu)化算法。
(8)
Wzero=Mf⊕WM
(9)
采用相同的閾值τ對(duì)待檢測(cè)矢量地圖進(jìn)行道格拉斯—普克壓縮,提取特征點(diǎn)集V′1;構(gòu)建V′1的坐標(biāo)差序列C′并轉(zhuǎn)換成二值圖像集L′;調(diào)取構(gòu)建零水印時(shí)保存的各層權(quán)值矩陣Ge和偏置矩陣Be,作為自編碼器模型的參數(shù),將L′輸入訓(xùn)練好的自編碼器中,構(gòu)建相同的訓(xùn)練矩陣E′和E′s,獲得矩陣M′(m′i,j為M′中元素),利用式(10)生成待檢測(cè)數(shù)據(jù)的特征矩陣M′f。
(10)
從IPR注冊(cè)中心獲取零水印圖像Wzero,將其矩陣化后,與M′f進(jìn)行異或操作,得到1個(gè)加密水印圖像W′A(式(11)),對(duì)W′A進(jìn)行Arnold逆置亂后得到待檢測(cè)數(shù)據(jù)的水印圖像W′,計(jì)算W與W′之間的NC值(式(12))[21],若NC值大于設(shè)定的閾值,則認(rèn)為驗(yàn)證成功,否則不能判定待檢測(cè)數(shù)據(jù)的版權(quán)所屬。同時(shí),采用比特誤差率BER(Bit Error Ratio)[4](式(13))定量驗(yàn)證提取的水印信息誤差。
W′A=M′f⊕Wzero
(11)
(12)
式中:Wi,j與W′i,j分別為原始水印圖像與還原的水印圖像在第(i,j)位的水印信息;NC值范圍為0~1。
(13)
式中:N為水印信息的長度。
本文選擇道路矢量和建筑物矢量作為實(shí)驗(yàn)數(shù)據(jù)(圖4),數(shù)據(jù)的基本信息與預(yù)處理后信息如表1所示,兩組數(shù)據(jù)設(shè)置的壓縮閾值均為10 m,壓縮比分別達(dá)到85.65%和69.33%。圖5為待嵌入的二值水印圖像以及進(jìn)行Arnold置亂加密的過程,水印圖像中含有意義的版權(quán)內(nèi)容“地理學(xué)院”,大小為60×60像素。在Arnold置亂公式中所有參數(shù)均取1的情況下,可得本文實(shí)驗(yàn)圖像的置亂周期為120次,即在第120次時(shí)恢復(fù)為原始狀態(tài)。為提升安全性,本文選用第80次置亂時(shí)的水印圖像用于零水印構(gòu)建。在還原水印圖像時(shí),本文設(shè)定NC閾值為0.8,當(dāng)NC大于0.8時(shí),認(rèn)為版權(quán)認(rèn)證成功,否則認(rèn)證失敗。
圖4 原始實(shí)驗(yàn)數(shù)據(jù)Fig.4 Original experimental data
表1 實(shí)驗(yàn)數(shù)據(jù)的基本信息Table 1 Basic information of the experimental data
圖5 水印圖像置亂加密Fig.5 Scrambling encryption of watermark image
常見的幾何攻擊主要包括平移、旋轉(zhuǎn)和縮放3種方式,因此,水印算法能否抵抗幾何攻擊是檢驗(yàn)魯棒性的重要指標(biāo)。實(shí)驗(yàn)進(jìn)行了3次不同強(qiáng)度的平移、旋轉(zhuǎn)和縮放攻擊,在此基礎(chǔ)上還原水印圖像,并進(jìn)行對(duì)比驗(yàn)證(表2)??梢钥闯觯诓煌瑥?qiáng)度的幾何攻擊下,兩組數(shù)據(jù)均可還原出高質(zhì)量的水印圖像,版權(quán)內(nèi)容清晰可見;NC值均不低于0.98,遠(yuǎn)大于設(shè)定的閾值,BER值也僅為3%左右,表明本文提出的零水印算法展現(xiàn)了良好的抗幾何攻擊能力。但也發(fā)現(xiàn),還原水印圖像的NC值均未達(dá)到1,因?yàn)樵趲缀喂粝拢鴺?biāo)值發(fā)生了變化,導(dǎo)致自編碼器在特征提取過程中發(fā)生偏移,但偏移程度不會(huì)影響水印功能的正常實(shí)現(xiàn),同樣展現(xiàn)了自編碼器強(qiáng)大的特征提取能力。
表2 幾何攻擊結(jié)果Table 2 Results of geometric attacks
坐標(biāo)點(diǎn)攻擊主要包括隨機(jī)增點(diǎn)、隨機(jī)刪點(diǎn)和壓縮3種攻擊方式,不同攻擊類型同樣設(shè)定3次不同的攻擊強(qiáng)度,攻擊結(jié)果如表3所示。在隨機(jī)增點(diǎn)和隨機(jī)刪點(diǎn)的實(shí)驗(yàn)中,均可提取出NC值大于0.98的高質(zhì)量水印圖像,成功驗(yàn)證版權(quán);且隨著攻擊強(qiáng)度增點(diǎn),提取結(jié)果出現(xiàn)輕微下滑趨勢(shì)。因此,本文提出的零水印算法對(duì)隨機(jī)增點(diǎn)和隨機(jī)刪點(diǎn)的魯棒性很強(qiáng)。在壓縮攻擊下,本文兩組實(shí)驗(yàn)數(shù)據(jù)的壓縮比閾值分別為85.65%和69.33%,當(dāng)壓縮閾值不超過本文預(yù)設(shè)的閾值時(shí),即壓縮比小于特征點(diǎn)提取閾值時(shí),可以提取出NC為1的完整水印圖像。因此,當(dāng)輸入值相同,本文的自編碼器水印算法可提取出相同的特征信息。在建筑物數(shù)據(jù)中,壓縮比為75%,超過預(yù)設(shè)的壓縮閾值時(shí),可提取出的水印圖像NC值為0.9749,仍能有效完成版權(quán)驗(yàn)證。綜上所述,本文提出的零水印算法對(duì)坐標(biāo)點(diǎn)攻擊具有較強(qiáng)的魯棒性。
表3 坐標(biāo)點(diǎn)攻擊結(jié)果Table 3 Results of vertex attacks
為檢驗(yàn)零水印的唯一性,將兩組實(shí)驗(yàn)數(shù)據(jù)得到的零水印圖像進(jìn)行交叉提取,并將提取結(jié)果與原始水印圖像進(jìn)行相似性檢驗(yàn)(表4)??梢钥闯?,交叉提取得到的水印圖像NC值分別為0.5049和0.5128,無法識(shí)別出有效水印信息,表明不同數(shù)據(jù)基于本文算法生成的零水印圖像無法提取、還原其他數(shù)據(jù)生成的水印信息,算法具有唯一性。
表4 唯一性檢驗(yàn)結(jié)果(NC值)Table 4 Results of uniqueness test (NC value)
本文選取前人研究中兩組魯棒性較強(qiáng)、可抵御多種水印攻擊的零水印算法[13,14],與本文提出的零水印算法進(jìn)行魯棒性對(duì)比(表5,“√”表示可成功驗(yàn)證版權(quán),“×”表示無法驗(yàn)證版權(quán))。從表5可以看出,相較對(duì)比水印算法,本文算法在對(duì)抗常見的幾何攻擊、坐標(biāo)點(diǎn)攻擊時(shí),顯示出更強(qiáng)、更全面的魯棒性,但對(duì)抵抗裁剪攻擊的能力較差。
表5 對(duì)比實(shí)驗(yàn)結(jié)果Table 5 Results of contrast experiments
本文引入深度學(xué)習(xí)中的棧式自編碼器模型構(gòu)建零水印算法,因其能有效提取數(shù)據(jù)深層、穩(wěn)定的特征,進(jìn)行相應(yīng)的改造后可應(yīng)用于提取矢量地理數(shù)據(jù)中的特征信息,實(shí)驗(yàn)證明,利用棧式自編碼器特征信息構(gòu)建的零水印算法對(duì)幾何攻擊、坐標(biāo)點(diǎn)攻擊、數(shù)據(jù)壓縮攻擊等具有較強(qiáng)魯棒性,可為矢量地圖版權(quán)保護(hù)提供技術(shù)參考。但本文算法抵抗裁剪攻擊的能力較差,且在構(gòu)建訓(xùn)練圖像集方面,是否還有比坐標(biāo)差序列更合適的方法,有待進(jìn)一步研究。