雷锋网按:本文为雷锋网专栏,作者系佐思产研研究总监周彦武,雷锋网经授权发布。
基于视觉系统的车道线检测有诸多缺陷。
首先,视觉系统对背景光线很敏感,诸如阳光强烈的林荫道,车道线被光线分割成碎片,致使无法提取出车道线。
其次,视觉系统需要车道线的标识完整,有些年久失修的道路,车道线标记不明显,不完整,有些刚开通几年的道路也是如此。
第三,视觉系统需要车道线的格式统一,这对按照模型库识别车道线的系统尤其重要,有些车道线格式很奇特,比如蓝颜色的车道线,很窄的车道线,模型库必须走遍全国将这些奇特的车道线一一收录,才能保证顺利检测。
再次,视觉系统无法对应低照度环境,尤其是没有路灯的黑夜。一般LKW要求时速在72公里以上才启动,原因之一是速度比较高时人不会轻易换道,另一个原因就是比较低的车速意味着视觉系统的取样点不足,拟合的车道线准确度较低。而激光雷达的有效距离一般是视觉系统的4-5倍,有效的采样点比较多,车速较低时检测准确度远高于视觉系统。
最后,如果车道线表面被水覆盖,视觉系统会完全无效。视觉系统最大的优点就是成本低。因此自2008年后,学术界已经很少研究基于视觉系统的车道线检测,转而利用激光雷达检测车道线,激光雷达可以解决上述所有问题,包括车道线被水覆盖,激光雷达最大可穿越70米的水深。
激光雷达唯一的缺点就是成本太高。
基于雷达扫描点密度的车道线检测
早期激光雷达检测车道线是基于雷达扫描点密度的车道线检测方法,该方法通过获取雷达扫描点的坐标并转换成栅格图,用原始数据映射栅格图,可以是直接坐标栅格图也可以是极坐标栅格图。
按照后期处理需要进行选择,极坐标栅格图被直接用于车道线识别,即有多个点映射的栅格就被认为是车道线点,该识别方法对特征提取的要求很高,且受距离影响严重,因为极坐标栅格距离越近栅格精度越高,车道线识别的精度越高,距离越远栅格精度越低导致识别车道线的精度就越低然后利用栅格图中点的密度提取车道线。
对于点密度的求取可以采用直方图统计的方式,通过直方图统计点密度快捷直观,容易理解。由于基于扫描点密度的检测方法没有很复杂的中间过程,所以实时性高,在快速检测中受到大家的青睐。
但是该方法只获取了扫描点的位置信息,对于雷达反馈的其他信息都没有进一步分析,容易把一些与车道线扫描点密度类似的道路信息混进车道线检测结果中;或者在车道线与其他障碍物靠近或重合时,无法区分出障碍物和车道线,他们只能被当作一个整体保留或剔除。
所以此方法的抗干扰能力差,容易出现误检。这种方法目前已经不常使用。
激光雷达检测车道线的四种方法
目前激光雷达检测车道线主要有四种方法:
-
基于激光雷达回波宽度;
-
基于激光雷达反射强度信息形成的灰度图,或者根据强度信息与高程信息配合,过滤出无效信息;
-
激光雷达SLAM与高精度地图配合,不仅检测车道线还进行自车定位;
-
利用激光雷达能够获取路沿高度信息或物理反射信息不同的特性,先检测出路沿,因为道路宽度是已知,根据距离再推算出车道线位置。对于某些路沿与路面高度相差低于3厘米的道路,这种方法无法使用。
后三种方法需要多线激光雷达,最少也是16线激光雷达。前者可以使用4线或单线激光雷达,考虑到奥迪A8已经开始使用4线激光雷达,4线激光雷达已经进入实用阶段。
当然,这四种方法也可以混合使用。
车道线检测两步走
车道线检测基本分两部走:提取几何或物理特征,利用离散数据拟合成车道线。无论是视觉还是激光雷达,通常都是用最小二乘法拟合车道线。
离散数据拟合车道线
Ibeo是最适合第一种方法的激光雷达。Ibeo的激光雷达特有三次回波技术。每点激光返回三个回波,返回信息能够更加可靠地还原被测物体,同时能够精确分析相关物体数据,并能识别雨、雾、雪等不相关物体的数据。
如图所示,其中W表示回波脉冲宽度,d表示扫描目标的距离。反射率作为物体的固有属性,受物体材质、颜色等的影响,能够很好地反映物体特征,不同颜色。
密度的物体的反射率都有一定的差异,物体反射率决定Ibeo回波脉冲宽度特性,路面和车道线有着明显的差异,所以可以利用回波脉冲宽度的差异对目标进行区分。
*上图为典型的车道线标识
*回波宽度
很明显,路面的回波宽度在2米左右,车道线的回波宽度在4米左右。
根据Ibeo的特性知道其垂直方向上的扫描角度为3.2度,共分四层扫描,即每层0.8度,在Ibeo水平安装的情况下,并考虑到实际情况一一Ibeo的高度受车体的限制,其下面两层(一、二层)主要返回道路表面的信息,而上面两层(三、四层)主要返回有一定高度的道路信息。
根据激光雷达的特性知道激光束扫描到物体会立即产生回波,一二两层的扫描距离远小于三四两层。
通过理论分析和实验验证可知一二两层返回的信息主要包括路面、车道线、少量障碍物和边界数据;三四两层主要返回道路边界、障碍物和少量路表信息,所以在特征种子点提取阶段需要重点分析一二两层的雷达数据,这部分数据中对于车道线检测最大的干扰在于路面,提取车道线种子点特征的重点就是分离车道线特征与路面特征。
最小二乘法拟合车道线
通过最小类内方差算法找到路面与车道线的分割阈值,利用误差分析原理剔除车道线集合范围内的粗大误差,即剔除干扰信息,提取出车道线特征种子点。然后再拟合成车道线。
最小类内方差是一种自适应阈值的求取方法,也是一种模糊聚类方法。其基本思想是使用一个阈值将整体数据分成两个类,因为方差是数值分布是否均匀的度量,两个类的内部的方差和越小则每一类内部的差别就越小,那么两个类之间的差别就越大。
如果存在一个阈值使得类内方差和最小则说明这个阈值就是划分两类的最佳阂值,使用最佳阈值划分意味着划分两类出现偏差的概率最小。
通过回波脉冲宽度利用最小类内方差算法建模分割车道线特征与路面特征,剔除车道线特征提取的最大干扰。对回波脉冲宽度进行统计分析,并划分脉冲宽度级别,因为直接使用脉冲宽度值其分布不利于统计,采用对脉冲宽度平均区域划分即脉冲宽度级,统计各级内的点数,从而得到回波脉冲宽度分布直方图。再利用诸如模糊聚类分析方法剔除干扰值。
最小二乘法近似求解不断优化靠近真实值的数学方法,它可以利用己知数据简便地求得未知数据,并不断优化保证求得的数据与真实数据问的误差的平方和最小。
利用最小二乘法拟合曲线,就是不断优化求取某条曲线使其最能体现已有数据点的变化趋势,具体过程是利用已知的数据点优化求取最优的未知数据合成一条最佳的曲线,并保证已有数据点到曲线的距离的平方和最小。
也就是说,曲线拟合不要求近似曲线过所有数据点,只需要己知的数据点都距离在这条曲线的不远处,即这条曲线能反映数据点的整体分布,又不至于出现较大的局部波动,已知数据与曲线的偏差的平方和达到最小就能有效控制波动。
简而言之,最小二乘法拟合就是利用最小化误差的平方和求取数据的最佳函数匹配。
基于激光雷达反射强度信息
根据反射强度值做的车道线检测,在车载激光雷达获取的道路周围环境点云数中,可以轻松区分出道路与车道线。
具体到车载激光雷达获取的道路周围环境三维点云数据中,可以看作一个局部均值变点模型,每一激光层采集的可行驶区域内回波强度值就是一组输出序列,其回波强度值变化的点就是所要求的车道标线点集。
现在只须在每一激光层采集的可行驶区域内回波强度值输出序列中检测是否有变化点,若存在则标记并提取这些变点。基于车载雷达获取的智能车感兴趣区域内海量点云数据中的T坐标值有一定高程特点进行滤波,确定可行驶区域进而剔除与车道标线回波强度值相近的障碍物。
*上图为简单滤波后粗提取的车道线回波强度值投影图(全局图)
由于车载激光雷达获取的道路周围环境点云数据是分层存储的,不同激光层获取的道路周围环境点云数据相邻两点间距与到雷达坐标系原点的距离有关。
距离越远间距越大,考虑到安装在正常行驶上的激光雷达获取的车道标线曲率变较小,所以利用文献提出的基于车道标线方向的EM最大期望聚类算法对粗提取车道标线点云数据进行聚类。
通过在聚类过程中估计车道标线方向来对粗提取的车道标线点云数据集进行分类去噪。然后再利用最小二乘法进行车道线拟合。
再来看先检测路沿,再根据路宽推测车道线的方法。
激光雷达通过以太网与计算机连接,点云数据以 UDP 的方式进行发送。激光雷达的数据通过两个端口发送出来,端口 2368 负责发送点云数据,端口 8308 发送 GPS 数据还有位置数据。根据厂商提供的数据包格式说明,每个数据包包含有效数据的载荷以及状态数据。
一个数据包集合 12 次发射接收到的所有数据,接收到的距离以及强度信息是按照错开的顺序进行接收的( 0, 16, 1, 17, 2, 18...15,31)。
根据数据包的格式,进行相应的接收和存储。点云数据包含到一束激光点达到反射点反馈到的距离信息、强度信息以及偏转角度,由此可以得到反射点到激光雷达中心的距离、垂直平面上的角度以及水平面上的角度。
若使用车轮与地面接触的四个点所在的平面作为空间直角坐标系的 xOy 平面,通过激光雷达中心所在位置并且垂直于 xOy 平面的一条直线作为 z 轴,由此便构成了如图的空间坐标系。
利用点云数据, distance 表示激光点到激光雷达中心的直线距离,α是垂直方向上的夹角, β是水平方向上的夹角。
由于雷达内部发射器之间存在偏差(如图 3-(b)),需要进行内部校 正 , calibration_x 、 calibration_y 以 及calibration_z 分别为在 xyz 方向上所对应的内部校正参数,通过公式求得每个点在空间中的坐标( x, y, z)。
依次遍历每一个数据点,就可以完成对激光雷达数据的解析,利用接收到的数据重构出 3D点云。多线激光雷达采集到的 3D 点云数据能够提供了大量的信息,但是处理这些数据也带来了巨大的运算量,这是造成许多基于多线激光雷达的算法实时性比较差的重要原因。
划分网格提升激光雷达实用性与可用性
因此,减少运算量是提升多线激光雷达的实时性与可用性的关键。对于这个问题,通过划分网格的方法,减少运算量。
一种网格是方框型,一种是扇形。
方形网格是以激光雷达的位置(或者说车体位置为)地图中心,将激光雷达周围的环境划分为大小相等的网格。进行方形网格划分之后,将解析雷达数据得到的 3D点云投影到网格当中。扇形网格是以激光雷达的位置为圆心,用不同的半径的同心圆将激光雷达周围的环境进行划分。
一个网格是由同心圆以及从圆心出发的射线组成如图中的红色部分。因为激光雷达可以测量的最大范围可以到达 80 米到 100 米,所以设置最大的一个同心圆的半径为 80 米,最小的同心圆的半径为 0.5米, 相邻同心圆半径差作为一个参数,将 3D点云中的每个点投影到网格当中。
基于方形网格的划分,将全图分割为大小相同的网格,对于远近的障碍物处理比较公平;缺点是运算量大。基于扇形网格进行划分,呈现近处网格小而密集,从圆心开始越往外,网格越大。
扇形网格的优势在于对于近处的障碍物有良好的精度,能够分辨较小的障碍物,在减少运算量的同时对障碍物的处理有所侧重,缺点在于可能无法识别远处的较小的障碍物。
利用激光雷达获取路沿高度信息或物理反射信息
常见的路沿有人行道的路沿石、绿化带、隔离栅栏、雪糕桶等,除此之外,道路环境中,常见的障碍物还有路灯、行道树、消防栓、垃圾桶等。因此,路沿识别,需要找到人行道、绿化带、隔离栅栏、雪糕桶这类物体。
道路环境中的物体的高度大致可以分为三个层次,路灯、行道树等物体高度分类为高,绿化带、隔离栅栏、雪糕桶、消防栓等物体高度分类为中,人行道旁边的路沿石的高度则划分为低。
因此将高度作为筛选路沿的第一个特征但是,如果直接使用每个点的高度信息,接下来做聚类处理时会产生巨大的运算量,因此在上一步进行网格划分之后,就可以将点的聚类转为对网格的聚类。
由于网格的数量远远小于点的数量,因而可以大大减少聚类所需要的运算量。因此要将点的高度信息映射为网格的高度信息。
完成高程信息统计以后, 会出现一个明显的问题:行道树会有一些树枝延伸到道路上,此时,高程信息会显示路上有障碍物,实质上由于树枝是悬空的,并不会阻碍汽车的正常的行驶,因此,需要对这一类误判的障碍物进行中空识别,并将这一部分重新划分为可行驶区域。
算法的思路是,遍历每个标定为障碍物的网格,检测网格内的点的高度分布, 如果在地面以上 10cm(障碍物高度) 至地面以上 2.4 米(激光雷达的顶端距离地面的高度)之内的点进行统计,如果数量少于 10%,则认为该网格是中空的障碍物网格,车辆能够正常通过,因此重新将该网格归为可通行区域。
在高度信息统计,给每一个网格维护一个标志位,该标志位用来指示网格是否符合常见路沿的高度限制要求。
如果满足,则该标志位为真,否则为假。完成了所有的障碍物高度信息统计以后,也就是对所有的网格都进行了标记,此时考虑路沿的第二个特征:在一段距离内维持相似高度。
只满足路沿的第一特征的物体可能会是消防栓、路过的小孩和垃圾箱等物品,因此需要路沿的第二个特征进行进一步区分,将邻近网格聚类成群落,当群落中的网格的数量大于路沿的连续阈值时,才能认为是路沿。
聚类流程如图所示,递归地搜索所有网格, 直到周围没有新的可聚类网格就终止。 如果一个标志位为真的网格的邻近网格的标志位同样为真,就将它放入集群当中。进行群落检查的时候,如果群落中的网格数大于设定的阈值,则可认为是路沿。
我国高速公路设计标准为, 车道宽度 3.75米,应急车道为 2.5 米。如图所示, L1 为激光雷达检测的车体到左侧路沿的距离, L2 为激光雷达检测的车体到右侧激光雷达的距离,
设道面总宽度 L, 则 L 可由公式得到:L = L1 + L2 。考虑到并非所有的所有道路均设置紧急车道,使用求模运算进行估计,设余数为 M,则余数M 可由公式得到:M = L % 3.75。
如果 M 约等于 2.5,则认为存在应急车道,否则认为不存在。若存在时,路面宽度由公式L = L − 2.5,设车道数为 N,使用路面宽度除以 3.75,并向下取整,因为在道路设计中,路面与路沿之间存在一小段距离,则车道数可有公式N = ⌊L⁄3.75⌋计算出,根据车道数即可划分出车道线,车道线的宽度一般为15-20厘米。
由于车道与路沿的距离长短不一,因此这种方法在非标准道路上准确度不高,倒是路沿的检测准确度比较高。
小结
未来固态激光雷达也很适合检测车道线,固态激光雷达的FOV比较窄反而是个优势,等于过滤掉了很多无关数据。
不过单光子激光雷达通常采用计数器的方式读出数据,不能检测回波强度或回波宽度,不能检测车道线。线性APD固态激光雷达就很合适。
转载请注明出处。