一种车道线检测的方法和设备
技术领域
本发明涉及自动驾驶技术领域,特别涉及一种车道线检测的方法和设备。
背景技术
随着智能辅助驾驶的兴起,车道线检测作为其重要的组成部分,近年来也得以大力发展。
ADAS(Advanced Driver Assistance Systems,高级驾驶辅助系统)辅助驾驶中的车道线检测技术主要基于相机传感器,通过图像视频分析检测当前的车道线,为后续的车道偏离提供车道线信息,有效进行偏离预警。但是,基于图像视频分析的车道线检测采用的是相机传感器采集到的二维图像,受环境影响较大,特别在成像恶劣的条件下,容易受非车道线点的干扰,无法取得理想的效果,远难满足L3、L4级别的自动驾驶技术指标。
此外,基于二维图像信息的车道线检测,没办法得到直接的物理车道线模型,需要根据相机安装的情况进行严格的标定,在图像语义分割的基础上,提取车道线像素点,要训练大量的标签数据来解决多场景适用问题。
综上所述,现有的基于相机传感器的车道线检测受环境影响,无法取得理想的分割效果,使得车道线检测的准确性较低,鲁棒性较差。
发明内容
本发明提供一种车道线检测的方法和设备,用以解决现有技术中存在的基于相机传感器的车道线检测受环境影响,无法取得理想的分割效果,使得车道线检测的准确性较低,鲁棒性较差的问题。
第一方面,本发明实施例提供的一种车道线检测的方法包括:
将鸟瞰特征图中栅格的最大高度值、平均反射强度和点云数量统计密度作为神经网络分割模型中的darknet的输入对所述鸟瞰特征图进行特征提取,其中所述鸟瞰特征图是对点云地图进行栅格化处理得到的;
通过所述神经网络分割模型中的FPN(Feature Pyramid Networks,特征金字塔网络)对特征提取得到的低层特征高分辨率和高层特征的高语义信息进行特征融合后确定所述鸟瞰特征图中的车道线点的特征信息;
根据所述特征信息确定在所述点云地图中与所述鸟瞰特征图中的车道线点相对应的车道线点;
将所述点云地图中的车道线点中反射强度大于平均反射强度阈值的车道线点作为车道线特征点,并根据所述点云地图中的车道线特征点进行几何模型拟合确定车道线。
上述方法,提出的一种基于深度学习的车道线检测方法可以实现在3维空间上对道路信息车道线的检测,为自动驾驶提供可靠的感知信息,并且基于鸟瞰特征图中的最大高度值、平均反射强度以及点云数量统计密度这些栅格化特征以及深度学习神经网络模型对车道线进行准确的检测,通过激光雷达扫描进行确定的点云地图受外界干扰因素影响小,并且通过平均反射强度阈值对神经网络模型提取的车道线点再次进行筛选,减小了非车道线点的干扰,提高了车道线检测的准确性,鲁棒性强。此外,本发明中的神经网络分割模型为基于YOLO框架的darknet结合FPN的一种新型神经网络分割模型,通过融合不同特征层的特征达到更好的分割预测效果。
在一种可能的实现方式中,通过下列方式确定所述点云地图:
确定通过激光雷达扫描车辆周边道路确定的第N帧图像对应的用于表示车辆行驶状态的里程计信息,其中N为正整数;
根据连续M帧图像中的最后一帧图像以及所述M帧图像对应的所述里程计信息对所述连续M帧图像中的点云数据进行坐标转换后得到所述连续M帧图像的点云地图坐标,其中M为正整数;
根据所述连续M帧图像的点云地图坐标确定点云地图,其中任意相邻两次确定的点云地图中,后一次确定的点云地图使用的连续M帧图像中的第一帧图像为前一次确定的点云地图使用的连续M帧图像中的第二帧图像。
上述方法,在构建点云地图时,只需对激光雷达采集到的图像中的连续M帧图像进行坐标转换处理则可生成局部点云地图,不需要进行全局优化,相比于现有技术生成点云地图时根据采集到的所有图像生成点云地图,计算速度更快,并且不会产生累积误差,且构建的局部点云地图适用于环境感知,车道线检测。
在一种可能的实现方式中,所述神经网络分割模型包括输入层、编码层和解码层组,其中所述解码层组包括至少一个解码层;
其中,所述输入层用于将所述鸟瞰特征图输入到所述神经网络分割模型;
所述编码层用于对所述输入层输入的鸟瞰特征图进行编码输出编码后的鸟瞰特征图;
所述解码层用于对所述编码后的鸟瞰特征图进行解码,以使所述解码层组中最后一个解码层输出的鸟瞰特征图与所述输入层输入的鸟瞰特征图的分辨率相同。
上述方法,提出了一种神经网络分割模型架构,包括输入层、编码层以及解码层组(包括至少一个解码层),其中的解码层用于对经过编码处理得到的鸟瞰特征图进行解码处理,通过至少一个解码层进行解码处理,使得最后一个解码层输出的鸟瞰特征图与输入层输入的鸟瞰特征图的分辨率相同,便于根据特征信息确定出原始鸟瞰特征图(输入到神经网络分割模型的鸟瞰特征图)中的车道线点,在神经网络分割模型输入的鸟瞰特征图与输出的鸟瞰特征图分辨率大小一致时可以准确的根据特征信息确定出点云地图中的车道线点。
在一种可能的实现方式中,通过下列方式确定所述鸟瞰特征图中栅格的平均反射强度:
将所述点云地图划分为多个立方体;
针对任意一个立方体,将所述立方体中所有点的反射强度的平均值作为所述立方体对应的栅格的平均反射强度;和/或
通过下列方式确定所述鸟瞰特征图中栅格的最大高度值:
将所述点云地图划分为多个立方体;
针对任意一个立方体,将所述立方体中所有点的高度的最大值作为所述立方体对应的栅格的最大高度值。
上述方法,在确定鸟瞰特征图的任意一个栅格的最大高度值或平均反射强度时,通过每个立方体中点的高度值以及反射强度值确定,丰富了神经网络分割模型输入参数,便于进行特征提取。
在一种可能的实现方式中,所述将所述点云地图中的车道线特征点进行几何模型拟合确定车道线,包括:
通过最小二乘法对所述点云地图中的车道线特征点进行拟合得到确定车道线。
上述方法,通过最小二乘法将点拟合成线,最终根据拟合形成的线确定车道线,采用最小二乘法通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小,通过最小二乘法拟合出的曲线更加真实可靠。
第二方面,本发明实施例提供的一种车道线检测的设备包括:至少一个处理单元以及至少一个存储单元,其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行下列过程:
将鸟瞰特征图中栅格的最大高度值、平均反射强度和点云数量统计密度作为神经网络分割模型中的darknet的输入对所述鸟瞰特征图进行特征提取,其中所述鸟瞰特征图是对点云地图进行栅格化处理得到的;
通过所述神经网络分割模型中的特征金字塔网络FPN对特征提取得到的低层特征高分辨率和高层特征的高语义信息进行特征融合后确定所述鸟瞰特征图中的车道线点的特征信息;
根据所述特征信息确定在所述点云地图中与所述鸟瞰特征图中的车道线点相对应的车道线点;
将所述点云地图中的车道线点中反射强度大于平均反射强度阈值的车道线点作为车道线特征点,并根据所述点云地图中的车道线特征点进行几何模型拟合确定车道线。
在一种可能的实现方式中,所述处理单元还用于通过下列方式确定所述点云地图:
确定通过激光雷达扫描车辆周边道路确定的第N帧图像对应的用于表示车辆行驶状态的里程计信息,其中N为正整数;
根据连续M帧图像中的最后一帧图像以及所述M帧图像对应的所述里程计信息对所述连续M帧图像中的点云数据进行坐标转换后得到所述连续M帧图像的点云地图坐标,其中M为正整数;
根据所述连续M帧图像的点云地图坐标确定点云地图,其中任意相邻两次确定的点云地图中,后一次确定的点云地图使用的连续M帧图像中的第一帧图像为前一次确定的点云地图使用的连续M帧图像中的第二帧图像。
在一种可能的实现方式中,所述神经网络分割模型包括输入层、编码层和解码层组,其中所述解码层组包括至少一个解码层;
其中,所述输入层用于将所述鸟瞰特征图输入到所述神经网络分割模型;
所述编码层用于对所述输入层输入的鸟瞰特征图进行编码输出编码后的鸟瞰特征图;
所述解码层用于对所述编码后的鸟瞰特征图进行解码,以使所述解码层组中最后一个解码层输出的鸟瞰特征图与所述输入层输入的鸟瞰特征图的分辨率相同。
在一种可能的实现方式中,所述处理单元还用于通过下列方式确定所述鸟瞰特征图中栅格的平均反射强度:
将所述点云地图划分为多个立方体;
针对任意一个立方体,将所述立方体中所有点的反射强度的平均值作为所述立方体对应的栅格的平均反射强度;和/或
通过下列方式确定所述鸟瞰特征图中栅格的最大高度值:
将所述点云地图划分为多个立方体;
针对任意一个立方体,将所述立方体中所有点的高度的最大值作为所述立方体对应的栅格的最大高度值。
在一种可能的实现方式中,所述处理单元具体用于:
通过最小二乘法对所述点云地图中的车道线特征点进行拟合得到确定车道线。
第三方面,本发明实施例还提供一种车道线检测的设备,该设备包括第一确定模块、第二确定模块和第三确定模块:
特征提取模块,用于将鸟瞰特征图中栅格的最大高度值、平均反射强度和点云数量统计密度作为神经网络分割模型中的darknet的输入对所述鸟瞰特征图进行特征提取,其中所述鸟瞰特征图是对点云地图进行栅格化处理得到的;
特征融合模块,用于通过所述神经网络分割模型中的特征金字塔网络FPN对特征提取得到的低层特征高分辨率和高层特征的高语义信息进行特征融合后确定所述鸟瞰特征图中的车道线点的特征信息;
第一确定模块,用于根据所述特征信息确定在所述点云地图中与所述鸟瞰特征图中的车道线点相对应的车道线点;
第二确定模块,用于将所述点云地图中的车道线点中反射强度大于平均反射强度阈值的车道线点作为车道线特征点,并根据所述点云地图中的车道线特征点进行几何模型拟合确定车道线。
第四方面,本申请还提供一种计算机存储介质,其上存储有计算机程序,该程序被处理单元执行时实现第一方面所述方法的步骤。
另外,第二方面至第四方面中任一种实现方式所带来的技术效果可参见第一方面中不同实现方式所带来的技术效果,此处不再赘述。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种车道线检测的方法示意图;
图2A为本发明实施例提供的一种坐标转换前的坐标系示意图;
图2B为本发明实施例提供的一种坐标转换后的坐标系示意图;
图2C为本发明实施例提供的一种神经网络分割模型框架结构示意图;
图3A为本发明实施例提供的一种立方体中车道线点的示意图;
图3B为本发明实施例提供的一种立方体中车道线特征点的示意图;
图4为本发明实施例提供的一种车道线检测的完整方法示意图;
图5为本发明实施例提供的一种车道线检测的设备示意图;
图6为本发明实施例提供的另一种车道线检测的设备示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
下面对文中出现的一些词语进行解释:
1、本发明实施例中术语“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
2、本发明实施例中术语“YOLOv2(You Only Look Once- version 2)”是目标检测模型YOLO的一个改进版本,在YOLOv1的基础上,使用新的网络结构和技巧,提高了检测速度和检测精度。
3、本发明实施例中术语“栅格化”,是PS(PhotoShop,图形处理软件)中的一个专业术语,栅格即像素,栅格化即将矢量图形转化为位图(栅格图像)。最基础的栅格化算法将多边形表示的三维场景渲染到二维表面。
4、本发明实施例中术语“鸟瞰特征图”指根据透视原理,用高视点透视法从高处某一点俯视地面起伏绘制成的立体图(二维图像)。简单地说,就是在空中俯视某一地区所看到的图像,比平面图更有真实感。在本发明实施例中的鸟瞰特征图中每个栅格中存储了激光雷达扫描得到的点云数据的反射强度和高度值数据等统计信息。
5、本发明实施例中术语“鲁棒性”是指控制系统在一定(结构,大小)的参数摄动下,维持其它某些性能的特性。根据对性能的不同定义,可分为稳定鲁棒性和性能鲁棒性。
本发明实施例描述的应用场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着新应用场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。其中,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
如图1所示,本发明实施例的一种车道线检测的方法,具体包括以下步骤:
步骤100:将鸟瞰特征图中栅格的最大高度值、平均反射强度和点云数量统计密度作为神经网络分割模型中的darknet的输入对所述鸟瞰特征图进行特征提取,其中所述鸟瞰特征图是对点云地图进行栅格化处理得到的;
步骤101:通过所述神经网络分割模型中的特征金字塔网络FPN对特征提取得到的低层特征高分辨率和高层特征的高语义信息进行特征融合后确定所述鸟瞰特征图中的车道线点的特征信息;
步骤102:根据所述特征信息确定在所述点云地图中与所述鸟瞰特征图中的车道线点相对应的车道线点;
步骤103:将所述点云地图中的车道线点中反射强度大于平均反射强度阈值的车道线点作为车道线特征点,并根据所述点云地图中的车道线特征点进行几何模型拟合确定车道线。
通过上述方案,提出的一种基于深度学习的车道线检测方法可以实现在3维空间上对道路信息车道线的检测,为自动驾驶提供可靠的感知信息,并且基于鸟瞰特征图中的最大高度值、平均反射强度以及点云数量统计密度这些栅格化特征以及深度学习神经网络模型对车道线进行准确的检测,通过激光雷达扫描进行确定的点云地图受外界干扰因素影响小,并且通过平均反射强度阈值对神经网络模型提取的车道线点再次进行筛选,减小了非车道线点的干扰,提高了车道线检测的准确性,鲁棒性强。
在本发明实施例中的神经网络分割模型为一种基于YOLO框架的darknet和FPN相结合的一种新型神经网络分割模型,采用darknet作为主干网络针对鸟瞰图特征图做分割任务,并且通过FPN融合不同特征层的表达信息(例如低层特征高分辨率和高层特征的高语义信息),通过融合不同特征层的特征达到更好的分割预测效果,在本发明实施例中的特征层包括:最大高度值特征层、平均反射强度特征层以及点云数量统计密度特征层。
在本发明实施例中,进行车道线检测之前首先需要实时构建点云地图,具体的:
第一步:确定通过激光雷达扫描车辆周边道路确定的第N帧图像对应的用于表示车辆行驶状态的里程计信息,其中N为正整数。
第二步:根据连续M帧图像中的最后一帧图像以及所述M帧图像对应的所述里程计信息对所述连续M帧图像中的点云数据进行坐标转换后得到所述连续M帧图像的点云地图坐标,其中M为正整数。
第三步:根据所述连续M帧图像的点云地图坐标确定点云地图,其中任意相邻两次确定的点云地图中,后一次确定的点云地图使用的连续M帧图像中的第一帧图像为前一次确定的点云地图使用的连续M帧图像中的第二帧图像。
其中,点云数据是指在一个三维坐标系统中的一组向量的集合。这些向量通常以X,Y,Z三维坐标的形式表示,代表几何位置信息,而且一般主要用来代表一个物体的外表面形状。例如,Pi={Xi,Yi,Zi}表示空间中的一个点,(i=1,2,3,……,n),则Point Cloud={P1,P2,P3,……,Pn}表示一组点云数据。
在本发明实施例中,IMU数据集由至少一个IMU数据组成的,其中IMU数据包括但不限于下列的部分或全部:
速度、加速度、航向角。
例如,采用的装置是velodyne-32线激光雷达和诺瓦泰高精度惯导单元IMU,IMU可达到厘米级定位精度。通过激光雷达扫描车辆周边道路后输出的就是第N帧图像中的点云数据,与第N帧图像对应的IMU数据集表示在确定第N帧图像的同时通过IMU测量得到的IMU数据组成的集合,例如激光雷达数据输出频率是10赫兹,IMU输出的频率是100赫兹,则输出第N帧图像中的点云数据的时间内对应输出10组IMU数据(假设一组IMU包括一个加速度,一个速度以及一个航向角),这10组IMU数据(30个IMU数据)组成一个IMU数据集,即与第N帧图像对应的IMU数据集。
在本发明实施例中,确定里程计信息的方式有很多种,下面列举两种:
确定方式一、若第N帧图像对应的IMU数据集处于非失锁状态,即IMU数据集中的IMU数据都不处于失锁状态(其中失锁状态表示测量得到IMU数据集时其中的IMU数据的状态),则根据IMU数据集确定第N帧图像对应的用于表示车辆行驶状态的里程计信息。
在判断IMU数据集是否处于失锁状态时,根据诺瓦泰组合惯导单元的输出信号来确定,其中每输出一组IMU数据对应一组输出信号,假设一组输出信号为(a,b),其中a表示GPS(Global Positioning System,全球定位系统)状态,b表示系统状态,若a为4,b为1时,则表示这一组IMU数据不处于失锁状态;若一个IMU数据集包含30个IMU数据(即10组数据),则当这30个IMU数据都不处于失锁状态,此时IMU数据集处于非失锁状态。
当第N帧图像对应的IMU数据集处于非失锁状态时,则根据IMU数据集确定第N帧图像对应的用于表示车辆行驶状态的里程计信息,具体的:根据第N帧图像对应的第一位移平移、第二位移平移及旋转量确定RT矩阵,并将RT矩阵作为第一里程计信息;其中,第一位移平移为第N帧图像对应的IMU数据集中所有加速度的和与IMU数据测量时间间隔的乘积,第二位移平移为第N帧图像对应的IMU数据集中所有速度的和与IMU数据测量时间间隔的乘积,旋转量为根据第N帧图像对应的IMU数据集中的IMU数据的时间戳确定的最后一次测量得到的航向角,即根据IMU航向角和速度加速度信息,得到里程计信息。
例如,一个IMU数据集包含10组IMU数据(30个IMU数据):
{(V x 1,V y 1,yaw1);(V x 2,V y 2,yaw2);…;(V x 10,V y 10,yaw10)}。
其中,Vxi表示测量得到第N帧图像对应的IMU数据集时第i次测量的加速度,Vyi表示测量得到第i次测量的速度,yawi表示第i次测量的航向角,i=1,2,…,10;(V x 1,V y 1,yaw1)的时间戳为t1,(V x 2,V y 2,yaw2)的时间戳为t2,…,(V x 10,V y 10,yaw10)的时间戳为t10,且t1<t2<…<t10,则(V x 10,V y 10,yaw10)即这一IMU数据集中最后一次测量输出的IMU数据,最后一次输出的航向角即yaw10,IMU数据测量时间间隔为T=t2-t1=t3-t2=t4-t3=…=t10-t9。
则第一位移平移为Offx=(V x 1+V x 2+V x 3+…+V x 10)*T;第二位移平移为Offy=(V y 1+V y 2+V y 3+…+V y 10)*T;旋转量为θ=yaw10。
根据第N帧图像对应的第一位移平移、第二位移平移及旋转量确定RT(Rotationaltranslation,旋转平移)矩阵。
例如,根据旋转量θ确定旋转矩阵R,假设R为4*4矩阵:R=[cosθ,sinθ,0,0;-sinθ,cosθ,0,0;0,0,1,0;0,0,0,1],即绕z轴旋转,将点P(x,y,z)绕z轴旋转θ角得到点P′(x′,y′,z′):
x′= ysinθ+xcosθ;y′=ycosθ−xsinθ;z′=z。
用矩阵表示为P=[x;y;z;1],P′=[x′;y′;z′;1],RP=P′。
根据第一位移平移以及第二位移平移确定平移矩阵T,假设第N帧图像中某一点Q(x,y,z),则对Q进行平移变换后得到Q′(x′,y′,z′),三个坐标轴的移动分量分别为dx=Offx,dy=Offy,dz=0,则:
x′= x + Offx;y′= y + Offy;z′= z 。
用矩阵表示为Q=[x;y;z;1],Q′=[x′;y′;z′;1],则TQ=Q′,其中T=[1,0,0,Offx;0,1,0,Offy;0,0,1,0;0,0,0,1]。
在本发明实施例中,对点P先旋转后平移可以表示为:T*R*P。
上述方法,根据IMU数据确定里程计信息,其中IMU数据可以提供车辆的位姿信息,并且IMU数据都处于非失锁状态,此外测量精度可达厘米级提高了构建点云地图的精度。
确定方式二、若第N帧图像对应的IMU数据集处于失锁状态时(即第N帧图像对应的IMU数据集中的至少一个IMU数据处于失锁状态),则根据第N帧图像中的点云数据确定第N帧图像对应的用于表示车辆行驶状态的里程计信息,具体的:确定第N帧图像中的点云数据对应的点的曲面特征,其中某一点曲面特征表示该点与该点周围最近邻K个点欧式距离的和,K为正整数;根据点的曲面特征通过非极大值抑制对第N帧图像中的点云数据对应的点进行筛选,并将筛选后剩余的点对应的点云数据作为最佳点云数据;通过ICP(IterativeClosest Point,迭代最近点)算法对最佳点云数据进行点云匹配确定第N-1帧图像中与最佳点云数据匹配的点云数据;根据第N帧图像中的最佳点云数据以及第N-1帧图像中与最佳点云数据匹配的点云数据确定RT矩阵,并将RT矩阵作为里程计信息。
具体的:确定第N帧图像中的点云数据对应的点的曲面特征,其中某一点的曲面特征表示该点与该点周围最近邻K个点欧式距离的和,K为正整数;根据点的曲面特征通过非极大值抑制对第N帧图像中的点云数据对应的点进行筛选,并将筛选后剩余的点对应的点云数据作为最佳点云数据;通过ICP(Iterative Closest Point,迭代最近点)算法对最佳点云数据进行点云匹配确定第N-1帧图像中与最佳点云数据匹配的点云数据;根据第N帧图像中的最佳点云数据以及第N-1帧图像中与最佳点云数据匹配的点云数据确定RT矩阵,并将RT矩阵作为里程计信息。
其中,在确定RT矩阵时,采用罗德里杰斯公式将旋转矩阵R展开然后求导,求解雅克比矩阵,最后使用LM(Levenberg-Marquardt,列文伯格-马夸尔特法)的非线性方法进行优化得到RT矩阵。即将θ、Offx、Offy看做变量,通过优化问题求解的方式,找到最优的θ,以及Offx、Offy,最后确定RT矩阵。
上述方法,在进行当前帧和上一帧的点云特征匹配时,基于曲面特征的采样使用一些具有明显特征的点集来进行配准,大量减少了对应点的数目,包括边缘点特征、平面点特征,采用ICP匹配方法,最后将求得的RT矩阵作为里程计信息。
需要说明的是,本发明实施例中所列举的根据IMU数据集和/或点云数据计算里程计信息的方式只是举例说明,任何一种根据IMU数据集和/或点云数据计算里程计信息的方式都适用于本发明实施例。
在本发明实施例中,确定里程计信息后,进行坐标转换的具体方式为:根据连续M帧图像中的最后一帧图像以及所述M帧图像对应的所述里程计信息对所述连续M帧图像中的点云数据进行坐标转换后得到所述连续M帧图像的点云地图坐标,其中M为正整数;即将连续M帧图像的点云地图坐标进行统一映射,连续M帧图像生成一次点云地图。在进行坐标转换时,以激光雷达在连续M帧图像中的最后一帧图像中的位置为坐标原点,根据M帧图像对应的里程计信息对连续M帧图像中的点云数据进行坐标转换。
例如,根据连续5帧图像的点云地图坐标确定点云地图时,则对第1~5帧图像中的点云数据进行坐标转换得到点云地图坐标后统一进行一次映射,并且映射到统一坐标系中,根据映射得到的坐标系生成点云地图。
具体的,根据连续5帧图像(第1帧、第2帧、第3帧、第4帧、第5帧)确定点云地图,以激光雷达在第5帧图像中的位置为坐标原点,根据每一帧图像对应的里程计信息对这连续5帧图像的点云数据进行坐标转换,例如,第1帧图像对应的里程计信息为RT1、第2帧图像对应的里程计信息为RT2、第3帧图像对应的里程计信息为RT3、第4帧图像对应的里程计信息为RT4、第5帧图像对应的里程计信息为RT5,则以激光雷达在第5帧图像中的位置为坐标原点,根据RT1对第1帧图像中的点云数据进行坐标转换,根据RT2对第2帧图像中的点云数据进行坐标转换,根据RT3对第3帧图像中的点云数据进行坐标转换,根据RT4对第4帧图像中的点云数据进行坐标转换,根据RT5对第5帧图像中的点云数据进行坐标转换。
如图2A所示,为激光雷达扫描的第5帧图像,扫描得到第5帧图像是构建的是如图所示坐标系,坐标原点为O,其中x轴、y轴、z轴表示如图2A所示方向,其中点P坐标为(x,y,z),其中激光雷达在第5帧图像中的位置为图2A中Q点位置处,进行坐标转换后,绕z轴旋转角度为90度,且y、x方向有平移,旋转平移后坐标原点为O′(Q点),如图2B所示,点P坐标为(x′,y′,z′),通过坐标转换可以使得激光雷达在图像中的位置为坐标原点,建立相对坐标系。
可选的,在本发明实施例中,可以对点云地图进行动态更新。
具体的,按照每帧图像的生成顺序,根据每连续M帧图像的点云地图坐标确定一次点云地图,其中M为正整数;其中任意相邻两次确定的点云地图中,后一次确定的点云地图使用的连续M帧图像中的第一帧图像为前一次确定的点云地图使用的连续M帧图像中的第二帧图像。
例如,采用上述坐标转换的方法,每映射一次坐标(对连续13帧图像的坐标进行统一映射),确定一次点云地图(例如以1~13帧图像生成了一次点云地图),之后使用图像累计加1帧(第14帧图像),判断使用的图像是否达到13帧,如果是,则把第1帧图像中的点云数据删除,把第2~14帧图像中的点云数据进行坐标转换得到的点云地图坐标进行映射;否则的话,则把当前帧图像中的点云数据进行坐标转换得到点云地图坐标,图像帧数累计加1,继续进行下一帧的坐标转换。例如,在第一次确定点云地图时使用的是第1~13帧图像的点云地图坐标,在第二次确定点云地图时使用的是第2~14帧图像的点云地图坐标,在第三次确定点云地图时使用的是第3~15帧图像的点云地图坐标,实现了一种渐进式更新的局部点云地图,并且仅存储M帧图像数据,降低对数据存储的要求。
在本发明实施例中,得到稠密的点云地图(高精度地图)之后,将点云地图进行栅格化处理转换为鸟瞰特征图,具体的:
将三维空间的点云地图划分为多个立方体(等比例划分成一个立方体一个立方体的形式),根据激光雷达点云数据的反射强度和高度值数据等,计算每个立方体空间的统计分量(包括平均反射强度、最大高度值、点云数量统计密度),其中在转换为二维鸟瞰特征图时,一个立方体对应一个栅格,确定每一个栅格对应的最大高度值、平均反射强度和点云数量统计密度。
在本发明实施例中,通过下列方式确定鸟瞰特征图中栅格的平均反射强度:将点云地图划分为多个立方体;针对任意一个立方体,将所述立方体中所有点的反射强度的平均值作为所述立方体对应的栅格的平均反射强度。
例如,一个立方体中有10个点,则这10个点的反射强度的平均值作为这一立方体对应的栅格的平均反射强度,假设这10个点的反射强度分别为:10、23、14、15、13、25、10、9、8、10,这10个点的反射强度和为137,则栅格的平均反射强度为13.7。
可选的,通过下列方式确定鸟瞰特征图中栅格的最大高度值:
针对任意一个立方体,将立方体中所有点的高度的最大值作为立方体对应的栅格的最大高度值。
例如,一个立方体中有10个点,则这10个点的高度值中的最大值作为这一立方体对应的栅格的最大高度值,假设这10个点的高度值(单位:米)分别为:-2、-1.9、0.2、0.9、-0.3、-1.7、0.5、0.7、0.6、-0.9,则栅格的最大高度值为0.9。
在本发明实施例中,一个立方体中的点云的密度即该立方体对应的栅格的点云数量统计密度。
需要说明的是,本发明实施例中所列举的确定栅格的最大高度值、平均反射强度及点云数量统计密度的方式只是举例说明,任何一种确定栅格的最大高度值、平均反射强度及点云数量统计密度的方式都适用于本发明实施例。
在本发明实施例中,得到鸟瞰特征图之后,根据鸟瞰特征图中栅格的最大高度值、平均反射强度和点云数量统计密度,通过神经网络分割模型确定鸟瞰特征图中的车道线点的特征信息。
可选的,神经网络分割模型包括输入层、编码层和解码层组,其中解码层组包括至少一个解码层;其中,输入层用于将鸟瞰特征图输入到神经网络分割模型;编码层用于对输入层输入的鸟瞰特征图进行编码输出编码后的鸟瞰特征图;解码层用于对编码后的鸟瞰特征图进行解码,以使解码层组中最后一个解码层输出的鸟瞰特征图与输入层输入的鸟瞰特征图的分辨率相同。
如图2C所示为本发明实施例提供的一种神经网络分割模型架构,其中输入层为200包含3个特征通道(分别为最大高度值特征通道、平均反射强度特征通道、点云数量统计密度特征通道),编码层201(可以是卷积神经网络结构,包括卷积层、池化层等)主要用于对输入的图像进行特征提取和编码,解码层组202包括5个解码层,假设神经网络分割模型采用YOLOv2模型,在现有的YOLOv2编码框架结构的基础上改进成编码-解码(encoder-decoder)网络结构。如图2C所示的神经网络分割模型中有5个解码层,其中解码层5可看做是图2C所示神经网络分割模型的输出层。
具体的,根据鸟瞰特征图中栅格的平均反射强度、最大高度值、点云数量统计密度,通过3个特征通道将鸟瞰特征图以1024*512*3的形式输入神经网络分割模型,其中1024*512表示分辨率(一个栅格看做一个像素),3表示鸟瞰特征图的特征通道数;通过神经网络分割模型的输入层将鸟瞰特征图输入到神经网络分割模型后,通过编码层对输入的鸟瞰特征图进行特征提取和编码后得到32*16*1024的鸟瞰特征图(编码后的鸟瞰特征图,其中32*16表示像素,1024表示特征通道),之后通过解码层组中的5个解码层对编码层的输出结果通过反卷积进行5次2倍上采样,经过解码层1解码后输出的鸟瞰特征图为64*32*512,再将64*32*512的鸟瞰特征图输入解码层2后输出的鸟瞰特征图分辨率为128*64*72,最终经过解码层5后输出的鸟瞰特征图为1024*512*3,其分辨率1024*512与输入层输入的鸟瞰特征图的分辨率相同。
最后输出的鸟瞰特征图中的每一个像素(栅格)都对应有表示该像素是车道线点,或是非车道线点的特征信息,即确定鸟瞰特征图中的车道线点的特征信息。
假设,特征信息为1表示像素为车道线点,特征信息为0表示像素为非车道线点,则确定出特征信息为1的像素即可确定出鸟瞰特征图中的车道线点。
在本发明实施例中,根据神经网络分割模型确定特征信息为1的栅格(像素)对应的立方体,将立方体中所有的点都先看做是车道线点,即确定在点云地图中与鸟瞰特征图中的车道线点相对应的车道线点。
如图3A所示,其中的立方体对应的栅格的特征信息为1,则确定这一立方体中的44个点看做是车道线点。
在本发明实施例中,为了减小干扰点的影响,根据特征信息确定在点云地图中与鸟瞰特征图中的车道线点相对应的车道线点之后,将点云地图中的车道线点中反射强度大于平均反射强度阈值的车道线点作为车道线特征点,并根据点云地图中的车道线特征点进行几何模型拟合得到三维曲线从而确定出车道线。
如图3B所示,特征信息为1的栅格对应的立方体中有44个点,这44个点都是车道线点,且反射强度分别为20、21、22、23、24、19、19、22、20、24、26、28、10、13、12、14、13、14、15、13、14、17、13、14、17、11、12、13、14、17、11、11、11、12、13、14、12、13、14、14、13、14、15、16,设定平均反射强度阈值为18,则车道线特征点即反射强度为20、21、22、23、24、19、19、22、20、24、26、28的这十二个点(即图3B中的黑色填充的点)在进行几何模型拟合确定车道线时,仅对车道线特征点进行拟合。
具体的,将点云地图中的车道线特征点进行几何模型拟合确定车道线时,首先通过最小二乘法对点云地图中的车道线特征点进行拟合得到表示车道的线;之后根据表示车道的线确定出点云地图中的车道线。
具体的,通过最小二乘法对点云地图中的车道线特征点进行拟合得到多条表示车道的线,由多条表示车道的线组成车道线。
在发明实施例中的车道线的种类有很多种,包括但不限于下面的部分或全部:
道路中心线、可变车道线、导向车道线、公交线路专用车道线。
如图4所示,本发明实施例提供的一种车道线检测的完整方法包括:
步骤400、构建点云地图;
步骤401、将点云地图进行栅格化处理,确定栅格的最大高度值、平均反射强度和点云数量统计密度,得到鸟瞰特征图;
步骤402、根据鸟瞰特征图中栅格的最大高度值、平均反射强度和点云数量统计密度,通过神经网络分割模型确定鸟瞰特征图中的车道线点的特征信息;
步骤403、根据特征信息确定在点云地图中与鸟瞰特征图中的车道线点相对应的车道线点;
步骤404、将点云地图中的车道线点中反射强度大于平均反射强度阈值的车道线点作为车道线特征点;
步骤405、通过最小二乘法对点云地图中的车道线特征点进行几何模型拟合确定车道线。
基于相同的发明构思,本发明实施例中还提供了一种车道线检测的设备,由于该设备即是本发明实施例中的方法中的设备,并且该设备解决问题的原理与该方法相似,因此该设备的实施可以参见方法的实施,重复之处不再赘述。
如图5所示,本发明实施例还提供一种车道线检测的设备,该设备包括:至少一个处理单元500、以及至少一个存储单元501,其中,所述存储单元501存储有程序代码,当所述程序代码被所述处理单元500执行时,使得所述处理单元500执行下列过程:
将鸟瞰特征图中栅格的最大高度值、平均反射强度和点云数量统计密度作为神经网络分割模型中的darknet的输入对所述鸟瞰特征图进行特征提取,其中所述鸟瞰特征图是对点云地图进行栅格化处理得到的;
通过所述神经网络分割模型中的特征金字塔网络FPN对特征提取得到的低层特征高分辨率和高层特征的高语义信息进行特征融合后确定所述鸟瞰特征图中的车道线点的特征信息;
根据所述特征信息确定在所述点云地图中与所述鸟瞰特征图中的车道线点相对应的车道线点;
将所述点云地图中的车道线点中反射强度大于平均反射强度阈值的车道线点作为车道线特征点,并根据所述点云地图中的车道线特征点进行几何模型拟合确定车道线。
可选的,所述处理单元500还用于通过下列方式确定所述点云地图:
确定通过激光雷达扫描车辆周边道路确定的第N帧图像对应的用于表示车辆行驶状态的里程计信息,其中N为正整数;
根据连续M帧图像中的最后一帧图像以及所述M帧图像对应的所述里程计信息对所述连续M帧图像中的点云数据进行坐标转换后得到所述连续M帧图像的点云地图坐标,其中M为正整数;
根据所述连续M帧图像的点云地图坐标确定点云地图,其中任意相邻两次确定的点云地图中,后一次确定的点云地图使用的连续M帧图像中的第一帧图像为前一次确定的点云地图使用的连续M帧图像中的第二帧图像。
可选的,所述神经网络分割模型包括输入层、编码层和解码层组,其中所述解码层组包括至少一个解码层;
其中,所述输入层用于将所述鸟瞰特征图输入到所述神经网络分割模型;
所述编码层用于对所述输入层输入的鸟瞰特征图进行编码输出编码后的鸟瞰特征图;
所述解码层用于对所述编码后的鸟瞰特征图进行解码,以使所述解码层组中最后一个解码层输出的鸟瞰特征图与所述输入层输入的鸟瞰特征图的分辨率相同。
可选的,所述处理单元500还用于通过下列方式确定所述鸟瞰特征图中栅格的平均反射强度:
将所述点云地图划分为多个立方体;
针对任意一个立方体,将所述立方体中所有点的反射强度的平均值作为所述立方体对应的栅格的平均反射强度;和/或
通过下列方式确定所述鸟瞰特征图中栅格的最大高度值:
将所述点云地图划分为多个立方体;
针对任意一个立方体,将所述立方体中所有点的高度的最大值作为所述立方体对应的栅格的最大高度值。
可选的,所述处理单元500具体用于:
通过最小二乘法对所述点云地图中的车道线特征点进行拟合得到确定车道线。
基于相同的发明构思,本发明实施例中还提供了一种车道线检测的设备,由于该设备即是本发明实施例中的方法中的设备,并且该设备解决问题的原理与该方法相似,因此该设备的实施可以参见方法的实施,重复之处不再赘述。
如图6所示,本发明实施例还提供一种车道线检测的设备,该设备包括:特征提取模块600、特征融合确定模块601、第一确定模块602和第二确定模块603:
特征提取模块600:用于将鸟瞰特征图中栅格的最大高度值、平均反射强度和点云数量统计密度作为神经网络分割模型中的darknet的输入对所述鸟瞰特征图进行特征提取,其中所述鸟瞰特征图是对点云地图进行栅格化处理得到的;
特征融合模块601:用于通过所述神经网络分割模型中的特征金字塔网络FPN对特征提取得到的低层特征高分辨率和高层特征的高语义信息进行特征融合后确定所述鸟瞰特征图中的车道线点的特征信息;
第一确定模块602:用于根据所述特征信息确定在所述点云地图中与所述鸟瞰特征图中的车道线点相对应的车道线点;
第二确定模块603:用于将所述点云地图中的车道线点中反射强度大于平均反射强度阈值的车道线点作为车道线特征点,并根据所述点云地图中的车道线特征点进行几何模型拟合确定车道线。
可选的,所述特征提取模块600还用于通过下列方式确定所述点云地图:
确定通过激光雷达扫描车辆周边道路确定的第N帧图像对应的用于表示车辆行驶状态的里程计信息,其中N为正整数;
根据连续M帧图像中的最后一帧图像以及所述M帧图像对应的所述里程计信息对所述连续M帧图像中的点云数据进行坐标转换后得到所述连续M帧图像的点云地图坐标,其中M为正整数;
根据所述连续M帧图像的点云地图坐标确定点云地图,其中任意相邻两次确定的点云地图中,后一次确定的点云地图使用的连续M帧图像中的第一帧图像为前一次确定的点云地图使用的连续M帧图像中的第二帧图像。
可选的,所述神经网络分割模型包括输入层、编码层和解码层组,其中所述解码层组包括至少一个解码层;
其中,所述输入层用于将所述鸟瞰特征图输入到所述神经网络分割模型;
所述编码层用于对所述输入层输入的鸟瞰特征图进行编码输出编码后的鸟瞰特征图;
所述解码层用于对所述编码后的鸟瞰特征图进行解码,以使所述解码层组中最后一个解码层输出的鸟瞰特征图与所述输入层输入的鸟瞰特征图的分辨率相同。
可选的,所述特征提取模块600还用于通过下列方式确定所述鸟瞰特征图中栅格的平均反射强度:
将所述点云地图划分为多个立方体;
针对任意一个立方体,将所述立方体中所有点的反射强度的平均值作为所述立方体对应的栅格的平均反射强度;和/或
通过下列方式确定所述鸟瞰特征图中栅格的最大高度值:
将所述点云地图划分为多个立方体;
针对任意一个立方体,将所述立方体中所有点的高度的最大值作为所述立方体对应的栅格的最大高度值。
可选的,所述第二确定模块603具体用于:
通过最小二乘法对所述点云地图中的车道线特征点进行拟合得到确定车道线。
本发明实施例还提供一种计算机可读非易失性存储介质,包括程序代码,当所述程序代码在计算终端上运行时,所述程序代码用于使所述计算终端执行上述本发明实施例车道线检测的方法的步骤。
以上参照示出根据本申请实施例的方法、装置(系统)和/或计算机程序产品的框图和/或流程图描述本申请。应理解,可以通过计算机程序指令来实现框图和/或流程图示图的一个块以及框图和/或流程图示图的块的组合。可以将这些计算机程序指令提供给通用计算机、专用计算机的处理器和/或其它可编程数据处理装置,以产生机器,使得经由计算机处理器和/或其它可编程数据处理装置执行的指令创建用于实现框图和/或流程图块中所指定的功能/动作的方法。
相应地,还可以用硬件和/或软件(包括固件、驻留软件、微码等)来实施本申请。更进一步地,本申请可以采取计算机可使用或计算机可读存储介质上的计算机程序产品的形式,其具有在介质中实现的计算机可使用或计算机可读程序代码,以由指令执行系统来使用或结合指令执行系统而使用。在本申请上下文中,计算机可使用或计算机可读介质可以是任意介质,其可以包含、存储、通信、传输、或传送程序,以由指令执行系统、装置或设备使用,或结合指令执行系统、装置或设备使用。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。