引言

高精地图,通常又称为高度自动驾驶地图或高分辨率地图,是对二维导航电子地图的颠覆性升级,具有坐标精度更高、图层信息更丰富、道路内容更精细、实时动态信息与静态地图信息相结合的特点,广泛应用于自动驾驶领域。

研究背景

自动驾驶需要高精地图的支持,而高精度的特点使高精地图相较于普通导航地图具有更高的商业价值和保密需求,高精地图数据的泄密、盗用与非法传输不仅会影响自动驾驶领域的发展、损害企业的切实利益,还可能威胁到国家安全,因此亟需有效的技术方法对高精地图数据进行保护。

数字水印技术可以有效解决高精地图的版权保护问题,该技术在不影响载体数据正常使用的前提下将版权或用户名等标识性信息嵌入至数据中。OpenDrive是当今国际主流的高精地图标准格式之一,其数据存储在扩展名为xodr的XML文件中,描述了自动驾驶应用所需的静态道路交通网络。

OpenDrive格式特点

  • 基于XML的文本格式文件
  • 描述静态道路交通网络
  • 国际主流高精地图标准

现有文本水印算法分类

  • 基于文本语义的水印算法
  • 基于文本格式的水印算法
  • 基于文本编码的水印算法

本文针对存在的问题,以Unicode编码中的不可见字符为基础并结合海明码纠错技术,提出一种适用于OpenDrive格式下高精地图的强鲁棒性水印算法。

水印信息生成方法

2.1 Unicode编码方式与不可见字符的选择

Unicode编码是目前主流编码方式,本文采用占用空间更小、读写操作更快的UTF-8对水印信息进行编码。

在Unicode字符集中存在一些特殊字符用于格式控制,此类字符具有不可见、零宽度的特点。通过对Unicode字符集中存在的不可见字符进行严格的筛选与测试选取了6个不可见字符,这些字符嵌入至xodr文件中不会影响数据的正常使用。

表1 不可见字符及其Unicode编码
符号名称 Unicode编码
Zero Width Space U+200B
Zero Width Joiner U+200D
Left-To-Right Mark U+200E
Left-To-Right Embedding U+202A
Pop Directional Formatting U+202C
Left-To-Right Override U+202D
表2 不可见字符与比特字符和空格字符映射
字符名称 Unicode编码
比特字符0 U+200B
比特字符1 U+200D
空格字符Space U+200E
表3 不可见字符与十进制字符映射
十进制字符 Unicode编码
0 U+200D U+200E
1 U+200D U+202A
2 U+202C U+202A

2.2 海明码编码技术

海明码是通信领域中常见的纠错编码之一,使用较少的校验码来对多字节数据进行检测并可自动纠正为数据码,因其解码方程与编码方程的对应关系简单而被广泛应用于差错控制领域中。

海明码由数据码与校验码组成,其关系如式(1)所示:

N = d + p (1)

式中:N为海明码的位数;d为数据码的位数;p为校验码的位数

海明码应满足式(2)的关系:

2p - 1 ≥ e (2)
表4 数据码位数与校验码位数对应关系
数据码位数/位 校验码位数
1 2
2~4 3
5~11 4

2.3 复合型水印字符序列生成

本文设计的复合型水印字符序列由水印信息、水印索引信息与海明码校验码三部分组成,最终用不可见字符进行表示。

复合型水印字符序列构建流程

复合型水印字符序列构建的具体步骤如下:

  1. 将用户提供的标识性信息生成明文字符串S,并对该明文字符串进行UTF-8编码生成二进制水印信息字符序列W
  2. 以空格为分隔符将W分成K份二进制字符串序列,存储于集合WL中
  3. 遍历集合WL,对每份字符串进行海明码编码
  4. 设最终复合型水印字符序列为WM,由位置信息字符与水印信息字符组成

水印算法

3.1 算法思想

水印信息嵌入位置与嵌入顺序的设计是高精地图水印算法的关键。水印信息嵌入位置的选择在保证水印鲁棒性的同时还需要兼顾地图高精度的特性不被损坏,保证嵌入水印后的数据能够正常使用。

表6 水印算法涉及的标识符及其属性值
属性值 所属标识符
s x y hdg length geometry
length curvStart curvEnd curvature road spiralAttrList arc
s a b c d elevation

3.2 水印嵌入

水印信息嵌入流程

水印信息嵌入前需要对高精地图数据进行预处理。首先我们需要获取xodr文件中的标识符集合,表示为I=(I1, I2, I3,..., IN),N为标识符集合的长度。

为了保证水印嵌入顺序的随机性,预处理后基于典型的Logistic映射对水印信息嵌入顺序进行置乱。

3.3 水印检测

水印信息检测过程

水印检测前,需根据水印嵌入过程中提供初始条件X0对数据进行预处理,水印检测的过程实际上是水印嵌入的逆过程。

循环读取单个标识符的属性值字段,检测属性值字段末尾是否包含算法指定的不可见字符。若包含不可见字符,则根据映射关系将属性值字段中的不可见字符还原为水印字符片段。

实验结果与分析

4.1 适用性分析

为了验证水印算法对于高精地图的适用性,即算法是否能够应用于高精地图且满足自动驾驶的应用场景,本节选择了具有代表性的文本水印算法来与本文的算法进行比较。

表7 适用性分析结果
算法 是否能应用于高精地图 数据是否能正常打开 数据是否能应用于自动驾驶
算法1 (文献[6]) × × ×
算法2 (文献[13]) × × ×
本文算法

4.2 不可感知性分析

不可感知性是指嵌入水印后的数据在视觉层面上没有明显的变化,不影响数据的正常使用,这是数字水印的一个重要特征,因此水印算法需具备较好的不可感知性。

水印嵌入前后的数据对比

4.3 鲁棒性分析

鲁棒性表示水印信息在受到有意或无意的信号攻击过程后,仍然可以在保证较高完整性的情况下从数据载体中准确的提取出来的性质。

平移、缩放与旋转攻击的实验结果

本文所述算法在水印嵌入过程中并未修改属性值数值,因此常见的平移、旋转、缩放等通过修改数值破坏水印信息的攻击类型并不会对本文算法造成影响。

表8 裁剪攻击实验结果
裁剪元素占所有元素的百分比/% 算法5 算法6 本文算法A的NC值 本文算法B的NC值
20 0.534 1.000 1.000 1.000
98 0.018 0.542 0.675 0.759

结论与展望

本文针对高精地图数据的版权保护问题,基于Unicode不可见字符并结合海明码技术,创新性的提出了一种适用于OpenDrive格式高精地图数据的水印算法。

算法优势

  • 不影响自动驾驶的正常使用
  • 完全抵抗平移、旋转、缩放攻击
  • 裁剪98%元素仍保持NC>0.7

未来工作

  • 优化编码适用解决非Unicode编码环境下的兼容性问题
  • 优化文件体积膨胀问题
  • 探索更多地理数据安全保护技术

本算法的提出为高精地图数据的版权保护问题提供了一种解决方案,同时也为其他标准下采用XML格式进行数据存储的高精地图版权保护研究提供了有益的参考,这对高精地图数据的安全保护具有一定的实用价值。