CN115631476A - 一种车道数据处理方法、系统、电子设备及存储介质 - Google Patents
一种车道数据处理方法、系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115631476A CN115631476A CN202211280471.3A CN202211280471A CN115631476A CN 115631476 A CN115631476 A CN 115631476A CN 202211280471 A CN202211280471 A CN 202211280471A CN 115631476 A CN115631476 A CN 115631476A
- Authority
- CN
- China
- Prior art keywords
- lane
- line
- group
- road boundary
- road
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/56—Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
- G06V20/588—Recognition of the road, e.g. of lane markings; Recognition of the vehicle driving pattern in relation to the road
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/56—Information retrieval; Database structures therefor; File system structures therefor of still image data having vectorial format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Algebra (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Multimedia (AREA)
- Software Systems (AREA)
- Remote Sensing (AREA)
- Traffic Control Systems (AREA)
Abstract
本申请提供一种车道数据处理方法、系统、电子设备及存储介质,包括:获取车道数据,并根据车道数据计算车道方位角;基于车道方位角和车道线矢量点角度,确定车道方向;再基于车道方向获取道路边界信息,对道路边界信息进行插值处理,获取车道数变化点,并构建第一车道组;再根据第一车道组获取车道宽度变化点,并构建第二车道组;利用第二车道组对已有车道进行分割修改,并对具有相同车道数量的车道组进行合并,获取同方向的所有车道。本申请通过引入车道组的概念,便于车辆在变道时获取可变化区间范围点,符合实际驾驶习惯,从而可以减少自动驾驶安全隐患,使得无人驾驶车辆可以在路口、分歧、合流等多场景下构建车道,形成道路拓扑关系。
Description
技术领域
本申请涉及智能交通技术领域,具体涉及一种车道数据处理方法、系统、电子设备及存储介质。
背景技术
自动驾驶的核心为感知、决策与控制,高精地图作为感知系统中的一部分,也是决策系统里的重要模块,服务于智能驾驶决策,是决策中的重要一环。高精地图与普通地图相比,会更精细化更精确地表达现实世界,比如,普通地图在表达道路时不会表达道路更精细化的信息,而高精地图会通过车道线来表达道路的每一条车道。目前高精地图采集、制作常见的方案为专业采集与众包采集制作。但是,现有方式在高精地图制作时,对于实际车辆导航行驶的考虑的不太全面,并未提供变道的可变化区间范围,对于自动驾驶存在部分安全隐患。因此,为了完成更高精度的地图制作,需要对车道数据进行提前处理,以便基于处理后得到的高精度地图能够适用于自动驾驶。
发明内容
鉴于以上所述现有技术的缺点,本申请提供一种车道数据处理方法、系统、电子设备及存储介质,以解决上述技术问题。
本申请提供一种车道数据处理方法,所述方法包括以下步骤:
获取预先生成的车道数据;
根据所述车道数据计算车道方位角,并基于所述车道方位角和车道线矢量点角度,确定车道方向;
基于所述车道方向对当前道路进行排序分组遍历,获取道路边界信息;
对所述道路边界信息进行插值处理,获取车道数变化点,并基于所述车道数变化点构建第一车道组;
根据所述第一车道组获取车道宽度变化点,并基于所述车道宽度变化点构建第二车道组;
利用所述第二车道组对已有车道进行分割修改,并对具有相同车道数量的车道组进行合并,获取同方向的所有车道。
于本申请的一实施例中,若所述车道数据包括斑马线,则根据所述车道数据计算车道方位角的过程包括:
获取车道斑马线的起点坐标(xstart,ystart)和终边坐标(xend,yend);
通过所述车道斑马线的起点坐标和所述车道斑马线的终点坐标构建一条直线,记为停止线;
计算所述停止线的中点坐标,有:
式中,xmid表示所述停止线的中点横坐标;
ymid表示所述停止线的中点纵坐标;
计算停止线中点的垂线坐标,有:
xcalc=(xmid-yend+ystart);
ycalc=(ymid+xend-xstart);
式中,xcalc表示停止线中点的垂线横坐标;
ycalc表示停止线中点的垂线纵坐标;
根据停止线中点垂线坐标计算第一车道方位角,有:
θroad=atan 2(ycalc-ymid,xcalc-xmid);
式中,θroad表示第一车道方位角。
于本申请的一实施例中,所述方法还包括:
获取与所述停止线具有空间关联的边界线;
计算所述边界线与停止线中点垂线的距离,并通过methodposition计算出所述边界线上待判断点相对于所述停止线中点垂线的左右方向;其中,methodposition=(p,a,b):numpy.cross(p-a,b-a)<0;式中,p表示所述边界线上的待判断点,a表示所述停止线中点垂线的起点,b表示所述停止线中点垂线的终点;
对计算结果进行分组,并将分组中最小距离对应的计算结果作为道路边界。
于本申请的一实施例中,若所述车道数据包括地面标志和地面标线,则根据所述车道数据计算车道方位角的过程包括:
获取所述地面标志的方位角或所述地面标线的方位角,记为θi;
对所述地面标志的方位角和所述地面标线的方位角进行组合,形成关联语义集合;
从所述关联语义集合中选择中间角度作为第二车道方位角,记为θsematic;其中,θsematic=Mid(sort(θi)),i€(关联语义集合)。
于本申请的一实施例中,基于所述车道方位角和车道线矢量点角度,确定车道方向的过程包括:
计算所述车道线矢量点角度与所述车道方位角的角度差值,并对计算出的角度差值取绝对值,记为θabs;
判断θabs是否满足0≤θabs≤45或者315≤θabs≤360;如果θabs满足0≤θabs≤45或者315≤θabs≤360,则当前车道方向为正向;反之,当前车道方向为反向。
于本申请的一实施例中,基于所述车道方向对当前道路进行排序分组遍历前,所述方法还包括:
将所述投影点集合中的起始点作为参考线,基于导流区周边的地面标志纠正所述参考线的方向;
获取道路的左道路边界和道路的右道路边界,以及道路的左道路边界和道路的右道路边界的投影点,记为Pdivid;
对所述边界线在[Pstop,Pdivid]处进行截断处理,并对道路边界进行空间STR-Tree处理。
于本申请的一实施例中,对所述道路边界信息进行插值处理,获取车道数变化点,并基于所述车道数变化点构建第一车道组的过程:
获取通行方向的左边道路边界和右边道路边界,分别记为boundaryleft、boundaryright;
按照第一间隔对所述左边道路边界boundaryleft进行插值处理,获取左道路边界插值结果leftPtsi,其中,0≤i<divdCount,式中,divdCount表示插值总数;
通过所述左道路边界插值结果leftPtsi对所述右边道路边界boundaryright进行投影,获得右道路边界插值结果rightPtsi;
基于所述左道路边界插值结果leftPtsi和右道路边界插值结果rightPtsi构建线段,并将所构建的线段与所关联的车道进行空间查询,获得相交车道;
将所述相交车道与历史车道进行对比,并在两者车道数不相同时,获取车道数变化点,并基于所述车道数变化点构建第一车道组。
于本申请的一实施例中,根据所述第一车道组获取车道宽度变化点,并基于所述车道宽度变化点构建第二车道组的过程包括:
获取通行方向的左边车道组和右边车道组;
按照第二间隔对所述左边车道组进行插值处理,获取左边车道组插值结果;
通过所述左边车道组插值结果对所述右边车道组进行投影,获得右边车道组插值结果;
基于左边车道组插值结果和所述右边车道组插值结果构建线段,并获取所述线段宽度;
将所述线段宽度与预设车道宽度进行比对,并在所述线段宽度大于所述预设车道宽度时,获取车道宽度变化点,并基于所述车道宽度变化点构建第二车道组。
于本申请的一实施例中,利用所述第二车道组对已有车道进行分割修改的过程包括:
将所述第二车道组记为laneGroups,并根据遍历位置position对所述第二车道组laneGroups进行遍历;其中,position∈[0,len(laneGroups)-1];
若position=0,则基于分组终点splitLineend对已有车道进行切割;若position=len(laneGroups)-1,则基于分组起点线splitLinestart对已有车道进行切割;若position≠0且position≠len(laneGroups)-1,则获取车道宽度最宽的车道max(lanewidth)作为待拆分车道,并通过起始边的中点(centerstart,centerend)进行切割。
本申请还提供一种车道数据处理系统,所述系统包括有:
数据采集模块,用于获取预先生成的车道数据;
车道方向模块,用于根据所述车道数据计算车道方位角,并基于所述车道方位角和车道线矢量点角度,确定车道方向;
道路边界模块,用于根据所述车道方向对当前道路进行排序分组遍历,获取道路边界信息;
第一车道组模块,用于对所述道路边界信息进行插值处理,获取车道数变化点,并基于所述车道数变化点构建第一车道组;
第二车道组模块,用于根据所述第一车道组获取车道宽度变化点,并基于所述车道宽度变化点构建第二车道组;
车道修改合并模块,用于利用所述第二车道组对已有车道进行分割修改,并对具有相同车道数量的车道组进行合并,获取同方向的所有车道。
本申请还提供一种电子设备,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如上述中任一项所述的车道数据处理方法。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被计算机的处理器执行时,使计算机执行如上述中任一项所述的车道数据处理方法。
如上所述,本申请提供一种车道数据处理方法、系统、电子设备及存储介质,具有以下有益效果:
本申请首先获取预先生成的车道数据,然后根据车道数据计算车道方位角,并基于车道方位角和车道线矢量点角度,确定车道方向;再基于车道方向对当前道路进行排序分组遍历,获取道路边界信息;再对道路边界信息进行插值处理,获取车道数变化点,并基于车道数变化点构建第一车道组;再根据第一车道组获取车道宽度变化点,并基于车道宽度变化点构建第二车道组;最后利用第二车道组对已有车道进行分割修改,并对具有相同车道数量的车道组进行合并,获取同方向的所有车道。由此可知,本申请通过引入车道组的概念,便于车辆在变道时获取可变化区间范围点,符合实际驾驶习惯,从而可以减少自动驾驶安全隐患,使得无人驾驶车辆可以在路口、分歧、合流等多场景下构建车道,形成道路拓扑关系。并且,本申请通过引入了车道组概念,能够以车道组为云端制图的核心,方便后续建立车道拓扑。此外,本申请采用的是众包式地图数据采集方式,用户通过驾驶车辆自身的传感器,或者其他低成本的传感器硬件,收集相关数据传送到云端进行数据处理、融合,通过数据聚合的方式提高数据精度,就能够完成高精地图制作。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为应用本申请中一个或多个实施例中技术方案的示例性系统架构的示意图;
图2为本申请中一实施例提供的车道数据处理方法的流程示意图;
图3为本申请中另一实施例提供的车道数据处理方法的流程示意图;
图4为本申请中一实施例提供的车道方向计算逻辑框图;
图5为本申请中一实施例提供的构建物理切割车道组的逻辑框图;
图6为本申请中一实施例提供的构建逻辑切割车道组的逻辑框图;
图7为本申请中一实施例提供的众包地图云端制图的效果示意图;
图8为本申请中一实施例提供的车道数据处理系统的硬件结构示意图;
图9为适用于实现本申请中一个或多个实施例的电子设备的硬件结构示意图。
具体实施方式
以下将参照附图和优选实施例来说明本申请的实施方式,本领域技术人员可由本说明书中所揭露的内容轻易地了解本申请的其他优点与功效。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。应当理解,优选实施例仅为了说明本申请,而不是为了限制本申请的保护范围。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本申请的基本构想,遂图式中仅显示与本申请中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
在下文描述中,探讨了大量细节,以提供对本申请实施例的更透彻的解释,然而,对本领域技术人员来说,可以在没有这些具体细节的情况下实施本申请的实施例是显而易见的,在其他实施例中,以方框图的形式而不是以细节的形式来示出公知的结构和设备,以避免使本申请的实施例难以理解。
图1示出了一种可以应用本申请中一个或多个实施例中技术方案的示例性系统架构的示意图。如图1所示,系统架构100可以包括终端设备110、网络120和服务器130。终端设备110可以包括智能手机、平板电脑、笔记本电脑、台式电脑等各种电子设备。服务器130可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。网络120可以是能够在终端设备110和服务器130之间提供通信链路的各种连接类型的通信介质,例如可以是有线通信链路或者无线通信链路。
根据实现需要,本申请实施例中的系统架构可以具有任意数目的终端设备、网络和服务器。例如,服务器130可以是由多个服务器设备组成的服务器群组。另外,本申请实施例提供的技术方案可以应用于终端设备110,也可以应用于服务器130,或者可以由终端设备110和服务器130共同实施,本申请对此不做特殊限定。
在本申请的一个实施例中,本申请的终端设备110或服务器130可以首先获取预先生成的车道数据,然后根据车道数据计算车道方位角,并基于车道方位角和车道线矢量点角度,确定车道方向;再基于车道方向对当前道路进行排序分组遍历,获取道路边界信息;再对道路边界信息进行插值处理,获取车道数变化点,并基于车道数变化点构建第一车道组;再根据第一车道组获取车道宽度变化点,并基于车道宽度变化点构建第二车道组;最后利用第二车道组对已有车道进行分割修改,并对具有相同车道数量的车道组进行合并,获取同方向的所有车道。利用终端设备110或服务器130执行车道数据处理方法,通过引入车道组的概念,便于车辆在变道时获取可变化区间范围点,符合实际驾驶习惯,从而可以减少自动驾驶安全隐患,使得无人驾驶车辆可以在路口、分歧、合流等多场景下构建车道,形成道路拓扑关系。并且,通过引入车道组概念,能够以车道组为云端制图的核心,方便后续建立车道拓扑。此外,采用众包式地图数据采集方式,用户通过驾驶车辆自身的传感器,或者其他低成本的传感器硬件,收集相关数据传送到云端进行数据处理、融合,通过数据聚合的方式提高数据精度,就能够完成高精地图制作。
以上部分介绍了应用本申请技术方案的示例性系统架构的内容,接下来继续介绍本申请的车道数据处理方法。
图2示出了本申请一实施例提供的车道数据处理方法流程示意图。具体地,在一示例性实施例中,如图2所示,本实施例提供一种车道数据处理方法,所述方法包括以下步骤:
S210,获取预先生成的车道数据。作为示例,在本实施例中,车道数据的预先生成过程包括:获取云端地图学习处理后的对象语义数据,通过置信度对语义数据进行初步过滤,对置信度小于指定阈值的数据不作为云端制图的输入数据。通过对语义对象中的地面标线,标线颜色、类别、位置关系进行连接和纵向聚类,生成车道数据。
S220,根据所述车道数据计算车道方位角,并基于所述车道方位角和车道线矢量点角度,确定车道方向。作为示例,本实施例基于所述车道方位角和车道线矢量点角度,确定车道方向的过程包括:计算所述车道线矢量点角度与所述车道方位角的角度差值,并对计算出的角度差值取绝对值,记为θabs;判断θabs是否满足0≤θabs≤45或者315≤θabs≤360;如果θabs满足0≤θabs≤45或者315≤θabs≤360,则当前车道方向为正向;反之,当前车道方向为反向。
S230,基于所述车道方向对当前道路进行排序分组遍历,获取道路边界信息;
S240,对所述道路边界信息进行插值处理,获取车道数变化点,并基于所述车道数变化点构建第一车道组。作为示例,在本实施例中,对所述道路边界信息进行插值处理,获取车道数变化点,并基于所述车道数变化点构建第一车道组的过程:获取通行方向的左边道路边界和右边道路边界,分别记为boundaryleft、boundaryright;按照第一间隔对所述左边道路边界boundaryleft进行插值处理,获取左道路边界插值结果leftPtsi,其中,0≤i<divdCount,式中,divdCount表示插值总数;通过所述左道路边界插值结果leftPtsi对所述右边道路边界boundaryright进行投影,获得右道路边界插值结果rightPtsi;基于所述左道路边界插值结果leftPtsi和右道路边界插值结果rightPtsi构建线段,并将所构建的线段与所关联的车道进行空间查询,获得相交车道;将所述相交车道与历史车道进行对比,并在两者车道数不相同时,获取车道数变化点,并基于所述车道数变化点构建第一车道组。其中,本实施例中的第一车道组还可以被称为物理切割车道组。第一间隔可以根据实际情况进行设定,例如可以设定为1米。
S250,根据所述第一车道组获取车道宽度变化点,并基于所述车道宽度变化点构建第二车道组。作为示例,在本实施例中,根据所述第一车道组获取车道宽度变化点,并基于所述车道宽度变化点构建第二车道组的过程包括:获取通行方向的左边车道组和右边车道组;按照第二间隔对所述左边车道组进行插值处理,获取左边车道组插值结果;通过所述左边车道组插值结果对所述右边车道组进行投影,获得右边车道组插值结果;基于左边车道组插值结果和所述右边车道组插值结果构建线段,并获取所述线段宽度;将所述线段宽度与预设车道宽度进行比对,并在所述线段宽度大于所述预设车道宽度时,获取车道宽度变化点,并基于所述车道宽度变化点构建第二车道组。在本实施例中的第二车道组还可以被称为逻辑切割车道组。第二间隔可以根据实际情况进行设定,例如可以设定为1米。其中,车道宽度可以会根据实际情况进行设定,例如可以设定为3.5米。
S260,利用所述第二车道组对已有车道进行分割修改,并对具有相同车道数量的车道组进行合并,获取同方向的所有车道。作为示例,在本实施例中,利用所述第二车道组对已有车道进行分割修改的过程包括:将所述第二车道组记为laneGroups,并根据遍历位置position对所述第二车道组laneGroups进行遍历;其中,position∈[0,len(laneGroups)-1];若position=0,则基于分组终点splitLineend对已有车道进行切割;若position=len(laneGroups)-1,则基于分组起点线splitLinestart对已有车道进行切割;若position≠0且position≠len(laneGroups)-1,则获取车道宽度最宽的车道max(lanewidth)作为待拆分车道,并通过起始边的中点(centerstart,centerend)进行切割。
由此可知,本实施例通过引入车道组的概念,便于车辆在变道时获取可变化区间范围点,符合实际驾驶习惯,从而可以减少自动驾驶安全隐患,使得无人驾驶车辆可以在路口、分歧、合流等多场景下构建车道,形成道路拓扑关系。并且,本实施例通过引入了车道组概念,能够以车道组为云端制图的核心,方便后续建立车道拓扑。此外,本实施例采用的是众包式地图数据采集方式,用户通过驾驶车辆自身的传感器,或者其他低成本的传感器硬件,收集相关数据传送到云端进行数据处理、融合,通过数据聚合的方式提高数据精度,就能够完成高精地图制作。
根据上述记载,在一示例性实施例中,若所述车道数据包括斑马线,则根据所述车道数据计算车道方位角的过程包括:获取车道斑马线的起点坐标(xstart,ystart)和终边坐标(xend,yend);通过所述车道斑马线的起点坐标和所述车道斑马线的终点坐标构建一条直线,记为停止线;计算所述停止线的中点坐标,有:
式中,xmid表示所述停止线的中点横坐标,ymid表示所述停止线的中点纵坐标;
计算停止线中点的垂线坐标,有:
xcalc=(xmid-yend+ystart);
ycalc=(ymid+xend-xstart);
式中,xcalc表示停止线中点的垂线横坐标,ycalc表示停止线中点的垂线纵坐标;
根据停止线中点垂线坐标计算第一车道方位角,有:
θroad=atan2(ycalc-ymid,xcalc-xmid);
式中,θroad表示第一车道方位角。
根据上述记载,在本实施例中,当(has_side_walk or(not has_side_walk andnot has_mark and not has_long_line))符合条件时,需要将停止线的起始点反转后重新执行以上计算垂线的方法。其中,has_side_walk表示垂线是否与人行横道面相交;has_mark表示垂线设置缓冲stopLineLength/2半径,查询周边地面标志;has_long_line表示垂线设置缓冲stopLineLength/2半径,查询周边长实线。
在一示例性实施例中,所述方法还包括:获取与所述停止线具有空间关联的边界线;计算所述边界线与停止线中点垂线的距离,并通过methodposition计算出所述边界线上待判断点相对于所述停止线中点垂线的左右方向;其中,methodposition=(p,a,b):numpy.cross(p-a,b-a)<0;式中,p表示所述边界线上的待判断点,a表示所述停止线中点垂线的起点,b表示所述停止线中点垂线的终点;对计算结果进行分组,并将分组中最小距离对应的计算结果作为道路边界。
根据上述记载,在另一示例性实施例中,若所述车道数据包括地面标志和地面标线,则根据所述车道数据计算车道方位角的过程包括:获取所述地面标志的方位角或所述地面标线的方位角,记为θi;对所述地面标志的方位角和所述地面标线的方位角进行组合,形成关联语义集合;从所述关联语义集合中选择中间角度作为第二车道方位角,记为θsematic;其中,θsematic=Mid(sort(θi)),i€(关联语义集合)。
根据上述记载,在一示例性实施例中,基于所述车道方向对当前道路进行排序分组遍历前,所述方法还包括:获取斑马线与道路边界的交点,记为Pstop;以及,获取导流区投影在道路边界上的点集合m为自然数;将所述投影点集合中的起始点作为参考线,基于导流区周边的地面标志纠正所述参考线的方向;获取道路的左道路边界和道路的右道路边界,以及道路的左道路边界和道路的右道路边界的投影点,记为Pdivid;对所述边界线在[Pstop,Pdivid]处进行截断处理,并对道路边界进行空间STR-Tree处理。相当于本实施例可以对车道组进行分析预处理,将斑马线、地面标志、标线等数据进行预处理,然后再进行STRtree空间索性化,对车道边界数据在斑马线,导流区处进行拆分处理。
在本申请一示例性实施例中,如图3所示,本申请还提供一种车道数据处理方法,包括以下步骤:
S1:获取云端地图学习处理后的对象语义数据,通过置信度对语义数据进行初步过滤,对置信度小于指定阈值的数据不作为云端制图的底层数据。
S2:通过对语义对象中的地面标线,标线颜色、类别、位置关系进行连接和纵向聚类,生成车道数据Lane。
S3:以轨迹数据、斑马线、地面标志、地面标线等为控制要素,通过不同逻辑计算获得方位角,基于方位角与车道线的矢量点角度判断车道方向,并输出对应的逻辑结果数据lane_direction。如图4所示,图4为本实施例中车道方向的计算逻辑框图。车道方向分析是以车道通行方向与车道矢量方向一致为原则。车道轨迹、斑马线、地面标志、地面标线等多种情况进行了分析处理,获得车道通行方向方位角θ。然后以该车道为基准,获取车道边属性关联,以及空间相交的车道列表。遍历车道列表lanes,判断车道lanecompare的方位角是否与通行方位角θ同向,如果同向,则以lanecompare为基准进行新一轮的车道方向判断。
具体地,步骤S3中的车道方向处理流程包括:
S31:通过斑马线获取当前道路的方位角θroad,获取斑马线周边的车道边界(缓冲1m),构建道路边界集合。
①θroad计算:已知斑马线起点坐标(xstart,ystart),终边坐标(xend,yend),通过两点构建一条直线stop_line,计算通过当前直线中点的垂线stop_verctical计算公式如下:
xmid=(xstart+xend)/2;
ymid=(ystart+yend)/2;
xcalc=(xmid-yend+ystart);
ycalc=(ymid+xend-xstart);
当(has_side_walk or(nothas_side_walkandnothas_mark and nothas_long_line)),符合条件时,需要将斑马线的起始点反转后重新执行以上计算垂线的方法。其中,has_side_walk表示垂线是否与人行横道面相交;has_mark表示垂线设置缓冲stopLineLength/2半径,查询周边地面标志;has_long_line表示垂线设置缓冲stopLineLength/2半径,查询周边长实线。
θroad=atan2(ycalc-ymid,xcalc-xmid)。
②生成道路boundaryleft,boundaryright两个边界,其中道路的左右边是基于stop_verctical垂线的方向进行判断。查找stop_line周边具有空间关联的边界线boundaryi,然后分别计算出边界与stop_verctical线的距离通过methodposition计算出点在线的左右方向。最终对结果数据基于左右方向属性进行分组,获取分组中最小距离的结果作为道路边界。
methodposition=(p,a,b):numpy.cross(p-a,b-a)<0。
式中:p为判断点,a,b分别为线的起点与终点。
S32:通过地面标志,地面标线的方位角θsematic,查找当前车道是否属于现有道路集合,如果未包含,重新根据标志,标线中心线作为基准线,生成道路边界。
θsematic=Mid(sort(θi)),i€(关联语义集合)。
其中:车道包含的标志标线数据基于对应的方位角θi数据进行排序,获取得到的中间角度作为θsematic。
S33:判断道路方位角θroad,或者标志标线方位角θsematic与车道线矢量节点是否同向。赋值对应道路相关逻辑属性,非同向需要对车道线矢量数据进行逆向处理。进一步的,所述步骤S33中的同向判断过程包括:取车道边线角度与对应方位角的差取绝对值θabs,如果θabs满足0≤θabs≤45或者315≤θabs≤360,则当前车道方向为正向;反之,当前车道方向为反向。
S4:车道组分析预处理,将斑马线,地面标志,标线等数据预处理并STR-tree空间索性化,对车道边界数据在斑马线,导流区处进行拆分处理。具体地,对于车道边界预处理步骤如下:获取斑马线与边界的交点Pstop,以及导流区投影在边界上的点集合i€(投影点集合),通过投影点起始点作为参考线,基于导流区周边的地面标志纠正参考线的方向,然后通过S31步骤②的逻辑获取左右边界,记录投影点Pdivid。最后对边界线在[Pstop,Pdivid]处进行打断处理,对最终道路边界boundary进行空间STRTree处理,优化查询效率。
S5:基于S3步骤产生的lane_direction数据,通过道路Uid进行排序分组遍历,并获得对应的道路边界信息,进行下一步的分析。
S6:通过对所属道路边界进行插值处理,获取车道数变化点的,并构建物理切割车道组。如图5所示,图5为本实施例构建物理切割车道组生的逻辑框图;基于道路中的车道数变化为分组的原则,通过道路边界进行插值分析,分析是基于道路通行方向左边界为插值基准。通过插值找到道路内车道数变化的点构建物理车道组。具体地,获取通行方向左边的道路边界boundaryleft作为基础依据,对boundaryleft进行间隔1m的插值处理,并获得插值总数divdCount,获取leftPtsi,0≤i<divdCount,通过leftPtsi对boundaryright进行投影,获得rightPtsi,通过匹配左右点构建的线段与所关联的车道进行空间查询,获得相交的车道relateLanes,再将相交车道relateLanes与历史结果preLanes进行对比,如果车道个数不同,则记录该出现变化的点i为物理切割点,同时用relateLanes更新preLanes作为新的判断依据,更新迭代变量i++,重复以上的步骤,直到i不符合条件为止,对产生的physicalGroups分组对象数据进行分组边界的计算。
S7:基于S6物理切割车道组,获取车道宽度变化点,并构建logicGroups逻辑切割车道组。如图6所示,图6为本实施例构建逻辑切割车道组的逻辑框图;为了更加合理、有效、并且符合实际车辆导航行驶的要求,本实施例引入了逻辑车道组的概念。基于车道组的车道数变化分组的原则,通过对车道组所属道路边界进行插值分析,分析是基于道路通行方向左边界为插值基准。通过插值找到车道组内车道宽度变化的点构建逻辑车道组。具体地,获取通行方向左边的车道组physicalGroupleft作为基础依据,对physicalGroupleft进行间隔1m的插值处理,并获的插值总数divdCount,获取leftPtsi0≤i<divdCount,通过leftPtsi对physicalGroupright进行投影获得rightPtsi,通过匹配左右点构建的线段,并获取该线段的splitLinewidth宽度,基于车道宽度3.5m的先验条件,获取下个车道组中的车道数nextLanesNum,通过splitLinewidth/3.5==nextLanesNum为条件查找逻辑切割点ptlogic,物理车道组physicalGroup在ptlogic点进行逻辑分割生成logicGroups。
S8:基于S7生成的车道组数据对现有车道进行分割修改处理。具体地,对步骤S7结果laneGroups进行遍历,根据遍历位置position,其中,position∈[0,len(laneGroups)-1]。①position==0,基于分组终点splitLineend进行切割车道,②position==len(laneGroups)-1,基于分组起点线splitLinestart进行切割车道,③当position非起始位置时,需要同时执行①②的切割方式。同时判断车道组是否存在物理切割情况,当符合条件时,获取车道宽度最宽的车道max(lanewidth)作为待拆分车道,通过起始边的中点(centerstart,centerend)进行切割,并设置控制属性combineId。④对车道组中的车道基于车道中心线与分组laneGroupleft左边距离sort(distancecenterlinetoboundary)进行排序获得orderLanes。
S9:对具有相同数量的车道数的车道组进行合并。具体地,基于步骤S8分组中的合并字段combineId进行分组合并,其中合并包含了车道组边界的合并以及车道组内部的车道合并,车道合并需要按照orderLanes的顺序进行排序处理。
S10:设置车道组的关联关系,输出车道组数据Lane_Group。在得到车道组数据Lane_Group后,本实施例还可以根据基于车道组数据Lane_Group进行众包地图云端制图。其中,基于车道组数据Lane_Group的众包地图云端制图结果图7所示。在图7中,图6的左半部分为制图纵向聚类车道数据,图7的右半部分是通过车道组分割后车道,其中A点是车道宽度变化点,B点为车道数变化的物理切割点。
由此可知,本实施例引入了车道组LaneGroup等核心概念,其中车道组为道路中同方向的车道集合,LaneGroup是基于车道数变化为切入点(包含了分歧,合流等情况)构建分组,从而引入了物理车道组,逻辑车道组等概念,构建车道组前需要将纵向聚类的车道进行车道方向处理。
综上所述,本方法提供一种车道数据处理方法,首先获取预先生成的车道数据,然后根据车道数据计算车道方位角,并基于车道方位角和车道线矢量点角度,确定车道方向;再基于车道方向对当前道路进行排序分组遍历,获取道路边界信息;再对道路边界信息进行插值处理,获取车道数变化点,并基于车道数变化点构建第一车道组;再根据第一车道组获取车道宽度变化点,并基于车道宽度变化点构建第二车道组;最后利用第二车道组对已有车道进行分割修改,并对具有相同车道数量的车道组进行合并,获取同方向的所有车道。由此可知,本方法通过引入车道组的概念,便于车辆在变道时获取可变化区间范围点,符合实际驾驶习惯,从而可以减少自动驾驶安全隐患,使得无人驾驶车辆可以在路口、分歧、合流等多场景下构建车道,形成道路拓扑关系。并且,本方法通过引入了车道组概念,能够以车道组为云端制图的核心,方便后续建立车道拓扑。此外,本方法采用的是众包式地图数据采集方式,用户通过驾驶车辆自身的传感器,或者其他低成本的传感器硬件,收集相关数据传送到云端进行数据处理、融合,通过数据聚合的方式提高数据精度,就能够完成高精地图制作。
如图8所示,本申请还提供一种车道数据处理系统,所述系统包括有:
数据采集模块810,用于获取预先生成的车道数据。作为示例,在本实施例中,车道数据的预先生成过程包括:获取云端地图学习处理后的对象语义数据,通过置信度对语义数据进行初步过滤,对置信度小于指定阈值的数据不作为云端制图的输入数据。通过对语义对象中的地面标线,标线颜色、类别、位置关系进行连接和纵向聚类,生成车道数据。
车道方向模块820,用于根据所述车道数据计算车道方位角,并基于所述车道方位角和车道线矢量点角度,确定车道方向。作为示例,本实施例基于所述车道方位角和车道线矢量点角度,确定车道方向的过程包括:计算所述车道线矢量点角度与所述车道方位角的角度差值,并对计算出的角度差值取绝对值,记为θabs;判断θabs是否满足0≤θabs≤45或者315≤θabs≤360;如果θabs满足0≤θabs≤45或者315≤θabs≤360,则当前车道方向为正向;反之,当前车道方向为反向。
道路边界模块830,用于根据所述车道方向对当前道路进行排序分组遍历,获取道路边界信息;
第一车道组模块840,用于对所述道路边界信息进行插值处理,获取车道数变化点,并基于所述车道数变化点构建第一车道组。作为示例,在本实施例中,对所述道路边界信息进行插值处理,获取车道数变化点,并基于所述车道数变化点构建第一车道组的过程:获取通行方向的左边道路边界和右边道路边界,分别记为boundaryleft、boundaryright;按照第一间隔对所述左边道路边界boundaryleft进行插值处理,获取左道路边界插值结果leftPtsi,其中,0≤i<divdCount,式中,divdCount表示插值总数;通过所述左道路边界插值结果leftPtsi对所述右边道路边界boundaryright进行投影,获得右道路边界插值结果rightPtsi;基于所述左道路边界插值结果leftPtsi和右道路边界插值结果rightPtsi构建线段,并将所构建的线段与所关联的车道进行空间查询,获得相交车道;将所述相交车道与历史车道进行对比,并在两者车道数不相同时,获取车道数变化点,并基于所述车道数变化点构建第一车道组。其中,本实施例中的第一车道组还可以被称为物理切割车道组。第一间隔可以根据实际情况进行设定,例如可以设定为1米。
第二车道组模块850,用于根据所述第一车道组获取车道宽度变化点,并基于所述车道宽度变化点构建第二车道组。作为示例,在本实施例中,根据所述第一车道组获取车道宽度变化点,并基于所述车道宽度变化点构建第二车道组的过程包括:获取通行方向的左边车道组和右边车道组;按照第二间隔对所述左边车道组进行插值处理,获取左边车道组插值结果;通过所述左边车道组插值结果对所述右边车道组进行投影,获得右边车道组插值结果;基于左边车道组插值结果和所述右边车道组插值结果构建线段,并获取所述线段宽度;将所述线段宽度与预设车道宽度进行比对,并在所述线段宽度大于所述预设车道宽度时,获取车道宽度变化点,并基于所述车道宽度变化点构建第二车道组。在本实施例中的第二车道组还可以被称为逻辑切割车道组。第二间隔可以根据实际情况进行设定,例如可以设定为1米。其中,车道宽度可以会根据实际情况进行设定,例如可以设定为3.5米。
车道修改合并模块860,用于利用所述第二车道组对已有车道进行分割修改,并对具有相同车道数量的车道组进行合并,获取同方向的所有车道。作为示例,在本实施例中,利用所述第二车道组对已有车道进行分割修改的过程包括:将所述第二车道组记为laneGroups,并根据遍历位置position对所述第二车道组laneGroups进行遍历;其中,position∈[0,len(laneGroups)-1];若position=0,则基于分组终点splitLineend对已有车道进行切割;若position=len(laneGroups)-1,则基于分组起点线splitLinestart对已有车道进行切割;若position≠0且position≠len(laneGroups)-1,则获取车道宽度最宽的车道max(lanewidth)作为待拆分车道,并通过起始边的中点(centerstart,centerend)进行切割。
由此可知,本实施例通过引入车道组的概念,便于车辆在变道时获取可变化区间范围点,符合实际驾驶习惯,从而可以减少自动驾驶安全隐患,使得无人驾驶车辆可以在路口、分歧、合流等多场景下构建车道,形成道路拓扑关系。并且,本实施例通过引入了车道组概念,能够以车道组为云端制图的核心,方便后续建立车道拓扑。此外,本实施例采用的是众包式地图数据采集方式,用户通过驾驶车辆自身的传感器,或者其他低成本的传感器硬件,收集相关数据传送到云端进行数据处理、融合,通过数据聚合的方式提高数据精度,就能够完成高精地图制作。
根据上述记载,在一示例性实施例中,若所述车道数据包括斑马线,则根据所述车道数据计算车道方位角的过程包括:获取车道斑马线的起点坐标(xstart,ystart)和终边坐标(xend,yend);通过所述车道斑马线的起点坐标和所述车道斑马线的终点坐标构建一条直线,记为停止线;计算所述停止线的中点坐标,有:
式中,xmid表示所述停止线的中点横坐标,ymid表示所述停止线的中点纵坐标;
计算停止线中点的垂线坐标,有:
xcalc=(xmid-yend+ystart);
ycalc=(ymid+xend-xstart);
式中,xcalc表示停止线中点的垂线横坐标,ycalc表示停止线中点的垂线纵坐标;
根据停止线中点垂线坐标计算第一车道方位角,有:
θroad=atan 2(ycalc-ymid,xcalc-xmid);
式中,θroad表示第一车道方位角。
根据上述记载,在本实施例中,当(has_side_walk or(not has_side_walk andnot has_mark and not has_long_line))符合条件时,需要将停止线的起始点反转后重新执行以上计算垂线的方法。其中,has_side_walk表示垂线是否与人行横道面相交;has_mark表示垂线设置缓冲stopLineLength/2半径,查询周边地面标志;has_long_line表示垂线设置缓冲stopLineLength/2半径,查询周边长实线。
在一示例性实施例中,所述系统还包括:获取与所述停止线具有空间关联的边界线;计算所述边界线与停止线中点垂线的距离,并通过methodposition计算出所述边界线上待判断点相对于所述停止线中点垂线的左右方向;其中,methodposition=(p,a,b):numpy.cross(p-a,b-a)<0;式中,p表示所述边界线上的待判断点,a表示所述停止线中点垂线的起点,b表示所述停止线中点垂线的终点;对计算结果进行分组,并将分组中最小距离对应的计算结果作为道路边界。
根据上述记载,在另一示例性实施例中,若所述车道数据包括地面标志和地面标线,则根据所述车道数据计算车道方位角的过程包括:获取所述地面标志的方位角或所述地面标线的方位角,记为θi;对所述地面标志的方位角和所述地面标线的方位角进行组合,形成关联语义集合;从所述关联语义集合中选择中间角度作为第二车道方位角,记为θsematic;其中,θsematic=Mid(sort(θi)),i€(关联语义集合)。
根据上述记载,在一示例性实施例中,基于所述车道方向对当前道路进行排序分组遍历前,所述系统还包括:获取斑马线与道路边界的交点,记为Pstop;以及,获取导流区投影在道路边界上的点集合m为自然数;将所述投影点集合中的起始点作为参考线,基于导流区周边的地面标志纠正所述参考线的方向;获取道路的左道路边界和道路的右道路边界,以及道路的左道路边界和道路的右道路边界的投影点,记为Pdivid;对所述边界线在[Pstop,Pdivid]处进行截断处理,并对道路边界进行空间STR-Tree处理。相当于本实施例可以对车道组进行分析预处理,将斑马线、地面标志、标线等数据进行预处理,然后再进行STRtree空间索性化,对车道边界数据在斑马线,导流区处进行拆分处理。
综上所述,本申请提供一种车道数据处理系统,首先获取预先生成的车道数据,然后根据车道数据计算车道方位角,并基于车道方位角和车道线矢量点角度,确定车道方向;再基于车道方向对当前道路进行排序分组遍历,获取道路边界信息;再对道路边界信息进行插值处理,获取车道数变化点,并基于车道数变化点构建第一车道组;再根据第一车道组获取车道宽度变化点,并基于车道宽度变化点构建第二车道组;最后利用第二车道组对已有车道进行分割修改,并对具有相同车道数量的车道组进行合并,获取同方向的所有车道。由此可知,本系统通过引入车道组的概念,便于车辆在变道时获取可变化区间范围点,符合实际驾驶习惯,从而可以减少自动驾驶安全隐患,使得无人驾驶车辆可以在路口、分歧、合流等多场景下构建车道,形成道路拓扑关系。并且,本系统通过引入了车道组概念,能够以车道组为云端制图的核心,方便后续建立车道拓扑。此外,本系统采用的是众包式地图数据采集方式,用户通过驾驶车辆自身的传感器,或者其他低成本的传感器硬件,收集相关数据传送到云端进行数据处理、融合,通过数据聚合的方式提高数据精度,就能够完成高精地图制作。
需要说明的是,上述实施例所提供车道数据处理系统与上述实施例所提供的车道数据处理方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。上述实施例所提供的车道数据处理系统在实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能,本处也不对此进行限制。
本申请的实施例还提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现上述各个实施例中提供的车道数据处理方法。
图9示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。需要说明的是,图9示出的电子设备的计算机系统1000仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图9所示,计算机系统1000包括中央处理单元(Central Processing Unit,CPU)1001,其可以根据存储在只读存储器(Read-Only Memory,ROM)1002中的程序或者从储存部分1008加载到随机访问存储器(Random Access Memory,RAM)1003中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在RAM1003中,还存储有系统操作所需的各种程序和数据。CPU 1001、ROM 1002以及RAM1003通过总线1004彼此相连。输入/输出(Input/Output,I/O)接口1005也连接至总线1004。
以下部件连接至I/O接口1005:包括键盘、鼠标等的输入部分1006;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1007;包括硬盘等的储存部分1008;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至I/O接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入储存部分1008。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分1009从网络上被下载和安装,和/或从可拆卸介质1011被安装。在该计算机程序被中央处理单元(CPU)1001执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
本申请的另一方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机的处理器执行时,使计算机执行如前所述的车道数据处理方法。该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的,也可以是单独存在,而未装配入该电子设备中。
本申请的另一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中提供的车道数据处理方法。
上述实施例仅示例性说明本申请的原理及其功效,而非用于限制本申请。任何熟悉此技术的人士皆可在不违背本申请的精神及范畴下,对上述实施例进行修饰或改变。因此,但凡所属技术领域中具有通常知识者在未脱离本申请所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本申请的权利要求所涵盖。
Claims (12)
1.一种车道数据处理方法,其特征在于,所述方法包括以下步骤:
获取预先生成的车道数据;
根据所述车道数据计算车道方位角,并基于所述车道方位角和车道线矢量点角度,确定车道方向;
基于所述车道方向对当前道路进行排序分组遍历,获取道路边界信息;
对所述道路边界信息进行插值处理,获取车道数变化点,并基于所述车道数变化点构建第一车道组;
根据所述第一车道组获取车道宽度变化点,并基于所述车道宽度变化点构建第二车道组;
利用所述第二车道组对已有车道进行分割修改,并对具有相同车道数量的车道组进行合并,获取同方向的所有车道。
2.根据权利要求1所述的车道数据处理方法,其特征在于,若所述车道数据包括斑马线,则根据所述车道数据计算车道方位角的过程包括:
获取车道斑马线的起点坐标(xstart,ystart)和终边坐标(xend,yend);
通过所述车道斑马线的起点坐标和所述车道斑马线的终点坐标构建一条直线,记为停止线;
计算所述停止线的中点坐标,有:
式中,xmid表示所述停止线的中点横坐标;
ymid表示所述停止线的中点纵坐标;
计算停止线中点的垂线坐标,有:
xcalc=(xmid-yend+ystart);
ycalc=(ymid+xend-xstart);
式中,xcalc表示停止线中点的垂线横坐标;
ycalc表示停止线中点的垂线纵坐标;
根据停止线中点垂线坐标计算第一车道方位角,有:
θroad=atan2(ycalc-ymid,xcalc-xmid);
式中,θroad表示第一车道方位角。
3.根据权利要求2所述的车道数据处理方法,其特征在于,所述方法还包括:
获取与所述停止线具有空间关联的边界线;
计算所述边界线与停止线中点垂线的距离,并通过methodposition计算出所述边界线上待判断点相对于所述停止线中点垂线的左右方向;其中,methodposition=(p,a,b):numpy.cross(p-a,b-a)<0;式中,p表示所述边界线上的待判断点,a表示所述停止线中点垂线的起点,b表示所述停止线中点垂线的终点;
对计算结果进行分组,并将分组中最小距离对应的计算结果作为道路边界。
4.根据权利要求1所述的车道数据处理方法,其特征在于,若所述车道数据包括地面标志和地面标线,则根据所述车道数据计算车道方位角的过程包括:
获取所述地面标志的方位角或所述地面标线的方位角,记为θi;
对所述地面标志的方位角和所述地面标线的方位角进行组合,形成关联语义集合;
从所述关联语义集合中选择中间角度作为第二车道方位角,记为θsematic;其中,θsematic=Mid(sort(θi)),i€(关联语义集合)。
5.根据权利要求1至4中任一所述的车道数据处理方法,其特征在于,基于所述车道方位角和车道线矢量点角度,确定车道方向的过程包括:
计算所述车道线矢量点角度与所述车道方位角的角度差值,并对计算出的角度差值取绝对值,记为θabs;
判断θabs是否满足0≤θabs≤45或者315≤θabs≤360;如果θabs满足0≤θabs≤45或者315≤θabs≤360,则当前车道方向为正向;反之,当前车道方向为反向。
7.根据权利要求6所述的车道数据处理方法,其特征在于,对所述道路边界信息进行插值处理,获取车道数变化点,并基于所述车道数变化点构建第一车道组的过程:
获取通行方向的左边道路边界和右边道路边界,分别记为boundaryleft、boundaryright;
按照第一间隔对所述左边道路边界boundaryleft进行插值处理,获取左道路边界插值结果leftPtsi,其中,0≤i<divdCount,式中,divdCount表示插值总数;
通过所述左道路边界插值结果leftPtsi对所述右边道路边界boundaryright进行投影,获得右道路边界插值结果rightPtsi;
基于所述左道路边界插值结果leftPtsi和右道路边界插值结果rightPtsi构建线段,并将所构建的线段与所关联的车道进行空间查询,获得相交车道;
将所述相交车道与历史车道进行对比,并在两者车道数不相同时,获取车道数变化点,并基于所述车道数变化点构建第一车道组。
8.根据权利要求7所述的车道数据处理方法,其特征在于,根据所述第一车道组获取车道宽度变化点,并基于所述车道宽度变化点构建第二车道组的过程包括:
获取通行方向的左边车道组和右边车道组;
按照第二间隔对所述左边车道组进行插值处理,获取左边车道组插值结果;
通过所述左边车道组插值结果对所述右边车道组进行投影,获得右边车道组插值结果;
基于左边车道组插值结果和所述右边车道组插值结果构建线段,并获取所述线段宽度;
将所述线段宽度与预设车道宽度进行比对,并在所述线段宽度大于所述预设车道宽度时,获取车道宽度变化点,并基于所述车道宽度变化点构建第二车道组。
9.根据权利要求8所述的车道数据处理方法,其特征在于,利用所述第二车道组对已有车道进行分割修改的过程包括:
将所述第二车道组记为laneGroups,并根据遍历位置position对所述第二车道组laneGroups进行遍历;其中,position∈[0,len(laneGroups)-1];
若position=0,则基于分组终点splitLineend对已有车道进行切割;若position=len(laneGroups)-1,则基于分组起点线splitLinestart对已有车道进行切割;若position≠0且position≠len(laneGroups)-1,则获取车道宽度最宽的车道max(lanewidth)作为待拆分车道,并通过起始边的中点(centerstart,centerend)进行切割。
10.一种车道数据处理系统,其特征在于,所述系统包括有:
数据采集模块,用于获取预先生成的车道数据;
车道方向模块,用于根据所述车道数据计算车道方位角,并基于所述车道方位角和车道线矢量点角度,确定车道方向;
道路边界模块,用于根据所述车道方向对当前道路进行排序分组遍历,获取道路边界信息;
第一车道组模块,用于对所述道路边界信息进行插值处理,获取车道数变化点,并基于所述车道数变化点构建第一车道组;
第二车道组模块,用于根据所述第一车道组获取车道宽度变化点,并基于所述车道宽度变化点构建第二车道组;
车道修改合并模块,用于利用所述第二车道组对已有车道进行分割修改,并对具有相同车道数量的车道组进行合并,获取同方向的所有车道。
11.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如权利要求1至9中任一项所述的车道数据处理方法。
12.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,当所述计算机程序被计算机的处理器执行时,使计算机执行如权利要求1至9中任一项所述的车道数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211280471.3A CN115631476A (zh) | 2022-10-19 | 2022-10-19 | 一种车道数据处理方法、系统、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211280471.3A CN115631476A (zh) | 2022-10-19 | 2022-10-19 | 一种车道数据处理方法、系统、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115631476A true CN115631476A (zh) | 2023-01-20 |
Family
ID=84906700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211280471.3A Pending CN115631476A (zh) | 2022-10-19 | 2022-10-19 | 一种车道数据处理方法、系统、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115631476A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117456496A (zh) * | 2023-12-25 | 2024-01-26 | 合众新能源汽车股份有限公司 | 地图车道边界线的处理方法和系统 |
-
2022
- 2022-10-19 CN CN202211280471.3A patent/CN115631476A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117456496A (zh) * | 2023-12-25 | 2024-01-26 | 合众新能源汽车股份有限公司 | 地图车道边界线的处理方法和系统 |
CN117456496B (zh) * | 2023-12-25 | 2024-03-22 | 合众新能源汽车股份有限公司 | 地图车道边界线的处理方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102210715B1 (ko) | 도로 중의 차도선을 확정하기 위한 방법, 장치 및 기기 | |
JP2019135544A (ja) | 電子地図における交差点を認識するための方法及び装置 | |
CN108961758B (zh) | 一种基于梯度提升决策树的路口展宽车道探测方法 | |
CN113682318B (zh) | 车辆行驶控制方法及装置 | |
CN110389995B (zh) | 车道信息检测方法、装置、设备和介质 | |
US10030982B2 (en) | Generalising topographical map data | |
CN110749329A (zh) | 一种基于结构化道路的车道级拓扑构建方法及装置 | |
CN112344947A (zh) | 地图匹配方法、装置、电子设备和计算机可读存储介质 | |
KR20220137035A (ko) | 지도에서의 내비게이션 요소 구축 방법 및 장치 | |
CN114332291A (zh) | 一种倾斜摄影模型建筑物外轮廓规则提取方法 | |
CN116518960B (zh) | 路网更新方法、装置、电子设备和存储介质 | |
CN115631476A (zh) | 一种车道数据处理方法、系统、电子设备及存储介质 | |
CN113899384A (zh) | 车道级道路的路口面显示方法、装置、设备、介质及程序 | |
CN114018239A (zh) | 一种三维车道地图构建方法、装置、设备及存储介质 | |
CN112912894B (zh) | 道路边界识别方法和装置 | |
CN112435336B (zh) | 一种弯道类型识别方法、装置、电子设备及存储介质 | |
CN111782739A (zh) | 地图更新方法及装置 | |
CN116721229B (zh) | 地图中道路隔离带的生成方法、装置、设备及存储介质 | |
CN114777799B (zh) | 一种路口高精地图生成方法、装置、电子设备及存储介质 | |
CN116089557A (zh) | 数据处理方法、装置及存储介质 | |
CN112700464B (zh) | 地图信息的处理方法、装置、电子设备以及存储介质 | |
CN115525943A (zh) | 基于车线拓扑关系构建三维道路模型的方法及系统 | |
CN115435800A (zh) | 基于高精度地图的路径规划方法、装置、设备及介质 | |
CN115238525B (zh) | 一种用于行人仿真客流组织的可行路径搜索方法 | |
CN115683143A (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 |