专利名称:基于网格的矢量空间数据数字水印方法
技术领域:
本发明属于版权保护技术领域,特别是涉及一种基于网格的矢量空间数据 数字水印方法。
背景技术:
在信息化社会的今天,特别是伴随着计算机网络技术、通信技术和多媒体
技术的迅速发展,以及Internet的普及,基于计算机和网络的多媒体信息交换 为数字作品的使用、传播提供了便利的途径。尤其是最近几年,伴随着因特网 的盛行,网络带宽的不断增加,在全球范围内,交换数字媒体己成为广泛的现 象,人们对数字媒体的需求正以令人吃惊的速度增长,操作数字媒体的工具亦 迅猛增加。然而数字作品(如电子出版物、数字图像、数字音乐、视频节目、 电子票据、网页等)极易被非法拷贝和复制的特性使得网络信息的版权保护问 题日益突出。不法分子的随意拷贝、任意发布,甚至以出售盗版来牟取暴利的 行为,对作者的权益造成极大的伤害。保护数字作品的知识产权,仅仅靠注册 其所有权已无法有效保护作者的合法权益。所以数字媒体的版权保护和来源认 证成为在开放的网络环境下迫切需要解决的问题之一。
到目前为止,数字水印从研究对象上看主要涉及图像水印、视频水印、音 频水印、文本水印和三维网格数据水印等几个方面,其中大部分的水印研究和 论文都集中在图像研究上,其原因在于图像是最基本的多媒体数据,且互联网 的发展为图像水印的应用提供了直接大量的应用需求。然而,随着信息技术的不断发展和国家建设的需要,空间数据产品的应用范围不断扩大,产品的数量 高速增长。因为空间数据产品内含的数据量庞大, 一般是采用数据库技术管理 存储空间数据,即为矢量空间数据库。空间数据的获取需要消耗大量的人力物 力以及时间,因此空间数据是数据生产者的宝贵财富。但是由于数据的复制非 常容易, 一旦空间数据产品被出售,非法拷贝的出现就会难以避免。如果不对 此加以保护将会给数据生产者带来巨大的损失。矢量空间数据包括点、线、多 边形和复合对象等,它们是描述对象空间位置的几何数据,普通图像水印技术 容易破坏其所含空间信息。如何验证某种空间数据产品的生产部门以及如何证 明其版权归属,已经成为当前数字测绘生产中的一项迫切需要的技术。
发明内容
本发明目的在于针对现有技术的不足,提出一种能够保护矢量空间数据版 权的数字水印方法。
本发明的技术方案为包括有水印信息嵌入过程和水印信息提取过程; 所述水印信息嵌入过程包括以下步骤
步骤一,生成用于嵌入的水印信息,即采用黑白二值图像作为原始水印图 像,读出黑白二值图像的数据部分后对其进行置乱操作,置乱后获取的数值作 为用于嵌入的水印信息;
步骤二,将数据库内所存储的待加水印矢量空间数据以坐标点的形式读出,
对所有的坐标点进行网格化处理以获得网格矩阵M;
所述网格化处理的具体方式是确定一个二维网格,根据矢量空间数据的 特点,对所有坐标点进行预处理,提取其中的非关键的坐标点,然后将非关键 的坐标点按照坐标值分配到网格的各单元中,统计网格各个单元中坐标点的个数,从而得到相应网格矩阵M。
步骤三,对网格矩阵M进行DCT变换得到系数矩阵G,选择系数矩阵G的中 频部分,对中频部分的每个系数分别嵌入水印信息中的一个水印信息位得到新 的系数矩阵G',对系数矩阵G'进行逆DCT变换得到网格矩阵M';
步骤四,将网格矩阵M'跟步骤二所得网格矩阵M进行对应比较,如果其中 某个网格单元在网格矩阵M和网格矩阵M'的相应权值发生了变化,则按照网格 矩阵M'中的相应权值对矢量空间数据库中处于这个网格的坐标点个数进行调整, 从而生成带水印矢量空间数据;
所述水印信息提取过程为,对矢量空间数据库内所存储的带水印矢量空间 数据进行网格化,对所得网格数据进行DCT变换,从DCT变换结果中提取出隐 藏的水印信息位,将其作为图像的数据部分构建一个黑白二值图像,然后对该 黑白二值图像进行置乱恢复操作从而提取出作为水印信息的原始水印图像。
而且,步骤一中,对黑白二值图像的数据部分进行置乱操作采用Arnold变
换实现。
而且,步骤二中,确定二维网格时,网格大小取值为矢量空间数据的地图 精度大小的一半以下;对坐标点进行分类时,将所有点划分为关键点和非关键 点;统计各个网格中坐标点的数目时,对于网格边界上的坐标点优先划分到右 边和下面的网格中。
而且,步骤二中,将确定二维网格时的网格大小取值作为密钥,水印信息 提取过程中使用该密钥进行网格化。
而且,步骤四的具体实现方式为
设Mij为网格矩阵M中位于第i行和第j列的元素、M'ij为网格矩阵M'中位于第i行和第j列的元素,网格矩阵M和网格矩阵M'大小为PXQ,其中l《i《P, 1《j《Q;
对于网格矩阵M和网格矩阵M'中对应的元素进行扫描,如果Mi产M'ij,则将 Mij标记为已处理;如果Mi」〉M'ij则减少Mij所对应网格中坐标点的数目,并将Mij 标记为己处理,所述减少坐标点的数目是指从该网格中任意选择一个坐标点直 接删除;如果Mi」〈M'ij则增加Mij所对应网格中坐标点的数目,并将Mi」标记为已处 理,所述增加坐标点的数目是指从该网格中任意选择一个坐标点,将其在矢量 空间数据库中重复存储一次。
而且,步骤三中,采用Zigzag扫描选取系数矩阵G中间nXn个中频系数 AC"水印信息所包含水印信息位的长度N二nXn,从而选择DCT变换结果中间 部分的网格。
而且,步骤三中对网格嵌入水印信息位的操作采用正负判别方式,即对于 每一个水印信息位WSi及其对应的交流系数ACi进行比较,如果WSi二0且AG〈0则 对ACi做取反操作,将其修改为正;如果WSpl且ACi〉0,则对ACi做取反操作, 将其修改为负。
而且,所述水印信息提取的具体方式为,先对带水印矢量空间数据进行网 格化,构成网格权值矩阵Gd,对Gd进行DCT变换,得到对应的频域系数矩阵Gd'; 按照Zigzag扫描的顺序得到频域系数矩阵Gd'位于中间的nXn个频域系数 D-ACi,根据对nXn个频域系数D-ACi进行正负判别得到长度为nXn的比特串, 根据该比特串构造一幅nXn大小的黑白二值图像Wd,进行置乱恢复得到原始水 印图像。
而且,通过建立数据库管理系统PostgreSQL及其扩展PostGIS构成的平台实现水印信息嵌入过程和水印信息提取过程。
本发明通过网格化的方法划分空间数据,从而将空域问题转化为频域问题; 不仅通过删除点的方式,还使用了增加点的方式作为水印嵌入的机制;使用空 间数据中非关键的信息作为具体的水印载体;同时将水印信息均匀地分布到整 个数据空间中去。因此本发明提供的技术方案能够在不影响数据使用价值的前 提下对空间数据库的地理属性进行水印处理;能够在不需要原始数据的情况下 解决如何将水印信息有效地提取出来的难题。这种方案特别适合于在电子地图 中嵌入水印,以满足除需要精确定位用途之外的大部分实际应用,如区域定位 和路线导游等。甚至根据用户对数据精度的限制要求,将其嵌入水印的电子地 图中,以保证水印数据的实用性。
图l为本发明实施例的水印嵌入流程示意图2为本发明实施例的水印提取流程示意图3为本发明实施例的网格化示意图4为本发明实施例的Zigzag扫描示意图5为本发明实施例对网格嵌入水印信息位的流程示意图6为本发明实施例修改矢量空间数据库的流程示意图。
具体实施例方式
本发明为矢量空间数据库中的矢量空间数据嵌入水印来提供版权保护。矢量
空间数据在矢量空间数据库中的存储模式一般为R(P, AQ, Ab…,At, G),其中 P是主码,A。, A,,…,At是非地理属性,G为地理属性。空间数据的属性分为非地理属性和地理属性,地理属性主要表现为地理对象在特定坐标系中的坐标位 置,非地理属性主要是对地物对象的描述信息。为了不影响空间数据的有用性, 本发明提出采用地理属性中坐标的某些统计信息作为水印信息的载体。因为空 间数据的最主要作用在于给使用者指明道路,为矢量空间数据库设计用于版权 保护的水印信息在嵌入后,也应当是隐藏的,不能影响使用者。本发明提出的 水印机制的核心思想就是将数字化的空间数据网格化,将一个个的网格单元看 作是数字图像的像素,对其采用数字图像的水印方法嵌入水印,然后将像素的 变化修改到数据库中,达到隐藏水印的目的。在对空间数据产品的版权存疑时, 只需提取水印信息进行比对,即可得到可靠结果。
下面结合实施例及附图对本发明作进一步说明。 1.水印信息嵌入过程的具体步骤可参见附图l:
(1) 确定用于嵌入的水印信息,即采用黑白二值图像作为原始水印图像,读出 黑白二值图像的数据部分后对其进行置乱操作,置乱后获取的数值作为用于嵌 入的水印信息。
确定用于嵌入的水印信息的关键步骤是进行水印信息置乱,以便增强水印
的抗攻击性,本发明实施例首先对原始水印图像W。的数据部分进行Arnold置乱 操作。以水印图像大小为32X32为例进行说明,对其中的数据位进行K次置乱 操作后得到置乱后图像的数据位,即为后续操作要嵌入的水印信息。32X32的 图像的Arnold置乱周期T为24, K〈T。
(2) 网格化,即将矢量空间数据库内所存储的待加水印矢量空间数据以坐标点 的形式读出,对所有的坐标点进行关键点与非关键点的区分,然后对所有非关 键的坐标点进行网格化以获得网格矩阵M。具体实施时可以根据用户对数据精度的要求确定网格密度。特别指出的是, 本发明对空间数据进行的"网格化"处理不同于常指的"矢量一栅格"关系转 换的栅格处理,而是一种简单的"划分格子处理",即首先确定一个简单的二维 网格,然后对所有点进行关键点与非关键点的区分,把所有非关键的坐标点分 配到各个网格单元中。以图3所示的道路图为例道路A为由8个点组成的地 理对象;道路B为由9个点组成的地理对象;参考系的编号为S;网格的起点坐 标为(0, 0),实际使用时可以根据需要选择地图上的任意坐标点作为起点,记 为START;网格划分的大小记为SIZE, 一般可取1/2个地图误差的大小(这样 在调整坐标点时可以保证其偏差不超过地图可容忍的误差范围,最大限度的保 证地图的有用性)。这样可以将地图划分为一个PXQ的格网,构成道路的每个 点都会落在其中的某一个网格单元内。对于处于网格分界线上的点,本发明提 供的最佳实施例方案是采取"右下优先"的原则,即当处于分界线上的某个点 没严格规定时可以算是属于左边的网格,也可以认为是属于右的网格,规定其 属于右边的而不是左边的(上下网格的情况类同),以防止重复统计。
对于每个网格单元统计落在其中的坐标点数目(记为权值V),得到的网格 数据可以以一个网格矩阵M的形式呈现,网格矩阵M中的每个元素即为每个网 格单元的权值V。但是,在划分网格和记录权值时,有些点不予记入,比如图3 中的道路A、 B的连接点。因为在后面的嵌入水印信息位阶段中采用的方法是将 某个坐标点从一个网格移动到旁边的网格,对于道路连接点这样关键的坐标点
来说比较特殊,因为它在A和B中分别都存储了一次,可能存在一种情况当 连接处所在网格权值发生减少时,就需要将其中一些点删除,如果选择到的正 好是连接处那个点时,于是就可能发生删除了 A中的连接处点,而没删除中的连接处点,这样就破坏了地图的拓扑结构,当用户需要使用路径导航或路径计 算时就会发生严重的误差。因此,本发明提出根据矢量空间数据的特点,对所 有坐标点进行预处理,提取其中非关键的坐标点,也就是在计算网格单元权值 时就不将关键的坐标点计算在内,在后面的嵌入水印信息位阶段也就不会被修 改,从而有效地保证了地图的正常使用。
(3) DCT变换嵌入水印,即对网格矩阵M进行DCT变换得到系数矩阵G,选择 DCT变换结果中间部分的网格分别嵌入水印信息中的一个水印信息位得到新的 系数矩阵G',对系数矩阵G'进行逆DCT变换得到网格矩阵M'。
本发明实施例把网格矩阵M看作是一幅大小为PXQ的灰度图像,每个网格 单元即是图像的一个像素,其权值就是相应像素的灰度值。经过这样的转换, 基于图像水印的相关理论,当一幅图像的象素矩阵经过二维离散余弦变换之后, 所得二维频率域的系数矩阵G中左上角的元素值最大,为直流分量,反映了整 幅图像的平均亮度;而剩余各个元素的值则随着频率增大而逐渐降低。将变换 后的系数分为低频分量、中频分量和高频分量。其中,中、低频分量代表图像 的平滑区域,而高频分量则代表图像的边缘或者纹理比较复杂的区域。这样通 过DCT变换就可以将图像的不同特征区域区别出来,并根据技术方案的应用领 域和目的要求不同,酌情选取适当的区域进行水印的嵌入。
根据HVS理论,人类对于图像的低频带比较敏感,而高频带的鲁棒性比较 脆弱。因此,在本发明水印机制中采取在系数矩阵G的中频带嵌入水印的策略, 即取DCT变换结果中间部分的网格单元嵌入水印。
为了能够高效的从系数矩阵G中取得中频系数,本发明提出使用Zigzag方 式进行扫描,如图4所示,网格中的数字表示了扫描顺序。经过Zigzag扫描后,各块的DCT系数就按从低频到高频的顺序排列为一维 数组。编号居于中间的AC系数就是中频系数,也就是本发明实施例选择的水印 载体。
原始水印图像W。的数据部分进行Arnold置乱操作后,得到由像素的黑白值 组成的数字串,作为要嵌入的水印信息。对于一幅nXn的图像,可得到N二nXn 比特的数字串Ws作为水印信息,其中每一位水印信息位记为WSi (1《i《N)。与 之相对应还要从Zigzag扫描得到的一维数组中取出中间的的nXn个交流系数 用以嵌入水印,记为ACi (1《i《N)。
经过DCT变换后,图像的中频带相比低频带,其值要小得多, 一般趋近于0。 因此本发明实施例采用了正负判别法的方式达到嵌入水印的目的,具体流程如 图5:对网格嵌入水印信息位的操作方式为,即对于每一个水印信息位WSi及其 应的交流系数AC,进行比较,如果WS^O且ACi〈0则对ACi做取反操作,将其修改 为正;如果WS,二1且AC,〉0,则对ACi做取反操作,将其修改为负。实施例采用循 环语句foreach实现,设定1《i《nXn,通过i +十操作对每一个水印信息位 WSi及其对应的交流系数ACi逐个比较。
对于上一步中得到的嵌入水印后的新的系数矩阵G',经过逆DCT变换,可 以得到一个网格矩阵M',基于DCT/逆DCT理论可以知道,通过这样的空域一频 域(嵌入水印)一空域的转化能将水印信息从频率域散布到整个空间域中,这 样可以相比空间域水印算法能够达到更大程度的鲁棒性。 (4)修改矢量空间数据库,即将网格矩阵M'跟步骤二所得网格矩阵M进行对应 比较,如果其中某个网格在网格矩阵M和网格矩阵M'的相应权值发生了变化, 则按照网格矩阵M'中的相应权值对矢量空间数据库中处于这个网格的点的个数进行修改,从而生成带水印矢量空间数据。
当得到网格矩阵M'后,将网格矩阵M'跟步骤二所得网格矩阵M进行对应比
较,如果某个网格单元的权值前后发生了变化,则对空间数据库中处于这个网 格单元的坐标点个数进行修改(包括删除、增加),从而对网格内点的数目进行 相应地调整。经过这样的操作使空间数据库中的坐标点再次网格化时得到的矩
阵能够与嵌入水印后的网格矩阵相一致。实施具体流程如图6,采用循环语句 foreach实现。
对于网格矩阵M和网格矩阵M'中对应的元素进行扫描,如果Mij-M'ij,则将 Mij标记为已处理;如果Mij〉M'ij则减少Mij所对应网格中坐标点的数目,并将Mij 标记为已处理,所述减少坐标点的数目是指从该网格中任意选择一个坐标点直 接删除;如果M,j〈M'ij则增加Mij所对应网格中坐标点的数目,并将Mij标记为已处 理,所述增加坐标点的数目是指从该网格中任意选择一个坐标点,将其在矢量 空间数据库中重复存储一次。
经过这样的步骤,如果目标网格单元中坐标点的数目还是达不到,则需要 额外增加或删除一些坐标点了增加坐标点时,从网格单元中任意选择一个坐 标点,将其在数据库中重复存储一次;减少坐标点时,也是从该网格中任意选 择一个坐标点,直接删除即可。
2.水印信息提取过程与嵌入过程相逆即可,具体步骤可参见附图2: (1)对待检测的矢量空间数据网格化,即对矢量空间数据库内所存储的带 水印矢量空间数据进行网格化。
根据地图划分网格数目SIZE-PXQ划分网格,根据嵌入水印过程中相同的 原则网格化,统计每个网格单元中点的数目(之前也要将关键点过滤掉),根据所得网格数据得到网格权值矩阵Gd。
(2) DCT变换以及提取水印。
对网格权值矩阵Gd做DCT变换,得到对应的频域系数矩阵Gd',仍然按照 Zigzag扫描的顺序得到位于中间的nXn个频域系数D-AC"根据正负判别的准 则得到nXn的比特串。
(3) 输出原始水印图像。 构造一幅NXN大小的黑白二值图像Wd,其数据部分填入上述比特串。根据
Arnold变换原理,假设一NXN的图像的变换周期为T,对于一张己经置乱过K 次的图像,只需再置乱T- (KmodT)次就可以恢复,其中mod表示取模。因此, 对于上一步得到的黑白二值图像Wd,依据确定用于嵌入的水印信息时的置乱次 数K,再做T- (K mod T)次置乱就可以得到检测出来的原始水印图像W。—d。
具体实施时,可以采用数据库系统PostgreSQL+PostGIS平台上实现矢量空 间数据库水印机制,根据矢量空间数据存储形式,采用上述矢量空间数据库水 印机制,将水印信息加入到矢量空间数据库中。其他数据库管理系统也能实现 本发明技术方案,只需本领域技术人员根据方案进行一些扩展设计即可。
权利要求
1. 基于网格的矢量空间数据数字水印方法,其特征在于包括有水印信息嵌入过程和水印信息提取过程;所述水印信息嵌入过程包括以下步骤,步骤一,生成用于嵌入的水印信息,即采用黑白二值图像作为原始水印图像,读出黑白二值图像的数据部分后对其进行置乱操作,置乱后获取的数值作为用于嵌入的水印信息;步骤二,将矢量空间数据库内所存储的待加水印矢量空间数据以坐标点的形式读出,对所有的坐标点进行网格化处理以获得网格矩阵M;所述网格化处理的具体方式是确定一个二维网格,根据矢量空间数据的特点,对所有坐标点进行预处理,提取其中非关键的坐标点,然后将非关键的坐标点按照坐标值分配到网格的各单元中,统计网格各个单元中坐标点的个数,从而得到相应网格矩阵M;步骤三,对网格矩阵M进行DCT变换得到系数矩阵G,选择系数矩阵G的中频部分每个系数分别嵌入水印信息中的一个水印信息位得到新的系数矩阵G’,对系数矩阵G’进行逆DCT变换得到网格矩阵M’;步骤四,将网格矩阵M’跟步骤二所得网格矩阵M进行对应比较,如果其中某个网格单元在网格矩阵M和网格矩阵M’的相应权值发生了变化,则按照网格矩阵M’中的相应权值对矢量空间数据库中处于这个网格的坐标点个数进行调整,从而生成带水印矢量空间数据;所述水印信息提取过程为,对矢量空间数据库内所存储的带水印矢量空间数据进行网格化,对所得网格数据进行DCT变换,从DCT变换结果中提取出隐藏的水印信息位,将其作为图像的数据部分构建一个黑白二值图像,然后对该黑白二值图像进行置乱恢复操作从而提取出作为水印信息的原始水印图像。
2. 如权利要求1所述的矢量空间数据数字水印方法,其特征在于步骤一中, 对黑白二值图像的数据部分进行置乱操作采用Arnold变换实现。
3. 如权利要求1所述的矢量空间数据数字水印方法,其特征在于步骤二中, 确定二维网格时,网格单元大小取值为矢量空间数据的地图精度大小的一半以 下;统计各个网格中坐标点的数目时,对于网格边界上的坐标点优先划分到右 边和下面的网格中。
4. 如权利要求3所述的矢量空间数据数字水印方法,其特征在于步骤二中, 将确定二维网格时的网格大小取值作为密钥,水印信息提取过程中使用该密钥 进行网格化。
5. 如权利要求1所述的矢量空间数据数字水印方法,其特征在于步骤四的具体实现方式为-.设Mij为网格矩阵M中位于第i行和第j列的元素、M'i」为网格矩阵M'中位于 第i行和第j列的元素,网格矩阵M和网格矩阵M'大小为PXQ,其中l《i《P,对于网格矩阵M和网格矩阵M'中对应的元素进行扫描,如果Mi产M'ij,则将 Mij标记为已处理;如果Mij〉M'ij则减少Mij所对应网格中坐标点的数目,并将Mij 标记为已处理,所述减少坐标点的数目是指从该网格中任意选择一个坐标点直 接删除;如果Mij〈M'jj则增加M,所对应网格中坐标点的数目,并将Mij标记为己处 理,所述增加坐标点的数目是指从该网格中任意选择一个坐标点,将其在矢量空间数据库中复制存储一次。
6. 如权利要求1或2或3或4或5所述的矢量空间数据数字水印方法,其特征 在于步骤三中,采用Zigzag扫描选取系数矩阵G中间nXn个交流系数ACi, 水印信息所包含水印信息位的长度N=nXn,从而选择实现DCT变换结果中间部 分的网格。
7. 如权利要求6所述的矢量空间数据数字水印方法,其特征在于步骤三中对网格嵌入水印信息位的操作采用正负判别方式,即对于每一个水印信息位WSi 及其对应的交流系数ACi进行比较,如果WS^O且ACi〈0则对ACi做取反操作,将 其修改为正;如果WSi二l且ACi〉0,则对ACi做取反操作,将其修改为负。
8. 如权利要求7所述的矢量空间数据数字水印方法,其特征在于所述水印信 息提取的具体方式为,先对带水印矢量空间数据进行网格化,构成网格矩阵Gd, 对Gd进行DCT变换,得到对应的频域系数矩阵Gd';按照Zigzag扫描的顺序得到 频域系数矩阵Gd'位于中间的nXn个频域系数D-AC"根据对nXn个频域系数 D-ACi进行正负判别得到长度为nXn的比特串,根据该比特串构造一幅nXn大 小的黑白二值图像Wd,进行置乱恢复得到原始水印图像。
9. 如权利要求1或2或3或4或5所述的矢量空间数据数字水印方法,其特征 在于通过建立数据库管理系统PostgreSQL及其扩展PostGIS构成的平台实现 水印信息嵌入过程和水印信息提取过程。
全文摘要
基于网格的矢量空间数据数字水印方法,包括有水印信息嵌入过程和水印信息提取过程。所述水印信息嵌入过程包括采用黑白二值图像的数据部分后对其进行置乱操作,置乱后获取的数值作为用于嵌入的水印信息;将矢量空间数据库内所存储的待加水印矢量空间数据以坐标点的形式读出并网格化;DCT变换嵌入水印信息;修改矢量空间数据库从而生成带水印矢量空间数据。所述水印信息提取过程为,对矢量空间数据库内所存储的带水印矢量空间数据进行网格化,对所得网格数据进行DCT变换,从DCT变换结果中提取出隐藏的水印信息位,将其作为图像的数据部分构建一个黑白二值图像,然后对该黑白二值图像进行置乱恢复操作从而提取出作为水印信息的原始水印图像。
文档编号G06T1/00GK101452570SQ20081023695
公开日2009年6月10日 申请日期2008年12月22日 优先权日2008年12月22日
发明者彭智勇, 彭煜玮, 斌 李, 汪传建, 函 王 申请人:武汉大学