CN111104410A - 局部道路信息提取方法及装置 - Google Patents
局部道路信息提取方法及装置 Download PDFInfo
- Publication number
- CN111104410A CN111104410A CN201911358296.3A CN201911358296A CN111104410A CN 111104410 A CN111104410 A CN 111104410A CN 201911358296 A CN201911358296 A CN 201911358296A CN 111104410 A CN111104410 A CN 111104410A
- Authority
- CN
- China
- Prior art keywords
- road
- file
- search
- binary
- index list
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Remote Sensing (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供局部道路信息提取方法及装置,基于预先建立的道路地图索引列表、二进制文件索引列表和二进制道路文件;道路地图索引列表包括:虚拟网格位置ID与地图文件中的道路ID间的关联关系;地图文件中的道路信息以二进制形式存储在二进制道路文件中;二进制文件索引列表包括:道路ID与存储位置间的关联关系。上述方法包括:接收搜索位置和搜索范围;根据搜索位置及搜索范围,在道路地图索引列表中确定搜索道路ID;根据搜索道路ID,在二进制文件索引列表内查询与搜索道路ID对应的存储位置;查询到的存储位置为目标存储位置;在二进制道路文件的目标存储位置处获取二进制形式的道路信息。
Description
技术领域
本发明涉及智能驾驶仿真领域,特别涉及局部道路信息提取方法及装置。
背景技术
OpenDRIVE是一种通用的道路信息描述格式,其语法采用的是扩展标记语言(Extensible Markup Language,简称XML),文件以解析式形式来精确描述道路的几何信息。
仿真测试验证是智能驾驶系统开发流程中必不可少的一个环节。对OpenDRIVE进行解析及读取,以获取道路地图信息,是实现智能驾驶仿真软件的必要步骤。
现有的OpenDRIVE道路信息提取方法都是将完整的OpenDRIVE地图文件全部加载到内存后,再从内存数据中寻找需要的信息。
当OpenDRIVE地图文件非常大时,内存中时刻保存着所有的道路信息,造成了严重的内存浪费。
发明内容
有鉴于此,本发明实施例提供局部道路信息提取方法及装置,以减少内存浪费。
为实现上述目的,本发明实施例提供如下技术方案:
一种局部道路信息提取方法,基于预先建立的道路地图索引列表、二进制文件索引列表和二进制道路文件;所述道路地图索引列表包括:虚拟网格位置标识ID与OpenDRIVE地图文件中的道路ID间的关联关系;所述OpenDRIVE地图文件中的道路信息以二进制形式存储在所述二进制道路文件中;所述二进制文件索引列表包括:道路ID与存储位置间的关联关系;所述存储位置为:所述道路ID所对应的道路信息在所述二进制道路文件中的存储位置;
所述方法包括:
接收搜索位置和搜索范围;
根据所述搜索位置及所述搜索范围,在所述道路地图索引列表中确定搜索道路ID;所述搜索区域由所述搜索位置和所述搜索范围确定;
根据所述搜索道路ID,在所述二进制文件索引列表内查询与所述搜索道路ID对应的存储位置;查询到的存储位置为目标存储位置;
在所述二进制道路文件的目标存储位置处获取二进制形式的道路信息。
可选的,所述道路地图索引列表通过如下方式建立:对所述OpenDRIVE地图文件进行解析,得到道路信息;所述OpenDRIVE地图文件使用道路信息定义了至少一条道路,其中的任意一条道路表示为道路i;根据所述道路信息,确定所述道路i的包围盒;计算所述包围盒各顶点位置所对应的虚拟网格位置ID;在所述道路地图索引列表中,添加所述道路i的道路ID与计算得到的虚拟网络位置ID之间的关联关系。
可选的,所述二进制文件索引列表和二进制道路文件通过如下方式建立:打开空白的二进制道路文件,移动初始化文件指针至所述二进制道路文件的文件起始位置;从所述OpenDRIVE地图文件中读取道路i的道路信息;在所述二进制索引列表中,添加所述道路i的道路ID与所述文件指针的当前位置之间的关联关系;所述当前位置为所述道路i的道路信息在所述二进制道路文件中的起始存储位置;在所述二进制道路文件中以二进制形式存储所读取的道路信息,并移动所述文件指针至末尾。
可选的,所述搜索区域为一搜索包围盒;所述根据所述搜索位置及所述搜索范围,在所述道路地图索引列表中确定搜索道路ID包括:根据所述搜索位置和所述搜索范围确定所述搜索包围盒;根据所述搜索包围盒确定搜索ID;所述搜索ID包括:所述搜索包围盒各顶点所对应的虚拟网格位置ID,以及,位于所述搜索包围盒内的虚拟网格位置ID;在所述道路地图索引列表中查找各搜索ID对应的道路ID;去除重复的道路ID,得到所述搜索道路ID。
可选的,所述在所述二进制道路文件的目标存储位置处获取二进制形式的道路信息包括:打开所述二进制道路文件,移动所述文件指针至所述目标存储位置;从所述文件指针处开始读取一条二进制形式的道路信息。
一种局部道路信息提取装置,基于预先建立的道路地图索引列表、二进制文件索引列表和二进制道路文件;所述道路地图索引列表包括:虚拟网格位置标识ID与OpenDRIVE地图文件中的道路ID间的关联关系;所述OpenDRIVE地图文件中的道路信息以二进制形式存储在所述二进制道路文件中;所述二进制文件索引列表包括:道路ID与存储位置间的关联关系;所述存储位置为:所述道路ID所对应的道路信息在所述二进制道路文件中的存储位置;
所述装置包括:
接收模块,用于接收搜索位置和搜索范围;
道路搜索模块,用于:根据所述搜索位置及所述搜索范围,在所述道路地图索引列表中确定搜索道路ID;所述搜索区域由所述搜索位置和所述搜索范围确定;
二进制文件读取模块,用于:
根据所述搜索道路ID,在所述二进制文件索引列表内查询与所述搜索道路ID对应的存储位置;查询到的存储位置为目标存储位置;
在所述二进制道路文件的目标存储位置处获取二进制形式的道路信息。
可选的,还包括初始化模块;所述初始化模块用于:对所述OpenDRIVE地图文件进行解析,得到道路信息;所述OpenDRIVE地图文件使用道路信息定义了至少一条道路,其中的任意一条道路表示为道路i;根据所述道路信息,确定所述道路i的包围盒;计算所述包围盒各顶点位置所对应的虚拟网格位置ID,以及,顶点间的虚拟网格位置ID;在所述道路地图索引列表中,添加所述道路i的道路ID与计算得到的虚拟网络位置ID之间的关联关系。
可选的,所述初始化模块还用于:打开空白的二进制道路文件,移动初始化文件指针至所述二进制道路文件的文件起始位置;从所述OpenDRIVE地图文件中读取道路i的道路信息;在所述二进制索引列表中,添加所述道路i的道路ID与所述文件指针的当前位置之间的关联关系;所述当前位置为所述道路i的道路信息在所述二进制道路文件中的起始存储位置;在所述二进制道路文件中以二进制形式存储所读取的道路信息,并移动所述文件指针至末尾。
可选的,所述搜索区域为一搜索包围盒;在所述根据所述搜索位置及所述搜索范围,在所述道路地图索引列表中确定搜索道路ID的方面,所述道路搜索模块具体用于:根据所述搜索位置和所述搜索范围确定所述搜索包围盒;根据所述搜索包围盒确定搜索ID;所述搜索ID包括:所述搜索包围盒各顶点所对应的虚拟网格位置ID,以及,位于所述搜索包围盒顶点间的虚拟网格位置ID;在所述道路地图索引列表中查找各搜索ID对应的道路ID;去除重复的道路ID,得到所述搜索道路ID。
可选的,在所述二进制道路文件的目标存储位置处获取二进制形式的道路信息的方面,所述二进制文件读取模块用于:打开所述二进制道路文件,移动所述文件指针至所述目标存储位置;从所述文件指针处开始读取一条二进制形式的道路信息。
可见,在本发明实施例中,在加载大型地图时,无需一次性将所有地图全部加载至内存,在输入搜索位置和搜索范围后,可依据预先建立的道路地图索引列表、二进制文件索引列表在二进制道路文件中获取相应的二进制形式的局部道路信息。最后将获取的局部的道路信息加载至内存,可极大节约内存空间。
附图说明
图1为本发明实施例提供的初始化操作的示例性流程;
图2a示为本发明实施例提供的道路地图索引列表的示例性结构;
图2b为本发明实施例提供的二进制文件索引的示例性结构;
图2c为本发明实施例提供的道路地图索引列表、二进制文件索引列表和二进制道路文件三者之间的关系示意图;
图3为本发明实施例提供的局部道路信息提取方法的一种示例性流程;
图4为本发明实施例提供的搜索包围盒示意图;
图5a为本发明实施例提供的建立道路地图索引列表的示例性流程;
图5b为本发明实施例提供的道路坐标系示意图;
图5c和图5d为本发明实施例提供的参考线示意图;
图6a为本发明实施例提供的道路包围盒示意图;
图6b为本发明实施例提供的包围盒内网格点示意图;
图6c为本发明实施例提供的Pos ID与Road ID间的关示意图;
图7为本发明实施例提供的建立二进制文件索引列表和二进制道路文件的示例性流程;
图8为本发明实施例提供的局部道路信息提取方法的另一种示例性流程;
图9为本发明实施例提供的一个搜索ID对应多个道路ID的示意图;
图10为本发明实施例提供的局部道路信息提取装置的示例性结构图。
具体实施方式
本发明提供局部道路信息提取方法及装置,以减少内存浪费。
上述局部道路信息提取装置具体可为智能驾驶仿真软件的流式加载模块,主要作用是加载OpenDRIVE中的数据。
先对OpenDRIVE进行介绍。
OpenDRIVE提供了一种基于车道轨迹描述路网的格式,其数据使用扩展标记语言(Extensible Markup Language,XML)语法表示,文件后缀名为“.xodr”。OpenDRIVE地图文件可以通过在仿真软件中手动搭建道路场景或者根据采集的真实道路数据自动生成。
OpenDRIVE地图文件包括多个road节点及其子节点(树状结构),每一road节点及其子节点用于描述一段道路的详细信息(可统称为道路信息)。
其中,详细信息包括道路的前后连接关系、道路类型,解析式形式的几何元素、车道信息(例如车道类型)、沿路的建筑和交通标志信号等。
其中的,解析式形式的几何元素包括:参考线变化函数(表征参考线平面几何形状),道路垂直方向变化函数(表征纵向高度变化),车道宽度变化函数(表征道路横截面形状)。参考线变化函数用于表达参考线的几何形状。
OpenDRIVE地图文件中的junction节点及其子节点用于描述复杂情况下的道路连接关系,如各种交叉路口、高速匝道等,这样道路中的所有车道的具体信息以及车道和车道之间的逻辑关系都能够清楚的表示。
本发明所提供的技术方案的应用场景如下:使用者(例如智能驾驶仿真软件中需使用道路信息的模块)会根据具体的业务,提供搜索位置和范围,局部道路信息提取装置为使用者返回相应的道路信息。
在获取到搜索位置和范围后,局部道路信息提取装置并非按照现有的方式去遍历树状索引结构来获取道路信息,而是基于预先建立的道路地图索引列表、二进制文件索引列表和二进制道路文件来获取道路信息。
请参见图1,在向内存加载道路信息前,局部道路信息提取装置可进行如下初始化操作:
S100:对OpenDRIVE原始xml文件进行解析,得到道路信息。
如何解析请参照现有方式,在此不作赘述。
S101:根据解析的道路信息,建立道路地图索引列表。
图2a示出了道路地图索引列表的示例性结构,包括:虚拟网格位置标识(Pos ID)与OpenDRIVE地图文件中的道路ID(Road ID)间的关联关系。
虚拟网格是一种空间划分方式,在本申请的网格为长方形(沿x、y方向可取不同的网格宽度),每一虚拟网格包括4个顶点。
Pos ID是根据道路信息计算得到的,本文后续将对如何建立道路地图索引列表进行详细说明。
S102:将OpenDRIVE原始xml文件转存为二进制文件,并建立二进制文件索引。
上述二进制道路文件中以二进制形式存储了OpenDRIVE地图文件中的道路信息,也即,本申请在加载前,会将OpenDRIVE的XML原始文件转为二进制存储文件。
图2b示出了二进制文件索引的示例性结构,包括:道路ID与存储位置(Adress)间的关联关系。
每一道路ID所对应的道路信息在二进制道路文件都有其存储位置,二进制文件索引就记录了道路ID所对应的道路信息在二进制道路文件中的存储位置。
图2c示出了道路地图索引列表、二进制文件索引列表和二进制道路文件三者之间的关系。
需要说明的是,在仿真测试中,可能会根据测试场景不同而采用不同的OpenDRIVE地图文件进行测试。若采用新地图文件,则还要针对该文件执行一次上述初始化操作。
图3示出了由数据生成装置执行的局部道路信息提取方法的一种示例性流程,其可包括:
S0:执行初始化操作。
初始化操作的介绍可参见前述S100-S102的记载,在此不作赘述。
需要注意的是,初始化操作并不需在每次加载之前做,只需要在首次加载之前执行即可。
S1:接收搜索位置和搜索范围。
在一个示例中,搜索位置可以全局坐标系中的(xs,ys)表示,搜索范围可为一具体数值,以“range”表示。
S2:根据搜索位置及搜索范围,在道路地图索引列表中确定搜索道路ID。
搜索道路ID包括位于搜索区域内的道路ID,而搜索区域由搜索位置和搜索范围确定。
在一个示例中,搜索区域可为矩形搜索包围盒,请参见图4,其顶点坐标如下:
xmin′=xs-range,xmax′=xs+range,
ymin′=ys-range,ymax′=ys+range;
需要说明的是,搜索道路ID可能不止一个。
S3:根据搜索道路ID,在二进制文件索引列表内查询相应的存储位置。
查询到的存储位置可称为目标存储位置。
S4:在二进制道路文件的目标存储位置处获取二进制形式的道路信息。
之后,可将获取的道路信息加载至内存,这样就实现了将局部(搜索区域附近)道路信息加载至内存。
可见,在本发明实施例中,在加载大型地图时,无需一次性将所有地图全部加载至内存,在输入搜索位置和搜索范围后,可依据预先建立的道路地图索引列表、二进制文件索引列表在二进制道路文件中获取相应的二进制形式的局部道路信息,之后,可将获取的局部道路信息加载至内存,极大的节约了内存空间。
此外,在现有加载方式中,还存在如下问题:当车辆位置变化时,仿真软件需要快速定位到新位置附近的道路信息,若OpenDRIVE地图文件非常大时,道路数量会太多,遍历查找新位置附近的道路信息的效率很低。并且,若OpenDRIVE地图文件太大,可能无法全部加载到内存,这就需要多次读取到内存,对内存中的道路信息进行遍历,也会耗时巨大,从而不利于对道路信息进行快速查找。
而在本实施例中,输入的搜索位置为车辆新位置,通过车辆新位置和搜索范围,可依据预先建立的道路地图索引列表、二进制文件索引列表在二进制道路文件中获取新位置附近的二进制道路信息,并加载到内存,从而可以快速检索车辆新位置附近的道路信息,相比于其他搜索算法,该搜索算法在不影响索引速度的前提下,降低索引文件体积(因其他搜索算法的搜索结构是多层,而本实施例中的索引是单层),而且避免了常规搜索算法中难于存储的树状索引结构,简化索引维护流程。
下面介绍建立道路地图索引列表的示例性方式。
OpenDRIVE地图文件使用道路信息定义了至少一条道路。在建立道路地图索引列表的过程中,会按照某一顺序将每一条道路的道路ID与Pos ID的关联关系添加至道路地图索引列表。
本实施例以道路i为例(道路i表示任意一条道路),对如何建立道路地图索引列表进行介绍。请参见图5a,可包括如下步骤:
S50:对OpenDRIVE地图文件进行解析,得到道路信息。
如何解析请参照现有方式,在此不作赘述。
S51:根据道路信息,确定道路i的包围盒(bounding box)。
前述提及了OpenDRIVE地图文件每一road节点及其子节点用于描述一段道路的详细信息,其中详细信息包括解析式形式的几何元素。
解析式形式进一步几何元素包括:参考线变化函数(表征参考线平面几何形状),道路垂直方向变化函数(表征纵向高度变化),车道宽度变化函数(表征道路横截面形状)。参考线变化函数用于表达参考线的几何形状。
其中的,参考线很重要,因为绘制地图的时候先是画参考线,然后在参考线的基础上再去画其他元素(例如车道线)。参考线上点的(xy)坐标是根据参考线变化函数计算的。
使用Opendrive的场景的坐标系通常是xy坐标,但opendrive地图文件内部使用的是道路坐标系,xy坐标系只在对道路起始位置定义时使用。
道路坐标系包括s坐标和t坐标,s坐标定义如图5b所示,s坐标是沿着参考线的,某一点的s坐标表征了该点距离起点的长度(注意是沿参考线方向,该长度一般不等于两点间的直线距离)。
OpenDRIVE文件规范中还对s坐标的单位进行了定义,其单位为米。
在图5b中,起点的s坐标值为0,而终点的s坐标值为123.45,相当于其距起点的偏移量为123.45米。或者,更直观的理解可为:车辆沿参考线的起点出发行驶到终点,其走过的路程为123.45米。
至于t坐标,仍请参见图5b,其是相对于参考线(reference line)的侧向位置,左正,右负。t坐标始终垂直于s坐标。在参考线上某一点的切线上做垂直线,该垂直线上各点的坐标值均为t坐标值。
参考线的几何形状种类包括:直线(Line)、圆弧(Arc)、螺旋线(Spiral)、三次样条(Poly3)四种。各几何形状都有对应的解析式进行表达。
一条道路的参考线可能包括多种几何形状,例如,图5c所示的参考线就包括Line、Spiral和Arc,也即,该参考线的参考线变化函数是分段函数。当然,也可能仅包括一种几何形式,例如图5d所示的Line,也即,该参考线的参考线变化函数是非分段函数。
下面介绍包围盒,请参见图6a,道路i的bounding box由xmin、xmax、ymin、ymax四个参数组成,使得该条道路上的任意一点(x,y)满足xmin≤x≤xmax,ymin≤y≤ymax。
根据参考线变化函数和车道宽度变化函数,可确定出道路的xmin、xmax、ymin、ymax,从而得到包围盒。
S52:计算包围盒各顶点位置所对应的Pos ID,以及顶点间的Pos ID。
在一个示例中,每一虚拟网格为正方形,其边长(宽度)为w。
Pos ID为一种2维ID,任意一点(x,y)的Pos ID计算公式如下:
其中,下标x表示x轴,下标y表示y轴,w表示虚拟网格的宽度,ceil(*)表示向上取整。
假定,令包围盒的顶点(xmin,ymin)对应(Pos IDx1,Pos IDy1),顶点(xmin,ymax)对应(Pos IDx2,Pos IDy2),包围盒的顶点(xmax,ymax)对应(Pos IDx3,Pos IDy3),包围盒的顶点(xmax,ymin)对应(Pos IDx4,Pos IDy4),则:
Pos IDx1=ceil(xmin/w),Pos IDy1=ceil(ymin/w);
Pos IDx2=ceil(xmin/w),Pos IDy2=ceil(ymax/w);
Pos IDx3=ceil(xmax/w),Pos IDy3=ceil(ymax/w);
Pos IDx4=ceil(xmax/w),Pos IDx4=ceil(ymin/w)。
至于顶点间的Pos ID,请参见图6b,相邻网格点的Pos ID在x轴或y轴上的距离为1。
在一个示例中,可以(Pos IDx1,Pos IDy1)为起点,先保持Pos IDy1不变,对Pos IDx1加1,得到多个虚拟网格位置标识,直到x轴上的虚拟网格点坐标值等于Pos IDx3或PosIDx4。
再令Pos IDy1加1,得到(Pos IDx1,Pos IDy1+1),以(Pos IDx1,Pos IDy1+1)为起点,对Pos IDx1加1,得到多个虚拟网格位置标识,直到x轴上的虚拟网格点坐标值等于Pos IDx3或Pos IDx4。
再令Pos IDy1加2,得到(Pos IDx1,Pos IDy1+2),以(Pos IDx1,Pos IDy1+2)为起点,对Pos IDx1加1,得到多个虚拟网格位置标识,直到x轴上的虚拟网格点坐标值等于Pos IDx3或Pos IDx4。
以此类推,直到x轴上的虚拟网格点坐标值等于Pos IDx3,y轴上的虚拟网格点坐标值等于Pos IDy3。
S53:在道路地图索引列表中,添加道路i的道路ID与计算得到的Pos ID之间的关联关系。
假定道路i的道路ID为Road ID-i,Pos ID与RoadID-i间的关联关系如图6c所示。
在一个示例中,可以每个Pos ID为主键(key),Road ID为数值(value),建立索引(表征二者间的关联关系),并添加到道路地图索引列表。
按照S51-S53,依次建立其他道路的道路ID与Pos ID之间的关联关系。
保存道路地图索引列表,道路地图索引列表建立完毕。
Pos ID的值是稀疏的,在一个示例中,为了不需要遍历而直接查找出道路几何,可采用哈希数据结构来存储道路地图索引列表。
Hash数据结构中的Key用于存储Pos ID,根据Pos ID计算出的哈希值作为value(Road ID)的存储地址。
举例来讲,假定Pos ID为:010000010,可计算“010000010”的哈希值,假定其哈希值等于A,则010000010所对应的道路ID的存储地址为A。
在检索时,可假定要查询的Pos ID为:010000010,可计算“010000010”的哈希值,假定其哈希值等于A,则在存储地址A处获取相应的道路ID。
下面仍以道路i为例,介绍建立二进制文件索引列表(简称二进制索引)和二进制道路文件的示例性方式。请参见图7,其可包括如下步骤:
S71:打开空白的二进制道路文件,移动初始化文件指针至二进制道路文件的文件起始位置;
S72:从OpenDRIVE地图文件中读取道路i的道路信息。
二进制文件索引列表和二进制道路文件的建立可在建立道路地图索引列表之后执行,或同时进行。
例如,可在步骤S50后,读取道路i的道路信息,然后,分别同时执行步骤S51-S53,以及步骤S73-S74。
或者,也可在读取道路i的道路信息后,先执行步骤S51-S53,再执行步骤S73-S74。
S73:在二进制索引列表中,添加道路i的道路ID与文件指针的当前位置之间的关联关系。
道路ID是OpenDRIVE地图文件中Road节点的标识。
这里的“当前位置”指道路i的道路信息在二进制道路文件中的起始存储位置。
在一个示例中,可以Road ID为主键,以文件指针当前位置为数据,建立二进制索引(表征二者间的关联关系),添加至二进制索引列表。
建立二进制文件索引的主要目的是,通过道路的Road ID快速获取道路的几何信息。
在一个示例中,为了不需要遍历而直接查找到道路ID,可采用哈希数据结构来存储二进制文件索引。
Hash数据结构中的Key用于存储二进制文件索引中的Road ID,根据Road ID计算出的哈希值作为value的存储地址。
举例来讲,假定Road ID为:0100010,可计算“0100010”的哈希值,假定其哈希值等于B,则“0100010”所对应的二进制文件存储位置的存储地址为B。
在检索时,假定要查询的Pos ID为:010000010,可计算“010000010”的哈希值,假定其哈希值等于A,则在存储地址A处获取相应的二进制文件存储位置。
S74:在二进制道路文件中以二进制形式存储所读取的道路信息,并移动文件指针至末尾。
在所有道路的二进制索引都建立完毕,所有道路的道路信息都存储至二进制道路文件后,可关闭文件,保存二进制文件索引列表,此时,二进制文件索引列表建立完毕。
下面介绍如下在道路地图索引列表中确定搜索道路ID。请参见图8,在接收搜索位置及搜索范围后,可包括如下步骤:
S21:根据搜索位置和搜索范围确定搜索包围盒。
前述提及了,搜索包围盒顶点坐标如下:
xmin′=xs-range,xmax′=xs+range,
ymin′=ys-range,ymax′=ys+range。
S22:根据搜索包围盒确定搜索ID。
其中,搜索ID包括:搜索包围盒各顶点所对应的Pos ID,以及,位于搜索包围盒的顶点间的Pos ID。
搜索ID的计算方式与前述S52中介绍的计算方式相类似,在此不作赘述。
S23:在道路地图索引列表中查找各搜索ID对应的道路ID。
需要说明的是,请参见图9,一个搜索ID可能对应多个道路ID,这是两道路的包围盒有重叠造成的。
S24:去除重复的道路ID,得到搜索道路ID。
步骤S21-S24是前述步骤S2的细化。
接下来,可根据搜索道路ID,在二进制文件索引列表内查询相应的存储位置(目标存储位置)。
之后,仍请参见图8,可执行如下操作:
S41:打开二进制道路文件,移动文件指针至目标存储位置;
S42:从文件指针处开始读取一条二进制形式的道路信息。
以图9所示的关联关系为例,假定通过Pos ID1检索到Road ID2,通过Pos ID1检索到Road ID1~Road ID3,而通过Road ID1~Road ID3可检索到Adress1~Adress3,则会将文件指针分别移动到Adress1~Adress3处读取一条二进制形式的道路信息,共读取三条二进制形式的道路信息。
为了对本发明提供的局部道路信息提取的搜索速度进行测试,在实验中可产生数量为N的随机box(位置随机,边界大小随机)作为道路的包围盒,输入同一搜索位置和搜索范围进行测试。
当N的大小为100、1000、10000时,所耗费时间如下表所示:
可见,本发明提供的方案,可实现快速定位。
本发明实施例还要求保护局部道路信息提取装置,请参见图10,其示例性地包括:
接收模块1,用于接收搜索位置和搜索范围;
道路搜索模块2,用于:
根据搜索位置及搜索范围,在道路地图索引列表中确定搜索道路ID;
其中,搜索道路ID包括位于搜索区域内的道路ID;搜索区域由搜索位置和搜索范围确定。
道路搜索模块2在确定出道路ID后,会将道路ID传递给下述二进制文件读取模块3。
二进制文件读取模块3,用于:
根据搜索道路ID,在二进制文件索引列表内查询与搜索道路ID对应的存储位置;查询到的存储位置为目标存储位置;
在二进制道路文件的目标存储位置处获取二进制形式的道路信息。
具体描述请参见前述记载,在此不作赘述。
道路信息可返回给使用者,或更上层的调用模块。
在本发明其他实施例中,请参见图10,还可包括初始化模块4,用于:
对OpenDRIVE地图文件进行解析,得到道路信息;OpenDRIVE地图文件使用道路信息定义了至少一条道路,其中的任意一条道路表示为道路i;
根据道路信息,确定道路i的包围盒;
计算包围盒各顶点位置所对应的虚拟网格位置ID,以及,顶点间的虚拟网格位置ID;
在道路地图索引列表中,添加道路i的道路ID与计算得到的虚拟网络位置ID之间的关联关系。
具体描述请参见前述记载,在此不作赘述。
在本发明其他实施例中,初始化模块4还用于:
打开空白的二进制道路文件,移动初始化文件指针至二进制道路文件的文件起始位置;
从OpenDRIVE地图文件中读取道路i的道路信息;
在二进制索引列表中,添加道路i的道路ID与文件指针的当前位置之间的关联关系;当前位置为道路i的道路信息在二进制道路文件中的起始存储位置;
在二进制道路文件中以二进制形式存储所读取的道路信息,并移动文件指针至末尾。
具体描述请参见前述记载,在此不作赘述。
在本发明其他实施例中,搜索区域为一搜索包围盒;
在根据搜索位置及搜索范围,在道路地图索引列表中确定搜索道路ID的方面,道路搜索模块2具体用于:
根据搜索位置和搜索范围确定搜索包围盒;
根据搜索包围盒确定搜索ID;搜索ID包括:搜索包围盒各顶点所对应的虚拟网格位置ID,以及,位于搜索包围盒顶点间的虚拟网格位置ID;
在道路地图索引列表中查找各搜索ID对应的道路ID;
去除重复的道路ID,得到搜索道路ID。
具体描述请参见前述记载,在此不作赘述。
在本发明其他实施例中,在二进制道路文件的目标存储位置处获取二进制形式的道路信息的方面,二进制文件读取模块3用于:
打开二进制道路文件,移动文件指针至目标存储位置;
从文件指针处开始读取一条二进制形式的道路信息。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及模型步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或模型的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、WD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种局部道路信息提取方法,其特征在于,
基于预先建立的道路地图索引列表、二进制文件索引列表和二进制道路文件;
所述道路地图索引列表包括:虚拟网格位置标识ID与OpenDRIVE地图文件中的道路ID间的关联关系;所述OpenDRIVE地图文件中的道路信息以二进制形式存储在所述二进制道路文件中;
所述二进制文件索引列表包括:道路ID与存储位置间的关联关系;所述存储位置为:所述道路ID所对应的道路信息在所述二进制道路文件中的存储位置;
所述方法包括:
接收搜索位置和搜索范围;
根据所述搜索位置及所述搜索范围,在所述道路地图索引列表中确定搜索道路ID;所述搜索区域由所述搜索位置和所述搜索范围确定;
根据所述搜索道路ID,在所述二进制文件索引列表内查询与所述搜索道路ID对应的存储位置;查询到的存储位置为目标存储位置;
在所述二进制道路文件的目标存储位置处获取二进制形式的道路信息。
2.如权利要求1所述的方法,其特征在于,所述道路地图索引列表通过如下方式建立:
对所述OpenDRIVE地图文件进行解析,得到道路信息;所述OpenDRIVE地图文件使用道路信息定义了至少一条道路,其中的任意一条道路表示为道路i;
根据所述道路信息,确定所述道路i的包围盒;
计算所述包围盒各顶点位置所对应的虚拟网格位置ID;
在所述道路地图索引列表中,添加所述道路i的道路ID与计算得到的虚拟网络位置ID之间的关联关系。
3.如权利要求2所述的方法,其特征在于,所述二进制文件索引列表和二进制道路文件通过如下方式建立:
打开空白的二进制道路文件,移动初始化文件指针至所述二进制道路文件的文件起始位置;
从所述OpenDRIVE地图文件中读取道路i的道路信息;
在所述二进制索引列表中,添加所述道路i的道路ID与所述文件指针的当前位置之间的关联关系;所述当前位置为所述道路i的道路信息在所述二进制道路文件中的起始存储位置;
在所述二进制道路文件中以二进制形式存储所读取的道路信息,并移动所述文件指针至末尾。
4.如权利要求2所述的方法,其特征在于,
所述搜索区域为一搜索包围盒;
所述根据所述搜索位置及所述搜索范围,在所述道路地图索引列表中确定搜索道路ID包括:
根据所述搜索位置和所述搜索范围确定所述搜索包围盒;
根据所述搜索包围盒确定搜索ID;所述搜索ID包括:所述搜索包围盒各顶点所对应的虚拟网格位置ID,以及,位于所述搜索包围盒内的虚拟网格位置ID;
在所述道路地图索引列表中查找各搜索ID对应的道路ID;
去除重复的道路ID,得到所述搜索道路ID。
5.如权利要求3所述的方法,其特征在于,
所述在所述二进制道路文件的目标存储位置处获取二进制形式的道路信息包括:
打开所述二进制道路文件,移动所述文件指针至所述目标存储位置;
从所述文件指针处开始读取一条二进制形式的道路信息。
6.一种局部道路信息提取装置,其特征在于,
基于预先建立的道路地图索引列表、二进制文件索引列表和二进制道路文件;
所述道路地图索引列表包括:虚拟网格位置标识ID与OpenDRIVE地图文件中的道路ID间的关联关系;所述OpenDRIVE地图文件中的道路信息以二进制形式存储在所述二进制道路文件中;
所述二进制文件索引列表包括:道路ID与存储位置间的关联关系;所述存储位置为:所述道路ID所对应的道路信息在所述二进制道路文件中的存储位置;
所述装置包括:
接收模块,用于接收搜索位置和搜索范围;
道路搜索模块,用于:根据所述搜索位置及所述搜索范围,在所述道路地图索引列表中确定搜索道路ID;所述搜索区域由所述搜索位置和所述搜索范围确定;
二进制文件读取模块,用于:
根据所述搜索道路ID,在所述二进制文件索引列表内查询与所述搜索道路ID对应的存储位置;查询到的存储位置为目标存储位置;
在所述二进制道路文件的目标存储位置处获取二进制形式的道路信息。
7.如权利要求6所述的装置,其特征在于,还包括初始化模块;
所述初始化模块用于:
对所述OpenDRIVE地图文件进行解析,得到道路信息;所述OpenDRIVE地图文件使用道路信息定义了至少一条道路,其中的任意一条道路表示为道路i;
根据所述道路信息,确定所述道路i的包围盒;
计算所述包围盒各顶点位置所对应的虚拟网格位置ID,以及,顶点间的虚拟网格位置ID;
在所述道路地图索引列表中,添加所述道路i的道路ID与计算得到的虚拟网络位置ID之间的关联关系。
8.如权利要求7所述的装置,其特征在于,所述初始化模块还用于:
打开空白的二进制道路文件,移动初始化文件指针至所述二进制道路文件的文件起始位置;
从所述OpenDRIVE地图文件中读取道路i的道路信息;
在所述二进制索引列表中,添加所述道路i的道路ID与所述文件指针的当前位置之间的关联关系;所述当前位置为所述道路i的道路信息在所述二进制道路文件中的起始存储位置;
在所述二进制道路文件中以二进制形式存储所读取的道路信息,并移动所述文件指针至末尾。
9.如权利要求7所述的装置,其特征在于,
所述搜索区域为一搜索包围盒;
在所述根据所述搜索位置及所述搜索范围,在所述道路地图索引列表中确定搜索道路ID的方面,所述道路搜索模块具体用于:
根据所述搜索位置和所述搜索范围确定所述搜索包围盒;
根据所述搜索包围盒确定搜索ID;所述搜索ID包括:所述搜索包围盒各顶点所对应的虚拟网格位置ID,以及,位于所述搜索包围盒顶点间的虚拟网格位置ID;
在所述道路地图索引列表中查找各搜索ID对应的道路ID;
去除重复的道路ID,得到所述搜索道路ID。
10.如权利要求8所述的装置,其特征在于,在所述二进制道路文件的目标存储位置处获取二进制形式的道路信息的方面,所述二进制文件读取模块用于:
打开所述二进制道路文件,移动所述文件指针至所述目标存储位置;
从所述文件指针处开始读取一条二进制形式的道路信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911358296.3A CN111104410B (zh) | 2019-12-25 | 2019-12-25 | 局部道路信息提取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911358296.3A CN111104410B (zh) | 2019-12-25 | 2019-12-25 | 局部道路信息提取方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111104410A true CN111104410A (zh) | 2020-05-05 |
CN111104410B CN111104410B (zh) | 2023-09-05 |
Family
ID=70425136
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911358296.3A Active CN111104410B (zh) | 2019-12-25 | 2019-12-25 | 局部道路信息提取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111104410B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113094546A (zh) * | 2021-04-26 | 2021-07-09 | 北京经纬恒润科技股份有限公司 | 一种仿真动画模型加载方法、装置及仿真设备 |
CN113761990A (zh) * | 2020-06-12 | 2021-12-07 | 北京京东乾石科技有限公司 | 一种道路边界检测方法、装置、无人车及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102305632A (zh) * | 2011-08-27 | 2012-01-04 | 广东东纳软件科技有限公司 | 一种地图信息存储与快速显示方法 |
CN102445205A (zh) * | 2011-10-12 | 2012-05-09 | 北京世纪高通科技有限公司 | 一种海量地图数据匹配的方法及装置 |
CN107480180A (zh) * | 2017-07-05 | 2017-12-15 | 北京辰安信息科技有限公司 | 道路数据的处理方法、道路定位方法、装置及系统 |
CN109147050A (zh) * | 2018-08-02 | 2019-01-04 | 苏州蜗牛数字科技股份有限公司 | 基于Unity引擎地形系统的道路网格创建方法及装置 |
CN109918464A (zh) * | 2019-02-26 | 2019-06-21 | 东软睿驰汽车技术(沈阳)有限公司 | 一种点云地图的存储方法及装置和调用方法及装置 |
CN110275883A (zh) * | 2019-05-17 | 2019-09-24 | 浙江吉利控股集团有限公司 | 一种高精度地图存储系统及方法 |
-
2019
- 2019-12-25 CN CN201911358296.3A patent/CN111104410B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102305632A (zh) * | 2011-08-27 | 2012-01-04 | 广东东纳软件科技有限公司 | 一种地图信息存储与快速显示方法 |
CN102445205A (zh) * | 2011-10-12 | 2012-05-09 | 北京世纪高通科技有限公司 | 一种海量地图数据匹配的方法及装置 |
CN107480180A (zh) * | 2017-07-05 | 2017-12-15 | 北京辰安信息科技有限公司 | 道路数据的处理方法、道路定位方法、装置及系统 |
CN109147050A (zh) * | 2018-08-02 | 2019-01-04 | 苏州蜗牛数字科技股份有限公司 | 基于Unity引擎地形系统的道路网格创建方法及装置 |
CN109918464A (zh) * | 2019-02-26 | 2019-06-21 | 东软睿驰汽车技术(沈阳)有限公司 | 一种点云地图的存储方法及装置和调用方法及装置 |
CN110275883A (zh) * | 2019-05-17 | 2019-09-24 | 浙江吉利控股集团有限公司 | 一种高精度地图存储系统及方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113761990A (zh) * | 2020-06-12 | 2021-12-07 | 北京京东乾石科技有限公司 | 一种道路边界检测方法、装置、无人车及存储介质 |
CN113761990B (zh) * | 2020-06-12 | 2024-04-09 | 北京京东乾石科技有限公司 | 一种道路边界检测方法、装置、无人车及存储介质 |
CN113094546A (zh) * | 2021-04-26 | 2021-07-09 | 北京经纬恒润科技股份有限公司 | 一种仿真动画模型加载方法、装置及仿真设备 |
CN113094546B (zh) * | 2021-04-26 | 2024-04-09 | 北京经纬恒润科技股份有限公司 | 一种仿真动画模型加载方法、装置及仿真设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111104410B (zh) | 2023-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10627241B2 (en) | Map-centric map matching method and apparatus | |
CN109710708B (zh) | 一种电子地图映射方法及装置 | |
CN113390407A (zh) | 车道级导航地图的构建方法、装置、设备以及存储介质 | |
CN111104410B (zh) | 局部道路信息提取方法及装置 | |
CN110619426B (zh) | 一种路网模型的构建方法、装置、设备和存储介质 | |
CN108572999B (zh) | 兴趣面aoi轮廓的搜索方法及装置 | |
US10776951B2 (en) | Method, apparatus, and system for an asymmetric evaluation of polygon similarity | |
WO2018058888A1 (zh) | 一种街景图像的识别方法、装置、服务器及存储介质 | |
CN112985444A (zh) | 一种地图中导航元素构建方法及装置 | |
CN112269848A (zh) | 一种众包轨迹数据融合方法及装置 | |
CN116561240A (zh) | 电子地图处理方法、相关装置和介质 | |
CN115758738A (zh) | 交通事故仿真测试方法、数据格式转换方法、系统、设备及计算机可读存储介质 | |
CN115424133A (zh) | 一种车道级高精度可计算路网构建方法、装置及电子设备 | |
CN113656979B (zh) | 路网数据生成方法、装置、电子设备及存储介质 | |
CN113192202B (zh) | 建筑模型的矢量图的表示方法和计算机可读存储介质 | |
CN115481268A (zh) | 一种平行线墙体数据识别方法、装置、设备及存储介质 | |
CN114283148A (zh) | 一种道路元素提取方法、装置、存储介质及电子设备 | |
CN111914039B (zh) | 道路网更新方法及装置 | |
US10830594B2 (en) | Updating missing attributes in navigational map data via polyline geometry matching | |
Souley et al. | Advanced mobility models for ad hoc network simulations | |
CN112949358A (zh) | 道路描述文件生成方法及设备 | |
CN114283441B (zh) | 适用于铁路客站的二维图纸识别建模方法和装置 | |
CN116342738B (zh) | 一种基于gis的禁捕矢量范围自动提取和图示制作方法 | |
CN117115773B (zh) | 停止线生成方法、装置、电子设备、介质和程序产品 | |
CN103295216B (zh) | 用于识别三维模型中的空间的方法和设备及图像处理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 4 / F, building 1, No.14 Jiuxianqiao Road, Chaoyang District, Beijing 100020 Applicant after: Beijing Jingwei Hengrun Technology Co.,Ltd. Address before: 8 / F, block B, No. 11, Anxiang Beili, Chaoyang District, Beijing 100101 Applicant before: Beijing Jingwei HiRain Technologies Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |