用于自动驾驶中的道路标识制图及车辆定位方法及系统
技术领域
本发明涉及自动驾驶的技术领域,具体涉及一种用于自动驾驶中的道路标识制图及车辆定位方法及系统。
背景技术
随着计算机科学和机器人技术的发展,自动驾驶车辆在军事、民用和科学研究等诸多方面得到了广泛的应用,它集中了结构学、电子学、控制论和人工智能等多学科的最新研究成果,具有广阔的应用前景。
在自动驾驶和辅助驾驶领域,真实交通场景中高精度和鲁棒的定位尤为重要。在城市交通中,仅仅通过全球卫星导航系统无法到达厘米级的定位。如果结合惯性导航、惯性测量单元和全球卫星导航系统可以到达厘米级的定位,但是,典型的交通场景常常一些干扰,比如植被、建筑物的堵塞遮挡或者反射影响,导致定位失败。
发明内容
有鉴于此,有必要提供一种包含充足信息的地图,并通过与地图的比较来确定车辆具体位置的用于自动驾驶中的道路标识制图及车辆定位方法及系统。
一种用于自动驾驶中的道路标识制图及车辆定位方法,所述用于自动驾驶中的道路标识制图及车辆定位方法包括以下步骤:
S1、通过结合双目摄像机获取的图像和激光雷达的图像,以及全球导航卫星系统的位置信息,制作高精度路面特征高精度地图;
S2、利用摄像机获取的实时图像,检测出车辆当前位置邻近区域的道路标识的边缘点;
S3、根据卡尔曼滤波定位模型及车辆的速率和偏航率估算车辆当前的粗略位置,并把高精度地图中相对车辆当前位置邻近区域的道路标识映射到摄像机获取的实时图像上;
S4、利用卡尔曼滤波定位模型对高精度地图中道路标识的线段采样点与图像中检测的边缘点进行最近距离间的匹配,得到车辆的最优位置估计,实现车辆的精确定位。
一种用于自动驾驶中的道路标识制图及车辆定位系统,所述用于自动驾驶中的道路标识制图及车辆定位系统包括以下步骤:
高精度地图制作模块、用于通过结合双目摄像机获取的图像和激光雷达的图像,以及全球导航卫星系统的位置信息,制作高精度路面特征高精度地图;
边缘点获取模块、用于利用摄像机获取的实时图像,检测出道路标识的边缘点;
道路标识映射模块、用于根据卡尔曼滤波定位模型及车辆的速率和偏航率估算车辆当前的粗略位置,并把高精度地图中相对车辆当前位置邻近区域的道路标识映射到摄像机获取的实时图像上;
匹配定位模块、用于利用卡尔曼滤波定位模型对高精度地图中道路标识的线段采样点与图像中检测的边缘点进行最近距离间的匹配,得到车辆的最优位置估计,实现车辆的精确定位。
本发明所述用于自动驾驶中的道路标识制图及车辆定位方法及系统,其通过双目摄像机和激光雷达的配合使用,半自动生成高精度路面特征高精度地图,并通过双目摄像机的获取图像,检测图像上道路标识的边缘点,将边缘点与高精度路面特征高精度地图上的线段的采样点进行匹配,并用卡尔曼滤波定位模型优化找出最优匹配,从而完成对车辆的定位。本发明所述用于自动驾驶中的道路标识制图及车辆定位方法及系统的定位稳定,鲁棒性强,且不受植被障碍物遮挡反射影响,同时相对于雷达传感器,双目摄像机价格更适合商业化推广,价格低廉,适合民用。
附图说明
图1是本发明所述的用于自动驾驶中的道路标识制图及车辆定位方法的流程框图;
图2是图1中步骤S1的流程框图;
图3是图1中步骤S2的流程框图;
图4是图3中步骤S21的流程框图;
图5是图3中步骤S22的流程框图;
图6是图1中步骤S3的流程框图;
图7是图1中步骤S4的流程框图;
图8是本发明所述的用于自动驾驶中的道路标识制图及车辆定位系统的模块框图;
图9是图8中高精度地图制作模块的子模块框图;
图10是图8中边缘点获取模块的子模块框图;
图11是图10中车道线检测子模块的单元框图;
图12是图10中路面标识检测子模块的单元框图;
图13是图8中道路标识映射模块的子模块框图;
图14是图8中匹配定位模块的子模块框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明,应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明实施例提供一种用于自动驾驶中的道路标识制图及车辆定位方法,所述用于自动驾驶中的道路标识制图及车辆定位方法包括以下步骤:
S1、通过结合双目摄像机获取的图像和激光雷达的图像,以及全球导航卫星系统的位置信息,制作高精度路面特征高精度地图。
具体的,如图2所示,所述步骤S1包括以下分步骤:
S11、根据全球导航卫星系统的原始数据获得车辆的位置信息;
S12、对于道路标线清晰且没有障碍物遮挡的路面,利用双目摄像机获取可见光图像数据,根据可见光图像数据自动生成半成品地图;
S13、对于有复杂分歧路口的路况,或者对面车道的路面标识不太清楚的情况,采用激光扫描器获取激光雷达图像数据,手动在雷达图像数据上画出车道线和路面标识,并在离线高精度地图编辑器中添加道路标识的细节;
S14、结合激光图像数据和双目图像数据,半自动地生成高精度地图。
所述双目摄像机采集可见光图像数据,所述可见光图像数据经过逆透视变换生成鸟瞰图,检测出车道路边标识并生成半成品地图,根据激光雷达的特性,其获取的激光雷达图像数据上的车道线、路面标识都会比较清晰,因此可以手动在雷达图像上画出车道线和路面标识,并在离线高精度地图编辑器中添加上述道路标识的细节,通过与半成品地图的结合,从而半自动地生成高精度地图。
S2、利用摄像机获取的实时图像,检测出车辆当前位置邻近区域的道路标识的边缘点。
具体的,所述道路标识的边缘点包括和路面标识的边缘点。因此,如图3所示,所述步骤S2包括以下分步骤:
S21、利用摄像机获取的实时图像,检测出车辆当前位置邻近区域的车道线的边缘点。
其中,如图4所示,步骤S21中提取车道线边缘点的具体步骤如下:
S211、设定检测区域,对图像上的检测区域进行边缘强度计算,通过自适应阈值检测得到道路标识的边缘点,
S212、对所述边缘点进行上升沿、下降沿集合的分类,并分别对上升沿、下降沿边缘点进行Hough变换,得到上升沿、下降沿边缘直线;
S213、对得到的上升沿、下降沿边缘直线进行车道线配对得到车道线,提取车道线的边缘点,所述车道线配对是根据两条直线的平行关系和位置关系进行匹配的。
S22、利用摄像机获取的实时图像,检测出车辆当前位置邻近区域的路面标识的边缘点。其中,所述路面标识包括导流线、停止线以及各类指示箭头。
其中,如图5所示,步骤S22中提取导流线、停止线、各类指示箭头的边缘点的具体步骤如下:
S221、对检测区域进行LSD直线检测,并对LSD直线检测得到的局部直线进行描画直线,形成各个独立连通域;
S222、对连通域进行初步筛选,除掉面积、大小、形状不符合的连通域;
S223、制作SVM分类器,利用分类器进行对连通域进行分类,得到导流线、停止线、各类指示箭头的标识精确分类,提取路面标识的边缘点。
S3、根据卡尔曼滤波定位模型估算车辆当前的粗略位置,并把高精度地图中相对车辆当前位置邻近区域的道路标识映射到摄像机获取的实时图像上。
其中,如图6所示,所述步骤S3包括以下分步骤:
S31、根据前一时刻车辆位置信息,结合车辆速率和偏航率,得到车辆当前时刻的位置估计值;
S32、根据车辆的位置估计值,找出对应的高精度地图中车辆的当前位置邻近区域范围;
S33、把高精度地图中相对车辆当前位置邻近区域的道路标识映射到摄像机获取的实时图像上。
通过对相同位置的同一固定物体进行对比,能够实现对高精度地图和可见光图像数据的匹配。其中,
车辆位置的状态向量:
其中(x,y)T为车辆二维位置,为车辆方向;
车辆位置的状态转换函数:
其中,υ是车辆速率,是偏航率,这两参数都是通过车辆的惯性测量单元获取的。
S4、利用卡尔曼滤波定位模型对高精度地图中道路标识的线段采样点与图像中检测的边缘点进行最近距离间的匹配,得到车辆的最优位置估计,实现车辆的精确定位。
具体的,如图7所示,所述步骤S4包括以下分步骤:
S41、对高精度地图上的道路标识的线段进行采样,得到线段采样点;
S42、将高精度地图中道路标识的线段采样点与图像中检测的边缘点进行匹配;
S43、计算检测图像中道路标识的边缘点与高精度地图中道路标识的线段采样点之间的横向残差和纵向残差;
S44、利用横向残差和纵向残差,并通过卡尔曼滤波定位模型,得到当前时刻车辆的最优位置估计,实现车辆的精确定位。
由于双目摄像机获取的可见光图像中,道路标识的表现形式为边缘点,而高精度地图数据中,道路标识的表现形式为边缘线段,每个线段被定义成:起点,终点,属性;其中起点、终点属于二维坐标系,给出经度和纬度数据,属性表示为实线、虚线、路沿石、停止线以及各种箭头指示标记,因此,需要对边缘线段进行采样点提取。
通过对地图中的道路标识线段提取采样点,并在图像中找出与所述采样点位置最近的道路标识边缘点,根据卡尔曼滤波定位模型迭代计算出残差最小时即为最佳的匹配,并结合高精度地图中道路标识的位置信息,从而得到车辆的精确位置。
由于高精度地图中存放的路面标识的位置信息是基于大地直角坐标系的。因此,需要把地图中路面标识的线段采样点转换到车辆坐标系,进而可以把地图上的线段画在图像上面。
车辆坐标系,是用来描述汽车运动的特殊动坐标系,其原点与质心重合,当车辆在水平路面上处于静止状态,X轴平行于地面指向车辆后方,Z轴通过汽车质心指向上方,Y轴由驾驶员指向副驾驶方向为正。具体如下:
将地图中路面标识的线段采样点转换到车辆坐标系:
预测位置,即地图上的线段采样点的坐标向量:
观测位置,即图像上检测的边缘点的坐标向量:
观测模型即为预测位置和测量位置的残差:
r=z-h(x)
通过卡尔曼滤波定位模型的不断迭代,求出该时刻车辆的最优位置估计。
本发明还提供一种用于自动驾驶中的道路标识制图及车辆定位系统,如图8所示,所述用于自动驾驶中的道路标识制图及车辆定位系统包括以下功能模块:
高精度地图制作模块、用于通过结合双目摄像机获取的图像和激光雷达的图像,以及全球导航卫星系统的位置信息,制作高精度路面特征高精度地图;
边缘点获取模块、用于利用摄像机获取的实时图像,检测出道路标识的边缘点;
道路标识映射模块、用于根据卡尔曼滤波定位模型及车辆的速率和偏航率估算车辆当前的粗略位置,并把高精度地图中相对车辆当前位置邻近区域的道路标识映射到摄像机获取的实时图像上;
匹配定位模块、用于利用卡尔曼滤波定位模型对高精度地图中道路标识的线段采样点与图像中检测的边缘点进行最近距离间的匹配,得到车辆的最优位置估计,实现车辆的精确定位。
其中,如图9所示,所述高精度地图制作模块包括以下子模块:
位置获取子模块、用于根据全球导航卫星系统的原始数据获得车辆的位置信息;
半成品地图获取子模块、用于对于道路标线清晰且没有障碍物遮挡的路面,利用双目摄像机获取可见光图像数据,根据可见光图像数据自动生成半成品地图;
手动编辑子模块、用于对于有复杂分歧路口的路况,或者对面车道的路面标识不太清楚的情况,采用激光扫描器获取激光雷达图像数据,手动在雷达图像数据上画出车道线和路面标识,并在离线高精度地图编辑器中添加道路标识的细节;
高精度地图生成子模块、用于结合激光图像数据和双目图像数据,半自动地生成高精度地图。
由于所述道路标识的边缘点包括车道线边缘点和路面标识的边缘点,因此,如图10所示,所述边缘点获取模块包括以下子模块:
车道线检测子模块、用于利用摄像机获取的实时图像,检测出车辆当前位置邻近区域的车道线的边缘点;
路面标识检测子模块、用于利用摄像机获取的实时图像,检测出车辆当前位置邻近区域的路面标识的边缘点,其中,所述路面标识包括导流线、停止线、各类指示箭头。
如图11所示,所述车道线检测子模块包括以下单元:
边缘点检测单元、用于设定检测区域,对图像上的检测区域进行边缘强度计算,通过自适应阈值检测得到道路标识的边缘点,
边缘直线检测单元、用于对所述边缘点进行上升沿、下降沿集合的分类,并分别对上升沿、下降沿边缘点进行Hough变换,得到上升沿、下降沿边缘直线;
车道线边缘点提取单元、用于对得到的上升沿、下降沿边缘直线进行车道线配对得到车道线,提取车道线的边缘点;
如图12所示,所述路面标识检测子模块包括以下单元:
直线检测单元、用于对检测区域进行LSD直线检测,并对LSD直线检测得到的局部直线进行描画直线,形成各个独立连通域;
连通域筛选单元、用于对连通域进行初步筛选,除掉面积、大小、形状不符合的连通域;
路面标识边缘点提取单元、用于制作SVM分类器,利用分类器进行对连通域进行分类,得到导流线、停止线、各类指示箭头的标识精确分类,提取路面标识的边缘点。
如图13所示,所述道路标识映射模块包括以下子模块:
位置估计子模块、用于根据前一时刻车辆位置信息,结合车辆速率和偏航率,得到车辆当前时刻的位置估计值;
区域确定子模块、用于根据车辆的位置估计值,找出对应的高精度地图中车辆的当前位置邻近区域范围;
区域映射子模块、用于把高精度地图中相对车辆当前位置邻近区域的道路标识映射到摄像机获取的实时图像上。
如图14所示,所述匹配定位模块包括以下子模块:
线段采样子模块、用于对高精度地图上的道路标识的线段进行采样,得到线段采样点;
提取点匹配子模块、用于将高精度地图中道路标识的线段采样点与图像中检测的边缘点进行匹配;
残差计算子模块、用于计算检测图像中道路标识的边缘点与高精度地图中道路标识的线段采样点之间的横向残差和纵向残差;
最优值匹配子模块、用于利用横向残差和纵向残差,并通过卡尔曼滤波定位模型,得到当前时刻车辆的最优位置估计,实现车辆的精确定位。
本发明所述用于自动驾驶中的道路标识制图及车辆定位方法及系统,其通过双目摄像机和激光雷达的配合使用,半自动生成高精度路面特征高精度地图,并通过双目摄像机的获取图像,检测图像上道路标识的边缘点,将边缘点与高精度路面特征高精度地图上的线段的采样点进行匹配,并用卡尔曼滤波定位模型优化找出最优匹配,从而完成对车辆的定位。本发明所述用于自动驾驶中的道路标识制图及车辆定位方法及系统的定位稳定,鲁棒性强,且不受植被障碍物遮挡反射影响,同时相对于雷达传感器,双目摄像机价格更适合商业化推广,价格低廉,适合民用。
以上装置实施例与方法实施例是一一对应的,装置实施例简略之处,参见方法实施例即可。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能性一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应超过本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机储存器、内存、只读存储器、电可编程ROM、电可檫除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其他形式的存储介质中。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。