1.本发明涉及车辆轨迹规划技术领域,尤其涉及一种栅格地图视觉指引线生成方法及装置。
背景技术:2.道路指引线即为在车辆行驶过程中,通过获取道路区域的中心线作为指引线,提供给车辆系统的规划层以进行轨迹规划。针对于道路指引线,现有技术中通常是通过人工驾驶载有高精度gps(全球定位系统)定位的车辆在目标路段行驶,录制在行驶过程中相应的车辆位置的gps信号所产生的轨迹,从而生成对应的道路指引线,提供给无人驾驶车辆系统的规划层作为参考;或者是通过在人工制作的高精度地图上利用道路的车道线,进一步人工标注出道路的中心线以作为道路指引线。
3.但是现有技术中上述道路指引线获取方法会存在以下问题:
4.1、需要依赖于人工实现,不仅耗时耗力,且还易于产生误差。
5.2、所获取的均是全局的道路指引线,而当利用全局的道路指引线进行无人驾驶轨迹规划时,必须依赖于gps信号在全局的道路指引线进行初步的定位,进而再定位到目标的局部指引线,即道路指引线的获取必须依赖于gps信号,不适用于无法获取gps信号或者gps信号较弱的场景中。如在隧道或者建筑较多的道路等场景中,由于gps信号弱甚至易于发生信号中断,因而就无法适用上述方法获取道路指引线。
技术实现要素:6.本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种实现方法简单、效率以及精度高且适用范围广,无需依赖于gps信息的栅格地图视觉指引线生成方法及装置。
7.为解决上述技术问题,本发明提出的技术方案为:
8.一种栅格地图视觉指引线生成方法,步骤包括:
9.s01.获取车辆行驶过程中采集到的道路环境图像,提取道路区域轮廓信息;
10.s02.从所述道路区域的轮廓信息中提取道路左右边界的点集;
11.s03.根据所述道路左右边界的点集,计算多个道路中间点的坐标;
12.s04.根据各个所述道路中间点的坐标生成道路指引线。
13.进一步的,所述步骤s01包括:
14.s101.对所述道路环境图像进行语义分割,并投影到车体坐标系下得到栅格地图;
15.s102.对步骤s101得到的所述栅格地图进行处理,获取所有的图像轮廓;
16.s103.取所有的图像轮廓中面积最大的轮廓包围区域作为道路区域轮廓。
17.进一步的,所述步骤s101中还包括对投影得到的所述栅格地图执行一次图像的闭运算,得到最终的栅格地图输出。
18.进一步的,所述步骤s01中,将提取的所述道路区域轮廓信息顺序存储在道路区域
轮廓点位置数组中,其中起始点为道路区域轮廓的左上角点,沿着轮廓逆时针顺序得到轮廓中其余点并依次存储在所述道路区域轮廓点位置数组中;所述步骤s02中,顺序取所述道路区域轮廓点位置数组中多个数据点作为道路的右边界,按索引逆序取多个数据点得到道路左边界的点集,得到所述道路左右边界的点集。
19.进一步的,具体取所述道路区域轮廓点位置数组中前部分数据点作为所述道路的右边界,并除去道路最近端的多个数据点。
20.进一步的,所述步骤s03包括:
21.s301.在所述道路左右边界的点集中进行间隔取样,得到多个左右边界点对;
22.s302.计算各所述左右边界点对之间的中间点的坐标值,得到对应的多个道路中间点的坐标值。
23.进一步的,所述步骤s04中,通过在各所述道路中间点之间插入参数三次样条曲线,生成所述道路指引线。
24.进一步的,所述步骤s04后还包括采用间隔采样并插值的方法对生成的所述道路指引线进行平滑。
25.一种栅格地图视觉指引线生成装置,包括:
26.轮廓提取模块,用于获取车辆行驶过程中采集到的道路环境图像,提取道路区域轮廓信息;
27.边界提取模块,用于从所述道路区域的轮廓信息中提取道路左右边界的点集;
28.中间点计算模块,用于根据所述道路左右边界的点集,计算道路中间点的坐标;
29.指引线生成模块,用于根据所述道路中间点的坐标生成道路指引线。
30.一种计算机设备,包括处理器以及存储器,所述存储器用于存储计算机程序,所述处理器用于执行所述计算机程序,所述处理器用于执行所述计算机程序以执行如上述方法。
31.与现有技术相比,本发明的优点在于:本发明利用视觉感知的方法,通过提取待处理图像中道路区域轮廓信息,然后提取道路左右边界的点集,根据左右边界点集计算多个道路中间点的坐标,进而根据各个道路中间点的坐标生成道路指引线,能够直接自动、高效的生成局部的道路指引线,且无需依赖于gps信号,可以灵活的适用于隧道、建筑较多的道路等各类gps信号弱的场景中,生成的道路指引线进而可提供给自动驾驶规划层以进行轨迹规划。
附图说明
32.图1是本实施例栅格地图视觉指引线生成方法的实现流程示意图。
33.图2是本发明具体应用实施例中实现栅格地图视觉指引线生成的详细流程示意图。
34.图3是本发明在具体应用实施例中得到的包含道路区域的栅格地图示意图。
35.图4是本发明在具体应用实施例中得到的道路区域轮廓示意图。
36.图5是本发明在具体应用实施例中生成的道路指引线效果示意图。
具体实施方式
37.以下结合说明书附图和具体优选的实施例对本发明作进一步描述,但并不因此而限制本发明的保护范围。
38.如图1所示,本实施例栅格地图视觉指引线生成方法的步骤包括:
39.s01.获取车辆行驶过程中采集到的道路环境图像,提取道路区域轮廓信息;
40.s02.从道路区域的轮廓信息中提取道路左右边界的点集;
41.s03.根据道路左右边界的点集,计算多个道路中间点的坐标;
42.s04.根据各个道路中间点的坐标生成道路指引线。
43.本实施例利用视觉感知的方法,通过提取待处理图像中道路区域轮廓信息,然后提取道路左右边界的点集,根据左右边界点集计算多个道路中间点的坐标,进而根据各个道路中间点的坐标生成道路指引线,能够直接自动、高效的生成局部的道路指引线,且无需依赖于gps信号,可以灵活的适用于隧道、建筑较多的道路等各类gps信号弱的场景中,生成的道路指引线进而可提供给自动驾驶规划层以进行轨迹规划。
44.本实施例中,上述步骤s01的步骤具体包括:
45.s101.对道路环境图像进行语义分割,投影到车体坐标系下得到栅格地图;
46.s102.对步骤s101得到的栅格地图进行处理,获取所有的图像轮廓;
47.s103.取所有的图像轮廓中面积最大的轮廓包围区域作为道路区域轮廓。
48.本实施例在车辆上预先布置摄像头,在车辆行驶过程,由摄像头实时采集车辆行驶过程中前方的道路区域图像;获取到该道路区域图像后,对道路区域图像首先进行语义分割,可以将图像中各个目标的轮廓分割出,所分割出的目标除道路区域外,也可能是其他车辆、行人、道路上树木等干扰,相比于其他类型的目标,道路区域轮廓在整个图像中占据的面积最大,本实施例利用该特性,通过查找出所有的图像轮廓中面积最大的轮廓包围区域,可以快速、准确的提取出得道路区域轮廓。
49.本实施例上述步骤s101中还包括对投影得到的栅格地图执行一次图像的闭运算,得到最终的栅格地图输出。通过对栅格图像进行闭运算,可以使得栅格地图中的道路区域连通性更好,从而便于更为精准的提取出道路区域轮廓。
50.可以理解的是,上述道路区域轮廓提取的方法也可以根据实际需求采用其他的方法实现。
51.本实施例步骤s01中,将提取的道路区域轮廓信息顺序存储在道路区域轮廓点位置数组中,其中起始点为道路区域轮廓的左上角点,沿着轮廓逆时针顺序得到轮廓中其余点并依次存储在道路区域轮廓点位置数组中;步骤s02中,顺序取道路区域轮廓点位置数组中多个数据点作为道路的右边界,按索引逆序取多个数据点得到道路左边界的点集,得到道路左右边界的点集。道路指引线生成的关键即是找出道路中心线的位置,本实施例利用道路左、右边界来间接计算出道路的中心线上的点。上述在道路区域轮廓点位置数组中,具体取道路区域轮廓点位置数组中前部分数据点作为道路的右边界,并除去道路最近端的多个数据点,然后按索引逆序取多个数据点得到道路左边界的点集,即可得到道路左右边界的点集。
52.本实施例具体通过opencv中findcontours(轮廓提取)函数提取道路区域轮廓信息,由findcontours函数提取的道路区域轮廓信息存储在一个道路区域轮廓点位置数组
中。opencv是一个基于apache2.0开源的跨平台计算机视觉和机器学习软件库,findcontours函数为用于轮廓提取的函数,findcontours函数输出的道路区域轮廓点位置数组的起始点即为轮廓的左上角点,后续的点则是沿着轮廓逆时针顺序存储在数组中。由于道路离车体中心的近端在图像的上部分,因此顺序取数组的前指定数量(如400~500个)的点作为道路的右边界,道路最近端的一系列点对应为图像轮廓中最上方的横向边界线点,该部分点需要删除,因此除去道路区域轮廓点位置数组中排在最后的指定数量的点(如40~60),再按索引逆序取与右边界数量相同的点即可得到道路的左边界的点集。
53.本实施例中步骤s03的步骤具体包括:
54.s301.在道路左右边界的点集中进行间隔取样,得到多个左右边界点对;
55.s302.计算各左右边界点对之间的中间点的坐标值,得到对应的多个道路中间点的坐标值。
56.本实施例具体根据步骤s02中提取的左右边界的点集,分别在左、右边界的点集每间隔指定数量点取一个点,即在左边界点集中每间隔n个点取一个点,同时在右边界点集中每间隔n个点取一个点,得到一系列的左右边界点对,该左右边界点所对应的即为在同一水平线上道路区域的左、右边界点,则依据该左、右边界点即可确定中间点的位置,相比于传统需要利用全局高精度地图获取中心线的方式,无需依赖于gps信号即可实现局部道路中心线的获取,可以适用于各类场景中而不受gpa信号强弱的影响。
57.本实施例步骤s04中,具体通过在各道路中间点之间插入参数三次样条曲线(三次参数样条曲线),即利用三次样条曲线来将各道路中间点形成连续的光滑曲线,从而生成最终的道路指引线。进一步的,由于道路边界是不光滑的,直接求取道路左右边界的所有中间点得到的指引线也是不光滑的,不能满足车辆运动学的要求,本实施例进一步采用间隔采样并插值的方法对道路中心指引线进行平滑,从而使该指引线满足车辆运动学的要求。三次样条曲线在点与点的连接处是连续光滑的,三次样条曲线的一阶导数和二阶导数也是连续的,因而满足自动驾驶运动学的相关要求。
58.步骤s04后还包括采用间隔采样并插值的方法对生成的道路指引线进行平滑,间隔采样并插值的方法即为进行间隔采样后然后采用插值的方式,使得生成的道路指引线更为平滑。
59.可以理解的是,上述根据道路中间点生成道路指引线也可以采用除三次样条曲线以外其他的方式实现。
60.如图2所示,本发明在具体应用实施例中采用上述方法实现道路指引线生成的详细步骤为:
61.步骤1:对车辆行驶过程中采集到的视觉图像进行语义分割,投影到车体坐标系下得到栅格地图,并进行一次图像的闭运算以使得栅格地图中的道路区域连通性更好。得到的道路区域栅格地图如图3所示,,图中黑色填充区域从上至下为道路区域的由近及远区域;
62.步骤2:通过opencv中的findcontours函数对步骤s01的栅格地图图像进行处理,获得图像轮廓信息,取一系列生成的轮廓,取轮廓包围区域最大面积的一个轮廓作为道路区域轮廓,得到的道路区域轮廓具体如图4所示;
63.步骤3:根据步骤2得到的道路区域轮廓点位置数组,由于findcontours函数输出
该数组的起始点为轮廓的左上角点,后续的点沿着轮廓逆时针顺序存储在数组中;由于道路离车体中心的近端在图像的上部分,顺序取数组的前400个点作为道路的右边界,除去道路最近端的一系列点(对应图4最上方的横向的点),即除去数组中排在最后大约40个点,按索引逆序取400个值即可得到道路的左边界的点集;
64.步骤4:根据步骤3得到的左右边界的点集,分别在左右边界的点集每间隔10个点取一个点,得到一系列的左右边界点对;
65.步骤5:根据步骤4得到的点对,求点对之间的中间点的坐标值,得到一系列的道路中间点的坐标值;
66.步骤6:在步骤5中得到的中间点之间插入参数三次样条曲线,如图5所示,从而形成道路指引线,进一步采用间隔采样并插值的方法对道路中心指引线进行平滑,从而使该指引线满足车辆运动学的要求。
67.本实施例栅格地图视觉指引线生成装置包括:
68.轮廓提取模块,用于获取待处理栅格地图图像,提取道路区域轮廓信息;
69.边界提取模块,用于从道路区域的轮廓信息中提取道路左右边界的点集;
70.中间点计算模块,用于根据道路左右边界的点集,计算道路中间点的坐标;
71.指引线生成模块,用于根据道路中间点的坐标生成道路指引线。
72.本实施例中,轮廓提取模块包括:
73.栅格地图转换单元,用于对道路环境图像进行语义分割,并投影到车体坐标系下得到栅格地图;
74.图像轮廓提取单元,用于对栅格地图转换单元得到的栅格地图进行处理,获取所有的图像轮廓;
75.道路区域轮筛选单元,用于取所有的图像轮廓中面积最大的轮廓包围区域作为道路区域轮廓。
76.本实施例中,栅格地图转换单元与图像轮廓提取单元之间还设置有闭运算单元,用于对投影得到的栅格地图执行一次图像的闭运算,得到最终的栅格地图输出。
77.本实施例中,轮廓提取模块具体将提取的道路区域轮廓信息顺序存储在道路区域轮廓点位置数组中,其中起始点为道路区域轮廓的左上角点,沿着轮廓逆时针顺序得到轮廓中其余点并依次存储在道路区域轮廓点位置数组中;边界提取模块具体顺序取道路区域轮廓点位置数组中多个数据点作为道路的右边界,按索引逆序取多个数据点得到道路左边界的点集,得到道路左右边界的点集。
78.本实施例中,中间点计算模块包括:
79.间隔取样单元,在道路左右边界的点集中进行间隔取样,得到多个左右边界点对;
80.中间点计算单元,用于计算各左右边界点对之间的中间点的坐标值,得到对应的多个道路中间点的坐标值。
81.本实施例栅格地图视觉指引线生成装置与上述栅格地图视觉指引线生成方法为一一对应,在此不再一一赘述。
82.本实施例还包括计算机设备,包括处理器以及存储器,存储器用于存储计算机程序,处理器用于执行计算机程序,其特征在于,处理器用于执行计算机程序以执行如上述项方法。本领域技术人员可以理解,上述计算机设备的描述仅仅是示例,并不构成对计算机设
备的限定,可以包括比上述描述更多或更少的部件,或者组合某些部件,或者不同的部件,例如可以包括输入输出设备、网络接入设备、总线等。所称处理器可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,处理器是计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
83.存储器可用于存储计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
84.所述计算机设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个基于模板标注的分布式爬虫方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信号以及软件分发介质等。
85.上述只是本发明的较佳实施例,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。因此,凡是未脱离本发明技术方案的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明技术方案保护的范围内。