杨娜娜
(1.广东省国土资源测绘院,广东 广州 510500)
数字水印(digital watermarking)作为数字产品版权保护的前沿技术[1],在矢量地图版权保护、内容完整性认证及使用跟踪等方面也发挥着重要作用。近年来,矢量地图水印技术的研究逐渐成为矢量地图安全领域研究与应用的热点[2]。然而,矢量地图复杂的数据结构及空间关系、多样的存储格式、高精度的空间定位特性等独特性,决定了矢量地图的版权保护难以简单地应用传统的加密技术来解决。因此,需要根据矢量地图的特征,综合运用数字水印等多种技术,进行矢量地图版权保护技术的研究,以取得满足矢量地图版权保护系统建设和相关法规有效实施的成果。
数字水印技术是在不影响数字产品质量和可用性的前提下,将特定的水印信息嵌入其中。其中,作者的序列号、公司标志或一些具有特殊意义的文本等均可以作为水印信息的内容。利用这些水印信息,可以达到确定版权所有者、认证数据来源的真实性、跟踪侵权行为判断载体是否被篡改等目的[3]。数字水印的基本特征[4]详见表1。
表1 数字水印的基本特征
根据数字水印研究情况,从不同角度对现有数字水印算法进行分类[3,5],具体分类情况见表2。
表2 数字水印分类
数字水印技术是在数字产品中嵌入能够证明版权的水印信息,在需要的时候又能够将其提取或检测出来的过程,通常包括水印的生成、嵌入和检测3个过程[6](如图1)。
图1 数字水印系统基本框架
矢量地图是将现实世界中复杂的地理实体抽象概括为点、线、面等基本几何要素的组合,一般由属性数据和空间数据两部分组成。属性数据是描述地理要素属性特征的数据(如名称、类型、等级等),不能随便修改;空间数据包括几何数据和空间关系数据,其中,几何数据是对地理要素空间特征的描述;空间关系数据是对地理要素之间关系的描述,在矢量地图中主要指拓扑关系。
1)几何特征。几何特征作为地理要素的重要特征之一,它主要包括地理要素的形状、角度、长度、面积等。根据空间形态特征的不同,矢量地图可用点、线、面等基本几何要素来表示。
2)空间关系特征。空间关系是描述地理要素之间在一定区域上构成的与空间特性有关的联系,通常分为拓扑、度量和方向3类关系。空间关系是矢量地图区别于其他数据的标志特征,常用拓扑关系表示[7](如包含、相交、相邻及相离等,如图2所示)。拓扑关系已经成为GIS空间关系的重要理论基础,是一种最重要的空间关系,对空间推理、查询分析及实际应用具有重要意义。
图2 拓扑关系示意图
通过对矢量地图表达形式、存储结构等特征的分析可知,在地理要素的坐标中嵌入水印信息是一个可行的方案[8]。在不影响数据精度的前提下,可以通过对顶点坐标做微小的扰动达到嵌入水印的目的。同时,为了避免水印信息被破坏或去除,矢量地图水印算法应具有较强的鲁棒性和不可见性,即要求嵌入水印后的矢量地图数据精度没有明显损失,数据质量没有明显下降,水印信息的不可见性较好,同时对常见攻击的抵抗能力较强。矢量地图的获取方式和应用特点决定了其水印除了要满足普通数字产品水印的要求外,还应具有其独特性[3,9]:
1)生产成本昂贵、保密性强等特点。
2)具有高精度的空间定位特性及复杂的空间关系特征。
3)投影变换等数据转换方式复杂多样。
4)具有数据结构复杂、格式多样等特点。
5)坐标存储无序。
6)具有分层存储等特点。
7)具有独特的数据处理方式。
目前,通过国内外学者广泛、深入的研究,数字水印技术取得了一定的研究成果。从总体上来看,虽然数字水印技术的研究方向主要集中在数字图像、音频和视频等方面,但矢量地图数字水印技术的研究也越来越受到学者们的关注。
早期的矢量地图坐标域水印方案大都是通过控制要素位置、容差和数据精度来修改顶点坐标,并没有考虑地理要素的拓扑关系与几何特征,因此,对很多几何攻击不具有鲁棒性,甚至在经过剪切或重排序的矢量地图中无法检测到水印信息。Cox是最早公开提出矢量地图水印算法[10]的学者,他主张直接在各顶点坐标上进行水印信息的编码,但由于嵌入的水印信息各比特互不相关,因此在抵抗各类简单的攻击时不具有鲁棒性。
最低有效位方法[11](LSB)是最经典的坐标域水印算法,它是将水印信息嵌入在矢量地图的数据精度范围所在的精度位上。该方法计算速度快,水印提取和检测过程一般不需要原始矢量地图的参与。但嵌入的水印信息容量有限,且水印信息将很容易被绕过或擦除。
由于矢量地图对数据高精度的要求,因此目前所设计的大部分水印算法基本都能满足对坐标精度的要求。然而,关于保持要素拓扑关系和几何特征等方面的研究却很少。因此,越来越多的基于坐标域的水印方案开始关注矢量地图中要素的地理特征、几何形状、拓扑关系及图层结构[12]等方面的问题。
Shao[13]等提出了一种保持几何形状相似的二维矢量地图水印算法,首先利用道格拉斯-普克算法提取矢量地图的特征点,然后根据提取的特征点将原始数据分割成多个数据块,最后通过修改数据块中某些非特征点的统计值来嵌入水印信息,该算法能够在一定程度上保持地理要素的几何形状,对常见的数据攻击(如裁剪、压缩)具有较好的鲁棒性。
Wang[14]等提出了一个基于多边形拓扑关系的水印算法,首先在水印嵌入前生成矢量地图的最小围绕矩形(MER),并结合MER和希尔伯特编码法生成一系列多边形对,然后计算多边形对的空间拓扑关系的公制计量,通过缩放多边形将水印信息嵌入到公制计量中。虽然该方案对RST变换、图形简化、数据插入和噪声叠加等攻击具有鲁棒性,但抵抗数据裁剪的能力有限,很难应用在线段多于多边形的矢量地图中(如等高线图和道路图)。
Suk[12]等提出了基于折线和多边形的鲁棒性及不可见性的GIS矢量地图水印方案,为了保证嵌入水印后地图上的地物对象之间、嵌入水印后的地图与原始地图的相应地物对象之间的距离在最大容许范围内,分别提出了相对位置精度和绝对位置精度2个指标。虽然利用上述定位精度条件在水印嵌入的过程中取得了较为满意的实验效果,但所提出的相对位置精度计算方法并不能满足所有的图形情况。
Stefan[15]等提出了基于拓扑保留的矢量图形水印方案,利用Vorinoi图和约束三角网2种方法计算出原始矢量地图中各个顶点的最大扰动区域(MPR),并利用MPR对水印嵌入过程中发生拓扑关系错误的顶点进行纠正。该方法在不影响矢量地图水印算法性能的同时,有效控制了水印嵌入过程中引起的地理要素顶点的扰乱问题,从而保证了嵌入水印的矢量地图具有更好的可用性。但该算法并不能保持矢量图形的几何特征(如直角及平行线),且在纠正过程中的计算效率也有待提高。
杨娜娜[16]等提出一种保持拓扑关系与几何特征的矢量地图水印处理方法,首先利用约束三角网构造各个顶点的最大扰动区域(MPR),然后综合运用MPR、同名点邻接线段的方向约束以及基于同名点拓扑关联的坐标调整方法,对水印嵌入过程中引起的拓扑错误和几何特征丢失等问题进行检测和纠正,最终确保矢量地图嵌入水印前后拓扑关系与几何特征的一致性,并有效提高了嵌入水印后矢量地图的可用性。
由于频率域水印算法在图像的数字水印技术中取得了良好的效果,因此矢量地图频率域水印算法的研究也引起了人们的关注。常见的频率域水印算法主要有离散傅里叶变换(DFT)、离散小波变换(DWT)、离散余弦变换(DCT)等。
Solachidis[17]等提出了一种基于傅里叶描述因子的矢量图形水印算法,首先对由数据特征点构成的实数序列进行傅里叶变换,再利用傅里叶描述因子对定位、缩放和旋转等几何不变性将水印信息嵌入傅里叶变换系数中,最后经傅里叶逆变换得到嵌入水印的矢量地图。由于傅里叶描述因子具有几何不变性,因此该算法抵抗几何攻击的能力较强,但抵抗局部修改攻击的能力较差。
Kitamura[18]等是首次将DWT引入矢量地图水印算法的学者,他们提出首先将矢量地图划分为网格的形式,并将这些网格看作类似于栅格图像的“像素”,最后根据图像的小波变换嵌入水印信息。李媛媛[23]等提出了基于小波变换的矢量图形盲水印算法,通过DWT将有序的图元顶点坐标序列分解成不同空间和频率上的幅值系数,水印的嵌入是根据水印的大小与小波系数之间的关系实现的,同时保持系数的相位不变。杨成松[20]等提出了基于DWT的矢量地理空间数据数字水印算法,对地图坐标进行离散小波分解,再将水印信息分段嵌入到离散小波变换后得到的低频系数中,最后经小波逆变换得到含水印的矢量地理空间数据。DWT变换可以反映矢量地图的局部特征,其实数域DWT的水印算法对平移和旋转没有抵抗能力;而其复数域DWT的水印算法对几何变换的鲁棒性较强,但抵抗裁剪攻击的能力较弱。
Michael[21]等提出了基于DCT的2-D矢量数据可逆水印算法,首次将可逆方案引入矢量地图水印技术的研究中。该算法利用矢量地图中同一多边形顶点之间具有的高度相关性,对每8个顶点组成的一个数据块进行DCT变换,然后在每个数据块的余弦变化系数上嵌入水印信息。虽然该算法具有可逆性,但会给矢量数据带来较大的变形。闵连权[26]等提出的基于DCT的数字地图水印算法,将提取的地图数据特征点组成特征图像,并对特征图像进行离散余弦变换,在中低频系数上嵌入水印。虽然该算法对常见的水印攻击具有鲁棒性,但水印检测过程需要原始数据的参与。
综上所述,基于坐标域的水印算法是在矢量地图的坐标精度允许范围内,采用一定的方法直接修改地理要素的坐标值来嵌入水印信息,同时可以充分地利用顶点的位置关系、坐标的统计特征等空间特征进行水印的嵌入操作,其实现方法简单灵活,数据精度可以控制,且水印信息容量大,但它在抵抗攻击时鲁棒性较差。基于频率域的矢量地图水印算法是通过修改频率域系数而嵌入水印信息的,它能够较好地利用人类的视觉感知特性,抵抗各种常见攻击的能力较强,但每个坐标点的水印嵌入强度不可控制,水印嵌入过程会给矢量地图带来一定程度的变形,这意味着水印嵌入可能引起矢量地图产生许多特征误差。然而,不论采用哪种水印算法,水印信息的嵌入最终都是通过修改矢量地图要素的坐标而实现的,这样有可能会导致某些坐标点的水印嵌入强度超出误差容限,从而使数据丧失有效性。
1)对数据精度的影响。矢量地图的数据精度将会直接影响数据的可用性,同时对数据精度进行严格的检查和分析是空间数据质量控制的重要环节之一。而水印信息的嵌入一般都是通过对空间数据的修改实现的,这可能会导致嵌入水印前后矢量地图的坐标不一致,影响数据的正常使用。虽然目前大部分水印算法基本都能满足数据精度的要求,但鲜有关于矢量地图水印中几何形状相似性和拓扑保留方面的研究。
2)对几何特征的影响。对于点要素来说,在设计水印算法时并不需要考虑保持几何特征的问题。而在矢量地图中,除了点要素外,还存在大量的线、面要素,不同的线、面要素一般具有不同的几何形状。由于水印的嵌入可能改变矢量地图的坐标值,点坐标的改变可能会引起线状、面状要素几何形状的改变。例如,对于线段(实线)的夹角(如图3),若水印嵌入时造成各个点坐标值的改变量不同,就可能会导致锐角变成钝角、直角变为钝角或锐角等情况;对于面要素,由于水印的嵌入可能会导致矩形变成梯形或其他形状。从图4可以看出,原本为矩形的房屋面,在水印嵌入后,它的几何形状发生了变化,直角变为钝角或锐角、矩形变为梯形或其他不规则的图形。总之,水印嵌入引起的地理要素几何形状的改变最终可能会影响矢量地图的正常使用。
图3 水印嵌入后引起角度的变化
图4 水印嵌入前后要素 几何形状的改变
3)对拓扑关系的影响。通过上面的分析可知,矢量地图水印技术一般都是通过修改数据的坐标值来嵌入水印信息的,而坐标值的改变不仅会降低矢量地图的数据精度,影响要素的几何形状,而且可能改变地理要素的拓扑结构。例如,水印的嵌入可能会使两条原本平行的线段相交(如图5);而对于两栋相邻的建筑物来说,嵌入水印后有可能使其相交或相离等(如图6)。
图5 水印嵌入后平行线变为折线图
图6 水印嵌入前后要素 拓扑关系的改变
通过对矢量地图水印研究现状的分析可以看出,矢量地图水印技术已经引起了人们的重视,也取得了一定的研究成果。但对于绝大部分的矢量地图水印算法,无论是将水印嵌入在点、线还是多边形要素中,其水印信息最终都是通过修改矢量地图要素的坐标值来嵌入的。这不仅可能对矢量地图的可视化产生影响,还有可能影响矢量地图的数据精度、拓扑关系以及几何特征等空间特性,而拓扑关系是矢量地图最为重要的空间特征。随着矢量地图共享和应用的普及,对含水印的矢量地图的质量要求越来越高,使用者希望在保护矢量地图版权的同时,能够保证数据不引起拓扑关系错误和几何特征丢失问题。因此,如何保证数据的空间定位精度、拓扑结构、几何特征等空间特征不受水印嵌入的影响,是矢量地图水印技术研究必须关注的问题。