本技术涉及自动驾驶,具体涉及一种可行驶区域的轮廓提取方法、智能设备及存储介质。
背景技术:
1、在对车辆进行自动驾驶控制时可以利用车辆上设置的传感器(如雷达等)采集车辆所在环境的数据帧,并利用车辆上设置的感知模型对上述数据帧进行环境感知,以获取车辆所在环境中的可行驶区域和障碍物等信息,再根据这些信息对车辆进行规控(如规划车辆的行驶路径、确定车辆的控制决策)。目前通过感知模型得到的可行驶区域的表达方式包括多边形可行驶区域和栅格占据形式的可行驶区域。由于可行驶区域是对单个数据帧感知得到的,感知结果不是很稳定,存在误检或漏检的情况,因此,在对车辆进行规控前需要对利用单个数据帧得到的可行驶区域进行时序融合,再根据时序融合后的可行驶区域对车辆进行规控。例如,对时序融合后的可行驶区域进行轮廓提取,根据提取到的轮廓规划车辆的行驶路径。
2、目前常规的可行驶区域的时序融合方法和轮廓提取方法主要是基于栅格占据形式的可行驶区域实现的,这种方法存在效率低、精度低的缺点。具体而言,通过感知模型获取栅格占据形式的可行驶区域主要是将以自车为中心一定范围内的矩形地面区域划分成多个栅格,并标识每个栅格的状态;若栅格的类别为地面或障碍物,则将栅格状态标识为占据状态;否则,将栅格状态标识为非占据状态。无论是对可行驶区域进行时序融合,还是对可行驶区域进行轮廓提取,都需要遍历所有栅格,导致执行效率比较低,虽然可以采用四叉树(quad tree)等方法进行优化,但仍无法有效提高执行效率。此外,基于栅格占据形式的可行驶区域存在量化误差,例如,即使可行驶区域只占据了某个栅格的一部分区域,但仍然会认为可行驶区域占据了整个栅格,基于此在完成时序融合或轮廓提取之后会导致可行驶区域的边界位置存在较大误差,上述量化误差最大可以达到栅格分辨率。
3、相应地,本领域需要一种新的技术方案来解决上述问题。
技术实现思路
1、为了克服上述缺陷,提出了本技术,以解决或至少部分地解决如何高效且精准地获取可行驶区域的轮廓的技术问题。
2、在第一方面,提供一种可行驶区域的轮廓提取方法,所述方法包括:
3、获取智能设备所在环境中的可行驶区域,所述可行驶区域为所述智能设备上的感知模型对所述环境数据进行感知得到的多边形可行驶区域;
4、在以所述智能设备为中心且围绕所述中心预设角度的范围内,从所述中心发射多条射线;
5、获取所述多条射线与所述可行驶区域的交点,根据所述交点获取多个立柱,所述立柱为所述可行驶区域位于扇形区域内的子区域,所述扇形区域为相邻的两条射线之间形成的区域;
6、依次遍历所述多个立柱中各立柱的边界点,并根据所述各立柱的边界点的遍历顺序对所述各立柱的边界点进行排序,以获取边界点集合;
7、根据所述边界点集合,获取所述可行驶区域的轮廓;
8、其中,
9、所述立柱的边界点包括上边界点和下边界点,所述上边界点和所述下边界点分别为所述立柱距离所述中心最远和最近的点。
10、在上述可行驶区域的轮廓提取方法的一个技术方案中,所述根据所述交点获取多个立柱,包括:
11、针对各条射线,若所述射线上相邻的两个交点之间形成的线段位于所述可行驶区域内,则将所述线段作为所述立柱。
12、在上述可行驶区域的轮廓提取方法的一个技术方案中,所述方法包括通过以下方式确定所述线段是否位于所述可行驶区域内:
13、将所述相邻的两个交点中距离所述中心最远和最近的交点分别作为第一点和第二点,沿着第一预设方向获取所述可行驶区域位于所述第一点与所述第二点之间的目标轮廓,所述第一预设方向为顺时针方向或逆时针方向;
14、从所述目标轮廓上获取距离所述第一点最近的第三点,以所述第一点和所述第三点分别为起点和终点获取第一向量;
15、从所述目标轮廓上获取距离所述第二点最近的第四点,以所述第四点和所述第二点分别为起点和终点获取第二向量;
16、获取所述相邻的两个交点形成的线段的中点;
17、若所述中点分别位于所述第一向量和所述第二向量的目标侧,则所述线段位于所述可行驶区域内;
18、其中,
19、所述第一向量和所述第二向量的目标侧分别为:所述第一向量和所述第二向量的向量方向沿着所述第一预设方向转动时先指向的一侧。
20、在上述可行驶区域的轮廓提取方法的一个技术方案中,所述可行驶区域为多个,所述方法包括:将属于同一个所述可行驶区域的立柱聚类为一个立柱集合;
21、所述依次遍历所述多个立柱中各立柱的边界点,并根据所述各立柱的边界点的遍历顺序对所述各立柱的边界点进行排序,以获取边界点集合,包括:针对各所述立柱集合,依次遍历所述立柱集合内各立柱的边界点,并根据所述各立柱的边界点的遍历顺序对所述各立柱的边界点进行排序,以获取所述立柱集合对应的边界点集合。
22、在上述可行驶区域的轮廓提取方法的一个技术方案中,所述将属于同一个所述可行驶区域的立柱聚类为一个立柱集合,包括:
23、分别建立所述多个立柱中各立柱的连通性树状图;
24、根据所述各立柱的连通性树状图,搜索具有连通性的立柱并将所述具有连通性的立柱聚类到同一个立柱集合;
25、其中,
26、第一立柱的连通性树状图包括:根节点、右子树、左子树,所述右子树包括与所述根节点连接的右节点,所述左子树包括与所述根节点连接的左节点,所述第一立柱为所述多个立柱中的任意一个;
27、所述根节点表示所述第一立柱;
28、所述右节点表示在所述第一立柱的右侧且与所述第一立柱具有连通性的第二立柱,所述左节点表示在所述第一立柱的左侧且与所述第一立柱具有连通性的第二立柱,所述第二立柱为所述多个立柱中的剩余立柱;
29、所述第一立柱的右侧和左侧分别为:所述第一立柱的立柱方向沿着顺时针方向和逆时针方向转动时先指向的一侧,所述立柱方向为由所述第一立柱的下边界点指向上边界点的方向。
30、在上述可行驶区域的轮廓提取方法的一个技术方案中,所述方法包括:若所述第一立柱与所述第二立柱相邻且存在重叠,则所述第一立柱与所述第二立柱具有连通性。
31、在上述可行驶区域的轮廓提取方法的一个技术方案中,所述搜索具有连通性的立柱并将所述具有连通性的立柱聚类到同一个立柱集合,包括:
32、步骤s1:将所有立柱初始化为未访问;
33、步骤s2:选取一个未访问的立柱作为第三立柱,并设置与所述第三立柱对应的立柱集合,将所述第三立柱加入到所述立柱集合,并将所述第三立柱修改为已访问;
34、步骤s3:根据所述第三立柱的连通性树状图,获取第四立柱,将所述第四立柱加入到所述立柱集合,并将所述第四立柱修改为已访问,所述第四立柱为所述连通性树状图中右节点和/或左节点表示的立柱;
35、步骤s4:根据所述第四立柱的连通性树状图,获取第五立柱;若所述第五立柱为未访问,则将所述第五立柱加入到所述立柱集合,并将所述第五立柱修改为已访问,所述第五立柱为所述第四立柱的连通性树状图中右节点和/或左节点表示的立柱;
36、步骤s5:将所述第五立柱作为新的第四立柱,重复执行步骤s4,直至不再获取到未访问的立柱,以完成所述立柱集合的聚类;
37、步骤s6:对于剩余未访问的立柱重复执行步骤s2至步骤s5,直至所有立柱均被修改为已访问。
38、在上述可行驶区域的轮廓提取方法的一个技术方案中,所述依次遍历所述立柱集合内各立柱的边界点,包括:
39、根据所述立柱集合内各立柱的连通性树状图与预设遍历规则,沿着第二预设方向依次遍历所述各立柱的边界点;
40、其中,
41、所述预设遍历规则包括第一遍历规则和第二遍历规则;
42、所述第一遍历规则包括:
43、当所述第二预设方向为顺时针方向时:若当前遍历到的边界点是第一目标立柱的上边界点,则下一个遍历目标树状图中右节点所表示的第二目标立柱,所述目标树状图为所述第一目标立柱的连通性树状图;若当前遍历到的边界点是第一目标立柱的下边界点,则下一个遍历所述目标树状图中左节点所表示的第三目标立柱;
44、当所述第二预设方向为逆时针方向时:若当前遍历到的边界点是第一目标立柱的上边界点,则下一个遍历所述第三目标立柱;若当前遍历到的边界点是第一目标立柱的下边界点,则下一个遍历所述第二目标立柱;
45、所述第二遍历规则包括:若当前遍历到的边界点是第一目标立柱的上边界点,则下一个遍历上边界点;若当前遍历到的边界点是第一目标立柱的下边界点,则下一个遍历下边界点。
46、在上述可行驶区域的轮廓提取方法的一个技术方案中,所述预设遍历规则包括第三遍历规则,所述第三遍历规则包括:
47、当所述第二预设方向为顺时针方向时:若当前遍历到的边界点是第一目标立柱的上边界点、所述目标树状图没有右节点,则下一个遍历所述第一目标立柱的下边界点;若当前遍历到的边界点是第一目标立柱的下边界点、所述目标树状图没有左节点,则下一个遍历所述第一目标立柱的上边界点;
48、当所述第二预设方向为逆时针方向时:若当前遍历到的边界点是第一目标立柱的上边界点、所述目标树状图没有左节点,则下一个遍历所述第一目标立柱的下边界点;若当前遍历到的边界点是第一目标立柱的下边界点、所述目标树状图没有右节点,则下一个遍历所述第一目标立柱的上边界点。
49、在上述可行驶区域的轮廓提取方法的一个技术方案中,在所述第一立柱的连通性树状图中,所述右节点在所述右子树中从左到右依次排列,且在所述依次排列之后所述右节点所表示立柱与所述中心之间的距离依次减小;所述左节点在所述左子树中从左到右依次排列,且在所述依次排列之后所述左节点所表示立柱与所述中心之间的距离依次减小;
50、所述预设遍历规则包括第四遍历规则,所述第四遍历规则包括:
51、当所述第二预设方向为顺时针方向时:若当前遍历到的边界点是第一目标立柱的上边界点、所述目标树状图有多个右节点,则下一个遍历所述目标树状图中首个右节点所表示第四目标立柱的上边界点,所述首个右节点为排列在所述右子树最左侧的右节点;若当前遍历到的边界点是第一目标立柱的下边界点、所述目标树状图有多个左节点,则下一个遍历所述目标树状图中最后一个左节点所表示第五目标立柱的下边界点,所述最后一个左节点为排列在所述左子树最右侧的左节点;
52、当所述第二预设方向为逆时针方向时:若当前遍历到的边界点是第一目标立柱的上边界点、所述目标树状图有多个左节点,则下一个遍历所述第五目标立柱的上边界点;若当前遍历到的边界点是第一目标立柱的下边界点、所述目标树状图有多个右节点,则下一个遍历所述第四目标立柱的下边界点。
53、在上述可行驶区域的轮廓提取方法的一个技术方案中,在所述第一立柱的连通性树状图中,所述右节点在所述右子树中从左到右依次排列,且在所述依次排列之后所述右节点所表示立柱与所述中心之间的距离依次减小;所述左节点在所述左子树中从左到右依次排列,且在所述依次排列之后所述左节点所表示立柱与所述中心之间的距离依次减小;
54、所述预设遍历规则包括第五遍历规则,所述第五遍历规则包括:
55、当所述第二预设方向为顺时针方向时:
56、若当前遍历到的边界点是第一目标立柱的上边界点、下一个遍历的第六目标立柱为一对多立柱,则在所述第六目标立柱的连通性树状图中,检测表示所述第一目标立柱的第一节点的左侧是否有第二节点;如果有第二节点,则遍历所述第二节点所表示第七目标立柱的下边界点;如果没有第二节点,则遍历所述第六目标立柱的边界点;所述一对多立柱为所述立柱的连通性树状图有多个右节点和/或多个左节点;
57、若当前遍历到的边界点是第一目标立柱的下边界点、下一个遍历的第六目标立柱为所述一对多立柱,则在所述第六目标立柱的连通性树状图中,检测所述第一节点的右侧是否有第三节点;如果有第三节点,则遍历所述第三节点所表示第八目标立柱的上边界点;如果没有第三节点,则遍历所述第六目标立柱的边界点;
58、当所述第二预设方向为逆时针方向时:
59、若当前遍历到的边界点是第一目标立柱的上边界点、下一个遍历的第六目标立柱为所述一对多立柱,则在所述第六目标立柱的连通性树状图中,检测所述第一节点的右侧是否有所述第三节点;如果有所述第三节点,则遍历所述第三节点所表示所述第八目标立柱的下边界点;如果没有所述第三节点,则遍历所述第六目标立柱的边界点;
60、若当前遍历到的边界点是第一目标立柱的下边界点、下一个遍历的第六目标立柱为所述一对多立柱,则在所述第六目标立柱的连通性树状图中,检测所述第一节点的左侧是否有所述第二节点;如果有所述第二节点,则遍历所述第二节点所表示所述第七目标立柱的上边界点;如果没有所述第二节点,则遍历所述第六目标立柱的边界点。
61、在第二方面,提供一种智能设备,该智能设备包括至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器中存储有计算机程序,所述计算机程序被所述至少一个处理器执行时实现上述可行驶区域的轮廓提取方法的技术方案中任一项技术方案所述的方法。
62、在第三方面,提供一种计算机可读存储介质,该计算机可读存储介质其中存储有多条程序代码,所述程序代码适于由处理器加载并运行以执行上述可行驶区域的轮廓提取方法的技术方案中任一项技术方案所述的方法。
63、本技术上述一个或多个技术方案,至少具有如下一种或多种有益效果:
64、在实施本技术提供的可行驶区域的轮廓提取方法的一个技术方案中,可以获取智能设备所在环境中的可行驶区域,可行驶区域为智能设备上的感知模型对环境数据进行感知得到的多边形可行驶区域;在以智能设备为中心且围绕中心预设角度的范围内,从中心发射多条射线,所有相邻的两条射线之间的夹角均相同;获取多条射线与可行驶区域的交点,根据交点获取多个立柱,立柱为可行驶区域位于扇形区域内的子区域,扇形区域为相邻的两条射线之间形成的区域;依次遍历多个立柱中各立柱的边界点,并根据各立柱的边界点的遍历顺序对各立柱的边界点进行排序,以获取边界点集合;根据边界点集合,获取可行驶区域的轮廓;其中,立柱的边界点包括上边界点和下边界点,上边界点和下边界点分别为立柱距离中心最远和最近的点。
65、上述实施方案是利用射线对多边形可行驶区域进行空间划分,而现有技术在基于栅格占据形式的可行驶区域进行轮廓提取时是利用栅格对矩形地面区域进行空间划分,上述实施方案进行空间划分之后得到的射线数量远远小于上述现有技术进行空间划分之后得到的栅格数量,例如,在一些场景中射线数量为1200条,栅格数量为250000个。由于射线数量远远小于栅格数量,在提取轮廓时遍历射线的效率会远远高于遍历栅格的效率,从而使得上述实施方案提取轮廓的效率远远高于上述现有技术提取轮廓的效率。
66、此外,上述实施方案在提取轮廓时是遍历立柱的上、下边界点,并非是遍历立柱所有的边界点,基于此,可以进一步提高轮廓的提取效率。
67、另外,通过调整射线的密集程度可以灵活地调轮廓的精度,若需要较高的轮廓精度,增大射线的密集程度即可。
1.一种可行驶区域的轮廓提取方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述根据所述交点获取多个立柱,包括:
3.根据权利要求2所述的方法,其特征在于,所述方法包括通过以下方式确定所述线段是否位于所述可行驶区域内:
4.根据权利要求1所述的方法,其特征在于,
5.根据权利要求4所述的方法,其特征在于,所述将属于同一个所述可行驶区域的立柱聚类为一个立柱集合,包括:
6.根据权利要求5所述的方法,其特征在于,所述方法包括:
7.根据权利要求5所述的方法,其特征在于,所述搜索具有连通性的立柱并将所述具有连通性的立柱聚类到同一个立柱集合,包括:
8.根据权利要求5所述的方法,其特征在于,所述依次遍历所述立柱集合内各立柱的边界点,包括:
9.根据权利要求8所述的方法,其特征在于,所述预设遍历规则包括第三遍历规则,所述第三遍历规则包括:
10.根据权利要求8所述的方法,其特征在于,在所述第一立柱的连通性树状图中,所述右节点在所述右子树中从左到右依次排列,且在所述依次排列之后所述右节点所表示立柱与所述中心之间的距离依次减小;所述左节点在所述左子树中从左到右依次排列,且在所述依次排列之后所述左节点所表示立柱与所述中心之间的距离依次减小;
11.根据权利要求8所述的方法,其特征在于,在所述第一立柱的连通性树状图中,所述右节点在所述右子树中从左到右依次排列,且在所述依次排列之后所述右节点所表示立柱与所述中心之间的距离依次减小;所述左节点在所述左子树中从左到右依次排列,且在所述依次排列之后所述左节点所表示立柱与所述中心之间的距离依次减小;
12.一种智能设备,其特征在于,包括:
13.一种计算机可读存储介质,其中存储有多条程序代码,其特征在于,所述程序代码适于由处理器加载并运行以执行权利要求1至11中任一项所述的可行驶区域的轮廓提取方法。