发明内容
本公开的目的是提供一种车道线生成方法、装置、存储介质及电子设备,以解决相关技术中存在的问题。
为了实现上述目的,根据本公开实施例的第一部分,提供一种车道线生成方法,包括:
获取目标道路上采集车的行车轨迹数据,以及所述采集车上的雷达扫描到的点云数据;
针对所述点云数据中的每一帧点云数据的位图进行线状分段检测,得到所述点云数据对应的像素图,根据所述像素图确定第一特征点集合和第二特征点集合;
根据所述行车轨迹数据和所述第二特征点集合,确定目标特征点线段集合,根据所述目标特征点线段集合和所述第一特征点集合,确定所述目标道路的道路边缘线,所述道路边缘线包括:左侧边缘线、右侧边缘线;
根据所述道路边缘线和所述目标道路的预设车道宽度,确定所述左侧边缘线和所述右侧边缘线之间的矢量线,根据所述道路边缘线以及所述矢量线生成所述目标道路上的车道线。
可选地,所述根据所述像素图确定第一特征点集合和第二特征点集合,包括:
将所述像素图反向投影到所述点云数据的数据空间,得到所述第一特征点集合;
对所述像素图进行线状分段检测,得到第一像素图,并将所述第一像素图反向投影到所述点云数据的数据空间,得到所述第二特征点集合,其中,所述第二特征点集合中特征点的数量小于所述第一特征点集合中特征点的数量。
可选地,所述目标特征点线段集合包括左侧目标特征点线段集合和右侧目标特征点线段集合,其中,所述左侧目标特征点线段集合是根据所述第二特征点集合中的,位于所述行车轨迹数据对应的轨迹线左侧的特征点确定的,所述右侧目标特征点线段集合是根据所述第二特征点集合中的,位于所述轨迹线右侧的特征点确定的。
可选地,根据所述第二特征点集合中的,位于所述轨迹线左侧的特征点确定所述左侧目标特征点线段集合,包括:
针对所述行车轨迹数据中的每一采样点,获取该采样点在所述轨迹线上的切线垂直线,并从所述第二特征点集合中的,位于所述轨迹线左侧的特征点中确定与所述切线垂直线的距离小于第一预设阈值的第一待探测特征点集合;
针对每一所述采样点的所述第一待探测特征点集合中的每一待探测特征点,将该待探测特征点和下一所述采样点的所述第一待探测特征点集合中的目标待探测特征点进行连接,得到对应的第一线段,其中,该待探测特征点到所述轨迹线的距离与该目标待探测特征点到所述轨迹线的距离相差不超过所述第一预设阈值;
针对由每一所述采样点对应的所有第一线段组成的线段集合,将所述线段集合中的长度大于第二预设阈值的线段作为所述左侧目标特征点线段集合。
可选地,所述根据所述目标特征点线段集合和所述第一特征点集合,确定所述目标道路的道路边缘线,包括:
根据所述左侧目标特征点线段集合和所述第一特征点集合,确定所述目标道路的所述左侧边缘线;
根据所述右侧目标特征点线段集合和所述第一特征点集合,确定所述目标道路的所述右侧边缘线。
可选地,所述根据所述左侧目标特征点线段集合和所述第一特征点集合,确定所述目标道路的所述左侧边缘线,包括:
针对所述行车轨迹数据中的每一采样点,从所述左侧目标特征点线段集合中确定距离该采样点最近和最远的两个边界参考点,并从所述第一特征点集合中的,位于所述轨迹线左侧的特征点中确定与该采样点在所述轨迹线上的切线垂直线的距离小于所述第一预设阈值的第二待探测特征点集合,并从所述第二待探测特征点集合中确定与所述轨迹线的距离处于所述两个边界参考点分别与轨迹线的距离之间,且点云稠密度达到第三预设阈值的候选特征点;
针对每一所述候选特征点,从所述第一特征点集合中确定横向距离所述候选特征点第一预设距离,且纵向距离所述候选特征点第二预设距离范围内的第三特征点集合,并按照窗长为预设长度的横向距离窗口对所述第三特征点集合进行点数统计,得到对应的直方图,根据所述直方图确定峰值,并从所述峰值中遴选出边缘真值点,其中,所述横向为采样点的切线垂直方向,所述纵向为采样点的切线方向;
将每一所述边缘真值点连接成线段,得到所述左侧边缘线。
可选地,所述根据所述道路边缘线和所述目标道路的预设车道宽度,确定所述左侧边缘线和所述右侧边缘线之间的矢量线,包括:
根据所述左侧边缘线和所述右侧边缘线之间的距离,以及所述目标道路的所述预设车道宽度确定所述左侧边缘线和所述右侧边缘线之间的车道数量;
将所述左侧边缘线中每一左侧采样点与对应的右侧采样点进行连接得到对应的辅助线段,从每一所述辅助线段中确定将该辅助线段均分为所述车道数量对应份数的目标位置点;
对每一所述辅助线段中的目标位置点从左至右进行标号,将所有所述辅助线段中的标号相同的目标位置点进行连接,得到所述矢量线。
根据本公开实施例的第二部分,提供一种车道线生成装置,包括:
获取模块,被配置为用于获取目标道路上采集车的行车轨迹数据,以及所述采集车上的雷达扫描到的点云数据;
第一确定模块,被配置为用于针对所述点云数据中的每一帧点云数据的位图进行线状分段检测,得到所述点云数据对应的像素图,根据所述像素图确定第一特征点集合和第二特征点集合;
第二确定模块,被配置为用于根据所述行车轨迹数据和所述第二特征点集合,确定目标特征点线段集合,根据所述目标特征点线段集合和所述第一特征点集合,确定所述目标道路的道路边缘线,所述道路边缘线包括:左侧边缘线、右侧边缘线;
第三确定模块,被配置为用于根据所述道路边缘线和所述目标道路的预设车道宽度,确定所述左侧边缘线和所述右侧边缘线之间的矢量线,根据所述道路边缘线以及所述矢量线生成所述目标道路上的车道线。
可选地,所述第一确定模块包括:
第一投影子模块,被配置为用于将所述像素图反向投影到所述点云数据的数据空间,得到所述第一特征点集合;
第二投影子模块,被配置为用于对所述像素图进行线状分段检测,得到第一像素图,并将所述第一像素图反向投影到所述点云数据的数据空间,得到所述第二特征点集合,其中,所述第二特征点集合中特征点的数量小于所述第一特征点集合中特征点的数量。
可选地,所述目标特征点线段集合包括左侧目标特征点线段集合和右侧目标特征点线段集合,其中,所述左侧目标特征点线段集合是根据所述第二特征点集合中的,位于所述行车轨迹数据对应的轨迹线左侧的特征点确定的,所述右侧目标特征点线段集合是根据所述第二特征点集合中的,位于所述轨迹线右侧的特征点确定的。
可选地,所述装置还包括:第四确定模块,被配置为用于根据所述第二特征点集合中的,位于所述轨迹线左侧的特征点确定所述左侧目标特征点线段集合;所述第四确定模块包括:
获取子模块,被配置为用于针对所述行车轨迹数据中的每一采样点,获取该采样点在所述轨迹线上的切线垂直线,并从所述第二特征点集合中的,位于所述轨迹线左侧的特征点中确定与所述切线垂直线的距离小于第一预设阈值的第一待探测特征点集合;
连接子模块,被配置为用于针对每一所述采样点的所述第一待探测特征点集合中的每一待探测特征点,将该待探测特征点和下一所述采样点的所述第一待探测特征点集合中的目标待探测特征点进行连接,得到对应的第一线段,其中,该待探测特征点到所述轨迹线的距离与该目标待探测特征点到所述轨迹线的距离相差不超过所述第一预设阈值;
第一确定子模块,被配置为用于针对由每一所述采样点对应的所有第一线段组成的线段集合,将所述线段集合中的长度大于第二预设阈值的线段作为所述左侧目标特征点线段集合。
可选地,所述第二确定模块,包括:
第二确定子模块,被配置为用于根据所述左侧目标特征点线段集合和所述第一特征点集合,确定所述目标道路的所述左侧边缘线;
第三确定子模块,被配置为用于根据所述右侧目标特征点线段集合和所述第一特征点集合,确定所述目标道路的所述右侧边缘线。
可选地,所述第二确定子模块还被配置为用于:针对所述行车轨迹数据中的每一采样点,从所述左侧目标特征点线段集合中确定距离该采样点最近和最远的两个边界参考点,并从所述第一特征点集合中的,位于所述轨迹线左侧的特征点中确定与该采样点在所述轨迹线上的切线垂直线的距离小于所述第一预设阈值的第二待探测特征点集合,并从所述第二待探测特征点集合中确定与所述轨迹线的距离处于所述两个边界参考点分别与轨迹线的距离之间,且点云稠密度达到第三预设阈值的候选特征点;
针对每一所述候选特征点,从所述第一特征点集合中确定横向距离所述候选特征点第一预设距离,且纵向距离所述候选特征点第二预设距离范围内的第三特征点集合,并按照窗长为预设长度的横向距离窗口对所述第三特征点集合进行点数统计,得到对应的直方图,根据所述直方图确定峰值,并从所述峰值中遴选出边缘真值点,其中,所述横向为采样点的切线垂直方向,所述纵向为采样点的切线方向;将每一所述边缘真值点连接成线段,得到所述左侧边缘线。
可选地,所述第三确定模块包括:
第四确定子模块,被配置为用于根据所述左侧边缘线和所述右侧边缘线之间的距离,以及所述目标道路的所述预设车道宽度确定所述左侧边缘线和所述右侧边缘线之间的车道数量;
第五确定子模块,被配置为用于将所述左侧边缘线中每一左侧采样点与对应的右侧采样点进行连接得到对应的辅助线段,从每一所述辅助线段中确定将该辅助线段均分为所述车道数量对应份数的目标位置点;
第六确定子模块,被配置为用于对每一所述辅助线段中的目标位置点从左至右进行标号,将所有所述辅助线段中的标号相同的目标位置点进行连接,得到所述矢量线。
根据本公开实施例的第三部分,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一部分中任一种所述方法的步骤。
根据本公开实施例的第四部分,提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现上述第一部分中任一种所述方法的步骤。
采用上述技术方案,至少能够达到如下技术效果:
通过获取目标道路上采集车的行车轨迹数据,以及该采集车上的雷达扫描到的点云数据,其中,雷达为低线数雷达(如16线,32线),点云数据为稀疏点云数据。针对该稀疏点云数据中的每一帧点云数据的位图进行线状分段检测,得到每一帧的像素图,将所有帧的像素图进行叠加得到该稀疏点云数据的像素图。其中,针对每一帧点云数据的位图进行线状分段检测,有利于提取每一帧稀疏点云数据中的有效线状特征信息,从而使得针对该稀疏点云数据得到的像素图至少能够客观的反映道路边缘区域的特征,有效的削弱稀疏点云数据中采集到的其他车辆的噪声。进一步地,根据该稀疏点云数据的像素图确定第一特征点集合和第二特征点集合。并根据行车轨迹数据、第一特征点集合以及第二特征点集合确定目标道路的道路边缘线。根据道路边缘线和目标道路的预设车道宽度,确定道路边缘线之间的矢量线,从而得到目标道路上的车道线。采用这种方法,利用低线数雷达可以避免使用多线数雷达的高成本问题。并且,稀疏点云数据的数据量比多线数雷达的稠密点云数据的数据量少很多,因此在对稀疏点云数据进行处理时计算量更少,进而对数据处理设备的性能要求低。虽然稀疏点云数据可能损失了目标道路上的较多信息导致稀疏点云数据中的道路特征相对粗糙。但是,采用本公开的上述方法,通过稀疏点云数据仍然可以准确地确定道路边缘的线性特征信息,进而准确地确定目标车道的左侧和右侧道路边缘线。在准确地确定道路边缘线的基础之上,结合目标道路的预设车道宽度,合理的确定左侧边缘线和右侧边缘线之间的车道矢量线,从而能够生成准确地、符合实际的车道线。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
图1是根据本公开一示例性实施例示出的一种车道线生成方法的流程图,如图1所示,该方法可以包括以下步骤:
S11、获取目标道路上采集车的行车轨迹数据,以及所述采集车上的雷达扫描到的点云数据。
其中,采集车上的雷达可以为低线数雷达,通过低线数雷达获取到的点云数据为稀疏点云数据。
S12、针对所述点云数据中的每一帧点云数据的位图进行线状分段检测,得到所述点云数据对应的像素图,根据所述像素图确定第一特征点集合和第二特征点集合。
具体地,针对点云数据中的每一帧点云数据的位图进行线状分段检测,得到每一帧对应的像素图。示例地,如图2A所示,图2A示出了某一帧点云数据的位图,图2B为针对图2A所示的一帧点云数据的位图进行线状分段检测处理后的像素图。再示例地,如图2C所示,图2C示出了另一帧点云数据的位图,图2D为针对图2C所示的一帧点云数据的位图进行线状分段检测处理后的像素图。
进一步地,将点云数据中的每一帧点云数据的像素图进行叠加得到该点云数据对应的像素图。示例地,如图2E所示,图2E示出了点云数据中所有帧点云数据叠加在一起的位图,图2F为将该点云数据中的每一帧点云数据的像素图进行叠加后得到的该点云数据对应的像素图。其中,线状分段检测采用与相关技术中OpenCV的Lane Segment Detect算法相类似的方法。
针对点云数据中的每一帧点云数据的位图进行线状分段检测,得到该点云数据对应的像素图的这种方式,使得该点云数据对应的像素图中客观的反映了道路边缘区域的线状特征。不难理解的是,道路边缘除了设置有边缘车道线以外,还设置有线状的隔离栏杆等隔离带。因此,对稀疏点云数据进行线状分段检测至少能够确定道路边缘区域的线状特征信息。
还需说明的是,对稀疏点云数据中每一帧点云数据进行线状分段检测,有利于去掉边缘车道上的车辆造成的噪声。一种可实现的实施方式,分别针对点云数据中的第N帧和第N+1帧点云数据进行线状分段检测,若在第N帧的像素图中出现的某一线状特征未出现在第N+1帧点云数据的像素图中,则说明该线状特征很可能是车辆噪声。
可选地,根据所述像素图确定第一特征点集合和第二特征点集合,可以包括以下步骤:
将所述像素图反向投影到所述点云数据的数据空间,得到所述第一特征点集合;对所述像素图进行线状分段检测,得到第一像素图,并将所述第一像素图反向投影到所述点云数据的数据空间,得到所述第二特征点集合,其中,所述第二特征点集合中特征点的数量小于所述第一特征点集合中特征点的数量。
将点云数据对应的像素图反向投影到该点云数据的数据空间,得到第一特征点集合。如此,可以从点云数据中获取有效的第一特征点集合,该第一特征点集合中的特征点数量少于点云数据中的数量。
对点云数据对应的像素图进行第二次线状分段检测,得到第一像素图,该第一像素图中的线状特征信息比像素图中的特征信息少。将第一像素图反向投影到该点云数据的数据空间,得到第二特征点集合,该第二特征点集合中特征点的数量小于第一特征点集合中特征点的数量。
通过点云数据对应的像素图确定第一特征点集合有利于保留较多的特征点数据,而通过点云数据对应的像素图确定的第二特征点集合的方式进一步的减少了特征点数据,保留了表现性更强/真值置信度更高的特征点数据。特征点的表现性强表征该特征点为噪声的可能性低。
应当说明的是,通过对像素图进行线状分段检测,得到第一像素图,并将该第一像素图反向投影到点云数据的数据空间,得到第二特征点集合的这种方式,是为了在该像素图的基础之上进一步提取线状特征得到第一像素图,如此利用进一步提取到的线状特征可以更容易找到点云数据中的真值置信度高的特征点,从而得到第二特征点集合。而真值置信度高的特征点有利于进行特征点的计算和分析。
S13、根据所述行车轨迹数据和所述第二特征点集合,确定目标特征点线段集合,根据所述目标特征点线段集合和所述第一特征点集合,确定所述目标道路的道路边缘线,所述道路边缘线包括:左侧边缘线、右侧边缘线。
具体地,根据采集车的行车轨迹数据和第二特征点集合,确定目标特征点线段集合,如此,根据第二特征点集合中的表现性强的特征点可以更加准确地确定目标特征点线段集合。基于目标特征点线段集合结合数据量较大的第一特征点集合,可以在保证准确性的基础之上确定更加完整的目标道路的道路边缘线。其中道路边缘线为车道边缘的车道线。
S14、根据所述道路边缘线和所述目标道路的预设车道宽度,确定所述左侧边缘线和所述右侧边缘线之间的矢量线,根据所述道路边缘线以及所述矢量线生成所述目标道路上的车道线。
其中,应当说明的是,高速公路的每一车道的标准宽度为3.75米,城市道路每一车道的标准宽度为3.5米。因此,目标道路的预设车道宽度可以根据目标道路的类型确定。
本领域技术人员应当理解的是,每一道路上包括一个或多个车道。每一道路的左侧边缘线和右侧边缘线之间存在对应车道数的中间车道线。根据道路边缘线和目标道路的预设车道宽度,可以确定目标道路上的车道数,进而可以确定道路的左侧边缘线和右侧边缘线之间的车道矢量线(即除道路边缘线以外的车道线),根据道路边缘线以及车道矢量线可以生成目标道路上的车道线。
采用这种方法,通过获取目标道路上采集车的行车轨迹数据,以及该采集车上的雷达扫描到的点云数据,其中,雷达为低线数雷达,点云数据为稀疏点云数据。针对该稀疏点云数据中的每一帧点云数据的位图进行线状分段检测,得到每一帧的像素图,将所有帧的像素图进行叠加得到该稀疏点云数据的像素图。其中,针对每一帧点云数据的位图进行线状分段检测,有利于提取每一帧稀疏点云数据中的有效线状特征信息,从而使得针对该稀疏点云数据得到的像素图至少能够客观的反映道路边缘区域的特征,有效的削弱稀疏点云数据中采集到的其他车辆的噪声。进一步地,根据该稀疏点云数据的像素图确定第一特征点集合和第二特征点集合。并根据行车轨迹数据、第一特征点集合以及第二特征点集合确定目标道路的道路边缘线。根据道路边缘线和目标道路的预设车道宽度,确定道路边缘线之间的矢量线,从而得到目标道路上的车道线。采用这种方法,利用低线数雷达可以避免使用多线数雷达的高成本问题。并且,稀疏点云数据的数据量比多线数雷达的稠密点云数据的数据量少很多,因此在对稀疏点云数据进行处理时计算量更少,进而对数据处理设备的性能要求低。虽然稀疏点云数据可能损失了目标道路上的较多信息导致稀疏点云数据中的道路特征相对粗糙。但是,采用本公开的上述方法,通过稀疏点云数据仍然可以准确地确定道路边缘的线性特征信息,进而准确地确定目标车道的左侧和右侧道路边缘线。在准确地确定道路边缘线的基础之上,结合目标道路的预设车道宽度,合理的确定左侧边缘线和右侧边缘线之间的车道矢量线,从而能够生成准确地、符合实际的车道线。因此采用这种方式能够解决相关技术中存在的问题。
此处还需说明的是,OpenDrive规范是一种公认的高精度地图格式,不仅应用于无人驾驶实车,还应用于高保真的无人驾驶仿真领域。本公开基于采集车低线数雷达路拍的稀疏点云数据,采用上述方法,可以自动的提取稀疏点云数据中的道路信息并生成OpenDrive格式的道路车道线,这为大规模构建仿真用且具备真实感和合理性的高精地图路网提供了技术储备。
不难理解的是,本公开的上述方法既然能够根据低线数雷达获取的稀疏点云数据确定目标车道的车道线。那么对于高线数雷达获取的稠密点云数据,本公开的上述方法同样适用。并且,针对点云数据进行的线状分段检测以及反向投影等处理得到第一特征点集合和第二特征点集合的方式,大量的减少了点云数据的数据量,提高了数据处理的效率。
可选地,所述目标特征点线段集合包括左侧目标特征点线段集合和右侧目标特征点线段集合,其中,所述左侧目标特征点线段集合是根据所述第二特征点集合中的,位于所述行车轨迹数据对应的轨迹线左侧的特征点确定的,所述右侧目标特征点线段集合是根据所述第二特征点集合中的,位于所述轨迹线右侧的特征点确定的。
需说明的是,采集车行车轨迹数据对应的轨迹线左侧是指该采集车的行驶方向的左侧。相应地,采集车行车轨迹数据对应的轨迹线右侧是指该采集车的行驶方向的右侧。
参见图3,一种可实现的实施方式中,根据所述第二特征点集合中的,位于所述轨迹线左侧的特征点确定所述左侧目标特征点线段集合,包括以下步骤:
S31、针对所述行车轨迹数据中的每一采样点,获取该采样点在所述轨迹线上的切线垂直线,并从所述第二特征点集合中的,位于所述轨迹线左侧的特征点中确定与所述切线垂直线的距离小于第一预设阈值的第一待探测特征点集合,其中,所述第一待探测特征点集合中的待探测特征点按照与所述轨迹线之间的距离由小到大进行排列。
示例地,参见图4,采集车的行车方向为轨迹线的箭头方向,图4中的切线为某一采样点在轨迹线上的切线,切线垂直线为该切线的垂直线。从第二特征点集合中的位于该轨迹线左侧的特征点中,确定与切线垂直线的距离小于第一预设阈值的第一待探测特征点集合。其中第一预设阈值可以为1.2米。采用这种方式,可以确定每一采样点分别对应的第一待探测特征点集合。
一种方式,可以将第一待探测特征点集合中的每一特征点定义为如下数据结构CheckNode:
其中,knot为特征点的坐标,index为该特征点在第一待探测特征点集合中的排序下标,distBitangent为该特征点离轨迹线的距离,distTangent为该特征点离该采样点的切线垂直线的距离。
S32、针对每一所述采样点的所述第一待探测特征点集合中的每一待探测特征点,将该待探测特征点和下一所述采样点的所述第一待探测特征点集合中的目标待探测特征点进行连接,得到对应的第一线段,其中,该待探测特征点到所述轨迹线的距离与该目标待探测特征点到所述轨迹线的距离相差不超过所述第一预设阈值。
详细地,针对所述行车轨迹数据中的第N-1个采样点对应的所述第一待探测特征点集合中的每一待探测特征点,若从第N个采样点对应的所述第一待探测特征点集合中找到目标待探测特征点到所述轨迹线的距离与该待探测特征点到所述轨迹线的距离相差不超过所述第一预设阈值,则将该待探测特征点和所述目标待探测特征点进行连接,得到对应的第一线段。
具体地,针对每一采样点进行如下操作:针对行车轨迹数据中的第N-1个采样点对应的所述第一待探测特征点集合A中的每一待探测特征点a,若从第N个采样点对应的所述第一待探测特征点集合B中找到目标待探测特征点b到所述轨迹线的距离与该待探测特征点a到所述轨迹线的距离相同或相差不超过1.2米,则将该待探测特征点a和该目标待探测特征点b进行连接,该待探测特征点a得到对应的第一线段。如此,针对每一采样点的第一待探测特征点集合可以得到多条第一线段。
S33、针对由每一所述采样点对应的所有第一线段组成的线段集合,将所述线段集合中的长度大于第二预设阈值的线段作为所述左侧目标特征点线段集合。
其中,由每一所述采样点对应的所有第一线段组成的线段集合包括,具有相同的首/尾待探测特征点的第一线段构成的长线段的集合。
具体地,由轨迹线上每一采样点对应的多条第一线段组成的线段集合,将该线段集合中的长度大于第二预设阈值的线段作为左侧目标特征点线段集合。或者,将该线段集合中的长度最大的一条或两条线段作为左侧目标特征点线段集合。其中应说明的是,相邻两个采样点分别对应的两条第一线段,可能包括相同的待探测特征点,因而不同采样点的第一线段可能连成一条长线段。而需要说明的是,上述步骤S31至S34的目的是为了得到较多的第一线段(短线段),并尽可能的使短线段连成较长的线段,以得到左侧目标特征点线段集合。
由于第二特征点集合中的特征点为表现性较强的特征点,因此,根据第二特征点集合中的,位于轨迹线左侧的特征点确定的左侧目标特征点线段集合中的特征点线段为噪声的可能性很低,因此,根据第二特征点集合中的,位于轨迹线左侧的特征点确定的左侧目标特征点线段集合中的特征点线段为左侧的车道边缘线的可能性高。
此处需要说明的是,根据所述第二特征点集合中的,位于所述轨迹线右侧的特征点确定所述右侧目标特征点线段集合的方式与上述根据所述第二特征点集合中的,位于所述轨迹线左侧的特征点确定所述左侧目标特征点线段集合的方式相同,此处不再赘述。
可选地,所述根据所述目标特征点线段集合和所述第一特征点集合,确定所述目标道路的道路边缘线,包括:
根据所述左侧目标特征点线段集合和所述第一特征点集合,确定所述目标道路的所述左侧边缘线;根据所述右侧目标特征点线段集合和所述第一特征点集合,确定所述目标道路的所述右侧边缘线。
采用这种方式,结合左侧目标特征点线段集合和第一特征点集合,可以在保障准确性的基础上,确定较为完整的左侧边缘线。同理地,结合右侧目标特征点线段集合和第一特征点集合,可以在保障准确性的基础上,确定较为完整的右侧边缘线。
可选地,参见图5,所述根据所述左侧目标特征点线段集合和所述第一特征点集合,确定所述目标道路的所述左侧边缘线,包括以下步骤:
S51、针对所述行车轨迹数据中的每一采样点,从所述左侧目标特征点线段集合中确定距离该采样点最近和最远的两个边界参考点。
S52、从所述第一特征点集合中的,位于所述轨迹线左侧的特征点中确定与该采样点在所述轨迹线上的切线垂直线的距离小于所述第一预设阈值的第二待探测特征点集合。
应当说明的是,第二待探测特征点集合中的特征点数量大于或等于上述第一待探测特征点集合中的特征点数量。
S53、从所述第二待探测特征点集合中确定与所述轨迹线的距离处于所述两个边界参考点分别与轨迹线的距离之间,且点云稠密度达到第三预设阈值的候选特征点。
具体地,从第二待探测特征点集合中确定与轨迹线的距离处于两个边界参考点分别与轨迹线的距离之间,且点云稠密度达到第三预设阈值的候选特征点。
其中,点云稠密度的标准是:关注点的信号强度、一帧点云1米范围内的点的个数以及关注点被多帧点云扫到的帧数FrameN。比如,看某一个坐标点(CheckNode的knot坐标)如果在多帧点云中都有信号,统计所有信号帧(帧数为FrameN)的点云在knot坐标1米范围内的信号强度达标的点的个数N。稠密度I=N*FrameN。
S54、针对每一所述候选特征点,从所述第一特征点集合中确定横向距离所述候选特征点第一预设距离(例如为0.5米),且纵向距离所述候选特征点第二预设距离(例如为3米)范围内的第三特征点集合,并按照窗长为预设长度(例如为0.1米)的横向距离窗口对所述第三特征点集合进行点数统计,得到对应的直方图,根据所述直方图确定峰值,并从所述峰值中遴选出边缘真值点,其中,所述横向为采样点的切线垂直方向,所述纵向为采样点的切线方向。其中,从所述峰值中遴选出边缘真值点的方式与相关技术中的方法相类似。
S55、将每一所述边缘真值点连接成线段,得到所述左侧边缘线。
将针对行车轨迹数据中的每一采样点确定的边缘真值点连接成线段,从而得到左侧边缘线。
应当说明的是,采用与左侧相同的方式确定右侧边缘线。示例地,参见图6,根据本公开的上述方法,可以得到如图6所示的左侧边缘线和右侧边缘线。在确定目标车道的左侧边缘线以及右侧边缘线之后,可以对左侧边缘线以及右侧边缘线进行平滑处理,以得到平滑的车道边缘线。
可选地,所述根据所述道路边缘线和所述目标道路的预设车道宽度,确定所述左侧边缘线和所述右侧边缘线之间的矢量线,包括:
根据所述左侧边缘线和所述右侧边缘线之间的距离,以及所述目标道路的所述预设车道宽度确定所述左侧边缘线和所述右侧边缘线之间的车道数量;将所述左侧边缘线中每一左侧采样点与对应的右侧采样点进行连接得到对应的辅助线段,从每一所述辅助线段中确定将该辅助线段均分为所述车道数量对应份数的目标位置点;对每一所述辅助线段中的目标位置点从左至右进行标号,将所有所述辅助线段中的标号相同的目标位置点进行连接,得到所述矢量线。
具体地,设左侧边缘线和右侧边缘线之间的距离为D,目标道路的预设车道宽度为d,那么目标道路上的车道数量为n=D/d。将左侧边缘线中每一左侧采样点与对应的右侧采样点进行连接得到对应的辅助线段,其中需说明的是,左侧和右侧的点云数据的采样频率相同,因而左侧边缘线中第K个采样点与右侧边缘线中第K个采样点相对应。一种可能的情况,左/右侧边缘线中各采样点间隔1米。针对每一辅助线段,将该辅助线段平均分成n份,得到将该辅助线段均分为n份的i个目标位置点;对每一辅助线段中的i个目标位置点按照从左侧边缘线向右侧边缘线方向进行从小到大的标号,例如标为1、2、3、4...i,将所有所述辅助线段中的标号相同的目标位置点进行连接,得到对应标号的矢量线。其中可以为每一标号设置对应语义信息。示例地,参见图7,在针对图6所示的边缘线进行平滑处理后,采样上述方法,得到左侧边缘线与右侧边缘线之间的矢量线,从而生成如图7所示的车道线。
一种特殊的情况,当左侧边缘线中采样点数量与右侧边缘线中的采样点数量不相同时,例如,左侧边缘线中采样点数量为x,右侧边缘线中采样点数量为y,且x小于y。那么针对右侧边缘线中第x+1个采样点,将该第x+1个采样点与左侧边缘线中第x个采样点相连得到对应的辅助线段,并将该辅助线段均分为n份,得到该辅助线段均分为n份的i个目标位置点。如此直到确定右侧边缘线中第y个采样点对应的i个目标位置点。在左侧边缘线中采样点数量与右侧边缘线中的采样点不相同的情况下,可以在针对较长边缘线中的所有采样点确定对应的辅助线段以及辅助线段上的目标位置点之后,对其中较短的边缘线进行补偿,以使两条边缘线长度一致。
应当说明的是,对矢量线中的与边缘线采样点相对应的各目标位置点(采样点)以及边缘线中的各采样点进行多次曲线拟合之后,结合每一矢量线以及边缘线的标号/语义信息可以构建OpenDrive规范中的支持描述多个车道的完整道路。示例地,参见图8,图8示出了根据图7中的道路边缘线和道路边缘线之间的矢量线拟合生成的OpenDrive道路。
值得说明的是,上述生成OpenDrive道路的方法与相关技术中经过十几道繁琐、复杂的工序流程的方法相比较,本公开的这种方法工序流程更加简洁高效。参见图9,图9示出了将图8中的OpenDrive道路与采集车采集到的原始点云数据进行叠加后的效果图,可见采用本公开的上述方法,能够生成准确地,符合实际的OpenDrive道路。
基于同一发明构思,本公开实施例还提供一种车道线生成装置,如图10所示,车道线生成装置100包括:
获取模块101,被配置为用于获取目标道路上采集车的行车轨迹数据,以及所述采集车上的雷达扫描到的点云数据;
第一确定模块102,被配置为用于针对所述点云数据中的每一帧点云数据的位图进行线状分段检测,得到所述点云数据对应的像素图,根据所述像素图确定第一特征点集合和第二特征点集合;
第二确定模块103,被配置为用于根据所述行车轨迹数据和所述第二特征点集合,确定目标特征点线段集合,根据所述目标特征点线段集合和所述第一特征点集合,确定所述目标道路的道路边缘线,所述道路边缘线包括:左侧边缘线、右侧边缘线;
第三确定模块104,被配置为用于根据所述道路边缘线和所述目标道路的预设车道宽度,确定所述左侧边缘线和所述右侧边缘线之间的矢量线,根据所述道路边缘线以及所述矢量线生成所述目标道路上的车道线。
采用这种装置,通过获取目标道路上采集车的行车轨迹数据,以及该采集车上的雷达扫描到的点云数据,其中,雷达为低线数雷达(如16线,32线),点云数据为稀疏点云数据。针对该稀疏点云数据中的每一帧点云数据的位图进行线状分段检测,得到每一帧的像素图,将所有帧的像素图进行叠加得到该稀疏点云数据的像素图。其中,针对每一帧点云数据的位图进行线状分段检测,有利于提取每一帧稀疏点云数据中的有效线状特征信息,从而使得针对该稀疏点云数据得到的像素图至少能够客观的反映道路边缘区域的特征,有效的削弱稀疏点云数据中采集到的其他车辆的噪声。进一步地,根据该稀疏点云数据的像素图确定第一特征点集合和第二特征点集合。并根据行车轨迹数据、第一特征点集合以及第二特征点集合确定目标道路的道路边缘线。根据道路边缘线和目标道路的预设车道宽度,确定道路边缘线之间的矢量线,从而得到目标道路上的车道线。采用这种方法,利用低线数雷达可以避免使用多线数雷达的高成本问题。并且,稀疏点云数据的数据量比多线数雷达的稠密点云数据的数据量少很多,因此在对稀疏点云数据进行处理时计算量更少,进而对数据处理设备的性能要求低。虽然稀疏点云数据可能损失了目标道路上的较多信息导致稀疏点云数据中的道路特征相对粗糙。但是,采用本公开的上述方式,通过稀疏点云数据仍然可以准确地确定道路边缘的线性特征信息,进而准确地确定目标车道的左侧和右侧道路边缘线。在准确地确定道路边缘线的基础之上,结合目标道路的预设车道宽度,合理的确定左侧边缘线和右侧边缘线之间的车道矢量线,从而能够生成准确地、符合实际的、具有真实感的车道线。
可选地,所述第一确定模块102包括:
第一投影子模块,被配置为用于将所述像素图反向投影到所述点云数据的数据空间,得到所述第一特征点集合;
第二投影子模块,被配置为用于对所述像素图进行线状分段检测,得到第一像素图,并将所述第一像素图反向投影到所述点云数据的数据空间,得到所述第二特征点集合,其中,所述第二特征点集合中特征点的数量小于所述第一特征点集合中特征点的数量。
可选地,所述目标特征点线段集合包括左侧目标特征点线段集合和右侧目标特征点线段集合,其中,所述左侧目标特征点线段集合是根据所述第二特征点集合中的,位于所述行车轨迹数据对应的轨迹线左侧的特征点确定的,所述右侧目标特征点线段集合是根据所述第二特征点集合中的,位于所述轨迹线右侧的特征点确定的。
可选地,所述装置还包括:第四确定模块,被配置为用于根据所述第二特征点集合中的,位于所述轨迹线左侧的特征点确定所述左侧目标特征点线段集合;所述第四确定模块包括:
获取子模块,被配置为用于针对所述行车轨迹数据中的每一采样点,获取该采样点在所述轨迹线上的切线垂直线,并从所述第二特征点集合中的,位于所述轨迹线左侧的特征点中确定与所述切线垂直线的距离小于第一预设阈值的第一待探测特征点集合,其中,所述第一待探测特征点集合中的待探测特征点按照与所述轨迹线之间的距离由小到大进行排列;
连接子模块,被配置为用于针对每一所述采样点的所述第一待探测特征点集合中的每一待探测特征点,将该待探测特征点和下一所述采样点的所述第一待探测特征点集合中的目标待探测特征点进行连接,得到对应的第一线段,其中,该待探测特征点到所述轨迹线的距离与该目标待探测特征点到所述轨迹线的距离相差不超过所述第一预设阈值;
第一确定子模块,被配置为用于针对由每一所述采样点对应的所有第一线段组成的线段集合,将所述线段集合中的长度大于第二预设阈值的线段作为所述左侧目标特征点线段集合。
可选地,所述第二确定模块103,包括:
第二确定子模块,被配置为用于根据所述左侧目标特征点线段集合和所述第一特征点集合,确定所述目标道路的所述左侧边缘线;
第三确定子模块,被配置为用于根据所述右侧目标特征点线段集合和所述第一特征点集合,确定所述目标道路的所述右侧边缘线。
可选地,所述第二确定子模块还被配置为用于:针对所述行车轨迹数据中的每一采样点,从所述左侧目标特征点线段集合中确定距离该采样点最近和最远的两个边界参考点,并从所述第一特征点集合中的,位于所述轨迹线左侧的特征点中确定与该采样点在所述轨迹线上的切线垂直线的距离小于所述第一预设阈值的第二待探测特征点集合,并从所述第二待探测特征点集合中确定与所述轨迹线的距离处于所述两个边界参考点分别与轨迹线的距离之间,且点云稠密度达到第三预设阈值的候选特征点;
针对每一所述候选特征点,从所述第一特征点集合中确定横向距离所述候选特征点第一预设距离,且纵向距离所述候选特征点第二预设距离范围内的第三特征点集合,并按照窗长为预设长度的横向距离窗口对所述第三特征点集合进行点数统计,得到对应的直方图,根据所述直方图确定峰值,并从所述峰值中遴选出边缘真值点,其中,所述横向为采样点的切线垂直方向,所述纵向为采样点的切线方向;将每一所述边缘真值点连接成线段,得到所述左侧边缘线。
可选地,所述第三确定模块104包括:
第四确定子模块,被配置为用于根据所述左侧边缘线和所述右侧边缘线之间的距离,以及所述目标道路的所述预设车道宽度确定所述左侧边缘线和所述右侧边缘线之间的车道数量;
第五确定子模块,被配置为用于将所述左侧边缘线中每一左侧采样点与对应的右侧采样点进行连接得到对应的辅助线段,从每一所述辅助线段中确定将该辅助线段均分为所述车道数量对应份数的目标位置点;
第六确定子模块,被配置为用于对每一所述辅助线段中的目标位置点从左至右进行标号,将所有所述辅助线段中的标号相同的目标位置点进行连接,得到所述矢量线。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图11是根据本公开一示例性实施例示出的一种电子设备1900的框图。例如,电子设备1900可以被提供为一服务器。参照图11,电子设备1900包括处理器1922,其数量可以为一个或多个,以及存储器1932,用于存储可由处理器1922执行的计算机程序。存储器1932中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器1922可以被配置为执行该计算机程序,以执行上述的车道线生成方法。
另外,电子设备1900还可以包括电源组件1926和通信组件1950,该电源组件1926可以被配置为执行电子设备1900的电源管理,该通信组件1950可以被配置为实现电子设备1900的通信,例如,有线或无线通信。此外,该电子设备1900还可以包括输入/输出(I/O)接口1958。电子设备1900可以操作基于存储在存储器1932的操作系统,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM等等。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的车道线生成方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器1932,上述程序指令可由电子设备1900的处理器1922执行以完成上述的车道线生成方法。
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的车道线生成方法的代码部分。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。