首页> 中国专利> 道路边沿检测方法、装置、高精度地图、车辆及存储介质

道路边沿检测方法、装置、高精度地图、车辆及存储介质

摘要

本公开提供了一种道路边沿检测方法、装置、高精度地图、车辆及存储介质,该道路边沿检测方法包括:对获取的点云地图进行切分,得到多个点云子图;基于每个点云子图,提取每个点云子图的道路边沿种子点;基于每个种子点利用法向量和区域生长聚类的方法检测道路边沿点;将检测到的道路边沿点拼接,得到道路边界线。本公开实施例能够提高道路边沿的检测精度。

著录项

  • 公开/公告号CN112964264A

    专利类型发明专利

  • 公开/公告日2021-06-15

    原文格式PDF

  • 申请/专利权人 上海商汤临港智能科技有限公司;

    申请/专利号CN202110176657.3

  • 发明设计人 王兆圣;赵明;刘余钱;

    申请日2021-02-07

  • 分类号G01C21/32(20060101);G06K9/62(20060101);

  • 代理机构11889 北京中知恒瑞知识产权代理事务所(普通合伙);

  • 代理人吴迪

  • 地址 200232 上海市浦东新区中国(上海)自由贸易试验区临港新片区泥城镇秋山路1775弄29、30号2楼01室

  • 入库时间 2023-06-19 11:26:00

说明书

技术领域

本公开涉及车辆导航技术和自动驾驶技术领域,具体而言,涉及一种道路边沿检测方法、装置、高精度地图、车辆和存储介质。

背景技术

传统导航地图由于精度不足而无法满足自动驾驶的需要。高精细地图作为无人驾驶中必要的一环渐渐成为产业里的共识,其具有精度高和维度多等优点。高精细地图能够为驾驶系统提供更前瞻的信息指示和信息冗余,实现汽车的匹配定位,使得驾驶系统能够感知到更大范围的交通态势,保证自动驾驶的安全。

在高精细地图中,点云地图由于其不受环境光照影响和环境建模精确等优点而倍受自动驾驶产业界的青睐。其中对于决策、规划部分不可或缺的一环是道路的语义地图构建,需要检测出每个车道以及道路边界等信息,进而辅助无人驾驶车辆进行决策并行驶于正确的道路上。

然而,现有技术中,用于检测道路边沿的方法(比如基于视觉的方法),容易受到车辆遮挡,导致检测出的道路边沿存在误差。

发明内容

由于现有技术中,用于检测道路边沿的方法(比如基于视觉的方法),容易受到车辆遮挡,导致检测出的道路边沿存在误差。因此,本公开实施例至少提供一种道路边沿检测方法、装置、高精度地图、车辆及计算机可读存储介质,以提高道路边沿的检测精度。

第一方面,本公开实施例提供了一种道路边沿检测方法,包括:

对获取的点云地图进行切分,得到多个点云子图;

基于每个所述点云子图,提取每个所述点云子图的道路边沿种子点;

基于每个所述道路边沿种子点,利用法向量和区域生长聚类的方法检测道路边沿点;

将所述检测到的道路边沿点拼接,得到道路边界线。

本公开实施例中,由于将点云地图切分为多个点云子图,并提取每个点云子图的道路边沿种子点,再基于每个所述种子点利用法向量和区域生长聚类的方法检测道路边沿点,最后将每个所述点云子图所检测到的边沿点拼接以获得道路边界线,进而可以得到完整的路沿点云,提高了道路边沿检测的精度和鲁棒性。

根据第一方面,在一种可能的实施方式中,所述基于每个所述点云子图,提取每个所述点云子图的道路边沿种子点,包括:

在由两个相邻搜索方向所构成的搜索区域中搜索第一种子点;所述搜索方向为以点云子图的中心点为起点,向外辐射的方向。

将所述第一种子点提取作为每个所述点云子图的道路边沿种子点。

本公开实施例中,通过以每个所述点云子图的中心点为基础,分别以呈辐射状的多个方向向远离所述中心点的方向搜索,可以获得数量较多且分布较广的道路边沿种子点。

根据第一方面,在一种可能的实施方式中,所述在由两个相邻搜索方向所构成的搜索区域中搜索第一种子点,包括:

在所述搜索区域中,按搜索区间搜索所述第一种子点。

根据第一方面,在一种可能的实施方式中,所述第一种子点为相邻两个搜索区间中,点云的高度均值较大的搜索区间内的点。

根据第一方面,在一种可能的实施方式中,所述基于每个所述种子点利用法向量和区域生长聚类的方法检测道路边沿点,包括:

基于每个所述种子点,利用地面的法向量、与每个所述种子点之间的距离小于预设距离的点的法向量,以区域生长聚类的方法检测所述道路边沿点。

本公开实施例中,由于通过地面的法向量和与每个所述种子点之间的距离小于预设距离的点的法向量,来进行区域生长聚类,可以保证道路边沿点的检测精度,避免将路沿线以外的其他点(比如路沿上与地面平行的点)检测出来。

根据第一方面,在一种可能的实施方式中,所述基于每个所述种子点,利用地面的法向量、与每个所述种子点之间的距离小于预设距离的点的法向量,以区域生长聚类的方法检测所述道路边沿点,包括:

计算与每个所述种子点之间的距离小于预设距离的点的法向量,并将对应的法向量与地面的法向量垂直的点加入聚类结果中;

分别计算与聚类结果中的每个点之间的距离小于所述预设距离的点的法向量,并将每个点对应的法向量与地面法向量垂直的点加入聚类结果,直至没有新的点加入聚类结果为止;

将所述聚类结果中的点确定为所述道路边沿点。

根据第一方面,在一种可能的实施方式中,所述将所述聚类中的点确定为所述道路边沿点,包括:

判断每个聚类结果中的点云的高度,并将点云的高度大于基准高度的异常聚类结果剔除;

将剔除了所述异常聚类结果的其他聚类结果中的点确定为所述道路边沿点。

本公开实施例中,通过对每个聚类结果中的点云的高度进行判定,可以将点云的高度大于基准高度的异常聚类结果剔除,进而可以将静态车辆、动态车辆等点云剔除,可以避免误检测,进而可以进一步提高道路边沿的检测精度和鲁棒性。

根据第一方面,在一种可能的实施方式中,所述将每个所述点云子图所检测到的边沿点拼接以获得道路边界线,包括:

将每个所述点云子图进行拼接,以获得所述点云地图的路沿点云;

将所述路沿点云进行连线,以获得所述道路边界线。

根据第一方面,在一种可能的实施方式中,所述将所述路沿点云进行连线,以获得所述道路边界线,包括:

根据道路的延伸轨迹,选取靠近所述道路中心的路沿点连接成路沿线,并剔除路沿线中偏离所述路沿线中直线部分的路沿点;

将断开的路沿线沿着所述道路的延伸方向进行连接,进而形成所述道路边界线。

本公开实施例中,可以将因车辆遮挡而导致路沿点云断开的部分连接,进而形成完成的道路边界线,且在拼接过程中,由于将剔除了路沿线中偏离所述路沿线中直线部分的路沿点,使得最终获得的道路边界线较为精准。

根据第一方面,在一种可能的实施方式中,所述对获取的点云地图进行切分以获得多个点云子图,包括:

对获取的关于所述道路的点云地图沿着预设方向进行切分,以获得多个点云子图;所述预设方向与特定方向之间的夹角小于预设夹角;所述特定方向与所述道路的延伸方向垂直。

本公开实施例中,根据该方法进行点云地图的切分,有利于后续的种子点的提取以及路沿点的检测。

根据第一方面,在一种可能的实施方式中,所述对获取的关于所述道路的点云地图沿着预设方向进行切分之前,还包括:

根据所述点云地图的摆放方式,确定多条相互平行预切割线;

确定每条切割线与所述道路的两个边沿的交点,并根据所述交点确定由所述交点所形成的线段的中心点;

将多个所述中心点的连线所形成的延伸方向确定为所述道路的延伸方向。

第二方面,本公开实施例提供了一种道路边沿检测装置,包括:

切分模块,用于对获取的点云地图进行切分以获得多个点云子图;

提取模块,用于基于所述每个点云子图,提取每个所述点云子图的道路边沿种子点;

检测模块,用于基于每个所述种子点利用法向量和区域生长聚类的方法检测道路边沿点;

拼接模块,用于将检测到的每个所述点云子图的边沿点拼接以获得道路边界线。

根据第二方面,在一种可能的实施方式中,所述提取模块具体用于:

以每个所述点云子图的中心点为基础,分别以呈辐射状的多个方向向远离所述中心点的方向搜索,进而提取每个所述点云子图的道路边沿种子点。

根据第二方面,在一种可能的实施方式中,所述提取模块具体用于:

在每个搜索方向上,以每个所述点云子图的中心点为基础,并以预设步长及预设角度向远离所述中心点的方向搜索。

根据第二方面,在一种可能的实施方式中,在每个搜索方向上,由所述预设步长和所述预设角度形成多个搜索区间,且所述多个搜索区间的面积沿着远离所述中心点的方向逐渐增大;所述提取模块具体用于:

当相邻的两个搜索区间的点云的高度均值的差值的绝对值大于第一阈值且小于第二阈值时,将高度均值较大的搜索区间内的点提取为所述种子点。

根据第二方面,在一种可能的实施方式中,所述检测模块具体用于:

基于每个所述种子点,利用地面的法向量、与每个所述种子点之间的距离小于预设距离的点的法向量,以区域生长聚类的方法检测所述道路边沿点。

根据第二方面,在一种可能的实施方式中,所述检测模块具体用于:

计算与每个所述种子点之间的距离小于预设距离的点的法向量,并将对应的法向量与地面的法向量垂直的点加入聚类结果中;

分别计算与聚类结果中的每个点之间的距离小于所述预设距离的点的法向量,并将对应的法向量与地面法向量垂直的点加入聚类结果,直至没有新的点加入聚类结果为止;

将所述聚类结果中的点确定为所述道路边沿点。

根据第二方面,在一种可能的实施方式中,所述检测模块具体用于:

判断每个聚类结果中的点云的高度,并将点云的高度大于基准高度的异常聚类结果剔除;

将剔除了所述异常聚类结果的其他聚类结果中的点确定为所述道路边沿点。

根据第二方面,在一种可能的实施方式中,所述拼接模块具体用于:

将每个所述点云子图进行拼接,以获得所述点云地图的路沿点云;

将所述路沿点云进行连线,以获得所述道路边界线。

根据第二方面,在一种可能的实施方式中,所述拼接模块具体用于:

根据道路的延伸轨迹,选取靠近所述道路中心的路沿点连接成路沿线,并剔除路沿线中偏离所述路沿线中直线部分的路沿点;

将断开的路沿线沿着所述道路的延伸方向进行连接,进而形成所述道路边界线。

根据第二方面,在一种可能的实施方式中,所述切分模块具体用于:

对获取的关于所述道路的点云地图沿着预设方向进行切分,以获得多个点云子图;所述预设方向与特定方向之间的夹角小于预设夹角;所述特定方向与所述道路的延伸方向垂直。

根据第二方面,在一种可能的实施方式中,所述切分模块具体用于:

根据所述点云地图的摆放方式,确定多条相互平行预切割线;

确定每条切割线与所述道路的两个边沿的交点,并根据所述交点确定由所述交点所形成的线段的中心点;

将多个所述中心点的连线所形成的延伸方向确定为所述道路的延伸方向

第三方面,本公开实施例提供了一种高精度地图,包括多条道路,每条道路包括道路边界线,所述道路边界线通过第一方面及第一方面中任一可能的实施方式中所述的方法获得。

第四方面,本公开实施例提供了一种车辆,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当车辆运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如第一方面所述的道路边沿检测方法的步骤。

第五方面,本公开实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如第一方面所述的道路边沿检测方法的步骤。

本公开实施例中的方法及相关装置,由于将点云地图切分为多个点云子图,并提取每个点云子图的道路边沿种子点,再基于每个所述种子点利用法向量和区域生长聚类的方法检测道路边沿点,最后将每个所述点云子图所检测到的边沿点拼接以获得道路边界线,进而可以得到完整的路沿点云,提高了道路边沿检测的精度和鲁棒性。

为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本公开实施例所提供的一种道路边沿检测方法的流程图;

图2示出了本公开实施例所提供的一种关于道路的点云地图的切分示意图;

图3示出了本公开实施例所提供的一种导航测绘车辆的立体示意图;

图4示出了本公开实施例所提供的一种某个搜索区域上的第一种子点的搜索示意图;

图5示出了本公开实施例所提供的一种点云子图中多个搜索区域搜索道路边沿种子点的示意图;

图6示出了本公开实施例所提供的一种获取点云地图方法的流程图;

图7示出了本公开实施例所提供的一种检测道路边沿点的方法流程图;

图8示出了本公开实施例所提供的一种基于种子点进行聚类的过程示意图;

图9示出了本公开实施例所提供的一种根据路沿点云拼接道路边界线的方法流程图;

图10示出了本公开实施例所提供的一种道路边沿检测装置的结构示意图;

图11示出了本公开实施例所提供的一种车辆的结构示意图。

具体实施方式

为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。

近些年来,随着汽车数量的大幅增加,许多城市面临着日益严重的道路交通问题,无人驾驶受到了越来越多的人的关注。无人驾驶车辆主要由环境感知、路径规划和决策控制三个部分组成,其中环境感知是路径规划和决策控制的基础,而道路环境检测又是环境感知系统中的重要环节,因此道路环境检测将对无人驾驶车的整体性能起到至关重要的作用。

经研究发现,传统导航地图由于精度不足而无法满足自动驾驶的需要。高精细地图作为无人驾驶中必要的一环渐渐成为产业里的共识,其具有精度高和维度多等优点。高精细地图能够为驾驶系统提供更前瞻的信息指示,实现汽车的匹配定位,使得驾驶系统能够感知到更大范围的交通态势,保证自动驾驶的安全。

在高精细地图中,点云地图由于其不受环境光照影响和环境建模精确等优点而倍受自动驾驶产业界的青睐。其中对于决策、规划部分不可或缺的一环是道路的语义地图构建,需要检测出每个车道以及道路边界等信息,辅助无人驾驶车辆进行决策并行驶于正确的道路上。

但现有技术中,用于检测道路边沿的方法(比如基于视觉的方法),容易受到车辆遮挡,导致检测出的道路边沿存在误差。因此,如何提高道路边沿的检测精度,以保证车辆驾驶的安全性,为本公开要解决的技术问题。

基于上述研究,本公开提供了一种道路边沿检测方法,对获取的点云地图进行切分以获得多个点云子图;提取每个点云子图的道路边沿种子点;基于每个种子点利用法向量和区域生长聚类的方法检测道路边沿点;将每个点云子图所检测到的边沿点拼接以获得道路边界线。该道路边沿检测方法可以提高道路边沿的检测精度及鲁棒性。

针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。

为便于对本申请实施例进行理解,下面结合具体实施例对本申请方案进行详细说明。参见图1所示,为本公开实施例提供的道路边沿检测方法的流程图,该道路边沿检测方法包括以下S101~S104:

S101,对获取的点云地图进行切分,得到多个点云子图。

示例地,参见图2所示,对获取的关于道路的点云地图沿着预设方向x3进行切分,以获得多个点云子图。也即,可以对点云地图沿着预设方向进行多次切分,如此可以得到多个点云子图。其中,多个可以是两个、三个、五个甚至更多,在此不做限定。其中,预设方向x3与特定方向x2之间的夹角θ小于预设夹角,特定方向x2与道路的延伸方向x1垂直。

可以理解,由于道路的延伸方向可能不是直线,因此,特定方向x2与道路的延伸方向x1垂直,可以理解为特定方向x2与道路延伸方向上的某一小部分(该小部分可近似看成直线)的延伸方向垂直。当夹角θ越来越大时,预设方向越靠近道路的延伸方向x1,不利于地图的切分,因此,夹角θ需要小于预设夹角,以使得切分出来的点云子图利于后续的道路种子点的提取。

一些实施方式中,参见图2所示,在对点云地图进行切割之前,可以根据所述点云地图的摆放方式,确定多条预切割线L。例如,若点云地图时横着摆放,则竖着切割;若点云地图竖着摆放,则横向切割。其中,该多条预切割线可以是相互平行的一组预切割线。

然后,确定每条切割线L与所述道路的两个边沿的交点D1和D2,并根据所述交点确定由所述交点所形成的线段的中心点DC;将多个所述中心点DC的连线所形成的延伸方向确定为所述道路的延伸方向。

参见图3所示,为本公开一实施例提供的用于获取点云地图的车辆100的侧视图。其中,该车辆100为导航地图测绘车辆。也即,当该车辆100在路上行驶时,可以获取与周围环境相关的点云地图。

示例地,该车辆100包括图像采集单元10、全球卫星导航(GNSS)单元20、点云数据采集单元30、车辆轮速计单元40及多传感器数据时间同步单元50。

图像采集单元10用于获取与周围环境相关的多个图像。示例地,图像采集单元10可以包括多个单目相机,多个单目相机可以被设置在车辆100的外部(例如车辆上表面的前部)。

GNSS单元20用于提供车辆100的定位数据。例如,GNSS单元20可以是双天线GNSS信号接收模块,其可安装在车辆100的上表面的中部。

点云数据采集单元30用于获取与周围环境相关的点云地图。示例地,点云数据采集单元30可以包括激光雷达(例如倾斜多线激光雷达)。激光雷达用于向周围环境发射第一激光束并接收环境中物体(例如建筑物、交通信号灯、交通标识、车辆、行人、道路隔离带、道路等)反射的第二激光束。

车辆轮速计单元40用于提供轮速数据,可以被安装在车轮附近,例如后轮附近。

多传感器数据时间同步单元50与图像采集单元10、GNSS单元20、点云数据采集单元30及车辆轮速计单元40耦合,用于使图像采集单元10、GNSS单元20、点云数据采集单元30及车辆轮速计单元40获取的数据同步,其可设置于车辆100的侧面。

可以理解,车辆100还包括处理器(图2未示),该处理器可以与上述各个单元电连接,并依据上述各个单元所述获取的数据执行相应的方法,如本公开实施例中的道路边沿检测方法。

S102,基于每个点云子图,提取每个点云子图的道路边沿种子点。

示例地,可以在由两个相邻搜索方向所构成的搜索区域中搜索第一种子点,并将所述第一种子点提取作为每个所述点云子图的道路边沿种子点。其中,搜索方向为以点云子图的中心点为起点,向外辐射的方向。

可以理解,由于道路边沿会比道路要高,因此在每个搜索区域上进行搜索时,当搜索到高度上具有显著变化的位置,即可确定为是道路边沿。因此,为了在每个搜索区域上实现对道路高度的区分,需要将所述搜索区域沿着搜索方向进行区间划分,进而找出高度较高的位置。

参见图4所示,可以在由两个相邻的搜索方向L1和L2所构成的搜索区域中搜索第一种子点。本实施方式中,相邻的搜索方向L1和L2之间的夹角A小于预设角度。具体地,可以在所述由L1和L2构成的搜索区域中,按搜索区间k搜索所述第一种子点。其中,所述搜索区间k为在远离所述中心点C方向上,按预设步长s在所述搜索区域中形成的区域。如此,可以在所述搜索区域内沿搜索方向形成多个搜索区间k1~kn,且所述多个搜索区间(图4中扇形区间)的面积沿着远离所述中心点C的方向逐渐增大。因此,当相邻的两个搜索区间k的点云的高度均值发生变化时,即可确定高度均值较高的区间为道路边沿种子点。

本实施方式中,预设步长s为0.1m,预设角度A为1°。可以理解,若步长过小会增加计算量,且容易受到噪声影响;而若步长过大,则会导致平均高度区分不明显(差异化不明显),进而不容易找到道路边沿,因此,在预设步长和预设角度可以根据实际情况而具体设定,在此不做限定。

需要说明的是,通常道路边沿大约比路面高10cm左右,而若高度差值相差过大则说明该搜索区间能是障碍物或者是静止的车辆,因此本实施方式中,还限定了高度均值的差值的绝对值要小于第二阈值,如此可以保证种子点的提取精度。示例地,第一阈值可以为0.05m,第二阈值可以为0.2m。当然,其他实施方式中,第一阈值和第二阈值还可以是其他数值,在此不做限定。

因此,在本公开实施例中,所述第一种子点为相邻两个搜索区间中,点云的高度均值较大的搜索区间内的点,且所述相邻两个搜索区间的点云的高度均值之差的绝对值大于第一阈值且小于第二阈值。

参见图5所示,为了提高道路边沿种子点的搜索覆盖率,可以以单个点云子图T的中心点C为基础,分别以多个不同方向的搜索区域y1~yn向远离中心点C的方向搜索,也即以点云子图T的中心点C为基础,辐射状向外搜索道路边沿种子点d。本实施方式中,分别以8个不同方向的搜索区域向远离中心点C的方向搜索,可以理解,其他实施方式中,还可以以更多或者更少的搜索区域进行搜索,在此不做限定。

S103,基于每个道路边沿种子点利用法向量和区域生长聚类的方法检测道路边沿点。

示例地,可以基于每个所述种子点,利用法向量和区域生长聚类的方法,得到聚类结果,并将聚类结果中的点作为所述道路边沿点。

S104,将所述检测到的道路边沿点拼接,得到道路边界线。

将每个点云子图所确定的边沿点拼接,即可以获得完整的道路边界线。

本公开实施例中,由于将获取的点云地图进行切分以获得多个点云子图,再提取每个所述点云子图的道路边沿种子点,接着基于每个所述种子点以法向量和生长区域聚类的方法确定道路边沿点,可以得到完整的路沿点云,再将每个点云子图的路沿点云拼接,即可得到完整的道路边界线,进而提高了道路边沿检测的精度和鲁棒性。

下面将结合具体实施例对上述S101~S104进行详细介绍。

针对上述S101,在获取该点云地图时,如图6所示,包括以下S1011~S1012:

S1011,获取点云数据帧以及其对应的位姿数据;该点云数据帧和其对应的位姿数据的时间戳同步。

示例地,该点云数据帧可以通过图3中的点云数据采集单元30获取,该位姿数据可以通过图3中的GNSS单元20获取,该时间戳可以通过图3中的多传感器数据时间同步单元50获取。其中,位姿数据包括位置坐标数据和姿态数据。

S1012,根据位姿数据将点云数据帧拼接在一起,得到点云地图。

由于位姿数据和点云数据帧的时间戳同步,进而按照位姿数据(定位信息)将不同时间点的数据帧进行拼接,可以获得精度较高的点云地图。

针对上述S103,在基于每个所述种子点利用法向量和区域生长聚类的方法检测道路边沿点时,如图7所示,包括以下S1031~S1033:

S1031,计算与每个所述种子点之间的距离小于预设距离的点的法向量,并将对应的法向量与地面的法向量垂直的点加入聚类结果中。

参见图8所示,对于每一个种子点q,计算与距离其小于预设距离(q和p1之间的距离)的点的法向量,并将法相量与地面垂直的点加入聚类中。

S1032,分别计算与聚类结果中的每个点之间的距离小于所述预设距离的点的法向量,并将对应的法向量与地面法向量垂直的点加入聚类结果,直至没有新的点加入聚类结果为止。

示例地,对聚类结果中的每个点,以预设距离(p1和p2之间的距离)向外搜索,将预设距离内法相量与地面的法向量垂直的点都加入聚类中。重复步骤S1032,直到没有新的点加入聚类。也即,以固定的搜索半径逐步遍历所有可以连通的区域。

S1033,将所述聚类结果中的点确定为所述道路边沿点。

示例地,对每个聚类,验证其点云的高度,将高度高于基准高度的聚类结果剔除,比如,可以剔除静态车辆、动态车辆等点云。其中,基准高度可以设置为1m,进而能够有效避免错误检测的情况发生。因此,一些实施方式中,步骤S1033可以包括如下子步骤:

a)判断每个聚类结果中的点云的高度,并将点云的高度大于基准高度的异常聚类结果剔除;

b)将剔除了所述异常聚类结果的其他聚类结果中的点确定为所述道路边沿点。

针对上述S104,在将每个所述点云子图所检测到的边沿点拼接以获得道路边界线时,如图9所示,包括以下S1041~S1043:

S1041,将每个所述点云子图进行拼接,以获得所述点云地图的路沿点云。

示例地,将所有点云子图的检测结果拼接,可以得到完整的路沿点云,再将路沿点云进行连线,即可以获得道路边界线。但是,在一些情况下由于一些参数设置,比如车辆遮挡等因素,提取的路沿点云可能存在一些断开的现象,因此,一些实施方式中,为了进一步提高道路边界线的精度,还需要执行后续步骤。

S1042,根据道路的延伸轨迹,选取靠近所述道路中心的路沿点连接成路沿线,并剔除路沿线中偏离所述路沿线中直线部分的路沿点。

示例地,可以根据图3中车辆100行驶轨迹(也即道路延伸轨迹),选取靠近道路中心的路沿点连接成路沿线,并剔除偏离路沿线中直线部分的路沿点。例如,可以计算当前路沿点与路沿线中直线部分之间的角度,当角度偏差超过15°时,则刻确定当前路沿点为错误点,故需要将当前路沿点剔除。

S1043,将断开的路沿线沿着所述道路的延伸方向进行连接,进而形成所述道路边界线。

示例地,沿着道路的延伸方向将断的路沿连接起来,即可得到最终的道路边界线。

本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。

基于同一技术构思,本公开实施例中还提供了与道路边沿检测方法对应的道路边沿检测装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述道路边沿检测方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。

参照图10所示,为本公开实施例提供的一种道路边沿检测装置500的示意图,该道路边沿检测装置包括:

切分模块501,用于对获取的点云地图进行切分,得到多个点云子图;

提取模块502,用于基于所述每个点云子图,提取每个所述点云子图的道路边沿种子点;

检测模块503,用于基于每个所述种子点利用法向量和区域生长聚类的方法检测道路边沿点;

拼接模块504,用于将所述检测到的道路边沿点拼接,得到道路边界线。

在一种可能的实施方式中,所述提取模块502具体用于:

在由两个相邻搜索方向所构成的搜索区域中搜索第一种子点;所述搜索方向为以点云子图的中心点为起点,向外辐射的方向;

将所述第一种子点提取作为每个所述点云子图的道路边沿种子点。

在一种可能的实施方式中,所述提取模块502具体用于:

在所述搜索区域中,按搜索区间搜索所述第一种子点。所述搜索区间为在远离所述中心点方向上,按预设步长在所述搜索区域中形成的区域。

在一种可能的实施方式中,所述第一种子点为相邻两个搜索区间中,点云的高度均值较大的搜索区间内的点。具体地,所述相邻两个搜索区间的点云的高度均值之差的绝对值大于第一阈值且小于第二阈值。

在一种可能的实施方式中,所述检测模块503具体用于:

基于每个所述种子点,利用地面的法向量、与每个所述种子点之间的距离小于预设距离的点的法向量,以区域生长聚类的方法检测所述道路边沿点。

在一种可能的实施方式中,所述检测模块503具体用于:

计算与每个所述种子点之间的距离小于预设距离的点的法向量,并将对应的法向量与地面的法向量垂直的点加入聚类结果中;

分别计算与聚类结果中的每个点之间的距离小于所述预设距离的点的法向量,并将对应的法向量与地面法向量垂直的点加入聚类结果,直至没有新的点加入聚类结果为止;

将所述聚类结果中的点确定为所述道路边沿点。

在一种可能的实施方式中,所述检测模块503具体用于:

判断每个聚类结果中的点云的高度,并将点云的高度大于基准高度的异常聚类结果剔除;

将剔除所述异常聚类结果的其他聚类结果中的点确定为所述道路边沿点。

在一种可能的实施方式中,所述拼接模块504具体用于:

将每个所述点云子图进行拼接,以获得所述点云地图的路沿点云;

将所述路沿点云进行连线,以获得所述道路边界线。

在一种可能的实施方式中,所述拼接模块504具体用于:

根据道路的延伸轨迹,选取靠近所述道路中心的路沿点连接成路沿线,并剔除路沿线中偏离所述路沿线中直线部分的路沿点;

将断开的路沿线沿着所述道路的延伸方向进行连接,进而形成所述道路边界线。

在一种可能的实施方式中,所述切分模块501具体用于:

对获取的关于所述道路的点云地图沿着预设方向进行切分,以获得多个点云子图;所述预设方向与特定方向之间的夹角小于预设夹角;所述特定方向与所述道路的延伸方向垂直。

关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。

本公开实施例中,还提供一种高精度地图,包括多条道路,每条道路包括道路边界线,所述道路边界线通过任一可能的实施方式中的道路边沿检测方法获得。

基于同一技术构思,本公开实施例还提供了一种车辆。参照图11所示,为本公开实施例提供的车辆700的结构示意图,包括处理器701、存储器702、和总线703。其中,存储器702用于存储执行指令,包括内存7021和外部存储器7022;这里的内存7021也称内存储器,用于暂时存放处理器701中的运算数据,以及与硬盘等外部存储器7022交换的数据,处理器701通过内存7021与外部存储器7022进行数据交换。

本申请实施例中,存储器702具体用于存储执行本申请方案的应用程序代码,并由处理器701来控制执行。也即,当车辆700运行时,处理器701与存储器702之间通过总线703通信,使得处理器701执行存储器702中存储的应用程序代码,进而执行前述任一实施例中的方法。

处理器701可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

其中,存储器702可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。

可以理解的是,本申请实施例示意的结构并不构成对车辆700的具体限定。在本申请另一些实施例中,车辆700可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。

本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中的道路边沿检测方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。

本公开实施例所提供的道路边沿检测方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,程序代码包括的指令可用于执行上述方法实施例中的道路边沿检测方法的步骤,具体可参见上述方法实施例,在此不再赘述。

本公开实施例还提供一种计算机程序,该计算机程序被处理器执行时实现前述实施例的任意一种方法。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software DevelopmentKit,SDK)等等。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号