技术领域
本发明属于地理信息系统中矢量地图数据版权保护领域,具体涉及一 种针对基于整体矢量地图数据的鲁棒性水印嵌入方法及提取方法。
背景技术
随着计算机技术和互联网的发展与普及,以及多媒体数据存储和传输 技术的进步,数字产品的传输和共享变得非常容易,也得数字产品的 非法复制变得非常容易,随之带来了一系列有关版权的问题。为了保 护版权所有者的利益,迫切需要找到一种有效的方法来保护数字产品 的知识产权。
矢量地图数据水印算法不同于传统的基于图像水印算法,这主要是由 于地图数据不具有图像数据应用的普遍性等原因,同时还在于矢量地 图数据在数据结构、存储形式、表现方式、应用环境、使用要求以及 可能的攻击行为等方面与图像等多媒体数据都不一样,一般的水印算 法还很难直接应用在矢量地图数据上。由此可见,数据水印技术在矢 量地图数据上的应用具有更加潜在的用途。由于地理空间数据是描述 关于人类赖以生存的地球的重要信息,是国家基础性、公益性设施, 是国家基础设施建设和地球科学研究的支撑性成果,是国家经济、国 防建设中不可缺少的资源,对社会持续发展起着重要作用,因此,对 于矢量地图数据的水印技术也具有非常好的使用前景。
发明内容
为了克服现有的矢量地图数据的容易被非法拷贝、被逆向破解和原始 数据无损恢复的不足,本发明提供一种能以有效解决矢量地图数据被 非法拷贝、被逆向破解和原始数据无损恢复问题的基于虚拟网格的矢 量地图水印嵌入方法及检测方法。
本发明解决其技术问题所采用的技术方案是:
一种基于虚拟网格的矢量地图水印嵌入方法,所述矢量地图水印矢量 地图水印嵌入方法包括以下步骤:
(1)、确定一个具有标识意义的虚拟网格
(1.1)、确定一个基于地图指北方向的网格基准方向,标识特征为网 格的方向α,0≤α≤360°;
(1.2)、定义一组水印信息嵌入网格线夹角β,0≤β≤360°;
(1.3)、定义虚拟网格的间距Ⅰλ,0≤λ,网格的间距Ⅱμ,0≤μ ;
(1.4)、针对方向α、β、λ、μ这四个变量,设计具有标识意义的 特定网格,此虚拟网格中包含有水印信息;
(1.5)、所述虚拟网格允许覆盖矢量数字地图全图;
(1.6)、设计一个网格间距λ和μ,其中,0≤λ,0≤μ;
(2)、特征点的嵌入过程,具体如下:
(2.1)、当网格线与矢量地图坐标序列相交,且交点与线段的端点重 合时,那么就不需要做任何的处理,直接使用端点;
(2.2)、当网格线与矢量地图坐标序列相交,但交点与端点之间的距 离小于一个限定的误差值d时,就删除原来最近的端点,以新的交点代 替端点;
(2.3)、当网格线与矢量地图坐标序列正常相交,形成的交点并非以 上两种特殊情况,采用交点沿着网格线左右移动一个限定的误差值d, 那么这两个点中,选择其中一个点插入坐标串;
(3)、虚拟网格矢量地图水印嵌入过程:
对矢量地图数据中具有2个顶点以上的坐标序列与一组虚拟网格中的每 一条虚拟网格线检测是否有交点,如果存在交点,那么就根据特征点 嵌入策略,把相关交点插入到坐标序列中,具体方法步骤如下:
(3.1)、读取矢量地图坐标序列数据;
(3.2)、对坐标序列数据中的相邻两点,判断虚拟网格直线Y=kX+b与 线段(X1,Y1)-(X2,Y2)之间是否有交点,把(X1,Y1)和(X2,Y2)分别 代入虚拟网格直线Y=KX+B得如下判别式:当(Y2-kX2-b)×(Y1-kX1-b) >0,则说明(X1,Y1)和(X2,Y2)在虚拟网格直线同一侧,因此不可能 存在交点。当
(3.3)、如果存在交点,则设交点为(X,Y),那么其一定是(X1,Y1) -(X2,Y2)线段上的一点,其(X,Y)坐标可以由(X1,Y1)-(X2,Y2)两点 决定:
把公式(2)确定的交点(X,Y)代入已知的直线方程Y=K×X+B求得μ :
再把由(3)求得的μ代入(2)式,即可求得(X,Y)坐标的坐标值。
(3.4)、最后,把特征点插入到坐标序列中的(X1,Y1)与(X2,Y2) 之间,得到特征点分布整体的矢量地图数据。
一种基于虚拟网格的矢量地图水印检测方法,所述检测方法步骤如下 :
(4.1)、读取矢量地图坐标序列数据;
(4.2)、输入虚拟网格线基准方向角α;
(4.3)、根据虚拟网格基准方向角α,对矢量地图坐标序列数据进行 旋转处理:
(4.4)、对旋转后的矢量地图坐标序列进行X轴向投影统计分析,( 4.5)、对X轴向投影进行统计分析,并根据分析结果检测出虚拟网格 线;
(4.6)、根据虚拟网格线,恢复插入的水印信息点。
本发明技术核心思想是根据地理信息矢量数据特点,提出了一种基于 虚拟网格的矢量地图水印算法。主要解决了目前矢量地图水印算法对 坐标数据序列组织形式的依赖,解决了水印定位问题;通过设计一个 特定的虚拟网格作为水印标识,实现了小容量嵌入数据表示水印大内 容问题;算法对矢量地图数据造成的精度误差是可控的,且水印可以 被精确提取出来;本发明所采用的方法实现简单有效,摆脱了现有矢 量地图数字水印的对矢量地图数据组织形式的依赖,具有很好的抗几 何攻击性能。能够为地理信息系统矢量地图数据的生产、传播与应用 提供有效的版权保护。
附图说明
图1为基于虚拟网格的数字水印标识。
图2为特征点的嵌入策略中直接使用原坐标点的示意图。
图3为特征点坐标与原坐标点误差在精度控制范围内时,以特征点代替 原坐标点的示意图。
图4、图5、 图6、图7 为特征点需要插入时,为避免水印攻击,对 特征点移位处理四个不同状态示意图。
图8 为虚拟网格水印标识嵌入矢量地图的后的示意图。
图9 为检测虚拟网格中应用进行统计分析检测虚拟网格线的示意图。
具体实施方式
下面结合附图对本发明作进一步描述。
参照图1~图8,一种基于虚拟网格的矢量地图水印嵌入方法,包括以下 步骤:
(1)图1 是设计一个具有标识意义的虚拟网格具体步骤:
(1.1)、确定一个基于地图指北方向的网格基准方向,其主要的标识 特征为网格的方向α(0≤α≤360°);
(1.2)、定义一组水印信息嵌入网格线夹角β(0≤β≤360°);
(1.3)、定义虚拟网格的间距Ⅰλ(0≤λ),网格的间距Ⅱμ(0≤ μ);
(1.4)、针对方向α、β、λ、μ这四个变量,可以设计具有标识意 义的特定网格,此虚拟网格中包含有相关的水印信息;
(1.5)、此虚拟网格可以覆盖矢量数字地图全图,图形范围越大,鲁 棒性越强;
(1.6)、为防止剪切,需要设计一个合适的网格间距λ(0≤λ)和 μ(0≤μ)。
(2)图2-图7 是特征点的嵌入策略:
特征点的嵌入设计关系到水印算法的鲁棒性,为了防止三点共线给攻 击者留下攻击痕迹,拟采用如下特征点嵌入策略:
(2.1)、当网格线与矢量地图坐标序列相交,且交点与线段的端点重 合时(如图2所示),那么就不需要做任何的处理,直接使用端点。
(2.2)、当网格线与矢量地图坐标序列相交,但交点与端点非常接近 (小于一个限定的误差值d)时,如图3所示,那么就删除原来最近的 端点,以新的交点代替端点。
(2.3)、当网格线与矢量地图坐标序列正常相交,形成的交点并非以 上两种特殊情况,大量的是如图4、图5所示的正常相交的交点。为了 消除共线因素(三点共线,此特征易于被水印攻击算法利用,为此需要 进行消除处理),采用交点沿着网格线左右移动一个限定的误差值d, 那么这两个点中,如何选择那一个点插入坐标串。我们设计了一个 原则:即根据图形趋势,如图4,当然是选择外部的那个红点;如图5 ,左右两个红点都可以;从图4中可以看到,其中C’是符合曲线趋势 的点,从△ABC和△ABC’的构成上可以看出,只要计算它们两个三角 形的面积,选取面积较大的那点C’即为我们需要选择的插入点坐标。
(3)图8 是虚拟网格水印标识嵌入矢量地图水印后的示意图,具体 的嵌入方法为:
对矢量地图数据中具有2个顶点以上的坐标序列与一组中的每一条虚拟 网格线检测是否有交点,如果存在交点,那么就根据算法思想的特征 点嵌入策略,把相关交点插入到坐标序列中,具体方法步骤如下:
(3.1)、读取矢量地图坐标序列数据。
(3.2)、对坐标序列数据中的相邻两点,判断虚拟网格直线Y=KX+B与 线段(X1,Y1)-(X2,Y2)之间是否有交点,把(X1,Y1)和(X2,Y2) 分别代入虚拟网格直线Y=KX+B得如下判别式:当(Y2-kX2-b)×(Y1-kX 1-b)>0,则说明(X1,Y1)和(X2,Y2)在虚拟网格直线同一侧,因此 不可能存在交点。当
(3.3)、如果存在交点,则设交点为(X,Y),那么其一定是(X1,Y 1)-(X2,Y2)线段上的一点,其(X,Y)坐标可以由(X1,Y1) -(X2,Y2)两点决定:
把公式(2)确定的交点(X,Y)代入已知的直线方程Y=K×X+B可以求 得μ:
再把由(3)求得的μ代入(2)式,即可求得(X,Y)坐标的坐标值。
(3.4)、最后根据算法设计思想中的特征点嵌入策略,把特征点插入 到坐标序列中的(X1,Y1)与(X2,Y2)之间。具体实现后的矢量地图 与特征点分布整体的矢量地图数据上。
参照图9,一种基于虚拟网格的矢量地图水印检测方法,图9为虚拟网 格矢量地图水印检测步骤:
虚拟网格矢量地图水印检测方法是虚拟网格矢量地图水印嵌入算法的 逆过程,具体的方法步骤如下:
(4.1)、读取矢量地图坐标序列数据。
(4.2)、输入虚拟网格线基准方向角α与(注:此基准方向角也可以 程序内置,或由配置文件配置)。
(4.3)、根据虚拟网格基准方向角α,对矢量地图坐标序列数据进 行旋转处理。
(4.4)、对旋转后的矢量地图坐标序列进行X轴向投影统计分析,由 于一般情况下矢量地图数据在X轴向投影统计的重叠数据不可能超过一 个阀值,而在虚拟网格线上的交点个数超过一定阀值,因此可以通过 分析投影统计数据,检测虚拟网格线。
(4.5)、对X轴向投影进行统计分析,并根据分析结果检测出虚拟网 格线。
(4.6)、根据虚拟网格线,恢复插入的水印信息点。