1.一种基于角度差分的矢量地理空间数据数字水印方法,包括以下步骤:
1)以地图为对象,基于角度差分建立水印载体模型;
2)以地图对象为单位,选取各地图对象中的所有曲线,基于曲线特征长度比定义所有曲线的标识ID;
3)基于量化索引水印模型和所有曲线的标识ID,将水印信息调制于每个地图对象的水印载体模型中;
4)提取水印信息;
5)验证水印信息。
2.根据权利要求1所述的基于角度差分的矢量地理空间数据数字水印方法,其特征在于,所述步骤1)的具体步骤为:
1-1)提取特征点集合:选取地图对象中所有曲线,对于每条曲线,提取曲线中的曲线特征点,利用曲线特征点所构成的角度作为嵌入水印的特征域;曲线特征点提取采用道格拉斯-普克算法;经过曲线特征点的提取过程,得到曲线特征点集合P={P1,...,Pn},n为特征点个数;
1-2)提取角度集合:对P中点集,按次序每相邻三个点构成一个角度,从而得到角度集合θ={θ1,...,θu},u=TRUNC(n/3),TRUNC()表示截尾取整函数;
1-3)建立水印载体模型:在集合θ中选取两个角度,一个为最大角,另一个为最小角,构成角度差分,如下式:C=θi-θj
其中θi为最大角,θj为最小角,则C即为水印载体模型。
3.根据权利要求2所述的基于角度差分的矢量地理空间数据数字水印方法,其特征在于,所述步骤1-1)中,曲线特征点提取过程如下:(a)选定地图对象中的一条曲线Q1,将曲线Q1首尾节点作为初始特征点,并分别记为P1,Pn,在P1,Pn之间虚连一条线段S1;
(b)求出曲线Q1首尾两节点之间的各点到该线段S1的距离,找出距离该线段S1最远的点,记距离最远的点到线段S1的距离为d1,如果d1大于给定阈值,则该距离最远的点记为新特征点P2;
(c)将曲线Q1首尾两节点分别与新产生的特征点P2虚连,构成新的线段S2和S3,以新特征点P2为界将曲线Q1分为两条曲线Q2和Q3,其中Q2的首尾节点为P1,P2,Q3的首尾节点为P2,Pn,假设与线段S2对应的曲线为Q2,与线段S3对应的曲线为Q3,对每条新线段,重复步骤(b)的操作,得到新的特征点,即对于线段S2,求出曲线Q2首尾两节点之间的各点到该线段S2的距离,找出距离该线段S2最远的点,如果距离最远的点到线段S2的距离大于给定阈值,则该距离最远的点记为新特征点;对于线段S3,求出曲线Q3首尾两节点之间的各点到该线段S3的距离,找出距离该线段S3最远的点,如果距离最远的点到线段S3的距离大于给定阈值,则该距离最远的点记为新特征点;
(d)对于每个新产生的特征点,重复步骤(c)的操作;经过上述特征点提取过程,得到曲线特征点集合P={P1,...,Pn}。
4.根据权利要求3所述的基于角度差分的矢量地理空间数据数字水印方法,其特征在于,所述步骤2)具体步骤为:以地图对象为单位,选取各地图对象中的所有曲线;对于任一曲线Q,基于曲线特征长度比定义曲线标识ID的过程为:首先将曲线Q首尾节点相连成线段S,线段长度记为l;然后找到曲线Q上距离线段S最远的点,最远点到线段S的距离记为d,则曲线Q标识ID定义如下:ID=MSD(l/d)
MSD为取最高有效位函数。
5.根据权利要求4所述的基于角度差分的矢量地理空间数据数字水印方法,其特征在于,所述步骤3)具体步骤为:
3-1)将原始水印信息转换成二进制位的水印串;
3-2)计算每个地图对象中所有曲线的标识ID;
3-3)计算每个地图对象中所有曲线的哈希值value_hash,value_hash=HASH(k oID ok),k为密钥;
3-4)对每个地图对象中所有曲线按value_hash大小进行升序排序,依次序排好后均分成若干子集subset[nw],nw为水印串长度,并保存所有子集的上下边界信息boundary[nw][2];
3-5)在每组子集中重复嵌入一个水印位,即将水印位基于量化索引调制思想,嵌入到子集中的每条曲线的特征点构成的差分角度中。
6.根据权利要求5所述的基于角度差分的矢量地理空间数据数字水印方法,其特征在于,所述步骤3-5)中,将水印位基于量化索引调制思想,嵌入到子集中的每条曲线的特征点构成的差分角度中的具体步骤为:
3-5-1)基于量化索引调制思想计算水印载体量化值Q(C),计算公式如下:上式中,C为1-3)步提取的水印载体,f为中间临时变量,round为取最近整数函数,Δ为量化步长,%为取余数运算符号,ω为要嵌入的水印位信息,取值为1或0;
3-5-2)计算差分角度改变值:θe=Q(C)-C;
3-5-3)分别计算嵌入水印后构成差分角度的两个角θi、θj的新角度值θi、θj为构成差分角度的两个角, 为嵌入水印后构成差分角度的两个角;对于角θi,将构成角θi的两条边朝着与其角平分线相反的方向分别向外旋转 对于角θj,将构成角θj的两条边朝着其角平分线的方向分别向内旋转
3-5-4)通过分别对构成角θi、θj的边的调整,完成水印位的嵌入。
7.根据权利要求6所述的基于角度差分的矢量地理空间数据数字水印方法,其特征在于,所述步骤4)的具体步骤为:
4-1)计算地图对象中所有曲线的标识ID;
4-2)根据所有曲线的标识ID和密钥计算曲线的哈希值value_hash,按value_hash对所有曲线进行排序;
4-3)根据子集边界信息,将各曲线划分到相应子集中,从而恢复分组;
4-4)对各子集内的曲线,每条曲线提取出一位水印位;
4-5)当子集中所有曲线都处理完毕后,使用投票机制来确定子集的最终水印位,即当提取出水印位1的曲线条数多于提取出水印位0的曲线条数时,则子集中提取出水印位1;当提取出水印位1的曲线条数少于提取出水印位0的曲线条数时,则子集中提取出水印位0;如果提取出水印位1的曲线条数等于提取出水印位0的曲线条数,则子集中提取水印位操作失败。
8.根据权利要求7所述的基于角度差分的矢量地理空间数据数字水印方法,其特征在于,所述步骤4-4)中,从曲线中提取水印位的过程如下:
4-4-1)提取曲线特征点集合P′={P1′,...,Pn′};
4-4-2)每相邻三个特征点构成一个角度,从而提取出角度集合θ′;
4-4-3)计算差分角度,提取水印载体C′;
4-4-4)根据C′所在的量化区间提取水印位信息,计算方法如下:ω′=(C′/Δ+1)%2
上式中,ω′为提取出的水印位,/为除法取整数运算符号,Δ为量化步长,%为取余数运算符号。
9.根据权利要求8所述的基于角度差分的矢量地理空间数据数字水印方法,其特征在于,所述步骤5)的具体过程为:对于一个没有水印的地图数据,基于量化索引调制思想从地图对象中提取出匹配水印位的概率是1/2,那么,在子集中匹配h个水印位的概率表述如下,其中r为该子集中的地图对象数量:当子集中至少有r/2个匹配水印位时,投票得出水印位,其概率如下:因此,对一个没有水印的地图数据,可提取出一半的匹配水印位;
令地图对象中曲线数量为t,提取出匹配水印位的曲线数量为m,则水印位检测率为m/t,水印信息的验证方法为:如水印位检测率与期望值1/2的差的绝对值大于给定判定阈值α时,即|m/t-1/2|>α,则认为检测出了水印信息。