高精地图,通常又称为高度自动驾驶地图或高分辨率地图,是对二维导航电子地图的颠覆性升级,具有坐标精度更高、图层信息更丰富、道路内容更精细、实时动态信息与静态地图信息相结合的特点,广泛应用于自动驾驶领域。
研究背景
自动驾驶需要高精地图的支持,而高精度的特点使高精地图相较于普通导航地图具有更高的商业价值和保密需求,高精地图数据的泄密、盗用与非法传输不仅会影响自动驾驶领域的发展、损害企业的切实利益,还可能威胁到国家安全,因此亟需有效的技术方法对高精地图数据进行保护。
数字水印技术可以有效解决高精地图的版权保护问题,该技术在不影响载体数据正常使用的前提下将版权或用户名等标识性信息嵌入至数据中。OpenDrive是当今国际主流的高精地图标准格式之一,其数据存储在扩展名为xodr的XML文件中,描述了自动驾驶应用所需的静态道路交通网络。
本文针对存在的问题,以Unicode编码中的不可见字符为基础并结合海明码纠错技术,提出一种适用于OpenDrive格式下高精地图的强鲁棒性水印算法。
Unicode编码是目前主流编码方式,本文采用占用空间更小、读写操作更快的UTF-8对水印信息进行编码。
在Unicode字符集中存在一些特殊字符用于格式控制,此类字符具有不可见、零宽度的特点。通过对Unicode字符集中存在的不可见字符进行严格的筛选与测试选取了6个不可见字符,这些字符嵌入至xodr文件中不会影响数据的正常使用。
符号名称 | 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 |
字符名称 | Unicode编码 |
---|---|
比特字符0 | U+200B |
比特字符1 | U+200D |
空格字符Space | U+200E |
十进制字符 | Unicode编码 |
---|---|
0 | U+200D U+200E |
1 | U+200D U+202A |
2 | U+202C U+202A |
海明码是通信领域中常见的纠错编码之一,使用较少的校验码来对多字节数据进行检测并可自动纠正为数据码,因其解码方程与编码方程的对应关系简单而被广泛应用于差错控制领域中。
海明码由数据码与校验码组成,其关系如式(1)所示:
式中:N为海明码的位数;d为数据码的位数;p为校验码的位数
海明码应满足式(2)的关系:
数据码位数/位 | 校验码位数 |
---|---|
1 | 2 |
2~4 | 3 |
5~11 | 4 |
本文设计的复合型水印字符序列由水印信息、水印索引信息与海明码校验码三部分组成,最终用不可见字符进行表示。
复合型水印字符序列构建的具体步骤如下:
水印信息嵌入位置与嵌入顺序的设计是高精地图水印算法的关键。水印信息嵌入位置的选择在保证水印鲁棒性的同时还需要兼顾地图高精度的特性不被损坏,保证嵌入水印后的数据能够正常使用。
属性值 | 所属标识符 |
---|---|
s x y hdg length | geometry |
length curvStart curvEnd curvature | road spiralAttrList arc |
s a b c d | elevation |
水印信息嵌入前需要对高精地图数据进行预处理。首先我们需要获取xodr文件中的标识符集合,表示为I=(I1, I2, I3,..., IN),N为标识符集合的长度。
为了保证水印嵌入顺序的随机性,预处理后基于典型的Logistic映射对水印信息嵌入顺序进行置乱。
水印检测前,需根据水印嵌入过程中提供初始条件X0对数据进行预处理,水印检测的过程实际上是水印嵌入的逆过程。
循环读取单个标识符的属性值字段,检测属性值字段末尾是否包含算法指定的不可见字符。若包含不可见字符,则根据映射关系将属性值字段中的不可见字符还原为水印字符片段。
为了验证水印算法对于高精地图的适用性,即算法是否能够应用于高精地图且满足自动驾驶的应用场景,本节选择了具有代表性的文本水印算法来与本文的算法进行比较。
算法 | 是否能应用于高精地图 | 数据是否能正常打开 | 数据是否能应用于自动驾驶 |
---|---|---|---|
算法1 (文献[6]) | × | × | × |
算法2 (文献[13]) | × | × | × |
本文算法 | √ | √ | √ |
不可感知性是指嵌入水印后的数据在视觉层面上没有明显的变化,不影响数据的正常使用,这是数字水印的一个重要特征,因此水印算法需具备较好的不可感知性。
鲁棒性表示水印信息在受到有意或无意的信号攻击过程后,仍然可以在保证较高完整性的情况下从数据载体中准确的提取出来的性质。
本文所述算法在水印嵌入过程中并未修改属性值数值,因此常见的平移、旋转、缩放等通过修改数值破坏水印信息的攻击类型并不会对本文算法造成影响。
裁剪元素占所有元素的百分比/% | 算法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格式高精地图数据的水印算法。
本算法的提出为高精地图数据的版权保护问题提供了一种解决方案,同时也为其他标准下采用XML格式进行数据存储的高精地图版权保护研究提供了有益的参考,这对高精地图数据的安全保护具有一定的实用价值。