Road-SLAM:基于道路标线车道级精度SLAM
文章:Road-SLAM : Road Marking based SLAM with Lane-level Accuracy
作者:Jinyong Jeong, Younggun Cho, and Ayoung Kim1
编译:点云PCL
本文仅做学术分享,如有侵权,请联系删除。欢迎各位加入免费知识星球,获取PDF论文,欢迎转发朋友圈。内容如有错误欢迎评论留言,未经允许请勿转载!
对本文以及俯视图生成点云,及点云路标地图感兴趣的。与此相关的内容分享有:
其中有很多地方可以讨论交流,欢迎各位大佬赐教!同时公众号也将分享更多与此类型相关的文章,包括其引用文献,敬请期待。
欢迎自动驾驶行业的小伙伴,按照“姓名+学校/公司”备注,添加微信“ly920177957”交流或者加入群聊。
摘要
在本文中,我们提出了基于道路标记SLAM算法,该算法充分利用了从相机图像中获取的道路标记,道路标记物分类良好,信息丰富,用来实现全局定位。为了使用道路标记匹配实现环路闭合,我们的方法将由道路标记和周围车道组成的特征定义为子地图,该方法采用随机森林方法,利用包含道路信息的子地图提高匹配精度,随机森林将道路标记分为六类,将SLAM结果与RTK全球定位系统(GPS)数据进行比较,验证了该方法的有效性,精确的环路检测通过补偿里程计传感器中的累积误差来提高全局精度,该方法在4.7 km的路径长度上实现了1.098 m的平均全局精度,同时具有实时性能。
图1:Road-SLAM示意图,将图像中的道路标记转换为三维点云,通过分割和分类过程将其分为六类,使用此信息,将创建包含标记之间关系的子地图,并将其应用于SLAM系统。
介绍
为了避免传感器的高成本,研究集中于仅视觉系统和从车载相机图像中估计位姿,我们的研究将检测路面上的道路标线和车道,并将其转换为车道级别定位和SLAM的特征,Ranganathan等人从每个道路标记中提取拐角,并通过将其与之前使用高精度GPS生成的轻型先验地图进行比较来估计准确位置,Rehder等人使用相机图像和里程计生成局部栅格地图,并通过匹配每个地图来估计车辆的自我运动,在类似的研究中,通过将当前道路特征与先前保存的特征进行比较,存储道路标记特征并用于位姿误差校正。这些方法的主要局限性在于,当标线和车道具有相似的形状和重复模式时,将会导致模糊。
为了解决这种模糊性问题,本文提出的方法随机森林树训练法只对可分辨的道路标线进行分类,这种分类通过避免形状相似的标记产生视觉锯齿,大大提高了匹配性能,然后,通过匹配由这些显著标记和周围车道构建的子地图来识别一个地方,通过这样做,可以仅使用视觉道路标记识别位置,这些标记对环境变化(例如照明、时间和周围环境)不太敏感,整个SLAM实现如图1所示,并具有以下贡献:
·使用信息特征选择的稳健匹配
·具有全自动匹配检测的实时性能
·来自视觉环路的精确定位(cm级)
图2:Road-SLAM算法流程,给定一幅道路图像,每个模块都在实时工作的线程中运行的示意图。
主要内容
系统概述
实验中使用了一个类似于汽车的平台上的建图系统,该平台如图3所示,配备有前视ZED摄像机、IMU和两轮编码器,两个车内传感器,一个IMU和一个车轮编码器,用于导航,图像用于道路标记和车道检测,RTK-GPS安装在车辆上,仅用于最初设置车辆的位置和方向以及提供真值,虽然ZED相机在与图形处理单元(GPU)一起使用时也能提供高精度的深度图像,但在本文中,我们仅将其用作单摄像头(10 Hz),而不使用GPU和深度图像。
图3:传感器系统配有ZED摄像机、MTi IMU、两轮编码器和RTK GPS,RTK GPS仅用于在算法开始时初始设置车辆的方向和位置。
整体算法架构如图所示,首先,将相机获取的图像通过逆透视变换(IPM)将其生成点云,为了提取属于道路标记的点云,使用自适应二值化算法对IPM图像进行二值化[,对生成的点云进行分割处理,通过累积点云获得的子地图划分为若干段,然后,使用称为随机森林的机器学习方法,将构成子地图的每个部分划分为六类,为了提高子地图的匹配精度,只选择能够减少子地图模糊度的线段,并将其包含在最终子地图中进行匹配,最后,子地图匹配模块通过对前一流水线过程中确定的子地图进行点匹配来检测回环。
基于道路匹配的鲁棒SLAM
对于子地图的生成,首先对IPM后的图像进行预处理和二值化分割和分类,以构建子地图,子地图是环路检测的匹配候选组,该子地图生成模块仅包括选择子地图中的道路标记和车道线。
A.点云生成
点云的使用IPM算法生成属于道路标记的点,IPM通过对图像进行逆透视变换效果来创建鸟瞰图像,由于IPM方程是在假设车辆前方道路平坦的基础上推导的,因此车辆的小俯仰运动可能会导致IPM图像中的大失真,为了克服这个问题,考虑到相机的俯仰角的变化,采用了自适应IPM模型,然后应用自适应二值化算法仅过滤道路上的信息标记,IPM和二值化过程的结果如图4所示。
图4:展示所提出方法中采用的自适应IPM和二值化的实例(a)中的红色框是用于创建点云的原始图像的ROI。(b)和(c)中的白框是从相机图像转换为IPM图像的ROI,子地图创建标准通过评估黄色框(c)中的像素来确定。
在对图像预处理之后,二值化点被送入三维(3D)点云生成阶段,在该转换中,算法限制在了相机附近的感兴趣区域(ROI),以避免IPM造成的大的透视失真,如图4所示,在导航传感器(例如,车轮编码器和IMU)生成的里程计上投影二值化点生成车道线和标记点云,子地图是由车辆局部坐标系中的3D道路标记点组成的地图,用于环路检测。子地图是在车辆行驶方向检测到道路标记时生成的,因此,点云生成模块通过检查ROI中的点数(图4c中的黄色框)来检测道路标记,然后,当检测到累积的三维点云时,该算法将其存储为一个初始子地图。
B 道路标线分割
给出二值化点云,然后对道路标线的两个方面进行分割,首先,并非所有道路标记对姿势估计都有意义,例如,中心车道无法捕捉沿线的运动,因此仅限于估计全六自由度(DOF)变换,人行横道具有丰富的特征点,但即使在IPM失真很小的情况下,重复图案也会令人困惑,因此在提出的方法中,我们决定删除这些信息量较小的元素,并通过分割的方法来提高匹配的准确性。发现虚线车道、箭头、道路标记和数字可以作为匹配的信息。
在同一场景中,通常会捕捉到多条道路标线和车道,作为示例,图6a示出了由从二值化IPM图像提取的点组成的示例路线图。
图6:分割和分类结果,停车车道分为一段,因为我们知道道路标记的实际大小和长度,所以可以删除这些较大的路段,在分类结果中,组的颜色表示线段所属的类别(即绿色:箭头、蓝色:道路标记、黄色:编号、红色:人行横道)。
如图所示,菱形道路标记和虚线车道彼此非常接近,对于道路上的数字,每个数字间隔开,虚线车道可能接近这些数字,当道路标记靠近车道元素时,我们采用从粗到细的两阶段分割方法,所有小段都被分割,以首先排除车道,然后,只使用没有车道元素的路段,应用中更大的分段将道路标记合并到单个簇中。
图5:点云分割过程,通过过滤和分割过程,对每个道路标线进行精确分割
端到端分割模块如图5所示,由于累积点云是从多个图像中获得的,因此许多点往往杂乱无章地聚集在一个片段周围,为了解决这个问题,分割模块首先进行
(i)体素化以有效地表示重复的点。
(ii)半径异常值滤波以去除噪声。
我们第一次分割的目的是排除大簇(例如,中心线和停车线)和虚线车道,以便清晰地检测显著的道路标记,初始分割过程将点分割成一个小半径,这样,大簇要素将被划分为单个路段,虚线车道将被分为若干组,使用特征的线性来检查这些初始段,以便预先检测和分类车道,然后,对排除车道和大线段的点使用相对较大的半径值执行后续分割,因此,按一定距离分隔的段(如数字或人行横道)组合为一个段,这些段也放在在候选组中进行分类。
C 分类
一旦建立分段标记,分类线程将区分受IPM图像失真影响较小的分段,以实现鲁棒匹配,使用先前分割的道路标记(图7)
图7:道路标记分割段,通过一种随机森林方法将每一结果划分为单独的类。
我们通过形状函数集合(ESF)提取特征,ESF是形状函数的640元组直方图,由三个参数定义:两个随机选择点之间的距离、三个点之间的面积以及三个随机选择点之间的角度。利用ESF构造的特征向量作为随机森林的输入,以区分每个片段,在训练阶段,将随机森林的最大深度设置为100,从分割过程中获得的分类候选段用于随机森林的训练和测试,随机森林的输出由六个类组成:道路标记、数字、箭头、车道、人行横道和其他,最后,在分类为随机森林的路段中,只有信息类(例如道路标记、编号、箭头和车道)包含在匹配过程的子地图中。
D 基于GICP的子地图匹配
当一个地方被重新访问时,我们在给定一个循环闭包候选对的情况下执行子地图匹配,使用距离当前车辆位置的距离阈值选择此候选方案,这些候选对的示例如图8所示。
图8:重新访问某个地方时匹配候选子地图对(a) 和(b)是先前获得的子地图,(d)表示重新访问时的子地图。
匹配过程使用广义迭代最近点(ICP)算法在候选对象中选择匹配成本最小的子地图,如果ICP匹配成功,则使用ICP结果计算两个子地图之间车辆的相对位置,计算出的相对姿势作为约束信息传递给增量平滑和建图(iSAM)姿势图,以创建回环。
E Road-SLAM
所提出的方法Road SLAM是基于姿势图的方法,该方法最小化了以下误差函数:
对于里程计约束的生成,车辆的位置是通过基于获取摄像头图像的时间同步所有传感器来计算的,xt是车辆的位置,六自由度变换(zt;从车轮编码器和IMU传感器获取节点之间的t+1),该方法通过子地图之间的匹配过程,在车辆再次访问之前经过的同一地点时检测环路,整个SLAM框架如图9所示,黑色圆圈点和边表示车辆节点(姿势)和链接(约束),时间链路由里程测量构建,而穿过顺序节点的非时间链路由基于子地图的链路,相应节点的子地图显示如图。
图9:位姿图SLAM示意图,由道路标记组成的道路SLAM中使用的子地图。
实验
我们使用建图的汽车平台获得的真实数据验证了所提出的方法,我们的目标环境是复杂的城市道路,而不是高速公路,使用了50至60 km/h的平均车速,这对算法的性能影响很小.该代码是使用一台板载PC(Intel i7-6700,16G RAM)实现的,对于传入的摄像头图像(10 Hz)和导航传感器(100 Hz),该算法在不使用GPU的情况下实时运行,总体轨迹和实验区域(600m×400m)如图11a所示,从实验来看,该算法能够在4.7 km的行程距离上实现1.0987 m的平均误差。
图11:所提出方法的实验结果
(a) 使用RTK-GPS获得了地图区域的航空图像和描绘的路线。实验环境为600m×400m,总行程为4.7km
(b) 使用道路标记循环检测生成路线图
(c) 仅使用里程计绘制的路线图
使用随机林分类
评估用于选择构成子地图的元素的随机林的结果。随机森林的训练数据是使用相同的绘图系统从大约25km的数据收集中获得的,使用ESF特征提取的数据通过手动标记分为六类(即道路标记(1)、数字(2)、箭头(3)、车道(4)、人行横道(5)和其他(6)),下表数据集的分类结果,在检验个体分类误差时,分类器的准确率约为81.92%。
随机森林分类器的相似矩阵。标线和十字路口是道路标线和人行横道的缩写。行表示实际的类,列表示随机林分类器的结果。
通过分类结果比较子地图滤波的精度改进效果。
与基于里程计的m地图(图11c)相比,使用所提出方法的SLAM结果如图11所示。当累积里程计误差通过仅使用道路标线的精确环路检测进行补偿时,会出现这种巨大的改善,为了定性评估定位的准确性,我们提供了环路闭合区域的反向投影路线图,通过在每次重访时叠加道路标记点,我们从地图点的一致性来评估定位精度,图12a至图12d示出发生环路检测的区域(绿色区域),为了评估环路检测的准确性,根据校正后的车辆位置生成道路标记,无需进一步处理,如图12a至12d所示,环路闭合附近的道路标记正确重叠,即使车辆已反复通过同一区域,另一方面,图12e至图12h示出了环路检测失败的区域,特别是在交叉口的情况下,与其他区域相比,环路检测几乎没有发生,因为为了环路检测的准确性,人行横道被移除。此外,在图12h中,道路标记颜色非常混浊,因此未检测到环路,即使对于图12e和图12f的区域,最大误差也低于2.0 m,因为漂移由附近的回环闭合器校正。
图12:在同一位置覆盖多个车辆通行的道路标记点,当检测到循环闭合时(a到d),将生成全局一致的地图,如果未检测到环路或与环路检测区域的距离增加,则由于累积误差(e到h),地图中会出现错误。
图10显示了通过SLAM和RTK-GPS数据计算的路径比较计算出的误差
图10:所提出方法的精度分析,蓝线是算法的最终结果路径,彩色点是固定的RTK-GPS数据,SLAM和RTK-GPS之间的误差值按幅度进行颜色编码。
下表总结每个模块的计算时间,表中列出了每个模块所用的平均和最大时间,请注意,自适应IPM在捕获图像数据时执行,而其他模块仅在创建子地图时发生。
总结
在本文中,我们提出了一种SLAM算法,该算法仅使用一个摄像头传感器,并利用对光线和环境变化具有鲁棒性的道路标记信息,SLAM算法的准确性可以通过分类和消除使用随机森林在各种道路标记之间增加环路检测模糊度的元素来提高,此外,尽管使用了不带全局位置传感器的航位推算传感器,但通过非常精确的环路检测实现了较高的全局位置精度,这一结果还表明,利用道路标线的初步信息可以实现定位,我们发现,周围物体的阴影在某些情况下会产生显著的影响,我们未来的工作是遵循类似的研究路线,朝着光照条件不变的算法发展。
资源
三维点云论文及相关应用分享
【点云论文速读】基于激光雷达的里程计及3D点云地图中的定位方法
3D-MiniNet: 从点云中学习2D表示以实现快速有效的3D LIDAR语义分割(2020)
PCL中outofcore模块---基于核外八叉树的大规模点云的显示
更多文章可查看:点云学习历史文章大汇总
SLAM及AR相关分享
如果你对本文感兴趣,请后台发送“知识星球”获取二维码,务必按照“姓名+学校/公司+研究方向”备注加入免费知识星球,免费下载pdf文档,和更多热爱分享的小伙伴一起交流吧!
以上内容如有错误请留言评论,欢迎指正交流。如有侵权,请联系删除
扫描二维码
关注我们
让我们一起分享一起学习吧!期待有想法,乐于分享的小伙伴加入免费星球注入爱分享的新鲜活力。分享的主题包含但不限于三维视觉,点云,高精地图,自动驾驶,以及机器人等相关的领域。