1.本技术属于车辆无人驾驶技术领域,特别涉及一种确定可行驶区域的方法、系统及自动驾驶车辆。
背景技术:2.随着自动驾驶技术的发展与日臻成熟,自动驾驶将成为未来出行的一种重要手段。在自动驾驶中,确定可行驶区域具有非常重要的地位,可用于提供路径规划以及障碍物的规避。
3.传统确定可行驶区域的方法,主要是通过深度学习分割出可行驶区域,此方法需要大量的人工标注以及数据训练,同时对硬件平台具有较高的要求。因此,亟待一种不需要人工标注,并且对硬件平台要求不高的确定可行驶区域的方法,以实现简洁,高效的确定可行驶区域。
技术实现要素:4.本技术提供了一种确定可行驶区域的方法,能够提高确定可行驶区域的效率。
5.第一方面,提供了一种确定车辆可行驶区域的方法,包括:
6.获取激光点云区域中的3d激光点云数据,所述3d激光点云数据为车辆中的激光雷达发射3d激光光束形成的;
7.将所述激光点云区域划分为多个激光点云子区域;
8.将每个激光点云子区域中的3d激光点云数据转化为二值图像;
9.根据所述每个激光点云子区域中的3d激光点云数据转化的二值图像和广度优先搜索算法,确定所述车辆的可行驶区域。
10.在一些可能的实现方式中,所述方法还包括:
11.对所述3d激光点云数据进行滤波处理;
12.其中,所述将所述激光点云区域划分为多个激光点云子区域包括:
13.将滤波激光点云区域划分为所述多个激光点云子区域,所述滤波激光点云区域包括滤波后的3d激光点云数据。
14.在一些可能的实现方式中,所述对所述3d激光点云数据进行滤波处理,包括:
15.根据所述车辆的高度,去除所述车辆高度以上的激光点云数据;
16.根据所述3d激光点云数据的曲率的连续性,去除地面上的激光点云数据。
17.在一些可能的实现方式中,所述将滤波激光点云区域划分为所述多个激光点云子区域,包括:
18.按照激光的光束方向,将所述滤波激光点云区域划分为m个圆环;
19.按照激光的旋转方向,将所述滤波激光点云区域划分为n个扇形;
20.将所述m个圆环和所述n个扇形形成的多个网格作为所述多个激光点云子区域,其中,m为正整数,n为正整数。
21.在一些可能的实现方式中,所述将每个激光点云子区域中的3d激光点云数据转化为二值图像包括:
22.判断所述多个激光电源子区域中的第一激光点云子区域是否存在激光点云,若存在,则所述第一激光点云子区域对应的二值图像的像素值为1;
23.反之,则所述第一激光点云子区域对应的二值图像的像素值为0。
24.在一些可能的实现方式中,所述根据所述二值图像和广度优先搜索算法,确定所述车辆的可行驶区域包括:
25.根据所述二值图像,确定所述多个激光点云子区域中的目标激光点云子区域,所述目标激光点云子区域为距离所述激光雷达最近的位置;
26.根据广度优先搜索算法和所述目标激光点云子区域,确定所述车辆的可行驶区域。
27.第二方面,提供了一种确定车辆可行驶区域的装置。该装置可以是车辆,也可以是可用于该车辆的芯片。该装置具有实现上述第一方面及各种可能的实现方式中的车辆的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
28.该装置可以包括:收发模块和处理模块。其中,该收发模块可以是激光点云获取模块。该处理模块可以是点云滤波模块,网格划分模块,和/或区域提取模块。所述收发模块例如可以是收发器、接收器、发射器中的至少一种。可选的,该收发模块可以包括射频电路或天线。该处理模块可以是处理器。可选地,所述装置还包括存储模块,该存储模块例如可以是存储器。当包括存储模块时,该存储模块用于存储指令或者数据。一种可能的方式中,该处理模块与该存储模块连接,该处理模块可以执行该存储模块存储的指令或源自其他的指令,以使该装置执行上述第一方面及各种可能的实现方式的通信方法。
29.其中,上述任一处提到的处理器,可以是一个通用中央处理器(cpu),微处理器,特定应用集成电路(application-specific integrated circuit,asic),或一个或多个用于控制上述第一方面及各种可能的实现方式的程序执行的集成电路。
30.第三方面,提供了一种确定车辆可行驶区域的系统,包括处理器和存储器,所述存储器中存储有指令,所述处理器执行所述指令时,使得该处理器执行上述第一方面以及第一方面的任意可能的实现方式中的方法。
31.第四方面,提供了一种计算机存储介质,该计算机存储介质中存储有程序代码,该程序代码用于指示执行上述第一方面以及第一方面任意可能的实现方式中的方法的指令。
32.第五方面,提供了一种包含指令的计算机程序产品,其在计算机上运行时,使得计算机执行上述第一方面以及第一方面的任意可能的实现方式中的方法。
33.第六方面,提供了一种自动驾驶车辆,该车辆包括第二方面或第三方面所述的系统。
34.基于上述技术方案,通过获取激光点云区域中的由车辆中的激光雷达发射3d激光光束形成的3d激光点云的数据,并将该激光点云区域划分为多个激光点云子区域中每个激光点云子区域的3d激光点云数据转化为二值图像,并根据二值图像和广度优先搜索算法确定出车辆的可行驶区域。也就是说,基于3d激光点云的可行驶区域提取方法,通过处理激光雷达的点云数据,便于规划模块规划行驶路线以及及时规避障碍物,从而满足自动驾驶车
辆对于高实时性和准确性的需求。
附图说明
35.图1是装有激光雷达车辆的示意图;
36.图2是本技术实施例的确定车辆可行驶区域的方法的示意图;
37.图3是滤波激光区域可以被划分为多个激光点云子区域的示意图;
38.图4是本技术实施例的确定车辆可行驶区域的装置的示意图;
39.图5是本技术实施例的确定车辆可行驶区域的装置的示意性结构图。
具体实施方式
40.下面将结合附图,对本技术中的技术方案进行描述。
41.图1示出了用于执行本技术实施例的车辆的示意图。该车辆按照装有雷达,通常情况下,雷达安装于车辆的前方左右两侧。
42.可以理解的是,车辆可以只安装一个雷达,也可以安装多个雷达。此外,雷达还可以安装于车辆中间,或者其他位置,本技术对此不进行限定。
43.应理解,在下文示出的实施例中,第一、第二以及各种数字编号仅为描述方便进行的区分,并不用来限制本技术实施例的范围。
44.为便于理解本技术实施例,首先结合图2详细说明适用于本技术实施例的确定车辆可行驶区域的方法的示意性流程图。
45.图2示出了本技术实施例的确定车辆可行驶区域的方法的示意图。
46.可以理解的是,本技术实施例的执行主体可以是车辆内装置,车辆内的芯片,也可以是车辆本身,本技术对此不进行限定。为方便描述,下述实施例以车辆为例进行说明。
47.210,获取激光点云区域中的3d激光点云数据,所述3d激光点云数据为车辆中的激光雷达发射3d激光光束形成的。
48.具体地,车辆中的激光雷达发射3d激光光束,在遇到障碍物之后形成激光点云。车辆获取该3d激光点云对应的3d激光点云数据。
49.220,将所述激光点云区域划分为多个激光点云子区域。
50.可选地,该方法还包括:将所述3d激光点云数据进行滤波处理得到滤波后的3d激光点云数据。这样步骤220具体可以是对滤波激光点云区域划分为多个激光点云子区域。其中,滤波激光点云区域包括滤波处理后的3d激光点云数据。
51.一种可能的实现方式,将该3d激光点云数据进行滤波处理具体可以是根据车辆高度,将车辆高度以上的激光点云数据去除掉。
52.另一种可能的实现方式,将该3d激光点云数据进行滤波处理具体可以是根据3d激光点云数据的曲率的连续性去除掉地面上的激光点云数据。
53.可以理解的是,对该3d激光云数据进行滤波处理可以是上述两种可能的实现方式中的任意一种,也可以是上述两种可能的实现方式的结合,本技术对此不进行限定。
54.可选地,将该滤波激光点云区域划分为多个激光点云子区域具体可以是按照激光的光束方向将所述滤波激光点云区域划分为m个圆环,以及按照激光的旋转方向将所述滤波激光点云区域划分为n个扇形,最后将该m个圆环和该n个扇形形成的m*n个网格作为所述
多个激光点云子区域。例如如图3所示,滤波激光区域可以被划分为多个激光点云子区域,该激光点云子区域可以是图3中的s区域。其中,m为正整数,n为正整数。
55.可以理解的是,该多个激光点云子区域可以是多个不同的弧形网格区域。
56.还可以理解的是,该m个圆环的直径可以是均匀增大或均匀减小的,也可以不均匀增大或减小,本技术对此不进行限定。
57.还可以理解的,该n个扇形的弧度可以是相同的,也可以是不同的,本技术对此也不进行限定。
58.230,将每个激光点云子区域中的3d激光点云数据转化为二值图像。
59.可选地,步骤230具体可以是若该多个激光点云子区域中的第一激光点云子区域存在激光点云,则该第一激光点云子区域对应的二值图像的像素值为1。若该多个激光点云子区域中的第一激光点云子区域不存在激光点云,则该第一激光点云子区域对应的二值图像的像素值为0。
60.可以理解的是,该第一激光点云子区域可以是该多个激光点云子区域中的任意一个激光点云子区域,本技术对此不进行限定。相应地,该多个激光点云子区域中的其他激光点云子区域也可以按照上述方式确定对应的二值图像的像素值。
61.240,根据所述每个激光点云子区域中的3d激光点云数据转化的二值图像和广度优先搜索算法,确定所述车辆的可行驶区域。
62.可选地,步骤240具体可以是根据该二值图像确定该多个激光点云子区域中的距离该激光雷达最近位置的激光点云子区域,根据该目标激光点云子区域,并使用广度优先搜索算法遍历二值图像,确定该车辆的可行驶区域。
63.可以理解的是,广度优先搜索算法的基本思想为:首先确定搜索的顶点v,并访问顶点v,接着从顶点v出发,依次访问从未访问过的邻接顶点w1、w2、w3、.......、wi,然后依次访问w1、w2、w3、.......、wi的所有未被访问的邻接顶点,再从这些访问过的顶点出发,访问它们从未访问过的邻接顶点,直到图中所有顶点都被访问过为止。
64.可以理解的是,如果把图像的每个像素点看成为图的一个节点,则二值图像中的每个连通区域都可以看成一个无向图,只要遍历图像中的每个像素点就可以找出每个连通区域,实现对二值图像连通区域组件的标记。大致步骤为:首先扫描图像的每个像素点,获得位置信息与图像的灰度值强度(0~255)成为图的节点,其次对每个节点,初始化状态与获取它的上下左右四个邻域节点,最后使用广度优先搜索算法遍历二值图像。
65.因此,本技术实施例中的确定车辆可行驶区域的方法中,通过获取激光点云区域中的由车辆中的激光雷达发射3d激光光束形成的3d激光点云的数据,并将该激光点云区域划分为多个激光点云子区域中每个激光点云子区域的3d激光点云数据转化为二值图像,并根据二值图像和广度优先搜索算法确定出车辆的可行驶区域。也就是说,基于3d激光点云的可行驶区域提取方法,通过处理激光雷达的点云数据,便于规划模块规划行驶路线以及及时规避障碍物,从而满足自动驾驶车辆对于高实时性和准确性的需求。
66.可以理解的是,为了实现上述实施例中功能,车辆可以包括了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本技术中所公开的实施例描述的各示例的单元及方法步骤,本技术能够以硬件或硬件和计算机软件相结合的形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案
的特定应用场景和设计约束条件。
67.图4和图5为本技术的实施例提供的可能的装置的结构示意图。这些装置可以用于实现上述方法实施例中方法的功能,因此也能实现上述方法实施例所具备的有益效果。
68.如图4所示,装置400包括收发模块和处理模块。具体地,该收发模块可以是激光点云获取模块410。该处理模块可以是点云滤波模块420,网格划分模块430和区域提取模块440。
69.该激光点云获取模块410,用于获取激光点云区域中的3d激光点云数据,所述3d激光点云数据为车辆中的激光雷达发射3d激光光束形成的;
70.该点云滤波模块420,用于将所述激光点云区域划分为多个激光点云子区域;
71.该区域提取模块440,用于将每个激光点云子区域中的3d激光点云数据转化为二值图像;
72.该区域提取模块440,用于根据所述每个激光点云子区域中的3d激光点云数据转化的二值图像和广度优先搜索算法,确定所述车辆的可行驶区域。
73.可选地,该点云滤波模块420,还用于对所述3d激光点云数据进行滤波处理。该网格划分模块430具体用于将滤波激光点云区域划分为所述多个激光点云子区域,所述滤波激光点云区域包括滤波后的3d激光点云数据。
74.可选地,该点云滤波模块420具体用于:
75.根据所述车辆的高度,去除所述车辆高度以上的激光点云数据;
76.根据所述3d激光点云数据的曲率的连续性,去除地面上的激光点云数据。
77.可选地,该网格划分模块430具体用于:
78.按照激光的光束方向,将所述滤波激光点云区域划分为m个圆环;
79.按照激光的旋转方向,将所述滤波激光点云区域划分为n个扇形;
80.将所述m个圆环和所述n个扇形形成的多个网格作为所述多个激光点云子区域,其中,m为正整数,n为正整数。
81.可选地,该区域提取模块440具体用于:
82.判断所述多个激光电源子区域中的第一激光点云子区域是否存在激光点云,若存在,则所述第一激光点云子区域对应的二值图像的像素值为1;
83.反之,则所述第一激光点云子区域对应的二值图像的像素值为0。
84.可选地,该区域提取模块440具体用于:
85.根据所述二值图像,确定所述多个激光点云子区域中的目标激光点云子区域,所述目标激光点云子区域为距离所述激光雷达最近的位置;
86.根据广度优先搜索算法和所述目标激光点云子区域,确定所述车辆的可行驶区域。
87.如图5所示,装置500包括处理器510和接口电路520。处理器510和接口电路520之间相互耦合。可以理解的是,接口电路520可以为收发器或输入输出接口。可选的,通信装置900还可以包括存储器530,用于存储处理器510执行的指令或存储处理器510运行指令所需要的输入数据或存储处理器510运行指令后产生的数据。
88.当装置500用于实现图2所示的方法时,处理器510用于执行上述点云滤波模块420,网格划分模块430和区域提取模块440的功能,接口电路520用于执行上述激光点云获
取模块410的功能。
89.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序或指令。在计算机上加载和执行所述计算机程序或指令时,全部或部分地执行本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其它可编程装置。所述计算机程序或指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。
90.在本技术的各个实施例中,如果没有特殊说明以及逻辑冲突,不同的实施例之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例中的技术特征根据其内在的逻辑关系可以组合形成新的实施例。
91.本技术中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a,b可以是单数或者复数。在本技术的文字描述中,字符“/”,一般表示前后关联对象是一种“或”的关系;。
92.可以理解的是,在本技术的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本技术的实施例的范围。上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定。