CN117237892A - 点云地图车道线提取方法、装置、计算机设备和存储介质 - Google Patents

点云地图车道线提取方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN117237892A
CN117237892A CN202311153389.9A CN202311153389A CN117237892A CN 117237892 A CN117237892 A CN 117237892A CN 202311153389 A CN202311153389 A CN 202311153389A CN 117237892 A CN117237892 A CN 117237892A
Authority
CN
China
Prior art keywords
line
lane
point
point cloud
lane line
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
Application number
CN202311153389.9A
Other languages
English (en)
Inventor
蔡香玉
周江涛
鱼苗苗
甄明
温四林
季博文
林茜
龚小鹏
胡帅朋
崔登吉
陈胤子
张振林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Automotive Innovation Co Ltd
Original Assignee
China Automotive Innovation Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Automotive Innovation Co Ltd filed Critical China Automotive Innovation Co Ltd
Priority to CN202311153389.9A priority Critical patent/CN117237892A/zh
Publication of CN117237892A publication Critical patent/CN117237892A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Image Analysis (AREA)

Abstract

本申请涉及一种点云地图车道线提取方法、装置、计算机设备和存储介质。所述方法包括:将点云地图划分为至少两个子点云地图,并对各子点云地图包含的点云数据进行车道线识别,得到各子点云地图对应的实线区域和虚线区域;根据各子点云地图中实线区域的区域属性、虚线区域的区域属性,以及各子点云地图中的行驶轨迹点的轨迹属性,确定各子点云地图的实线车道线的线段属性和虚线车道线的线段属性;根据各子点云地图的实线车道线的线段属性和虚线车道线的线段属性,以及点云地图中的行驶轨迹点的轨迹属性,对各子点云地图的实线车道线和虚线车道线进行拓扑连接,得到点云地图的目标车道线的线段属性。采用本方法能够使得确定出的目标车道线更加准确。

Description

点云地图车道线提取方法、装置、计算机设备和存储介质
技术领域
本申请涉及自动驾驶技术领域,特别是涉及一种点云地图车道线提取方法、装置、计算机设备和存储介质。
背景技术
近年来,随着智能驾驶技术的快速发展,高精地图成了智能驾驶技术的重要组成部分。而高精地图中的车道线通常是将车道线在点云地图中的位置映射得到高精地图得到,因此,如何在点云地图中精准提取车道线位置是绘制高精地图的关键环节。
目前,从点云地图中提取车道线采用的方式,通常是识别点云地图中的车道线点云,然后对所有的车道线点云进行简单的拟合处理,即可完成对目标车道线的提取,但由于在实际使用中,车道线的形状存在多样性,如果仅基于简单的拟合操作会导致车道线数据缺失,进而导致目标车道线的提取不准确的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够准确提取车道线的点云地图车道线提取方法、装置、计算机设备和存储介质。
第一方面,本申请提供了一种点云地图车道线提取方法。所述方法包括:
将点云地图划分为至少两个子点云地图,并对各子点云地图包含的点云数据进行车道线识别,得到各子点云地图对应的实线区域和虚线区域;
根据各子点云地图中实线区域的区域属性、虚线区域的区域属性,以及各子点云地图中的行驶轨迹点的轨迹属性,确定各子点云地图的实线车道线的线段属性和虚线车道线的线段属性;
根据各子点云地图的实线车道线的线段属性和虚线车道线的线段属性,以及点云地图中的行驶轨迹点的轨迹属性,对各子点云地图的实线车道线和虚线车道线进行拓扑连接,得到点云地图的目标车道线的线段属性;目标车道线的线段属性用于表征目标车道线在点云地图中的位置。
第二方面,本申请还提供了一种点云地图车道线提取装置。所述装置包括:
区域确定模块,用于将点云地图划分为至少两个子点云地图,并对各子点云地图包含的点云数据进行车道线识别,得到各子点云地图对应的实线区域和虚线区域;
属性确定模块,用于根据各子点云地图中实线区域的区域属性、虚线区域的区域属性,以及各子点云地图中的行驶轨迹点的轨迹属性,确定各子点云地图的实线车道线的线段属性和虚线车道线的线段属性;
目标确定模块,用于根据各子点云地图的实线车道线的线段属性和虚线车道线的线段属性,以及点云地图中的行驶轨迹点的轨迹属性,对各子点云地图的实线车道线和虚线车道线进行拓扑连接,得到点云地图的目标车道线的线段属性;目标车道线的线段属性用于表征目标车道线在点云地图中的位置。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
将点云地图划分为至少两个子点云地图,并对各子点云地图包含的点云数据进行车道线识别,得到各子点云地图对应的实线区域和虚线区域;
根据各子点云地图中实线区域的区域属性、虚线区域的区域属性,以及各子点云地图中的行驶轨迹点的轨迹属性,确定各子点云地图的实线车道线的线段属性和虚线车道线的线段属性;
根据各子点云地图的实线车道线的线段属性和虚线车道线的线段属性,以及点云地图中的行驶轨迹点的轨迹属性,对各子点云地图的实线车道线和虚线车道线进行拓扑连接,得到点云地图的目标车道线的线段属性;目标车道线的线段属性用于表征目标车道线在点云地图中的位置。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
将点云地图划分为至少两个子点云地图,并对各子点云地图包含的点云数据进行车道线识别,得到各子点云地图对应的实线区域和虚线区域;
根据各子点云地图中实线区域的区域属性、虚线区域的区域属性,以及各子点云地图中的行驶轨迹点的轨迹属性,确定各子点云地图的实线车道线的线段属性和虚线车道线的线段属性;
根据各子点云地图的实线车道线的线段属性和虚线车道线的线段属性,以及点云地图中的行驶轨迹点的轨迹属性,对各子点云地图的实线车道线和虚线车道线进行拓扑连接,得到点云地图的目标车道线的线段属性;目标车道线的线段属性用于表征目标车道线在点云地图中的位置。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
将点云地图划分为至少两个子点云地图,并对各子点云地图包含的点云数据进行车道线识别,得到各子点云地图对应的实线区域和虚线区域;
根据各子点云地图中实线区域的区域属性、虚线区域的区域属性,以及各子点云地图中的行驶轨迹点的轨迹属性,确定各子点云地图的实线车道线的线段属性和虚线车道线的线段属性;
根据各子点云地图的实线车道线的线段属性和虚线车道线的线段属性,以及点云地图中的行驶轨迹点的轨迹属性,对各子点云地图的实线车道线和虚线车道线进行拓扑连接,得到点云地图的目标车道线的线段属性;目标车道线的线段属性用于表征目标车道线在点云地图中的位置。
上述点云地图车道线提取方法、装置、计算机设备和存储介质,将整体的点云地图划分为多个子点云地图,并对每一子点云地图进行车道线识别,能够更加准确且全面的识别出各车道线上的实线区域和虚线区域,再根据实线区域、虚线区域以及各子点云地图中的行驶轨迹点的轨迹属性,确定实线车道线和虚线车道线,最后根据确定出的实线车道线和虚线车道线,以及轨迹属性,对实线车道线和虚线车道线进行拓扑连接,得到目标车道线的线段属性。根据轨迹属性能够确定出各实线车道线和虚线车道线的拓扑连接,进而能够精准确定出目标车道线中实线车道线和虚线车道线的连接顺序。本方案在提取车道线的过程中,对点云地图进行分区,且区分了实线车道线和虚线车道线,并考虑了两者之间的拓扑关系,相比于现有技术直接对点云地图中的各车道线点云进行简单的拟合操作,本方法能够准确构建出较为复杂的车道线,如由实线与虚线共同构成的一条车道线,从而使得确定出的目标车道线更加准确。
附图说明
图1为本实施例提供的一种点云地图车道线提取方法的应用环境图;
图2为本实施例提供的第一种点云地图车道线提取方法的流程示意图;
图3为本实施例提供的一种车道线图像与备选连通区域示意图;
图4为本实施例提供的一种备选连通区域示意图与最小外包框示意图;
图5为本实施例提供的一种车道线拓扑连接示意图;
图6为本实施例提供的一种确定虚线车道线线段属性的流程示意图;
图7为本实施例提供的一种虚线区域示意图和虚线车道线示意图;
图8为本实施例提供的一种更新虚线车道线点集的流程示意图;
图9为本实施例提供的一种确定实线车道线线段属性的流程示意图;
图10为本实施例提供的一种实线区域示意图;
图11为本实施例提供的一种更新实线车道线点集的流程示意图;
图12为本实施例提供的第一种点云地图车道线提取装置的结构框图;
图13为本实施例提供的第二种点云地图车道线提取装置的结构框图;
图14为本实施例提供的第三种点云地图车道线提取装置的结构框图;
图15为本实施例提供的第四种点云地图车道线提取装置的结构框图;
图16为本实施例提供的一种计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的点云地图车道线提取方法,可以应用于如图1所示的应用环境中。其中,导航卫星系统101用于实时采集车辆的行驶轨迹点,同时,导航卫星系统101可以与服务器100进行通信连接,将导航卫星系统101获取到的各子点云地图中的行驶轨迹点发送至服务器100中。摄像机102可以与服务器100进行通信连接,雷达103也可以与服务器100进行通信连接,服务器100根据摄像机102采集到的图像数据与雷达103采集到的点云数据确定得到点云地图。在确定得到点云地图之后,服务器100还可以将点云地图划分为至少两个子点云地图,并对各子点云地图包含的点云数据进行车道线识别,得到各子点云地图对应的实线区域和虚线区域;根据各子点云地图中实线区域的区域属性、虚线区域的区域属性,以及各子点云地图中的行驶轨迹点的轨迹属性,确定各子点云地图的实线车道线的线段属性和虚线车道线的线段属性;根据各子点云地图的实线车道线的线段属性和虚线车道线的线段属性,以及点云地图中的行驶轨迹点的轨迹属性,对各子点云地图的实线车道线和虚线车道线进行拓扑连接,得到点云地图的目标车道线的线段属性。在得到点云地图的目标车道线的线段属性之后,可以基于目标车道线的线段属性定位目标车道线在点云地图中的位置,进而将该位置映射到高精地图中,从而实现为高精度中构建车道线。服务器100可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种点云地图车道线提取方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
S201,将点云地图划分为至少两个子点云地图,并对各子点云地图包含的点云数据进行车道线识别,得到各子点云地图对应的实线区域和虚线区域。
其中,点云地图可以是基于激光雷达采集的点云数据构成地图。该点云地图中包含的各点云可以包括激光雷达采集环境中的所有点云,例如,包括表征车道线的点云(即车道线点云),还包括道路上的车辆、交通指示灯、路标等道路原始的点云。子点云地图可以是对整个点云地图进行区域划分后得到的若干子点云地图,例如,可以是根据点云数据的采集时间,将采集时间位于一定范围内的点云数据在整个点云地图中对应的区域划分成一个子点云地图。另一种划分方式可以是基于行驶轨迹点对点云地图进行划分,具体的,将采集时间位于一定范围内的行驶轨迹点聚为一类,针对每一类的行驶轨迹点,将其在整个点云地图中对应的区域划分成一个子点云地图。由于行驶轨迹点会表征其前进方向,所以该方式确定出的子点云地图能够体现车道线的前进方向,为后续确定子点云地图中各车道线的起始点,以及辅助确定构成车道线的候选点位置等提供便捷。点云数据可以是基于雷达采集到的包含三维坐标信息和光强信息的数据。实线区域可以是子点云地图中实线车道线所对应的车道线区域。虚线区域可以是子点云地图中虚线车道线所对应的车道线区域。
可选地,针对每一子点云地图,对该子点云地图包含的点云数据进行车道线识别,得到该子点云地图对应的车道线图像;对车道线图像进行连通域提取,得到至少两个备选连通区域;根据各备选连通区域的区域属性,从各备选连通区域中,确定实线区域和虚线区域。
其中,车道线图像可以是将子点云地图中的车道线区域映射到与点云地图对应的栅格图像后得到的图像。需要说明的是,车道线图像的构建过程,在后续实施例进行详细介绍。连通域可以是车道线图像中相同像素值的相邻像素组成的集合。备选连通区域可以是车道线图像中,所有表征车道线(包括实线车道线和虚线车道线)的连通域。需要说明的是,针对每一条车道线(包括实线车道线和虚线车道线),都对应一个备选连通域。区域属性可以包括区域长度、区域宽度、区域栅格个数、中心点位置和区域端点位置等。需要说明的是,区域属性中区域端点位置的确定方式可以是,基于确定出的各备选连通域的最小外包框,将该最小外包框的两个短边中点分别作为该备选连通域的两个区域端点位置。
具体的,针对每一子点云数据,对该子点云地图包含的点云数据进行车道线识别(即识别每一点云数据的语义特征),得到表征车道线的点云数据。从所有表征车道线的点云数据中分别查找出四个边缘点云数据(即横坐标最小的点云数据、横坐标最大的点云数据、纵坐标最小的点云数据和纵坐标最大的点云数据),根据该边缘点云数据和预设边缘缓冲阈值ETS(ETS>0,如0.5米),计算得到图像边缘坐标(即图像横坐标最小值、图像横坐标最大值、图像纵坐标最小值和图像纵坐标最大值)。根据图像边缘坐标与预设栅格距离r(r>0,如0.03米),确定表征车道线的点云数据对应栅格图像(即此时的栅格图像是空白图像),并将每一表征车道线的点云数据的二维坐标均投射到栅格图像中的相应栅格中,并对各栅格进行灰度赋值处理(如空白栅格的灰度值为0,包含二维坐标的栅格的灰度值为225),得到包含表征车道线的点云数据二维坐标的栅格图像,并将该栅格图像作为车道线图像(即该子点云地图对应的栅格图像)。
针对车道线图像中像素值相同且位置相邻的栅格进行闭运算处理(即连通域提取),得到包含若干个像素值相同且位置相邻的栅格对应二维坐标的集合(即连通域),并将每一集合在车道线图像中对应的区域作为一个备选连通区域。示例性的,如图3所示,左侧图(1)中的黑色点表征车道线图像中车道线对应的点云数据,右侧图(2)中黑色粗线条表征备选连通区域。从图中明看出存在部分点云数据是密集分布且相邻的,如图(1)中虚线标注出的区域,针对此部分点云数据,可以通过闭运算获取得到如图(2)中虚线标注出的黑色实心区域,即连通域,从而进一步将该连通域作为此部分点云数据对应的备选连通区域。
针对每一备选连通区域,确定该备选连通区域对应的最小外包框,并将该最小外包框的长度作为该备选连通区域对应的区域长度,将该最小外包框的宽度作为该备选连通区域对应的区域宽度,同时,获取该备选连通区域包含的区域栅格个数,将该区域长度、区域宽度以及区域栅格个数均作为该备选连通区域对应的区域属性,根据各备选连通区域的区域属性,从各备选连通区域中,确定实线区域和虚线区域。具体的,若备选连通区域的区域栅格个数满足实线个数要求,且区域长度和区域宽度满足实线长度要求,则确定备选连通区域为实线区域;若备选连通区域的区域栅格个数满足虚线个数要求,且区域长度和区域宽度满足虚线长度要求,则确定备选连通区域为虚线区域。
其中,实线个数要求为区域栅格大于第一数量阈值Ath1(如1500像素),且小于栅格占比阈值rA;栅格占比阈值根据区域栅格个数和预先设置的实线区域占比确定;虚线个数要求为区域栅格大于第二数量阈值Ath2(如600像素),且小于或等于第三数量阈值Ath3(如5000像素);第三数量阈值大于第一数量阈值,第一数量阈值大于第二数量阈值;实线长度要求为区域长度和区域宽度中,一方大于第一长度阈值Lth1(如3像素),另一方大于第二长度阈值Lth2(如250像素);虚线长度要求为区域长度和区域宽度均小于第三长度阈值Lth3(如300像素);第一长度阈值小于第三长度阈值;第三长度阈值小于第二长度阈值。
具体的,根据备选连通区域的区域栅格个数、区域长度、区域宽度实线长度要求和虚线个数要求,可以通过如下实线区域判断公式(1-1)和虚线区域判断公式(1-2)来确定备选连通区域属于实线区域还是虚线区域。
其中,PixelN表示备选连通区域的区域栅格个数,Ath1表示第一数量阈值,PixelA表示车道线图像中所有栅格的数量,rA表示栅格占比阈值,Rh表示备选连通区域的区域长度,Rw表示备选连通区域的区域宽度,Lth1表示第一长度阈值,Lth3表示第三长度阈值。
其中,PixelN表示备选连通区域的区域栅格个数,Ath2表示第二数量阈值,Ath3表示第三数量阈值,Rh表示备选连通区域的区域长度,Rw表示备选连通区域的区域宽度,Lth2表示第二长度阈值。
需要说明的是,由于车道线图像中每一栅格均可代表一个像素点,因此,获取备选连通域的区域栅格个数,即是获取了该备选连通域的像素值。
需要说明的是,上述实施例中根据该边缘点云数据和预设边缘缓冲阈值,计算得到图像边缘数据的具体实现方式,可以如下公式(1-3)所示。
其中,Xmin表征点云数据的最小横坐标,Xmax表征点云数据的最大横坐标,Ymin表征点云数据的最小横坐标,Ymax表征点云数据的最大纵坐标,ETS表征预设边缘缓冲阈值,Xmint表征图像横坐标最小值,Xmaxt表征图像横坐标最大值,Ymint表征图像纵坐标最小值,Ymaxt表征图像纵坐标最大值。
需要说明的是,上述实施例中根据图像边缘数据与预设栅格距离,确定表征车道线的点云数据对应栅格图像的具体实现方式可以是,根据图像边缘数据与预设栅格距离,通过如下公式(1-4),计算得到栅格图像的图像长度和图像宽度,根据所述图像长度和图像宽度进一步得到表征车道线的点云数据对应栅格图像。
其中,W表征栅格图像的图像长度,H表征栅格图像的图像宽度,Xmint表征图像横坐标最小值,Xmaxt表征图像横坐标最大值,Ymint表征图像纵坐标最小值,Ymaxt表征图像纵坐标最大值,r表征预设栅格距离。
需要说明的是,由于在基于雷达采集点云数据时存在随机性,因此,点云数据对应的二维坐标中可能会有小数的存在,所以会进一步导致图像横纵坐标值中也会小数的存在,而为了便于计算,本申请在计算得到小数结果后,应当通过取整处理(即去除小数部分再加1)将计算得到的小数结果变换成为整数结果,以便于后续计算。
需要说明的是,将每一表征车道线的点云数据的二维坐标均投射到栅格图像中的相应栅格的具体实现方式可以是,根据各表征车道线的点云数据的坐标值、点云数据的最小横坐标、点云数据的最小横坐标与预设栅格距离,通过如下公式(1-5),确定出各点云数据在栅格图像中的栅格坐标,并根据该栅格坐标从栅格图像中找到该栅格坐标对应的栅格,将该栅格坐标对应的点云数据的二维坐标添加到该栅格中,完成点云数据的二维坐标投射。
其中,Px表征点云数据对应栅格坐标的横坐标,Py表征点云数据对应栅格坐标的纵坐标,x表征点云数据的横坐标,y表征点云数据的纵坐标,Xmint表征图像横坐标最小值,Ymint表征图像纵坐标最小值,r表征预设栅格距离。
需要说明的是,由于点云数据对应的二维坐标和图像横纵坐标中均可能存在小数,所以为了便于计算,本申请在计算得到小数结果后,应当通过取整处理(即去除小数部分再加1)将计算得到的小数结果变换成为整数结果,以便于后续计算。
需要说明的是,栅格的灰度值通常用于表征该栅格对应的颜色,如当某一栅格的灰度值为0时,栅格可以用黑色来表示,当某一栅格的灰度值为225时,栅格可以用白色来表示。这样的设置的作用在于可以更加精准的向用户展示出车道线对应的栅格分布情况等。
可选地,备选连通区域对应的最小外包框的确定方式可以是,确定该备选连通区域对应的边缘栅格(即横坐标最小的栅格、横坐标最大的栅格、纵坐标最小的栅格和纵坐标最大的栅格),根据边缘栅格中的二维坐标值,确定最小横坐标与最大横坐标之间的差值,作为最小外包框的长度;确定最小纵坐标与最大纵坐标之间的差值,作为最小外包框的宽度,根据最小外包框的长度和宽度,确定得到备选连通区域对应的最小外包框。也可以是确定该备选连通区域对应的边缘栅格,根据横坐标最小的栅格与横坐标最大的栅格,确定水平方向上,横坐标最小的栅格与横坐标最大的栅格之间的区域栅格个数作为最小外包框的长度;根据纵坐标最小的栅格与纵坐标最大的栅格,确定垂直方向上,纵坐标最小的栅格与纵坐标最大的栅格之间的区域栅格个数作为最小外包框的宽度;根据最小外包框的长度和宽度,确定得到备选连通区域对应的最小外包框。示例性的,如图4所示,左侧图(1)中的每一黑色实心区域即是一个备选连通区域,而右侧图(2)中,每一黑色实心区域(即备选连通区域)外均存在一个方框,该方框即是该备选连通区域的最小外包框。
S202,根据各子点云地图中实线区域的区域属性、虚线区域的区域属性,以及各子点云地图中的行驶轨迹点的轨迹属性,确定各子点云地图的实线车道线的线段属性和虚线车道线的线段属性。
其中,轨迹属性可以包括轨迹采集时间和轨迹点位置。可选地,各子点云地图中的行驶轨迹点的轨迹属性可以用二叉树(K-dimension tree,K-D树)的方式来表征。具体的,根据各子点云地图中的行驶轨迹点的轨迹属性构建二叉树的实现方式可以是,针对每一子点云地图,确定该子点云地图对应的所有行驶轨迹点的轨迹采集时间和轨迹点位置,从该子点云地图对应的所有行驶轨迹点中查找出最大轨迹采集时间和最小轨迹采集时间,并筛选出轨迹采集时间介于该最大轨迹采集时间和最小轨迹采集时间的行驶轨迹点,基于筛选出的行驶轨迹点按照时间递增的排列顺序对行驶轨迹点进行排序,最终基于排序完成的行驶轨迹点构建二叉树。此种方式的优势在于,可以筛选掉轨迹属性不完整的行驶轨迹点,同时,通过二叉树结构展示子点云地图中的行驶轨迹点的轨迹属性,可以加快用户对某一行驶轨迹点的相邻行驶轨迹点的搜索效率。需要说明的是,本申请中行车轨迹点主要作用在于约束车道线的前进方向,通常用于确定子点云地图中各车道线的起始点,以及用于辅助确定构成车道线的候选点位置等。
其中,线段属性可以包括线段端点位置和线段宽度(即车道线宽度)。
可选地,根据各子点云地图中虚线区域的区域属性,以及各子点云地图中的行驶轨迹点的轨迹属性,确定各子点云地图的虚线车道线的线段属性;根据各子点云地图中实线区域的区域属性,以及各子点云地图中的行驶轨迹点的轨迹属性,确定各子点云地图的实线车道线的线段属性。
具体的,确定虚线车道线的线段属性的方式可以是根据各子点云地图中的行驶轨迹点的轨迹属性,从虚线区域的各点云数据中查找到虚线车道线的首个车道线点,并将首个车道线点对应的虚线区域的另一个区域端点作为该虚线车道线的第二个车道线点,根据虚线车道线上当前已确定完成的最后两个车道线点之间的位置关系,以及最后一个车道线与其他区域端点之间的位置关系,同时结合最后一个车道点最近的轨迹点及其上一轨迹点之间的位置关系,从其他区域端点中选择属于虚线车道线的点,即确定虚线车道线上最后一个车道轨迹点的后续车道轨迹点,通过循环上述操作,从得到虚线车道线上的所有车道线点,进而根据虚线车道线上的所有车道线点,确定虚拟车道线的线段属性。其中,其他虚线区域端点位置为各虚线区域的区域端点位置中除已作为车道线点位置之外的其他区域端点位置。
确定虚线车道线的线段属性的方式可以与上述确定虚线车道线的线段属性的方式类似,区别仅在于每次循环确定的虚线车道线点的数量为一个或多个,而针对实线车道线确定时,每次循环只保留第一个确定的车道线点。此外最终虚线车道线的线段属性中可能包含多组线段端点位置,而确定出的实线车道线的线段属性中仅包含一组线段端点位置。其中,每组线段端点位置包括线段的左右两个端点的位置。
需要说明的是,确定各子点云地图的虚线车道线的线段属性和实线车道线的线段属性的具体实现方式,将在后续实施例中进行详细阐述,本申请在此不做赘述。
S203,根据各子点云地图的实线车道线的线段属性和虚线车道线的线段属性,以及点云地图中的行驶轨迹点的轨迹属性,对各子点云地图的实线车道线和虚线车道线进行拓扑连接,得到点云地图的目标车道线的线段属性。
其中,目标车道线的线段属性用于表征目标车道线在点云地图中的位置和宽度,以及线段虚实属性。可选地,该线段属性中还可以包括目标车道线的色彩值。
可选地,根据各子点云地图的实线车道线的线段属性和虚线车道线的线段属性,以及点云地图中的行驶轨迹点的轨迹属性,确定各子点云地图的实线车道线和虚线车道线的拓扑连接关系;将具有拓扑关联关系的实线车道线和/或虚线车道线作为点云地图的一条目标车道线,并根据构成目标车道线的实线车道线和/或虚线车道线的线段属性,确定目标车道线的线段属性。
具体的,针对每一虚线车道线,根据该虚线车道线的线段属性,选取出该虚线车道线的第一个车道线点与最后一个车道线点,并基于该第一个车道线点的位置与最后一个车道线点的位置构成该虚线车道线的连接端点位置。根据各子点云地图的实线车道线的线段端点位置和虚线车道线的连接端点位置,以及点云地图中的行驶轨迹点的轨迹属性,确定各子点云地图的实线车道线和虚线车道线的拓扑连接关系;同时,将具有拓扑关联关系的实线车道线和/或虚线车道线作为点云地图的一条目标车道线。
情况一、针对由多条实线车道线(或虚线车道线)相连接构成的目标车道线,本申请可以直接将该多条实线车道线的线段端点位置(或该多条虚线车道线的线段端点位置)作为目标车道线的线段端点位置,并根据实线车道线(或虚线车道线)的线段宽度,确定目标车道线的线段宽度;也可以选取该目标车道线的第一个车道线点与最后一个车道线点,并将这两个车道线点的位置作为该目标车道线的线段端点位置,同时根据实线车道线(或虚线车道线)的线段宽度,确定目标车道线的线段宽度。
情况二、针对由实线车道线与虚线车道线相连接构成的目标车道线,本申请可以直接将各实线车道线与虚线车道线的线段端点位置作为目标车道线的线段端点位置,并根据实线车道线和虚线车道线的线段宽度,确定目标车道线的线段宽度;也可以针对目标车道线中多条实线车道线(或虚线车道线)连接构成的部分,选取出这部分中第一车道线点与最后一个车道线点,并将这两个车道线点的位置作为该部分的实线端点位置(或虚线端点位置),将确定出的各实线端点位置和虚线端点位置作为该目标车道线的线段端点位置,同时根据实线车道线和虚线车道线的线段宽度,确定目标车道线的线段宽度。
示例性的,如图5所示,图中由上到下排序的第一条线为由多条实线车道线构成的目标车道线,上述情况一对应图5中的第一条线和第二条线,在第一条线中,各个大圆圈为各实线车道线的线段端点位置,各个小圆圈表征的线条即是实线车道线,其中,最左侧和最右侧的大圆圈标注出的小圆圈即是该目标车道线的线段端点位置;第二条线为由多条虚线车道线构成的目标车道线,在第二条线中,由两个小圆圈与一条虚线段构成的线条即是一条虚线车道线,其中,方框标注出的即是该目标车道线对应的线段端点位置;上述情况二对应图5中的第三条线,第三条线为由实线车道线和虚线车道线构成的目标车道线,在第三条线中,由两个小圆圈与一条虚线段构成的线条即是一条虚线车道线,各没有虚线段连接的小圆圈构成的线条即是实线车道线,其中,标注“1”与标注“2”的两个小圆圈,即是该目标车道线中第一个虚线车道线的线段端点位置,标注“3”与标注“4”的两个小圆圈,即是该目标车道线中实线车道线的线段端点位置,标注“5”与标注“6”的两个小圆圈,即是该目标车道线中第二个虚线车道线的线段端点位置。
可选地,根据实线车道线和/或虚线车道线的线段宽度,确定目标车道线的线段宽度的方式可以是,根据各实线车道线和/或虚线车道线的线段宽度进行均值处理,得到线段宽度均值结果,并将该线段宽度均值结果作为目标车道线的线段宽度。也可以是选取出目标车道线中第一个车道点对应的线段宽度作为目标车道线的线段宽度。
需要说明的是,上述内容介绍了确定目标车道线的线段属性中的线段端点位置和宽度的方式,对于线段属性中的线段虚实属性,其确定方式可以是:当目标车道线基于多条实线车道线构成时,该目标车道线的线段虚实属性可以为实线;当目标车道线基于多条虚线车道线构成时,该目标车道线的线段虚实属性可以为虚线;当目标车道线基于实线车道线和虚线车道线共同构成时,该目标车道线的由实线车道线构成的部分车道线的线段虚实属性为实线,由虚线车道线构成的部分车道线的线段虚实属性为虚线。对于线段属性中色彩值的确定,将在后续实施例中进行详细介绍。
上述点云地图车道线提取方法,将整体的点云地图划分为多个子点云地图,并对每一子点云地图中进行车道线识别,能够更加准确且全面的识别出各车道线上的实线区域和虚线区域,在根据实线区域、虚线区域以及各子点云地图中的行驶轨迹点的轨迹属性,确定实线车道线和虚线车道线,最后根据确定出的实线车道线和虚线车道线,以及轨迹属性,对实线车道线和虚线车道线进行拓扑连接,得到目标车道线的线段属性。根据轨迹属性能够确定出各实线车道线和虚线车道线的拓扑连接,进而能够精准确定出目标车道线中实线车道线和虚线车道线的连接顺序。本方案在提取车道线的过程中,对点云地图进行分区,且区分了实线车道线和虚线车道线,并考虑了两者之间的拓扑关系,相比于现有技术直接对点云地图中的各车道线点云进行简单的拟合操作,本方法能够准确构建出较为复杂的车道线,如由实线与虚线共同构成的一条车道线,从而使得确定出的目标车道线更加准确。
可选地,为了保证构建出的高精地图的准确性,在构建高精地图所需车道线的过程中,既需要点云数据的二维坐标信息,也需要点云数据的高度坐标信息,因此,本实例需要同时获取点云数据的二维坐标信息和高度信息,具体的,本实施例可以根据各子点云地图包含的点云数据,确定各子点云地图的高程信息;根据高程信息,为点云地图的目标车道线的线段属性中的线段端点位置添加高度信息。
其中,高程信息可以是包含子点云地图中各车道线点云的高度信息的矩阵信息。
可选地,由于子点云地图是构建车道线图像与高程信息的基础,所以,每一子点云地图对应的车道线图像中栅格的个数即是高程信息中元素的个数,且车道线图像中表征车道线的栅格位置与高程信息中表征车道线的元素位置相同,也就是说,车道线图像的图像长度对应的栅格个数即是高程信息的列的个数,车道线图像的图像宽度对应的栅格个数即是高程信息的行的个数,确定出各点云数据在高程信息中的元素坐标(即行的位置表征该高程坐标的x值,列的位置表征该高程坐标的y值),并根据该元素坐标从高程信息中找到该元素坐标对应的元素,将该元素坐标对应的点云数据的高度坐标添加到该元素中(即,元素值由0更新为高度坐标),完成点云数据的高度坐标投射。
在得到高程信息和目标车道线之后,本实施例还可以,针对每一子点云地图的各目标车道线,确定该目标车道线的线段端点位置在车道线图像中的车道线图像栅格位置,并根据该车道线图像栅格位置,从高程信息中查找出与该车道线图像栅格位置的位置相同的高程信息元素位置,根据该高程信息元素中记录的高度信息,将该高度信息添加到车道线图像中相应的栅格中,此时车道线图像中的车道线位置即为融合后的三维坐标(即完成了为线段端点位置添加高度信息),最终以三维坐标的形式存储在相应栅格中。
需要说明的是,由于在构建车道线图像之前,为了防止子点云地图中车道线对应的点云数据较少,所以,可以先对子点云地图中车道线对应的点云数据进行膨胀处理(即使得车道线对应的点云数据增多),并基于膨胀处理后的车道线点云数据构建车道线图像。但此时,车道线图像中的表征车道线的栅格与高程信息中表征车道线的元素并不是一一对应的关系,因此,针对从高程信息中相应位置找不到高度坐标的车道线点云数据,可以选择与该相应位置最近的高度坐标,作为与该车道线点云数据对应的高度坐标。
可选地,由于在获取车道线的点云数据过程中,激光雷达除了可以采集得到车道线的每一点云数据对应的三维坐标外,还可以获取得到每一点云数据对应的色彩信息,因此,本实施例还可以基于激光雷达采集到的每一点云数据对应的色彩信息辅助构建高精地图中的车道线,具体的,本实施例可以根据各子点云地图包含的点云数据,确定各子点云地图的色彩图像;根据色彩图像,为点云地图的目标车道线的线段属性中的线段端点位置添加色彩信息。
其中,色彩图像可以是包含子点云地图中各车道线点云的色彩信息的图像。
可选地,根据各子点云地图包含的点云数据,确定各子点云地图的色彩图像的方式与上述实施例中确定车道线图像的方式类似,区别仅在于,投射到每一栅格中的是表征车道线的点云数据的色彩信息(如色彩值,即RGB值),即将每一表征车道线的点云数据的色彩值均投射到栅格图像中的相应栅格中。
可选地,由于车道线图像与色彩图像的构建方式相似,也就是说,每一子点云地图对应的车道线图像与色彩图像的图像大小相同,且各表征车道线的栅格位置也相同,因此,针对每一子点云地图的各目标车道线,确定该目标车道线的线段端点位置在车道线图像中的车道线图像栅格位置,并根据该车道线图像栅格位置,从色彩图像中查找出与该车道线图像栅格位置的栅格位置相同的色彩图像栅格位置,根据该色彩图像栅格中记录的色彩信息,将该色彩图像添加到车道线图像中相应的栅格中,此时,车道线图像中的车道线即是融合有色彩值的车道线。
需要说明的是,由于在实际应用过程中,车道线的颜色通常是统一的,所以,若将构成目标车道线的各车道线的车道线点对应的色彩值作为该目标车道线的色彩值,会出现目标车道线的各车道线点对应色彩值不统一的情况,因此,针对由多条车道线构成的目标车道线,本实施例可以根据各车道线车道线点对应的色彩值确定目标车道线的色彩值,具体的,若构成目标车道线的各车道线的车道线点对应的色彩值相同,则,可以直接将该色彩值作为该目标车道线的色彩值;若构成目标车道线的各车道线的车道线点对应的色彩值不同,则,可以选取出占比较大的色彩值作为该目标车道线的色彩值,也可以使用预设色彩值作为该目标车道线的色彩值,还可以计算各色彩值之间的均值,并将该均值作为该目标车道线的色彩值。
可选的,本申请在确定出目标车道线的线段属性之后,可以通过json格式,存储各目标车道线的线段端点位置(即三维坐标位置)、线段虚实属性(即表征目标车道线由虚线还是实线构成)、目标车道线的线段宽度和色彩值,相应的,后续当用户存在高精地图使用需求时,本申请可以快速调用出各目标车道线的线段端点位置、线段虚实属性,以及各车道线的线段宽度和色彩值,来精准的在高精地图中构建车道线。进一步的,为了保证后续更为精准的在高精地图中构建车道线,还可以在上述基础上将构成目标车道线的各车道线的车道线点(即后续实施例中虚线车道线点集和实线车道线点集中的车道线点)一并关联存储,本方式与仅存储线段端点的方式相比,能够更真实的还原出车道线的原始走向。
这样设置的优势在于,本申请在基于各目标车道线的线段端点位置(即三维坐标位置)以及线段宽度,构建高精地图中的车道线过程中,还可以基于存储的色彩值赋予车道线颜色,以进一步完整高精地图中车道线的构建。同时,本方式对目标车道线中各线段端点对应的色彩值进行处理,使得目标车道线的颜色统一。
图6为一个实施例中确定虚线车道线线段属性的流程示意图。为了更加准确的确定出虚线车道线的线段属性,具体的,本实施例给出了一种确定虚线车道线线段属性的可选方式,包括如下步骤:
S601,针对每一子点云地图,根据该子点云地图中的行驶轨迹点的轨迹属性,从各虚线区域的区域端点位置中,确定本轮次的虚线车道线的首个车道点位置和第二个车道点位置,并将首个车道点位置和第二个车道点位置依次添加到本轮次的虚线车道线的虚线车道线点集中。
其中,虚线车道线点集可以是用于存储构成虚线车道线的所有车道点的集合。
可选地,根据该子点云地图中的行驶轨迹点的轨迹采集时间,确定行驶轨迹点中的首个轨迹点;根据首个轨迹点的轨迹点位置与该子点云地图中各虚线区域的区域端点位置之间的距离,从各虚线区域中选择目标区域;将目标区域的区域端点位置,作为本轮次的虚线车道线的首个车道点位置和第二个车道点位置。
具体的,从该子点云地图中的行驶轨迹点中,选取采集时间最早的行驶轨迹点作为首个轨迹点,确定该首个轨迹点的轨迹点位置与该子点云地图中各虚线区域的区域端点位置之间的距离,将确定出的各距离中,最小距离对应虚线区域作为目标区域,将该目标区域中的端点位置作为本轮次的虚线车道线的首个车道点位置和第二个车道点位置(即将距离首个轨迹点最近的端点位置作为首个车道点位置,将距离首个轨迹点较远的端点位置作为第二个车道点位置)。
S602,根据虚线车道线点集中最后两个车道线点位置、其他虚线区域端点位置和行驶轨迹点的轨迹属性,对本轮次的虚线车道线的虚线车道线点集进行更新。
可选地,根据虚线车道线点集中最后两个车道线点位置,以及最后一个车道线与其他区域端点之间的位置关系,同时结合最后一个车道点最近的行驶轨迹点及其上一轨迹点之间的位置关系,从其他区域端点中选择属于虚线车道线的点,即确定虚线车道线上最后一个车道轨迹点的后续车道轨迹点,并将该后续车道轨迹点添加到本轮次的虚线车道线的虚线车道线点集中,对本轮次的虚线车道线的虚线车道线点集进行更新。
需要说明的是,根据虚线车道线点集中最后两个车道线点位置、其他虚线区域端点位置和行驶轨迹点的轨迹属性,对本轮次的虚线车道线的虚线车道线点集进行更新的具体实现方式,将在后续实施例中进行详细阐述,本申请在此不做赘述。
S603,在本轮次的虚线车道线的虚线车道线点集更新完成后,更新其他虚线区域端点位置,并根据更新后的其他虚线区域端点位置和行驶轨迹点的轨迹属性,确定下一轮次的虚线车道线的首个车道点位置和第二个车道点位置,并返回执行将首个车道点位置和第二个车道点位置依次添加到本轮次的虚线车道线的虚线车道线点集中的操作,直到更新后的其他虚线区域端点位置为空为止。
可选地,在本轮次的虚线车道线的虚线车道线点集更新完成后,从其他虚线区域端点位置中删除本次添加进虚线车道线点集的端点位置,并根据更新后的其他虚线区域端点位置和行驶轨迹点的轨迹属性,确定下一轮次的虚线车道线的首个车道点位置和第二个车道点位置,并返回执行将首个车道点位置和第二个车道点位置依次添加到本轮次的虚线车道线的虚线车道线点集中的操作,直到更新后的其他虚线区域端点位置为空为止。
具体的,根据更新后的其他虚线区域端点位置和行驶轨迹点的轨迹属性,确定下一轮次的虚线车道线的首个车道点位置和第二个车道点位置的方式可以是,根据首个轨迹点的轨迹点位置与该子点云地图中更新后的虚线区域的区域端点位置之间的距离,将确定出的各距离中,最小距离对应虚线区域作为目标区域,将该目标区域中的端点位置作为本轮次的虚线车道线的首个车道点位置和第二个车道点位置。
S604,根据各轮次确定的虚线车道线的虚线车道线点集,以及虚线车道线对应的各虚线区域的区域宽度,确定各轮次确定的虚线车道线的线段属性。
可选地,根据各轮次确定的虚线车道线的虚线车道线点集,将该虚线车道线点集中的第一个车道线位置与最后一个车道线点位置作为该虚线车道线的线段端点位置,同时根据该虚线车道线对应的各虚线区域的区域宽度,确定各轮次确定的虚线车道线的线段宽度。
具体的,根据该虚线车道线对应的各虚线区域的区域宽度,确定各轮次确定的虚线车道线的线段宽度的可选方式,可以是将该第一个虚线区域的区域宽度作为该虚线车道线的线段宽度,也可以是计算各虚线区域的区域宽度之间的均值,并将确定得到的均值结果作为该虚线车道线的线段宽度。
需要说明的是,如图7所示的虚线区域示意图和虚线车道线示意图,左侧图中由圆圈与实线连接的线条即是“S1”、“S2”和“S3”分别对应的虚线区域,其中,圆圈表征该虚线区域的端点位置。右侧图(2)中由圆圈与虚线构成的三条线(即1’,2’和3’对应的线条),即是虚线车道线1。
上述确定虚线车道线线段属性方法,根据子点云地图中的轨迹属性,从各虚线区域的区域端点位置中,确定本轮次的虚线车道线的首个车道点位置和第二个车道点位置,再根据虚线车道线点集中最后两个车道线点位置、其他虚线区域端点位置和行驶轨迹点的轨迹属性,对本轮次的虚线车道线点集进行更新,并在完成虚线车道线点集完成更新后,从其他虚线区域端点位置删除本轮次添加到虚线车道线点集中的端点位置,再次确定下一轮次的虚线车道线的首个车道点位置和第二个车道点位置,返回执行更新本轮次虚线车道线点集的操作,并最终确定各轮次确定的虚线车道线的线段属性。本方式通过多轮次循环对车道线点集进行更新,能够更加准确且精准的将各虚线区域端点位置确定出该端点位置所属的虚线车道线,从而进一步得到更为精准的虚线车道线的线段属性。
图8为一个实施例中更新虚线车道线点集的流程示意图。为了更加准确的确定出所属虚线车道线点集中各车道线点,本实施例给出了一种更新虚线车道线点集的可选方式,包括如下步骤:
S801,将虚线车道线点集中的最后一个车道线点位置作为虚线当前点位置,并从其他虚线区域端点位置中,选择与虚线当前点位置距离满足距离要求的虚线候选点位置。
可选地,将虚线车道线点集中的最后一个车道线点位置作为虚线当前点位置,确定该虚线当前点位置与其他虚线区域端点位置之间的距离,是否存在满足距离要求的其他虚线区域端点位置,若存在,则将该其他虚线区域端点位置作为虚线候选点位置。
S802,判断是否存在第一虚线前进方向角与第二虚线前进方向角的差值小于第一方向角阈值的第一情况。
其中,第一虚线前进方向角为虚线当前点位置与虚线当前点位置在虚线车道线集合中对应的上一车道线点位置之间的前进方向角;第二虚线前进方向角为虚线候选点位置与虚线当前点位置之间的前进方向角。
可选地,对虚线当前点位置,以及虚线当前点位置在虚线车道线集合中对应的上一车道线点位置,进行向量处理,构成第一虚线前进方向角;对虚线候选点位置与虚线当前点位置进行向量处理,构成第二虚线前进方向角;判断是否存在第一虚线前进方向角与第二虚线前进方向角的差值小于第一方向角阈值(如5°)的第一情况。
S803,若存在第一情况,则将第一情况下第二虚线前进方向角对应的虚线候选点位置,确定新增虚线车道点位置。
可选地,若第一虚线前进方向角与第二虚线前进方向角的差值小于第一方向角阈值的情况,则证明虚线候选点位置与虚线当前点位置近乎属于一条实线,因此,将满足第一情况的第二虚线前进方向角对应的虚线候选点位置,确定新增虚线车道点位置。
S804,若不存在第一情况,则根据行驶轨迹点的轨迹属性中的轨迹点位置,从行驶轨迹点中选择距离虚线当前点位置最近的轨迹点。
可选地,若不存在第一情况,则证明其他虚线区域中可能不存在与虚线当前点位置同属于一条车道的车道线点位置了,因此,可以进一步根据行驶轨迹点的轨迹属性中的轨迹点位置,从行驶轨迹点中选择预设个数(如5)个距离虚线当前点位置最近的轨迹点(即最近轨迹点)。
S805,判断是否存在第二虚线前进方向角与第三虚线前进方向角的差值小于第一方向角阈值的第二情况。
其中,第三虚线前进方向角为最近轨迹点,与最近轨迹点的下一轨迹点之间的前进方向角。
可选地,确定最近轨迹点,以及该最近轨迹点的下一轨迹点之间的前进方向角,作为第三虚线前进方向角,同时判断是否存在第二虚线前进方向角与第三虚线前进方向角的差值小于第一方向角阈值的第二情况。
S806,若存在第二情况,则将第二情况下第二虚线前进方向角对应的虚线候选点位置,确定新增虚线车道点位置。
可选地,若存在第二虚线前进方向角与第三虚线前进方向角的差值小于第一方向角阈值的第二情况,则将满足该第二情况的第二虚线前进方向角对应的虚线候选点位置,作为新增虚线车道点位置。
S807,根据新增虚线车道点位置,对当前虚线车道线的虚线车道线点集进行更新。
可选地,可以是将步骤S803和步骤S806确定的新增虚线车道点位置依次添加到当前虚线车道线的虚线车道线点集中,以完成对当前虚线车道线的虚线车道线点集的更新。
可选的,为了保证虚线车道线点集中包含的虚线车道点位置的全面性,本步骤还可以是将新增虚线车道点位置添加到当前虚线车道线的虚线车道线点集中;若当前虚线车道线的虚线车道线点集中包含的车道线点位置的数量为单数,则将虚线车道线点集中最后一个车道线位置的对应端点位置,添加到虚线车道线点集中。
其中,对应端点位置为最后一个车道线位置对应的虚线区域的区域端点位置中,除最后一个车道线位置之外的另一个区域端点位置。
具体的,将新增虚线车道点位置添加到当前虚线车道线的虚线车道线点集中,判断添加新增虚线车道点位置后的虚线车道线点集中包含的车道线点位置的数量是否为单数,若为单数,则将本次添加到虚线车道线点集中的最后一个车道线位置的对应端点位置,也添加到该虚线车道线点集中,从而完成本轮次的虚线车道线的虚线车道线点集的更新。若为双数,则此时即完成本轮次的虚线车道线的虚线车道线点集的更新。
S808,若不存在第二情况,则确定本轮次的虚线车道线的虚线车道线点集更新完成。
可选地,若不存在第二情况,则确定本轮次的虚线车道线的虚线车道线点集更新完成,同时,本实施例还可以将最小的第三虚线前进方向角对应的虚线候选点位置,作为下一轮次的新的虚线车道线点集中的第一个车道线点位置。
上述更新虚线车道线点集方法,通过第一虚线前进方向角、第二虚线前进方向角与第一方向角阈值,判断虚线候选点位置是否属于本轮次的虚线车道线点集,当第一虚线前进方向角与第二虚线前进方向角之间的差值不满足第一方向角阈值时,进一步通过第三虚线前进方向角、第二虚线前进方向角与第一方向角阈值,判断当前虚线车道线点集中的车道线点是否完全找齐;当第三虚线前进方向角与第二虚线前进方向角之间的差值满足第一方向角阈值时,则证明虚线候选点属于本轮次的虚线车道线点集,将虚线候选点作为新增虚线车道点位置,对虚线车道线点集进行更新,通过各前进方向角(即第一虚线前进方向角、第二虚线前进方向角与第三虚线前进方向角)之间的差值,以及第一方向角阈值,能够准确判断出是否存在新增虚线车道点位置,若存在,基于新增虚线车道点位置对虚线车道线点集进行更新,反之,则证明当前的虚线车道线点集中的虚线车道点已全部找齐,可以开启新的虚线车道线的确定,该方式可实现精准且全面的找到属性各条虚拟车道线的所有车道线点。
图9为一个实施例中确定实线车道线线段属性的流程示意图。为了更加准确的确定出实线车道线的线段属性,本实施例给出了一种确定实线车道线线段属性的可选方式,包括如下步骤:
S901,针对每一子点云地图,根据该子点云地图中的行驶轨迹点的轨迹属性,从各实线区域的区域端点位置中,确定本轮次的实线车道线的首个车道点位置和第二个车道点位置,并将首个车道点位置和第二个车道点位置依次添加到本轮次的实线车道线的实线车道线点集中。
其中,实线车道线点集可以是用于存储构成实线车道线的所有车道点的集合。
可选地,本实施例中针对每一子点云地图,根据该子点云地图中的行驶轨迹点的轨迹属性,从各实线区域的区域端点位置中,确定本轮次的实线车道线的首个车道点位置和第二个车道点位置,并将首个车道点位置和第二个车道点位置依次添加到本轮次的实线车道线的实线车道线点集中的具体实现方式,与上述实施例中针对每一子点云地图,根据该子点云地图中的行驶轨迹点的轨迹属性,从各虚线区域的区域端点位置中,确定本轮次的虚线车道线的首个车道点位置和第二个车道点位置,并将首个车道点位置和第二个车道点位置依次添加到本轮次的虚线车道线的虚线车道线点集中的具体实现方式相似,本申请在此不做赘述。
S902,根据实线车道线点集中最后两个车道线点位置、其他实线区域端点位置和行驶轨迹点的轨迹属性,对本轮次的实线车道线的实线车道线点集进行更新。
其中,其他实线区域端点位置为各实线区域的区域端点位置中除已作为车道线点位置之外的其他区域端点位置。
可选地,本实施例中根据实线车道线点集中最后两个车道线点位置、其他实线区域端点位置和行驶轨迹点的轨迹属性,对本轮次的实线车道线的实线车道线点集进行更新的具体实现方式,与上述实施例中根据虚线车道线点集中最后两个车道线点位置、其他虚线区域端点位置和行驶轨迹点的轨迹属性,对本轮次的虚线车道线的虚线车道线点集进行更新的实现方式相似,区别在于当前轮次确定出的虚线车道线点的数量为一个或多个,而针对实线车道线确定时,当前轮次只保留第一个确定出的车道线点。此外当前轮次更新后的虚线车道线的线段属性中可能包含多组线段端点位置,而当前轮次更新后的实线车道线的线段属性中仅包含一组线段端点位置。
S903,在本轮次的实线车道线的实线车道线点集更新完成后,根据本轮次的实线车道线的实线车道线点集,更新其他实线区域端点位置,并根据更新后的其他实线区域端点位置和行驶轨迹点的轨迹属性,确定下一轮次的实线车道线的首个车道点位置和第二个车道点位置,并返回执行将首个车道点位置和第二个车道点位置依次添加到本轮次的实线车道线的实线车道线点集中的操作,直到更新后的其他实线区域端点位置为空。
可选地,本实施例中,在本轮次的实线车道线的实线车道线点集更新完成后,根据本轮次的实线车道线的实线车道线点集,更新其他实线区域端点位置,并根据更新后的其他实线区域端点位置和行驶轨迹点的轨迹属性,确定下一轮次的实线车道线的首个车道点位置和第二个车道点位置,并返回执行将首个车道点位置和第二个车道点位置依次添加到本轮次的实线车道线的实线车道线点集中的操作,直到更新后的其他实线区域端点位置为空的具体实现方式,与上述实施例中,在本轮次的虚线车道线的虚线车道线点集更新完成后,更新其他虚线区域端点位置,并根据更新后的其他虚线区域端点位置和行驶轨迹点的轨迹属性,确定下一轮次的虚线车道线的首个车道点位置和第二个车道点位置,并返回执行将首个车道点位置和第二个车道点位置依次添加到本轮次的虚线车道线的虚线车道线点集中的操作,直到更新后的其他虚线区域端点位置为空为止的具体实现方式相似,本申请在此不做赘述。
S904,根据各轮次确定的实线车道线的实线车道线点集,以及实线车道线对应实线区域的区域属性,确定各轮次确定的实线车道线的线段属性。
可选地,针对每轮次确定的实线车道线,根据该实线车道线的实线车道线点集中的首个车道点位置和末尾车道点位置作为各轮次确定的实线车道线的线段属性中的线段端点位置;根据实线车道线对应实线区域的区域属性,确定实线区域的中心线;根据中心线上各位置点到单侧切向边界的像素个数,确定该实线车道线的线段属性中的线段宽度。
具体的,线段端点位置的确定方式可以是,针对每轮次确定的实线车道线,将该实线车道线的实线车道线点集中的首个车道点位置和末尾车道点位置均作为该轮次确定的实线车道线的线段属性中的线段端点位置。
具体的,线段宽度的确定方式可以是,根据实线车道线对应实线区域的区域属性,从实线区域中提取得到该实线区域对应的中心线,同时,统计该中心线上各位置点到单侧切向边界的像素个数,以及该中心线对应的像素个数,示例性的,如图10所示,图中带有颜色的方格(即黑色方格与斜线方格)均表示实线区域(即表征实线的连通域),图中带有斜线标注的方块表示实线区域中非中心线的其他栅格,图中黑色方块表示实线区域的中心线所对应的栅格,图中黑色方块上的数字表征中心线上各位置点到单侧切向边界的像素个数。
在得到中心点上各位置点到单侧切向边界的像素个数,以及中心线对应的像素个数后,可以根据中心点上各位置点到单侧切向边界的像素个数,以及中心线对应的像素个数,通过如下公式(1-6),确定得到该实线车道线的像素半宽;然后根据该像素半宽,以及预设像素长度,通过如下公式(1-7),确定出该实线车道线的线段属性中的线段宽度。
其中,Lpw表示实线车道线的像素半宽,Pdn表示中心点上各位置点到单侧切向边界的像素个数(即图10中黑色方块上标注的数字),N表示中心线对应的像素个数(如图10中所有黑色方块的数量)。
Lw=Lpw*S*2 (1-7)
其中,Lw表征实线车道线的线段宽度,Lpw表示实线车道线的像素半宽,S表征预设像素长度。
上述确定实线车道线线段属性方法,根据子点云地图中的轨迹属性,从各实线区域的区域端点位置中,确定本轮次的实线车道线的首个车道点位置和第二个车道点位置,再根据实线车道线点集中最后两个车道线点位置、其他实线区域端点位置和行驶轨迹点的轨迹属性,对本轮次的实线车道线点集进行更新,并在完成实线车道线点集完成更新后,再次确定下一轮次的实线车道线的首个车道点位置和第二个车道点位置,返回执行更新本轮次实线车道线点集的操作,并最终确定各轮次确定的实线车道线的线段属性。本方式通过对多轮次循环轮次车道线点集进行更新,能够更加准确且精准的将各实线区域端点位置确定出该端点位置所属的实线车道线,从而进一步得到更为精准的实线车道线的线段属性。
图11为一个实施例中更新实线车道线点集的流程示意图。本实施例中,为了更加准确的确定出实线车道线点集中各车道线点位置,本实施例给出了一种更新实线车道线点集的可选方式,包括如下步骤:
S1101,将实线车道线点集中的最后一个车道线点位置作为实线当前点位置,并从其他实线区域端点位置中,选择与实线当前点位置距离满足距离要求的实线候选点位置。
可选地,将实线车道线点集中的最后一个车道线点位置作为实线当前点位置,确定实线当前点位置与其他实线区域端点位置之间的距离,并选择出距离满足距离阈值(如15像素)的其他实线区域端点位置,作为实线候选点位置。
S1102,按照实线候选点位置与实线当前点位置之间的距离,对各实线候选点位置进行降序排序。
可选地,根据所有满足距离要求的实线候选点位置,根据实线当前点位置与实线候选点位置之间的距离,按照从大到小的顺序进行降序排序,并将该降序排序结果作为各实线候选点位置的排序结果。
S1103,按照降序排序结果,依次判断第一实线前进方向角与第二实线前进方向角的差值是否小于第二方向角阈值,若是,则执行步骤S1104,若否,则执行步骤S1105。
其中,第一实线前进方向角为实线当前点位置与实线当前点位置在车道线集合中对应的上一车道线点位置之间的前进方向角;第二实线前进方向角为实线候选点位置与当前点位置之间的前进方向角。
可选地,对实线当前点位置与实线当前点位置在车道线集合中对应的上一车道线点位置进行向量处理,构成第一实线前进方向角,对实线候选点位置与当前点位置进行向量处理,构成第二实线前进方向角;按照降序排序结果,依次判断第一实线前进方向角与第二实线前进方向角的差值是否小于第二方向角阈值(如10°)。
S1104,按照降序排序结果,将首个满足第一实线前进方向角与第二实线前进方向角的差值小于第二方向角阈值的实线候选点位置作为新增车道点位置。
可选地,当出现第一实线前进方向角与第二实线前进方向角的差值小于第二方向角阈值的实线候选点位置时(即首个满足),将该实线候选点位置作为新增车道点位置。
S1105,若不存在第一实线前进方向角与第二实线前进方向角的差值小于第二方向角阈值的实线候选点位置,则根据行驶轨迹点的轨迹属性中的轨迹点位置,从行驶轨迹点中选择距离实线当前点位置的最近轨迹点。
可选地,若不存在第一实线前进方向角与第二实线前进方向角的差值小于第二方向角阈值的实线候选点位置,则证明其他实线区域中可能不存在与实线当前点位置同属于一条车道线的车道线点位置了,因此,可以进一步根据行驶轨迹点的轨迹属性中的轨迹点位置,从行驶轨迹点中选择预设个数各(如5个)距离实线当前点位置最近的轨迹点。
S1106,按照降序排序结果,依次判断第二实线前进方向角与第三实线前进方向角的差值是否小于第二方向角阈值,若是,则执行步骤S1107,若否,则执行步骤S1109。
其中,第三实线前进方向角为最近轨迹点,与最近轨迹点的下一轨迹点之间的前进方向角。
可选地,确定最近轨迹点,以及该最近轨迹点的下一轨迹点之间的前进方向角,作为第三虚线前进方向角,同时依次判断第二实线前进方向角与第三实线前进方向角的差值是否小于第二方向角阈值。
S1107,将首个满足第二实线前进方向角与第三实线前进方向角的差值小于第二方向角阈值的实线候选点位置作为新增车道点位置。
可选地,当出现第二实线前进方向角与第三实线前进方向角的差值小于第二方向角阈值的实线候选点位置时(即首个满足),将首个满足第二实线前进方向角与第三实线前进方向角的差值小于第二方向角阈值的实线候选点位置作为新增车道点位置。
S1108,根据新增车道点位置,对当前实线车道线的实线车道线点集进行更新。
可选地,根据新增车道点位置,对当前实线车道线的实线车道线点集进行更新的具体实现方式,与上述实施例中,根据新增虚线车道点位置,对当前虚线车道线的虚线车道线点集进行更新的实现方式相似,本申请在此不做赘述。
S1109,若不存在第二实线前进方向角与第三实线前进方向角的差值小于第二方向角阈值的实线候选点位置,则确定本轮次的实线车道线的实线车道线点集更新完成。
可选地,若不存在第二实线前进方向角与第三实线前进方向角的差值小于第二方向角阈值的实线候选点位置,则确定本轮次的实线车道线的实线车道线点集更新完成,同时,本实施例还可以将最小的第三实线前进方向角对应的实线候选点位置,作为下一轮次的新的实线车道线点集中的第一个车道线点位置。
上述更新实线车道线点集方法,通过第一实线前进方向角、第二实线前进方向角与第二方向角阈值,判断实线候选点位置是否属于本轮次的实线车道线点集,由于在此之前已经对各实线候选点位置进行降序排序,因此,在确定出首个满足第二方向角阈值的实线候选点位置之后,无需再对剩余的实线候选点位置进行判断,进一步减少了数据计算成本和计算资源占用,同理,当出现首个满足第三实线前进方向角与第二实线前进方向角之间的差值小于第二方向角阈值的实线候选位置时,也无需再对剩余实线候选点位置进行判断,可以直接将该实线候选点作为新增虚线车道点位置。本方式能够更加准确且快速的确定出新增虚线车道线位置,并基于该新增虚线车道线位置对实线车道线点集进行更新,增加确定新增虚线车道线位置的效率,减少计算资源占用。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的点云地图车道线提取方法的点云地图车道线提取装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个点云地图车道线提取装置实施例中的具体限定可以参见上文中对于点云地图车道线提取方法的限定,在此不再赘述。
在一个实施例中,如图12所示,提供了一种点云地图车道线提取装置1,包括:区域确定模块10、属性确定模块11和目标确定模块12,其中:
区域确定模块10,用于将点云地图划分为至少两个子点云地图,并对各子点云地图包含的点云数据进行车道线识别,得到各子点云地图对应的实线区域和虚线区域;
属性确定模块11,用于根据各子点云地图中实线区域的区域属性、虚线区域的区域属性,以及各子点云地图中的行驶轨迹点的轨迹属性,确定各子点云地图的实线车道线的线段属性和虚线车道线的线段属性;
目标确定模块12,用于根据各子点云地图的实线车道线的线段属性和虚线车道线的线段属性,以及点云地图中的行驶轨迹点的轨迹属性,对各子点云地图的实线车道线和虚线车道线进行拓扑连接,得到点云地图的目标车道线的线段属性;目标车道线的线段属性用于表征目标车道线在点云地图中的位置。
在一个实施例中,如图13所示,图12中的属性确定模块11,包括:
图像确定单元110,用于针对每一子点云地图,对该子点云地图包含的点云数据进行车道线识别,得到该子点云地图对应的车道线图像;
备选确定单元111,用于对车道线图像进行连通域提取,得到至少两个备选连通区域;
区域确定单元112,用于根据各备选连通区域的区域属性,从各备选连通区域中,确定实线区域和虚线区域。
虚线属性单元113,用于根据各子点云地图中虚线区域的区域属性,以及各子点云地图中的行驶轨迹点的轨迹属性,确定各子点云地图的虚线车道线的线段属性;
实线属性单元114,用于根据各子点云地图中实线区域的区域属性,以及各子点云地图中的行驶轨迹点的轨迹属性,确定各子点云地图的实线车道线的线段属性。
在一个实施例中,图13中的区域确定单元112,包括:
实线区域子单元,用于若备选连通区域的区域栅格个数满足实线个数要求,且区域长度和区域宽度满足实线长度要求,则确定备选连通区域为实线区域;
虚线区域子单元,用于若备选连通区域的区域栅格个数满足虚线个数要求,且区域长度和区域宽度满足虚线长度要求,则确定备选连通区域为虚线区域;
在一个实施例中,图13中的虚线属性单元113,还包括:
位置确定子单元,用于针对每一子点云地图,根据该子点云地图中的行驶轨迹点的轨迹属性,从各虚线区域的区域端点位置中,确定本轮次的虚线车道线的首个车道点位置和第二个车道点位置,并将首个车道点位置和第二个车道点位置依次添加到本轮次的虚线车道线的虚线车道线点集中;
点集更新子单元,用于根据虚线车道线点集中最后两个车道线点位置、其他虚线区域端点位置和行驶轨迹点的轨迹属性,对本轮次的虚线车道线的虚线车道线点集进行更新;其中,其他虚线区域端点位置为各虚线区域的区域端点位置中除已作为车道线点位置之外的其他区域端点位置;
更新完成子单元,用于在本轮次的虚线车道线的虚线车道线点集更新完成后,更新其他虚线区域端点位置,并根据更新后的其他虚线区域端点位置和行驶轨迹点的轨迹属性,确定下一轮次的虚线车道线的首个车道点位置和第二个车道点位置,并返回执行将首个车道点位置和第二个车道点位置依次添加到本轮次的虚线车道线的虚线车道线点集中的操作,直到更新后的其他虚线区域端点位置为空为止;
虚线属性子单元,用于根据各轮次确定的虚线车道线的虚线车道线点集,以及虚线车道线对应的各虚线区域的区域宽度,确定各轮次确定的虚线车道线的线段属性。
在一个实施例中,位置确定子单元包括:
轨迹点确定组件,用于根据该子点云地图中的行驶轨迹点的轨迹采集时间,确定行驶轨迹点中的首个轨迹点;
目标区域确定组件,用于根据首个轨迹点的轨迹点位置与该子点云地图中各虚线区域的区域端点位置之间的距离,从各虚线区域中选择目标区域;
车道位置确定组件,用于将目标区域的区域端点位置,作为本轮次的虚线车道线的首个车道点位置和第二个车道点位置。
在一个实施例中,点集更新子单元包括:
虚线候选点位置确定组件,用于将虚线车道线点集中的最后一个车道线点位置作为虚线当前点位置,并从其他虚线区域端点位置中,选择与虚线当前点位置距离满足距离要求的虚线候选点位置;
第一情况判断组件,用于判断是否存在第一虚线前进方向角与第二虚线前进方向角的差值小于第一方向角阈值的第一情况;其中,第一虚线前进方向角为虚线当前点位置与虚线当前点位置在虚线车道线集合中对应的上一车道线点位置之间的前进方向角;第二虚线前进方向角为虚线候选点位置与虚线当前点位置之间的前进方向角;
第一新增确定组件,用于若存在第一情况,则将第一情况下第二虚线前进方向角对应的虚线候选点位置,确定新增虚线车道点位置;
第二情况判断组件,用于若不存在第一情况,则根据行驶轨迹点的轨迹属性中的轨迹点位置,从行驶轨迹点中选择距离虚线当前点位置最近的轨迹点,并判断是否存在第二虚线前进方向角与第三虚线前进方向角的差值小于第一方向角阈值的第二情况;其中,第三虚线前进方向角为最近轨迹点,与最近轨迹点的下一轨迹点之间的前进方向角;
第二新增确定组件,用于若存在第二情况,则将第二情况下第二虚线前进方向角对应的虚线候选点位置,确定新增虚线车道点位置;
点集更新组件,用于根据新增虚线车道点位置,对当前虚线车道线的虚线车道线点集进行更新。
更新完成组件,用于若不存在第二情况,则确定本轮次的虚线车道线的虚线车道线点集更新完成。
在一个实施例中,点集更新组件包括:
点集新增子组件,用于将新增虚线车道点位置添加到当前虚线车道线的虚线车道线点集中;
点集添加子组件,用于若当前虚线车道线的虚线车道线点集中包含的车道线点位置的数量为单数,则将虚线车道线点集中最后一个车道线位置的对应端点位置,添加到虚线车道线点集中;
在一个实施例中,图13中的实线属性单元114,包括:
实线车道线点添加子单元,用于针对每一子点云地图,根据该子点云地图中的行驶轨迹点的轨迹属性,从各实线区域的区域端点位置中,确定本轮次的实线车道线的首个车道点位置和第二个车道点位置,并将首个车道点位置和第二个车道点位置依次添加到本轮次的实线车道线的实线车道线点集中;
实线车道线点集更新子单元,用于根据实线车道线点集中最后两个车道线点位置、其他实线区域端点位置和行驶轨迹点的轨迹属性,对本轮次的实线车道线的实线车道线点集进行更新;其中,其他实线区域端点位置为各实线区域的区域端点位置中除已作为车道线点位置之外的其他区域端点位置;
实线车道线点集更新完成子单元,用于在本轮次的实线车道线的实线车道线点集更新完成后,根据本轮次的实线车道线的实线车道线点集,更新其他实线区域端点位置,并根据更新后的其他实线区域端点位置和行驶轨迹点的轨迹属性,确定下一轮次的实线车道线的首个车道点位置和第二个车道点位置,并返回执行将首个车道点位置和第二个车道点位置依次添加到本轮次的实线车道线的实线车道线点集中的操作,直到更新后的其他实线区域端点位置为空;
实线线段属性确定子单元,用于根据各轮次确定的实线车道线的实线车道线点集,以及实线车道线对应实线区域的区域属性,确定各轮次确定的实线车道线的线段属性。
在一个实施例中,实线线段属性确定子单元包括:
线段端点位置确定组件,用于针对每轮次确定的实线车道线,根据该实线车道线的实线车道线点集中的首个车道点位置和末尾车道点位置作为各轮次确定的实线车道线的线段属性中的线段端点位置;
中心线确定组件,用于根据实线车道线对应实线区域的区域属性,确定实线区域的中心线;
线段宽度确定组件,用于根据中心线上各位置点到单侧切向边界的像素个数,确定该实线车道线的线段属性中的线段宽度。
在一个实施例中,实线车道线点集更新子单元包括:
实线候选点位置确定组件,用于将实线车道线点集中的最后一个车道线点位置作为实线当前点位置,并从其他实线区域端点位置中,选择与实线当前点位置距离满足距离要求的实线候选点位置;
降序排序组件,用于按照实线候选点位置与实线当前点位置之间的距离,对各实线候选点位置进行降序排序;
第一新增车道点位置确定组件,用于按照降序排序结果,将首个满足第一实线前进方向角与第二实线前进方向角的差值小于第二方向角阈值的实线候选点位置作为新增车道点位置;其中,第一实线前进方向角为实线当前点位置与实线当前点位置在车道线集合中对应的上一车道线点位置之间的前进方向角;第二实线前进方向角为实线候选点位置与当前点位置之间的前进方向角;
第二新增车道点位置确定组件,用于若不存在第一实线前进方向角与第二实线前进方向角的差值小于第二方向角阈值的实线候选点位置,则根据行驶轨迹点的轨迹属性中的轨迹点位置,从行驶轨迹点中选择距离实线当前点位置的最近轨迹点,并将首个满足第二实线前进方向角与第三实线前进方向角的差值小于第二方向角阈值的实线候选点位置作为新增车道点位置;其中,第三实线前进方向角为最近轨迹点,与最近轨迹点的下一轨迹点之间的前进方向角;
实线车道线点集更新组件,用于根据新增车道点位置,对当前实线车道线的实线车道线点集进行更新。
实线车道线点集更新完成组件,用于若不存在第二实线前进方向角与第三实线前进方向角的差值小于第二方向角阈值的实线候选点位置,则确定本轮次的实线车道线的实线车道线点集更新完成。
在一个实施例中,如图14所示,图12中的目标确定模块12,包括:
拓扑连接关系确定单元120,用于根据各子点云地图的实线车道线的线段属性和虚线车道线的线段属性,以及点云地图中的行驶轨迹点的轨迹属性,确定各子点云地图的实线车道线和虚线车道线的拓扑连接关系;
目标车道线确定单元121,用于将具有拓扑关联关系的实线车道线和/或虚线车道线作为点云地图的一条目标车道线,并根据构成目标车道线的实线车道线和/或虚线车道线的线段属性,确定目标车道线的线段属性。
在一个实施例中,如图15所示,图12中的点云地图车道线提取装置1,包括:
高程信息确定模块13,用于根据各子点云地图包含的点云数据,确定各子点云地图的高程信息;
高度信息添加模块14,用于根据高程信息,为点云地图的目标车道线的线段属性中的线段端点位置添加高度信息。
在一个实施例中,图12中的点云地图车道线提取装置1,包括:
色彩图像确定模块13,用于根据各子点云地图包含的点云数据,确定各子点云地图的色彩图像;
色彩信息添加模块14,用于根据所述色彩图像,为所述点云地图的目标车道线的线段属性中的线段端点位置添加色彩信息。
上述点云地图车道线提取装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图16所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种点云地图车道线提取方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图16中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时,用于实现以上述任意实施例所述的点云地图车道线提取方法。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时用于实现以上述任意实施例所述的点云地图车道线提取方法。在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时用于实现以上述任意实施例所述的点云地图车道线提取方法。
需要说明的是,本申请所涉及的数据(包括但不限于用于目标车道线、以及目标车道线的线段属性等数据),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (19)

1.一种点云地图车道线提取方法,其特征在于,所述方法包括:
将点云地图划分为至少两个子点云地图,并对各子点云地图包含的点云数据进行车道线识别,得到各子点云地图对应的实线区域和虚线区域;
根据各子点云地图中实线区域的区域属性、虚线区域的区域属性,以及各子点云地图中的行驶轨迹点的轨迹属性,确定各子点云地图的实线车道线的线段属性和虚线车道线的线段属性;
根据各子点云地图的实线车道线的线段属性和虚线车道线的线段属性,以及所述点云地图中的行驶轨迹点的轨迹属性,对各子点云地图的实线车道线和虚线车道线进行拓扑连接,得到所述点云地图的目标车道线的线段属性;所述目标车道线的线段属性用于表征所述目标车道线在点云地图中的位置。
2.根据权利要求1所述的方法,其特征在于,所述根据各子点云地图中实线区域的区域属性、虚线区域的区域属性,以及各子点云地图中的行驶轨迹点的轨迹属性,确定各子点云地图的实线车道线的线段属性和虚线车道线的线段属性,包括:
针对每一子点云地图,对该子点云地图包含的点云数据进行车道线识别,得到该子点云地图对应的车道线图像;
对所述车道线图像进行连通域提取,得到至少两个备选连通区域;
根据各备选连通区域的区域属性,从各备选连通区域中,确定实线区域和虚线区域。
3.根据权利要求2所述的方法,其特征在于,所述区域属性包括:区域长度、区域宽度和区域栅格个数;所述根据各备选连通区域的区域属性,从各备选连通区域中,确定实线区域和虚线区域,包括:
若所述备选连通区域的区域栅格个数满足实线个数要求,且区域长度和区域宽度满足实线长度要求,则确定所述备选连通区域为实线区域;
若所述备选连通区域的区域栅格个数满足虚线个数要求,且区域长度和区域宽度满足虚线长度要求,则确定所述备选连通区域为虚线区域;
其中,所述实线个数要求为区域栅格大于第一数量阈值,且小于栅格占比阈值;所述栅格占比阈值根据区域栅格个数和预先设置的实线区域占比确定;所述虚线个数要求为区域栅格大于第二数量阈值,且小于或等于第三数量阈值;所述第三数量阈值大于所述第一数量阈值,所述第一数量阈值大于所述第二数量阈值;所述实线长度要求为区域长度和区域宽度中,一方大于第一长度阈值,另一方大于第二长度阈值;所述虚线长度要求为所述区域长度和区域宽度均小于第三长度阈值;所述第一长度阈值小于第三长度阈值;所述第三长度阈值小于所述第二长度阈值。
4.根据权利要求1所述的方法,其特征在于,所述根据各子点云地图中实线区域的区域属性、虚线区域的区域属性,以及各子点云地图中的行驶轨迹点的轨迹属性,确定各子点云地图的实线车道线的线段属性和虚线车道线的线段属性,包括:
根据各子点云地图中虚线区域的区域属性,以及各子点云地图中的行驶轨迹点的轨迹属性,确定各子点云地图的虚线车道线的线段属性;
根据各子点云地图中实线区域的区域属性,以及各子点云地图中的行驶轨迹点的轨迹属性,确定各子点云地图的实线车道线的线段属性。
5.根据权利要求4所述的方法,其特征在于,根据各子点云地图中虚线区域的区域属性,以及各子点云地图中的行驶轨迹点的轨迹属性,确定各子点云地图的虚线车道线的线段属性,包括:
针对每一子点云地图,根据该子点云地图中的行驶轨迹点的轨迹属性,从各虚线区域的区域端点位置中,确定本轮次的虚线车道线的首个车道点位置和第二个车道点位置,并将所述首个车道点位置和第二个车道点位置依次添加到本轮次的虚线车道线的虚线车道线点集中;
根据所述虚线车道线点集中最后两个车道线点位置、其他虚线区域端点位置和所述行驶轨迹点的轨迹属性,对本轮次的虚线车道线的虚线车道线点集进行更新;其中,所述其他虚线区域端点位置为各虚线区域的区域端点位置中除已作为车道线点位置之外的其他区域端点位置;
在本轮次的虚线车道线的虚线车道线点集更新完成后,更新所述其他虚线区域端点位置,并根据更新后的其他虚线区域端点位置和所述行驶轨迹点的轨迹属性,确定下一轮次的虚线车道线的首个车道点位置和第二个车道点位置,并返回执行将所述首个车道点位置和第二个车道点位置依次添加到本轮次的虚线车道线的虚线车道线点集中的操作,直到更新后的所述其他虚线区域端点位置为空为止;
根据各轮次确定的虚线车道线的虚线车道线点集,以及所述虚线车道线对应的各虚线区域的区域宽度,确定各轮次确定的所述虚线车道线的线段属性。
6.根据权利要求5所述的方法,其特征在于,所述轨迹属性包括轨迹采集时间和轨迹点位置;所述根据该子点云地图中的行驶轨迹点的轨迹属性,从各虚线区域的区域端点位置中,确定本轮次的虚线车道线的首个车道点位置和第二个车道点位置,包括:
根据该子点云地图中的行驶轨迹点的轨迹采集时间,确定所述行驶轨迹点中的首个轨迹点;
根据所述首个轨迹点的轨迹点位置与该子点云地图中各虚线区域的区域端点位置之间的距离,从各虚线区域中选择目标区域;
将所述目标区域的区域端点位置,作为本轮次的虚线车道线的首个车道点位置和第二个车道点位置。
7.根据权利要求5所述的方法,其特征在于,根据所述虚线车道线点集中最后两个车道线点位置、其他虚线区域端点位置和所述行驶轨迹点的轨迹属性,对本轮次的虚线车道线的虚线车道线点集进行更新,包括:
将所述虚线车道线点集中的最后一个车道线点位置作为虚线当前点位置,并从其他虚线区域端点位置中,选择与所述虚线当前点位置距离满足距离要求的虚线候选点位置;
判断是否存在第一虚线前进方向角与第二虚线前进方向角的差值小于第一方向角阈值的第一情况;其中,第一虚线前进方向角为所述当前点位置与虚线当前点位置在所述车道线集合中对应的上一车道线点位置之间的前进方向角;第二虚线前进方向角为虚线候选点位置与虚线当前点位置之间的前进方向角;
若存在所述第一情况,则将所述第一情况下所述第二虚线前进方向角对应的虚线候选点位置,确定新增虚线车道点位置;
若不存在所述第一情况,则根据所述行驶轨迹点的轨迹属性中的轨迹点位置,从所述行驶轨迹点中选择距离当前点位置的最近轨迹点,并判断是否存在第二虚线前进方向角与第三虚线前进方向角的差值小于第一方向角阈值的第二情况;其中,所述第三虚线前进方向角为所述最近轨迹点,与所述最近轨迹点的下一轨迹点之间的前进方向角;
若存在所述第二情况,则将所述第二情况下所述第二虚线前进方向角对应的虚线候选点位置,确定新增虚线车道点位置;
根据所述新增虚线车道点位置,对所述当前虚线车道线的虚线车道线点集进行更新。
8.根据权利要求7所述的方法,其特征在于,所述根据所述新增虚线车道点位置,对所述当前虚线车道线的虚线车道线点集进行更新,包括:
将所述新增虚线车道点位置添加到所述当前虚线车道线的虚线车道线点集中;
若所述当前虚线车道线的虚线车道线点集中包含的车道线点位置的数量为单数,则将所述虚线车道线点集中最后一个车道线位置的对应端点位置,添加到所述虚线车道线点集中;
其中,所述对应端点位置为所述最后一个车道线位置对应的虚线区域的区域端点位置中,除所述最后一个车道线位置之外的另一个区域端点位置。
9.根据权利要求8所述的方法,其特征在于,所述判断是否存在第二虚线前进方向角与第三虚线前进方向角的差值小于第一方向角阈值的第二情况,包括:
若不存在所述第二情况,则确定本轮次的虚线车道线的虚线车道线点集更新完成。
10.根据权利要求4所述的方法,其特征在于,所述根据各子点云地图中实线区域的区域属性,以及各子点云地图中的行驶轨迹点的轨迹属性,确定各子点云地图的实线车道线的线段属性,包括:
针对每一子点云地图,根据该子点云地图中的行驶轨迹点的轨迹属性,从各实线区域的区域端点位置中,确定本轮次的实线车道线的首个车道点位置和第二个车道点位置,并将所述首个车道点位置和第二个车道点位置依次添加到本轮次的实线车道线的实线车道线点集中;
根据所述实线车道线点集中最后两个车道线点位置、其他实线区域端点位置和所述行驶轨迹点的轨迹属性,对本轮次的实线车道线的实线车道线点集进行更新;其中,所述其他实线区域端点位置为各实线区域的区域端点位置中除已作为车道线点位置之外的其他区域端点位置;
在本轮次的实线车道线的实线车道线点集更新完成后,根据本轮次的实线车道线的实线车道线点集,更新所述其他实线区域端点位置,并根据更新后的其他实线区域端点位置和所述行驶轨迹点的轨迹属性,确定下一轮次的实线车道线的首个车道点位置和第二个车道点位置,并返回执行将所述首个车道点位置和第二个车道点位置依次添加到本轮次的实线车道线的实线车道线点集中的操作,直到更新后的所述其他实线区域端点位置为空;
根据各轮次确定的实线车道线的实线车道线点集,以及所述实线车道线对应实线区域的区域属性,确定各轮次确定的所述实线车道线的线段属性。
11.根据权利要求10所述的方法,其特征在于,所述根据各轮次确定的实线车道线的实线车道线点集,以及所述实线车道线对应实线区域的区域属性,确定各轮次确定的所述实线车道线的线段属性,包括:
针对每轮次确定的实线车道线,根据该实线车道线的实线车道线点集中的首个车道点位置和末尾车道点位置作为各轮次确定的所述实线车道线的线段属性中的线段端点位置;
根据所述实线车道线对应实线区域的区域属性,确定所述实线区域的中心线;
根据所述中心线上各位置点到单侧切向边界的像素个数,确定该实线车道线的线段属性中的线段宽度。
12.根据权利要求10所述的方法,其特征在于,所述根据所述实线车道线点集中最后两个车道线点位置、其他实线区域端点位置和所述行驶轨迹点的轨迹属性,对本轮次的实线车道线的实线车道线点集进行更新,包括:
将所述实线车道线点集中的最后一个车道线点位置作为实线当前点位置,并从其他实线区域端点位置中,选择与所述实线当前点位置距离满足距离要求的实线候选点位置;
按照所述实线候选点位置与所述实线当前点位置之间的距离,对各实线候选点位置进行降序排序;
按照所述降序排序结果,将首个满足第一实线前进方向角与第二实线前进方向角的差值小于第二方向角阈值的实线候选点位置作为新增车道点位置;其中,第一实线前进方向角为所述实线当前点位置与实线当前点位置在所述车道线集合中对应的上一车道线点位置之间的前进方向角;第二实线前进方向角为实线候选点位置与当前点位置之间的前进方向角;
若不存在第一实线前进方向角与第二实线前进方向角的差值小于第二方向角阈值的实线候选点位置,则根据所述行驶轨迹点的轨迹属性中的轨迹点位置,从所述行驶轨迹点中选择距离实线当前点位置的最近轨迹点,并将首个满足第二实线前进方向角与第三实线前进方向角的差值小于第二方向角阈值的实线候选点位置作为新增车道点位置;其中,所述第三实线前进方向角为所述最近轨迹点,与所述最近轨迹点的下一轨迹点之间的前进方向角;
根据所述新增车道点位置,对所述当前实线车道线的实线车道线点集进行更新。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
若不存在第二实线前进方向角与第三实线前进方向角的差值小于第二方向角阈值的实线候选点位置,则确定本轮次的实线车道线的实线车道线点集更新完成。
14.根据权利要求1所述的方法,其特征在于,所述根据各子点云地图的实线车道线的线段属性和虚线车道线的线段属性,以及所述点云地图中的行驶轨迹点的轨迹属性,对各子点云地图的实线车道线和虚线车道线进行拓扑连接,得到所述点云地图的目标车道线的线段属性,包括:
根据各子点云地图的实线车道线的线段属性和虚线车道线的线段属性,以及所述点云地图中的行驶轨迹点的轨迹属性,确定各子点云地图的实线车道线和虚线车道线的拓扑连接关系;
将具有拓扑关联关系的实线车道线和/或虚线车道线作为所述点云地图的一条目标车道线,并根据构成所述目标车道线的实线车道线和/或虚线车道线的线段属性,确定所述目标车道线的线段属性。
15.根据权利要求1至14任意一项所述的方法,其特征在于,所述方法还包括:
根据各子点云地图包含的点云数据,确定各子点云地图的高程信息;
根据所述高程信息,为所述点云地图的目标车道线的线段属性中的线段端点位置添加高度信息。
16.根据权利要求15所述的方法,其特征在于,所述方法还包括:
根据各子点云地图包含的点云数据,确定各子点云地图的色彩图像;
根据所述色彩图像,为所述点云地图的目标车道线的线段属性中的线段端点位置添加色彩信息。
17.一种点云地图车道线提取装置,其特征在于,所述装置包括:
区域确定模块,用于将点云地图划分为至少两个子点云地图,并对各子点云地图包含的点云数据进行车道线识别,得到各子点云地图对应的实线区域和虚线区域;
属性确定模块,用于根据各子点云地图中实线区域的区域属性、虚线区域的区域属性,以及各子点云地图中的行驶轨迹点的轨迹属性,确定各子点云地图的实线车道线的线段属性和虚线车道线的线段属性;
目标确定模块,用于根据各子点云地图的实线车道线的线段属性和虚线车道线的线段属性,以及所述点云地图中的行驶轨迹点的轨迹属性,对各子点云地图的实线车道线和虚线车道线进行拓扑连接,得到所述点云地图的目标车道线的线段属性;所述目标车道线的线段属性用于表征所述目标车道线在点云地图中的位置。
18.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至16中任一项所述的方法的步骤。
19.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至16中任一项所述的方法的步骤。
CN202311153389.9A 2023-09-07 2023-09-07 点云地图车道线提取方法、装置、计算机设备和存储介质 Pending CN117237892A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311153389.9A CN117237892A (zh) 2023-09-07 2023-09-07 点云地图车道线提取方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311153389.9A CN117237892A (zh) 2023-09-07 2023-09-07 点云地图车道线提取方法、装置、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
CN117237892A true CN117237892A (zh) 2023-12-15

Family

ID=89085425

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311153389.9A Pending CN117237892A (zh) 2023-09-07 2023-09-07 点云地图车道线提取方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN117237892A (zh)

Similar Documents

Publication Publication Date Title
CN110119740B (zh) 一种从复杂城市道路网络提取简化拓扑关系的方法
US20240077331A1 (en) Method of predicting road attributers, data processing system and computer executable code
CN113487523B (zh) 图形轮廓优化方法、装置、计算机设备和存储介质
CN116310656B (zh) 训练样本确定方法、装置和计算机设备
WO2021154155A1 (en) Methods and data processing systems for predicting road attributes
US11663499B2 (en) Method, data processing apparatus and computer program product for determining road intersections
CN112257668A (zh) 主辅路判断方法、装置、电子设备及存储介质
JP2021532449A (ja) 車線属性検出
CN111738040A (zh) 一种减速带识别方法及系统
Ng et al. Scalable Feature Extraction with Aerial and Satellite Imagery.
CN113704276A (zh) 地图更新方法、装置、电子设备及计算机可读存储介质
CN114882490B (zh) 一种基于点引导定位的无受限场景车牌检测分类方法
CN116823966A (zh) 相机的内参标定方法、装置、计算机设备和存储介质
CN117237892A (zh) 点云地图车道线提取方法、装置、计算机设备和存储介质
JP6800901B2 (ja) 物体領域識別装置、物体領域識別方法およびプログラム
CN115952252A (zh) 数据处理方法、装置、电子设备和介质
CN113204607B (zh) 一种平衡面积、拓扑和形状特征的矢量多边形栅格化方法
CN115661444A (zh) 图像处理方法、装置、设备、存储介质及产品
CN112381034A (zh) 一种车道线检测方法、装置、设备及存储介质
Cui et al. CMSuG: Competitive mechanism-based superpixel generation method for image segmentation
CN113807315B (zh) 一种构建待识别对象识别模型的方法、装置、设备及介质
CN114841084B (zh) 一种基于航拍图像的人员疏散模拟方法、系统及设备
CN116665157B (zh) 道路图像处理方法、装置、计算机设备和存储介质
CN113313101B (zh) 一种建筑物轮廓自动聚合方法、装置、设备及存储介质
CN103246689B (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