CN114387576A - 一种车道线识别方法、系统、介质、设备及信息处理终端 - Google Patents
一种车道线识别方法、系统、介质、设备及信息处理终端 Download PDFInfo
- Publication number
- CN114387576A CN114387576A CN202111501632.2A CN202111501632A CN114387576A CN 114387576 A CN114387576 A CN 114387576A CN 202111501632 A CN202111501632 A CN 202111501632A CN 114387576 A CN114387576 A CN 114387576A
- Authority
- CN
- China
- Prior art keywords
- lane line
- array
- line
- coordinate
- lane
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Image Analysis (AREA)
Abstract
本发明属于车道线识别技术领域,公开了一种车道线识别方法、系统、介质、设备及信息处理终端,包括:获取车道线二值图并转化为灰度图,建立平面直角坐标系;提取车道直线矢量和坐标系中拟合直线上的两个端点坐标,并计算直线的点斜式方程的参数值;判断斜率,检测车道线数量以及偏移量;计算该直线与所提取直线的交点;对存储交点x坐标的数组进行遍历,对新的数组进行遍历;获取当前车道线的坐标,获取到当前画面中的车相对于计算出的车道线的偏移量;通过获取左右车道线数组的长度,获得左右车道线的数量。本发明的车道线识别方法,适用于神经网络语义分割导出图像的数据提取,具有提取效率高、速度快、适用性强等特点。
Description
技术领域
本发明属于车道线识别技术领域,尤其涉及一种车道线识别方法、系统、介质、设备及信息处理终端。
背景技术
目前,作为车辆的行驶辅助控制,已知有选择与本车辆行驶于同一车道上的车辆作为前行车辆,并追踪该选择出的前行车辆行驶的自适应巡航控制系统、为车辆不脱离左右行驶车道线而控制车辆的行驶的车道保持辅助等各种控制。
在这样的行驶辅助控制中,进行车辆上搭载有相机,对车辆前方进行拍摄并识别行驶车道线,并且使用识别出的行驶车道线来控制车辆的行驶的处理。在现有车道线识别的相关专利文献中,公开了根据由相机拍摄到的图像内的行驶车道线来计算表示行驶道路的弯曲度的回旋线参数,并使用该计算出的回旋线参数预测行驶道路上车辆将来行为的方法。但是,现有传统车道线识别方法识别精度较低,且存在基于行驶车道线的形状的车辆行驶控制的控制性降低的问题。因此,亟需设计一种新的车道线识别方法及系统。
通过上述分析,现有技术存在的问题及缺陷为:现有车道线识别方法识别精度较低,且存在基于行驶车道线的形状的车辆行驶控制的控制性降低的问题。
解决以上问题及缺陷的难度为:传统的车道线识别受实际环境因素影响很大,如何降低车道线提取受环境的影响程度,提高车道线提取准确度有一定难度;另一方面,对所提取出来的车道线图像转换成计算机能够直接导出的控制指令也存在一定的难度。在识别车道线的过程中,发现在各种复杂的环境情况下,任何一种算法对车道线的识别都不能达到很高的准确度,所以把功能定位明确为辅助行驶,也就是在置信度达到一定的程度后,再对该数据进行采集实现。车道线识别最初尝试了yolo+lannet的方法进行识别,其中yolo识别路标、行人、红绿灯。lannet进行车道线的识别。仿真运行,效果不错,移植到机器人上后,由于jetson nano的资源有限,两个神经网络无法很好运行起来,于是只好另辟蹊径了。修改了识别的方法,尝试采用yolo+传统视觉识别。虽然将lannet改为传统视觉使得小车可以很好的运行。但是,传统视觉识别车道线的效果并不是很理想,鲁棒性低,小车只有运行在光源恒定,无反光无暗斑的场地才能达到比较好的效果。
解决以上问题及缺陷的意义为:本发明通过改进YOLOP框架,在不影响原有交通目标检测、可行驶区域分割和车道线检测三大视觉任务的情况下,增加了车道线导出图像提取功能,并且通过一系列数学计算,得到offset(偏移量)、左右两边的车道线数目以及置信度。对比其他传统车道线识别系统,具有更高的准确度。在处理好输出结果后,通过编写ros程序,成功地将数据上报到ros navigation包中的move_base包里面,在经过优先级处理后,完成了车道保持系统,具有较强的鲁棒性,可以应用到轻舟机器人。
发明内容
针对现有技术存在的问题,本发明提供了一种车道线识别方法、系统、介质、设备及信息处理终端,尤其涉及一种基于激光雷达和深度学习ROS系统的车道线识别方法、系统、介质、设备及信息处理终端。
本发明是这样实现的,一种车道线识别方法,所述车道线识别方法包括以下步骤:
步骤一,在获取到YOLOP导出的车道线二值图后,将该图像转化为灰度图。转换为灰度图能够大大减小处理终端的计算量;
步骤二,将图像以左上角为原点,从原点出发向右为x轴,从原点出发向下为y轴,建立平面直角坐标系,可以有效的复原出车道线方程;
步骤三,通过霍夫直线拟合提取出符合条件的车道直线矢量,提取出建立的坐标系中拟合直线上的两个端点坐标,并通过两个端点坐标计算出直线的点斜式方程的参数值,有效的找到车道线位置;
步骤四,得到直线方程后,判断斜率k,若斜率在-0.577到0.577,即tan150°-tan30°之间时,则可判断该直线不应该为车道线;确定一条横着的基准线,通过所述基准线检测这条线上的车道线数量以及偏移量,提高车道线的准确性;
步骤五,计算该直线与所提取直线的交点,判断所计算的交点x坐标是否超出坐标系范围,若没有超出则将该交点的x坐标加入数组列表,减小外界干扰;
步骤六,对存储交点x坐标的数组进行遍历,将数组的相邻数据进行求差处理,若该差小于一个阈值,则代表到一个突变点,将该突变点的索引和数据,即坐标x的值分别保存到一个新的数组中的,提高准确性;
步骤七,对新的数组进行遍历,通过将坐标x轴中心值与数组值比较大小,将该数组划分为两块,分别存储到两个新的数组中,所述新的数组即为左右车道线与基准线的交点的x坐标值,精确的找到参数值;
步骤八,分别取左车道线数组的最后一个数据和右车道线数组第一个数据,获取靠近画面中心最近两条车道线,即当前车道线的坐标,精准的找到车道线;
步骤九,对获取到的两个数据相加除以2,计算出当前车道线的中心点的x坐标值,再减去坐标x轴中心值,即可获取到当前画面中的车相对于计算出的车道线的偏移量;通过获取左右车道线数组的长度,获得左右车道线的数量,精准的区分左右车道线。
进一步,步骤三中,所述参数值即为y=ax+b的a和b;其中,斜率为0时,提取坐标点的两个x或y坐标相同。
进一步,步骤三中,计算公式为:
k=(y1-y2)/(x1-x2),b=y2-k*x2。
进一步,步骤四中,所述基准线是y=a的一条直线。
本发明的另一目的在于提供一种应用所述的车道线识别方法的车道线识别系统,所述车道线识别系统包括:
图像转换模块,用于在获取到YOLOP导出的车道线二值图后,将该图像转化为灰度图;将图像以左上角为原点,从原点出发向右为x轴,从原点出发向下为y轴,建立平面直角坐标系;
参数值计算模块,用于通过霍夫直线拟合提取出符合条件的车道直线矢量,提取出建立的坐标系中拟合直线上的两个端点坐标,并通过两个端点坐标计算出直线的点斜式方程的参数值;
斜率判断模块,用于在得到直线方程后,判断斜率k,若斜率在-0.577到0.577,即tan150°-tan30°之间时,则可判断该直线不应该为车道线;确定一条横着的基准线,通过所述基准线检测这条线上的车道线数量以及偏移量;
直线交点计算模块,用于计算该直线与所提取直线的交点,判断所计算交点x坐标是否超出坐标系范围,若没有超出则将该交点的x坐标加入数组列表;
数组遍历模块,用于对存储交点x坐标的数组进行遍历,将数组的相邻数据进行求差处理,若该差小于一个阈值,则代表到一个突变点,将该突变点的索引和数据,即坐标x的值分别保存到一个新的数组中;
新数组遍历模块,用于对新的数组进行遍历,通过将坐标x轴中心值与数组值比较大小,将该数组划分为两块,分别存储到两个新的数组中,所述新的数组即为左右车道线与基准线的交点的x坐标值;
车道线坐标获取模块,用于分别取左车道线数组的最后一个数据和右车道线数组第一个数据,获取靠近画面中心最近两条车道线,即当前车道线的坐标;
车道线数量获取模块,用于对获取到的两个数据相加除以2,计算出当前车道线的中心点的x坐标值,再减去坐标x轴中心值,即可获取到当前画面中的车相对于计算出的车道线的偏移量;通过获取左右车道线数组的长度,获得左右车道线的数量。
本发明的另一目的在于提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
在获取到YOLOP导出的车道线二值图后,将该图像转化为灰度图;将图像以左上角为原点,从原点出发向右为x轴,从原点出发向下为y轴,建立平面直角坐标系;通过霍夫直线拟合提取出符合条件的车道直线矢量,提取出建立的坐标系中拟合直线上的两个端点坐标,并通过两个端点坐标计算出直线的点斜式方程的参数值;得到直线方程后,判断斜率k,若斜率在-0.577到0.577,即tan150°-tan30°之间时,则可判断该直线不应该为车道线;
确定一条横着的基准线,通过所述基准线检测这条线上的车道线数量以及偏移量;计算该直线与所提取直线的交点,判断所计算的交点x坐标是否超出坐标系范围,若没有超出则将该交点的x坐标加入数组列表;对存储交点x坐标的数组进行遍历,将数组的相邻数据进行求差处理,若该差小于一个阈值,则代表到一个突变点,将该突变点的索引和数据,即坐标x的值分别保存到一个新的数组中;对新的数组进行遍历,通过将坐标x轴中心值与数组值比较大小,将该数组划分为两块,分别存储到两个新的数组中,所述新的数组即为左右车道线与基准线的交点的x坐标值;
分别取左车道线数组的最后一个数据和右车道线数组第一个数据,获取靠近画面中心最近两条车道线,即当前车道线的坐标;对获取到的两个数据相加除以2,计算出当前车道线的中心点的x坐标值,再减去坐标x轴中心值,即可获取到当前画面中的车相对于计算出的车道线的偏移量;通过获取左右车道线数组的长度,获得左右车道线的数量。
本发明的另一目的在于提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
在获取到YOLOP导出的车道线二值图后,将该图像转化为灰度图;将图像以左上角为原点,从原点出发向右为x轴,从原点出发向下为y轴,建立平面直角坐标系;通过霍夫直线拟合提取出符合条件的车道直线矢量,提取出建立的坐标系中拟合直线上的两个端点坐标,并通过两个端点坐标计算出直线的点斜式方程的参数值;得到直线方程后,判断斜率k,若斜率在-0.577到0.577,即tan150°-tan30°之间时,则可判断该直线不应该为车道线;
确定一条横着的基准线,通过所述基准线检测这条线上的车道线数量以及偏移量;计算该直线与所提取直线的交点,判断所计算的交点x坐标是否超出坐标系范围,若没有超出则将该交点的x坐标加入数组列表;对存储交点x坐标的数组进行遍历,将数组的相邻数据进行求差处理,若该差小于一个阈值,则代表到一个突变点,将该突变点的索引和数据,即坐标x的值分别保存到一个新的数组中;对新的数组进行遍历,通过将坐标x轴中心值与数组值比较大小,将该数组划分为两块,分别存储到两个新的数组中,所述新的数组即为左右车道线与基准线的交点的x坐标值;
分别取左车道线数组的最后一个数据和右车道线数组第一个数据,获取靠近画面中心最近两条车道线,即当前车道线的坐标;对获取到的两个数据相加除以2,计算出当前车道线的中心点的x坐标值,再减去坐标x轴中心值,即可获取到当前画面中的车相对于计算出的车道线的偏移量;通过获取左右车道线数组的长度,获得左右车道线的数量。
本发明的另一目的在于提供一种存储在计算机可读介质上的计算机程序产品,包括计算机可读程序,供于电子装置上执行时,提供用户输入接口以应用所述的车道线识别系统。
本发明的另一目的在于提供一种计算机可读存储介质,储存有指令,当所述指令在计算机上运行时,使得计算机应用所述的车道线识别系统。
本发明的另一目的在于提供一种信息数据处理终端,所述信息数据处理终端用于实现所述的车道线识别系统。
结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明提供的车道线识别方法,适用于神经网络语义分割导出图像的数据提取,具有提取效率高、速度快、适用性强等特点。传统的车道线识别计算方法对计算机硬件配置的要求很高,本发明更适合应用在小场景的无人驾驶中。通过模型改进对视觉进行研究,各个模型都会有自己的优缺点,如yolo+lannet与yolop相比,前者虽然可以更好的完成任务但是模型太大对硬件要求高,而后者这种轻量级的模型更加适合本发明,所以在模型改进时不应该只注重效果,还要兼顾硬件是否达到需求。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的车道线识别方法流程图。
图2是本发明实施例提供的车道线识别系统结构框图;
图中:1、图像转换模块;2、参数值计算模块;3、斜率判断模块;4、直线交点计算模块;5、数组遍历模块;6、新数组遍历模块;7、车道线坐标获取模块;8、车道线数量获取模块。
图3A和图3B是本发明实施例提供的YOLOP导出的车道线二值图。
图4是本发明实施例提供的仿真实验方案示意图。
图5是本发明实施例提供的局部路径规划示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种车道线识别方法、系统、介质、设备及信息处理终端,下面结合附图对本发明作详细的描述。
如图1所示,本发明实施例提供的车道线识别方法包括以下步骤:
S101,在获取到YOLOP导出的车道线二值图后,将该图像转化为灰度图;将图像以左上角为原点,从原点出发向右为x轴,从原点出发向下为y轴,建立平面直角坐标系;
S102,通过霍夫直线拟合提取出符合条件的车道直线矢量,提取出建立的坐标系中拟合直线上的两个端点坐标,并通过两个端点坐标计算出直线的点斜式方程的参数值;
S103,得到直线方程后,判断斜率k,若斜率在-0.577到0.577,即tan150°-tan30°之间时,则可判断该直线不应该为车道线;确定一条横着的基准线,通过所述基准线检测这条线上的车道线数量以及偏移量;
S104,计算该直线与所提取直线的交点,判断所计算的交点x坐标是否超出坐标系范围,若没有超出则将该交点的x坐标加入数组列表;
S105,对存储交点x坐标的数组进行遍历,将数组的相邻数据进行求差处理,若该差小于一个阈值,则代表到一个突变点,将该突变点的索引和数据,即坐标x的值分别保存到一个新的数组中;
S106,对新的数组进行遍历,通过将坐标x轴中心值与数组值比较大小,将该数组划分为两块,分别存储到两个新的数组中,所述新的数组即为左右车道线与基准线的交点的x坐标值;
S107,分别取左车道线数组的最后一个数据和右车道线数组第一个数据,获取靠近画面中心最近两条车道线,即当前车道线的坐标;
S108,对获取到的两个数据相加除以2,计算出当前车道线的中心点的x坐标值,再减去坐标x轴中心值,即可获取到当前画面中的车相对于计算出的车道线的偏移量;通过获取左右车道线数组的长度,获得左右车道线的数量。
如图2所示,本发明实施例提供的车道线识别系统包括:
图像转换模块1,用于在获取到YOLOP导出的车道线二值图后,将该图像转化为灰度图;将图像以左上角为原点,从原点出发向右为x轴,从原点出发向下为y轴,建立平面直角坐标系;
参数值计算模块2,用于通过霍夫直线拟合提取出符合条件的车道直线矢量,提取出建立的坐标系中拟合直线上的两个端点坐标,并通过两个端点坐标计算出直线的点斜式方程的参数值;
斜率判断模块3,用于在得到直线方程后,判断斜率k,若斜率在-0.577到0.577,即tan150°-tan30°之间时,则可判断该直线不应该为车道线;确定一条横着的基准线,通过所述基准线检测这条线上的车道线数量以及偏移量;
直线交点计算模块4,用于计算该直线与所提取直线的交点,判断所计算交点x坐标是否超出坐标系范围,若没有超出则将该交点的x坐标加入数组列表;
数组遍历模块5,用于对存储交点x坐标的数组进行遍历,将数组的相邻数据进行求差处理,若该差小于一个阈值,则代表到一个突变点,将该突变点的索引和数据,即坐标x的值分别保存到一个新的数组中;
新数组遍历模块6,用于对新的数组进行遍历,通过将坐标x轴中心值与数组值比较大小,将该数组划分为两块,分别存储到两个新的数组中,所述新的数组即为左右车道线与基准线的交点的x坐标值;
车道线坐标获取模块7,用于分别取左车道线数组的最后一个数据和右车道线数组第一个数据,获取靠近画面中心最近两条车道线,即当前车道线的坐标;
车道线数量获取模块8,用于对获取到的两个数据相加除以2,计算出当前车道线的中心点的x坐标值,再减去坐标x轴中心值,即可获取到当前画面中的车相对于计算出的车道线的偏移量;通过获取左右车道线数组的长度,获得左右车道线的数量。
下面结合具体实施例对本发明的技术方案作进一步描述。
实施例1:基于深度学习的神经网络导出图像的车道线数据提取方法
本发明提供了一种基于YOLOP全景驾驶感知系统导出图像的车道线识别方法。在获取到YOLOP导出的车道线二值图后(见图3A和图3B),对该图像进行处理,采取的具体方法如下:
1.将该图像转化为灰度图。
2.将图像以左上角为原点,从原点出发向右为x轴,从原点出发向下为y轴,建立平面直角坐标系。
3.通过霍夫直线拟合提取出符合条件的车道直线矢量。
4.提取出建立的坐标系中拟合直线上的两个端点坐标。
5.通过这两个端点坐标计算出直线的点斜式方程的参数值(y=ax+b的a和b),其中需要特别注意斜率为0的情况(提取坐标点的两个x或y坐标相同)。
计算公式:k=(y1-y2)/(x1-x2),b=y2-k*x2。
6.得到直线方程后,判断斜率k,若斜率在-0.577到0.577(即tan(150°)-tan(30°)之间)时,则可以判断该直线不应该为车道线。
7.确定一条横着的基准线(即y=a的一条直线),这条基准线用来检测这条线上的车道线数量以及偏移量。
8.计算该直线与所提取直线的交点,判断所计算的交点x坐标是否超出坐标系范围,若没有超出则将该交点的x坐标加入数组列表。
9.然后对存储交点x坐标的数组进行遍历,将数组的相邻数据进行求差处理,若该差小于一个阈值,则代表到了一个突变点,将该突变点的索引和数据(坐标x的值)分别保存到一个新的数组中。
10.对新的数组进行遍历,通过将坐标x轴中心值与数组值比较大小,将该数组划分为两块,分别存储到两个新的数组中。这两个新的数组即是左右车道线与基准线的交点的x坐标值。
11.为获取靠近画面中心最近两条车道线(即当前车道线)的坐标,分别取左车道线数组的最后一个数据和右车道线数组第一个数据。
12.对获取到的两个数据相加除以2,即计算出了当前车道线的中心点的x坐标值,再减去坐标x轴中心值,即可获取到当前画面中的车相对于计算出的车道线的偏移量。
13.通过获取左右车道线数组的长度,即可取得左右车道线的数量。
实施例2
本发明实施例提供了一种基于双目摄像头、激光雷达、深度学习ROS系统的车道线识别方法。
本发明在轻舟机器人的硬件基础上安装开发环境,并驱动轻舟机器人完成自动驾驶任务。以Jetson nano作为工控机,在Ubuntu18.04系统上进行ROS多机通讯、计算机视觉、激光SLAM、导航定位、路径规划等多项实验与开发。这里以基于摄像头的视觉和基于激光雷达的避障系统为重点展开,配合运动系统、建图定位等模块,完成指定地图中车道线以及各种地面车道指示标识的识别、还有行人、斑马线、路障和交通灯的识别,并根据地标指示以及交通灯指示正确行驶,遇到斑马线并识别到正前方近距离有行人时自觉减速礼让行人,且能够在不违反交通规则的前提下,变换车道躲避障碍物,最后顺利通过隧道,完成所有任务。
1、技术方案(见图4)
1.1建图、定位与路径规划
视觉SLAM需完成以下步骤:
1.传感器数据读取,如单双目相机、深度相机、激光雷达等。
2.视觉里程计,其作用是估计相邻两帧图片的相对运动,以及局部地图的建立。
3.后端优化,它是接收前端测量的摄像机位姿和回环检测信息。
4.回环检测,作用是检测机器人是否曾经到达过先前的位置,如果检测到回环它会把信息传输到后端进行处理。
5.建图,最后就是根据估计出的轨迹进行建图。
激光SLAM是基于激光返回的点云信息进行建图。通过激光雷达扫描障碍物,并在Ros系统的Rviz中显示,导入算法包,借助遥控器获得并保存地图,并用A*算法、Dijkstra算法实现全局路径规划和DWA算法实现局部路径规划。
1.2技术在ROS中实现
ROS navigation包中提供了一个算法,AMCL(自适应蒙特卡洛定位)算法,它能够过雷达的深度数据,结合里程计数据,通过粒子滤波器来跟踪机器人的当前位置。但是在此处,因为道路周边环境无法确定,影响了其算法核心部分,即雷达深度数据不确定,因此,这种算法将不适合该种任务。环境感知-自主定位通过对AMCL实现的源代码进行阅读分析,将他对雷达数据的匹配部分进行了修改,让其直接使用里程计发布坐标变换(也就是小车的相对位置),但是效果并不好,究其原因,单靠里程计是会有累计误差的,并不好通过算法解决。
在查阅了各种资料后,实在难以找到能够利用现有传感器在该环境下让机器人定位的方法。增加了硬件,T265双目摄像头。环境感知-自主定位Intel T265双目相机上直接运行有具有高度优化的专有V-SLAM算法,在预期的使用条件下,它可以直接提供低于1%的闭环漂移。使用木板自制了一个平台,然后在平台上搭建了一个框架,将T265双目摄像头固定在上面。在ROS系统中配置好TF转换后,整个机器人能够成功准确感知自身的位置。
基于深度学习的语义分割和实例分割,可以实现车道线检测。构建conda虚拟环境用labelme工具标注并用.bat脚本制作训练所用的数据集。为了测试分割任务的效果,这里使用了多边形、直线两种标注方式,经对比得到多边形方式可以更好完成,于是采用多边形标注的数据集。同时,方案使用了两种模型检测车道线。a.使用U-Net网络,是一种使用全卷积网络进行语义分割的算法之一。最初被使用与医学影像领域,但由于它的简单、高效、易懂、容易构建被用于其他领域,也正是这些优点,本发明使用它作为车道线检测的模型之一。将前面制作的数据集放入模型中训练得到权重文件即可用于预测。当然U-Net网络虽然简单,效果也不错,但是缺点也很明显,对于不确定的多种类、多数量车道线的检测无法分类。b.使用Lanenet模型,Lanenet主体网络部分有两条分支,一条分支预测mask,另一条分支给每个lane pixel分配所属lane的id,因此可以解决U-Net无法解决的问题。缺点是网络比较复杂,但训练预测的步骤大同小异。
车道线识别是本发明中很重要的一环。但在小车识别车道线的过程中,发现在各种复杂的环境情况下,任何一种算法对车道线的识别都不能达到很高的准确度,所以把功能定位明确为辅助行驶,也就是在置信度达到一定的程度后,再对该数据进行采集实现。车道线识别最初尝试了yolo+lannet的方法进行识别,其中yolo识别路标、行人、红绿灯。lannet进行车道线的识别。仿真运行,效果不错,移植到机器人上后,由于jetson nano的资源有限,两个神经网络无法很好运行起来,于是只好另辟蹊径了。修改了识别的方法,尝试采用yolo+传统视觉识别。虽然将lannet改为传统视觉使得小车可以很好的运行。但是,传统视觉识别车道线的效果并不是很理想,鲁棒性低,小车只有运行在光源恒定,无反光无暗斑的场地才能达到比较好的效果。
最后,通过查找资料,改进了YOLOP框架,这款框架叫做全景驾驶感知网络,它能够同时执行交通目标检测、可行驶区域分割和车道线检测三大视觉任务。将其车道线提取出来并定位,最后得到了输出的offset(偏移量)和左边右边的车道线数目。在处理好输出结果后,通过编写ros程序,成功地将数据上报到ros navigation包中的move_base包里面,在经过优先级处理后,完成了车道保持系统。
基于深度学习的目标检测,目标检测使为了完成路标、障碍物、人行横道等检测。同样首先是制作数据集,在虚拟环境下运行labelimg进行人工标注得到数据集。目标检测的算法有很多,包括SSD、yolo系列、fast-RCNN等。本发明使用yolov5来实现路标的识别。将数据集放入yolov5训练并预测即可完成路标识别。由于地标的拍摄角度很小,是的数据集的图片角度几乎相同,模型的鲁棒性较差。因此可以用图片拉升变换,从而达到从视觉上看路标是成各种角度的拍摄的效果,当然也可以找其他更多的数据集训练。
如图5所示,在本发明中使用的避障算法为ROS navigation包中的局部路径规划,主要采用的是动态窗口法。该算法可实时的接收外部障碍物信息,实现躲避障碍物。局部路径规划-避障算法如当识别到前方有不动的障碍物时,小车会进行路径规划避开障碍物。当通过YOLOP识别到前方有行人时,通过雷达的距离测算,小车会在安全范围内停车。
2、本发明实现了车道线识别的方法及无人驾驶技术,即navigation导航+计算机视觉。在导航过程中,小车不仅需要对自己的位置进行估算,还需要进行运动路线的规划,本发明对计算机硬件的要求很高,需要很高的算力。所以本发明更适合应用在小场景的无人驾驶中。通过模型改进对视觉进行研究,各个模型都会有自己的优缺点,如yolo+lannet与yolop相比,前者虽然可以更好的完成任务但是模型太大对硬件要求高,而后者这种轻量级的模型更加适合本发明,所以在模型改进时不应该只注重效果,还要兼顾硬件是否达到需求,这样才能完成视觉检测。
下面结合实验对本发明的技术效果作详细的描述。
表1几种车道线提取神经网络提取准确度对比
网络 | 准确度(%) |
ENet | 34.12 |
SCNN | 35.79 |
ENET-SAD | 36.56 |
YOLOP | 70.50 |
在复杂的环境下,对比白天与黑夜;车流量多与少;路边路灯暗与亮,不同情况下,对比不同模型下的车道线识别效果,通过结果证明,本发明都可以准确检测到车道线,并标注出来。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如DVD)、或者半导体介质(例如固态硬盘Solid StateDisk(SSD))等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种车道线识别方法,其特征在于,所述车道线识别方法包括以下步骤:
步骤一,在获取到YOLOP导出的车道线二值图后,将该图像转化为灰度图;
步骤二,将图像以左上角为原点,从原点出发向右为x轴,从原点出发向下为y轴,建立平面直角坐标系;
步骤三,通过霍夫直线拟合提取出符合条件的车道直线矢量,提取出建立的坐标系中拟合直线上的两个端点坐标,并通过两个端点坐标计算出直线的点斜式方程的参数值;
步骤四,得到直线方程后,判断斜率k,若斜率在-0.577到0.577,tan150°-tan30°之间时,则可判断该直线不应该为车道线;确定一条横着的基准线,通过所述基准线检测这条线上的车道线数量以及偏移量;
步骤五,计算该直线与所提取直线的交点,判断所计算的交点x坐标是否超出坐标系范围,若没有超出则将该交点的x坐标加入数组列表;
步骤六,对存储交点x坐标的数组进行遍历,将数组的相邻数据进行求差处理,若该差小于一个阈值,则代表到一个突变点,将突变点的索引和数据,即坐标x的值分别保存到一个新的数组中;
步骤七,对新的数组进行遍历,通过将坐标x轴中心值与数组值比较大小,将该数组划分为两块,分别存储到两个新的数组中,所述新的数组为左右车道线与基准线的交点的x坐标值;
步骤八,分别取左车道线数组的最后一个数据和右车道线数组第一个数据,获取靠近画面中心最近两条车道线,当前车道线的坐标;
步骤九,对获取到的两个数据相加除以2,计算出当前车道线的中心点的x坐标值,再减去坐标x轴中心值,获取到当前画面中的车相对于计算出的车道线的偏移量;通过获取左右车道线数组的长度,获得左右车道线的数量。
2.如权利要求1所述的车道线识别方法,其特征在于,步骤三中,所述参数值即为y=ax+b的a和b;其中,斜率为0时,提取坐标点的两个x或y坐标相同。
3.如权利要求1所述的车道线识别方法,其特征在于,步骤三中,计算公式为:
k=(y1-y2)/(x1-x2),b=y2-k*x2。
4.如权利要求1所述的车道线识别方法,其特征在于,步骤四中,所述基准线是y=a的一条直线。
5.一种实施权利要求1~4任意一项所述的车道线识别方法的车道线识别系统,其特征在于,所述车道线识别系统包括:
图像转换模块,用于在获取到YOLOP导出的车道线二值图后,将该图像转化为灰度图;将图像以左上角为原点,从原点出发向右为x轴,从原点出发向下为y轴,建立平面直角坐标系;
参数值计算模块,用于通过霍夫直线拟合提取出符合条件的车道直线矢量,提取出建立的坐标系中拟合直线上的两个端点坐标,并通过两个端点坐标计算出直线的点斜式方程的参数值;
斜率判断模块,用于在得到直线方程后,判断斜率k,若斜率在-0.577到0.577,即tan150°-tan30°之间时,则可判断该直线不应该为车道线;确定一条横着的基准线,通过所述基准线检测这条线上的车道线数量以及偏移量;
直线交点计算模块,用于计算该直线与所提取直线的交点,判断所计算交点x坐标是否超出坐标系范围,若没有超出则将该交点的x坐标加入数组列表;
数组遍历模块,用于对存储交点x坐标的数组进行遍历,将数组的相邻数据进行求差处理,若该差小于一个阈值,则代表到一个突变点,将该突变点的索引和数据,即坐标x的值分别保存到一个新的数组中;
新数组遍历模块,用于对新的数组进行遍历,通过将坐标x轴中心值与数组值比较大小,将该数组划分为两块,分别存储到两个新的数组中,所述新的数组即为左右车道线与基准线的交点的x坐标值;
车道线坐标获取模块,用于分别取左车道线数组的最后一个数据和右车道线数组第一个数据,获取靠近画面中心最近两条车道线,即当前车道线的坐标;
车道线数量获取模块,用于对获取到的两个数据相加除以2,计算出当前车道线的中心点的x坐标值,再减去坐标x轴中心值,即可获取到当前画面中的车相对于计算出的车道线的偏移量;通过获取左右车道线数组的长度,获得左右车道线的数量。
6.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
在获取到YOLOP导出的车道线二值图后,将该图像转化为灰度图;将图像以左上角为原点,从原点出发向右为x轴,从原点出发向下为y轴,建立平面直角坐标系;通过霍夫直线拟合提取出符合条件的车道直线矢量,提取出建立的坐标系中拟合直线上的两个端点坐标,并通过两个端点坐标计算出直线的点斜式方程的参数值;得到直线方程后,判断斜率k,若斜率在-0.577到0.577,即tan150°-tan30°之间时,则可判断该直线不应该为车道线;
确定一条横着的基准线,通过所述基准线检测这条线上的车道线数量以及偏移量;计算该直线与所提取直线的交点,判断所计算的交点x坐标是否超出坐标系范围,若没有超出则将该交点的x坐标加入数组列表;对存储交点x坐标的数组进行遍历,将数组的相邻数据进行求差处理,若该差小于一个阈值,则代表到一个突变点,将该突变点的索引和数据,即坐标x的值分别保存到一个新的数组中;对新的数组进行遍历,通过将坐标x轴中心值与数组值比较大小,将该数组划分为两块,分别存储到两个新的数组中,所述新的数组即为左右车道线与基准线的交点的x坐标值;
分别取左车道线数组的最后一个数据和右车道线数组第一个数据,获取靠近画面中心最近两条车道线,即当前车道线的坐标;对获取到的两个数据相加除以2,计算出当前车道线的中心点的x坐标值,再减去坐标x轴中心值,即可获取到当前画面中的车相对于计算出的车道线的偏移量;通过获取左右车道线数组的长度,获得左右车道线的数量。
7.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
在获取到YOLOP导出的车道线二值图后,将该图像转化为灰度图;将图像以左上角为原点,从原点出发向右为x轴,从原点出发向下为y轴,建立平面直角坐标系;通过霍夫直线拟合提取出符合条件的车道直线矢量,提取出建立的坐标系中拟合直线上的两个端点坐标,并通过两个端点坐标计算出直线的点斜式方程的参数值;得到直线方程后,判断斜率k,若斜率在-0.577到0.577,即tan150°-tan30°之间时,则可判断该直线不应该为车道线;
确定一条横着的基准线,通过所述基准线检测这条线上的车道线数量以及偏移量;计算该直线与所提取直线的交点,判断所计算的交点x坐标是否超出坐标系范围,若没有超出则将该交点的x坐标加入数组列表;对存储交点x坐标的数组进行遍历,将数组的相邻数据进行求差处理,若该差小于一个阈值,则代表到一个突变点,将该突变点的索引和数据,即坐标x的值分别保存到一个新的数组中;对新的数组进行遍历,通过将坐标x轴中心值与数组值比较大小,将该数组划分为两块,分别存储到两个新的数组中,所述新的数组即为左右车道线与基准线的交点的x坐标值;
分别取左车道线数组的最后一个数据和右车道线数组第一个数据,获取靠近画面中心最近两条车道线,即当前车道线的坐标;对获取到的两个数据相加除以2,计算出当前车道线的中心点的x坐标值,再减去坐标x轴中心值,即可获取到当前画面中的车相对于计算出的车道线的偏移量;通过获取左右车道线数组的长度,获得左右车道线的数量。
8.一种存储在计算机可读介质上的计算机程序产品,包括计算机可读程序,供于电子装置上执行时,提供用户输入接口以应用如权利要求5所述的车道线识别系统。
9.一种计算机可读存储介质,储存有指令,当所述指令在计算机上运行时,使得计算机应用如权利要求5所述的车道线识别系统。
10.一种信息数据处理终端,其特征在于,所述信息数据处理终端用于实现如权利要求5所述的车道线识别系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111501632.2A CN114387576A (zh) | 2021-12-09 | 2021-12-09 | 一种车道线识别方法、系统、介质、设备及信息处理终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111501632.2A CN114387576A (zh) | 2021-12-09 | 2021-12-09 | 一种车道线识别方法、系统、介质、设备及信息处理终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114387576A true CN114387576A (zh) | 2022-04-22 |
Family
ID=81196841
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111501632.2A Pending CN114387576A (zh) | 2021-12-09 | 2021-12-09 | 一种车道线识别方法、系统、介质、设备及信息处理终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114387576A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114821531A (zh) * | 2022-04-25 | 2022-07-29 | 广州优创电子有限公司 | 基于电子外后视镜adas的车道线识别图像显示系统 |
CN116168508A (zh) * | 2022-05-20 | 2023-05-26 | 海南大学 | 一种人机共驾的驾驶疲劳检测及预警控制方法及装置 |
-
2021
- 2021-12-09 CN CN202111501632.2A patent/CN114387576A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114821531A (zh) * | 2022-04-25 | 2022-07-29 | 广州优创电子有限公司 | 基于电子外后视镜adas的车道线识别图像显示系统 |
CN114821531B (zh) * | 2022-04-25 | 2023-03-28 | 广州优创电子有限公司 | 基于电子外后视镜adas的车道线识别图像显示系统 |
CN116168508A (zh) * | 2022-05-20 | 2023-05-26 | 海南大学 | 一种人机共驾的驾驶疲劳检测及预警控制方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111563442B (zh) | 基于激光雷达的点云和相机图像数据融合的slam方法及系统 | |
US10885352B2 (en) | Method, apparatus, and device for determining lane line on road | |
CN110675307B (zh) | 基于vslam的3d稀疏点云到2d栅格图的实现方法 | |
CN110286387B (zh) | 应用于自动驾驶系统的障碍物检测方法、装置及存储介质 | |
WO2018068653A1 (zh) | 点云数据处理方法、装置及存储介质 | |
Siegemund et al. | A temporal filter approach for detection and reconstruction of curbs and road surfaces based on conditional random fields | |
CN112740268B (zh) | 目标检测方法和装置 | |
CN113674416B (zh) | 三维地图的构建方法、装置、电子设备及存储介质 | |
CN110487286B (zh) | 基于点特征投影与激光点云融合的机器人位姿判断方法 | |
CN114387576A (zh) | 一种车道线识别方法、系统、介质、设备及信息处理终端 | |
CN110986945B (zh) | 基于语义高度地图的局部导航方法和系统 | |
CN113674287A (zh) | 高精地图的绘制方法、装置、设备以及存储介质 | |
CN113516664A (zh) | 一种基于语义分割动态点的视觉slam方法 | |
CN113835102B (zh) | 车道线生成方法和装置 | |
CN115205391A (zh) | 一种三维激光雷达和视觉融合的目标预测方法 | |
CN115719436A (zh) | 模型训练方法、目标检测方法、装置、设备以及存储介质 | |
CN115388902A (zh) | 室内定位方法和系统、ar室内定位导航方法和系统 | |
CN110853085A (zh) | 基于语义slam的建图方法和装置及电子设备 | |
CN113298910A (zh) | 生成交通标志线地图的方法、设备和存储介质 | |
CN114815851A (zh) | 机器人跟随方法、装置、电子设备以及存储介质 | |
CN114494329B (zh) | 用于移动机器人在非平面环境自主探索的导引点选取方法 | |
Yan et al. | RH-Map: Online Map Construction Framework of Dynamic Object Removal Based on 3D Region-wise Hash Map Structure | |
CN113409340A (zh) | 语义分割模型训练方法、语义分割方法、装置及电子设备 | |
CN116189150B (zh) | 基于融合输出的单目3d目标检测方法、装置、设备和介质 | |
CN116434181A (zh) | 地面点检测方法、装置、电子设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |