简介:车道线和路沿的检测 在自动驾驶中起到很关键的作用。最近和做高精地图的朋友沟通, 激光雷达在构建高精地图中起到非常关键的作用。 如下图所示, 激光雷达作为多帧拼接,动态障碍物去除, 将点云的intensity信息和颜色做一个对应, 车道线/路沿就非常明显。

为什么基于激光雷达的车道线/路沿的工作很少呢?

所以很好奇, 基于图像的车道线,路沿检测学术界/工业界有很多人在研究, 但是基于激光雷达的实时车道线/路沿检测 很少有人研究, 并且做这块的参考和论文也特别少。问题也出来了, 实时的基于激光雷达的车道线/路沿检测有价值吗?

价值是有的, 看场景和应用!

基于激光雷达的车道线/路沿检测

多帧点云的拼接效果 (局部分段)

个人认为,和基于摄像头的车道线/路沿检测相比, 主要的缺点有这么几点:

  • 没有专门的开源激光雷达车道线,路沿的数据集

  • 激光雷达的车道线缺少纹理信息, 需要依赖车道线漆和地面的反射率不同来区分, 识别的能力没有图像强

  • 激光雷达的点云数据比较稀疏, 而且往往受到安装位置的影响, 照不到很远的地面

  • 激光雷达没有颜色信息, 对于车道线的颜色无法识别

  • 而, 和图像相比, 激光雷达的车道线和路沿检测也有那么几个优点:

  • 对光源和阴影的抗干扰能力强, 黑夜光线不好的时候, 进出隧道等Camera很头痛的corner case, 对于lidar 来说完全不是问题

  • 提供的3d位置非常准确, 能直接输出给定位,预测, 规划控制等模块使用, 不需要像图像2d 转 3d等步骤 ,能在大区率弯道提供准确的车道线/路沿3d位置

  • 实际应用 看 场景和需求

  • 在L3 干线物流卡车这条赛道里, 长途卡车经常半夜2/3点就出发, 长的一直要在路上跑十几个小时, 我们组也有小伙伴实际跟过长途卡车做体验。在L3 卡车干线物流中, 对于车道线/路沿识别有那么特点:

  1. 基本是以高速为主, 中国的高速公路的车道线/路沿质量相对比较好

  2. 车道线/路沿需要识别的非常远, 通常对于车道线的距离希望能在100m以上, 对于路沿的识别在150m以上

  3. 对于定位精度高,车道线c0, c1, c2, c3 的精度直接决定了 LCC这个功能的体验

  4. 卡车作业经常是黑夜,在某些地区光线不是特别好, 在隧道进出的时刻, 容易收到光照变化的影响。

在L3干线卡车这个场景中, lidar能够给 车道线/路沿检测这个任务带来很多的帮助, 和图像一起互为冗余 ,各自发挥各自的优点:

基于激光雷达的车道线/路沿检测

可以看到, 卡车车头很高,激光雷达可以装在离地3-4m的位置,极大地增强了远距离道路元素识别的能力

基于激光雷达的车道线/路沿检测

lidar的原始数据

基于激光雷达的车道线/路沿检测

camera 的原始数据

1. 装的高, 照的远

卡车车头比较高, lidar安装高度可达离地面3.5m, 能照的特别远。可以在下图中看到, 场景比较好的时候,车道线能照到140m, 路沿能照到240m.

2. 对光照不敏感, 在黑夜,进出隧道等场景能很好地弥补图像 。

3. 位置精度高, 对于大区率弯道的道路居中功能(LCC), 自动进出闸道给图像很好的补充 。

 

参考方案:

参考方案1:2D Segmentation based

基于激光雷达的车道线/路沿检测

RESA: Recurrent Feature-Shift Aggregator for Lane Detection(2020)

采用语义分割比较经典的Encoder - Decoder 结构, 通过RESA模块,将水平和垂直方向上其他pixel上的信息进行聚合。从而使feature map中的每个pixel都能包含其他pixel的信息。将每个车道线实例作为一个语义类别进行多类别语义分割,背景像素也单独作为一个语义类别。

基于激光雷达的车道线/路沿检测

LaneAF: Robust Multi-Lane Detection with Affinity Fields (2021)

优化了基于2分类的主流车道线检测方案, 省去了后续聚类或者实例分割的工作。该方法利用Affinity Field结合二分类分割的方法进行车道线检测和实例分割,该方法性能好,且能检测数量变化的车道线。

参考方案2:Anchor based

基于激光雷达的车道线/路沿检测

Structure Guided Lane Detection (2021 美团)

  • 提出结构信息导向的车道线检测框架,对于车道的数量没有限制

  • 预测消失点, 并且提出基于消失点的车道线anchor 生成策略

  • 提出 多层次的结构约束,提出 sense pixel-level unary details, model lane-level Relation , Image Level attention 等模块来构建场景和车道之间的结构约束

基于激光雷达的车道线/路沿检测

LaneATT: Keep your Eyes on the Lane:real-time Attention-guided Lane Detection(2020)

很经典的基于anchor based的方法, 和华为的一个小伙伴交流, 华为有一个团队把 LaneATT 用在了激光雷达路沿检测上面, 据说效果不错 。

参考方案3:2D Grid Based

基于激光雷达的车道线/路沿检测

Focus On Local(2021): Detection Lane marker form Bottom up via key point

基于关键点检测 的车道线检测,在Tusimple 和 CuLane取得SOTA. 因为需要生成heatmap, 将此方法并入 gird-based, 和我们采用的方法比较像。

backbone 特征出来以后, 提取4个 特征图。

1. 关键点位置heatmap

2. 距离关键点在δy偏移处,y轴上距离真实车道线点的偏移δXup

3. 距离关键点在δy偏移处,y轴上距离真实车道线点的偏移δXdown

4. 距离关键点在0偏移处,y轴上距离真实车道线点的偏移 δXhor

基于激光雷达的车道线/路沿检测

UFLD(2020): Ultra Fast Structure-aware deep lane detection

将图像切分成多个横长条, 再把横向切分成多个gird, 来预测每个包含车道线的grid的位置。

计算量较小, 运行速度比较快。使用了全局感受野,利用了车道线的先验信息, 加入了 structual loss。

可能无法处理纵向的车道线?

参考方案4:Panoptic SegFormer - Nvidia - 单目2d 全景分割

基于激光雷达的车道线/路沿检测

Panoptic SegFormer: Delving Deeper into Panoptic Segmentation with Transformers(2021)

DETR的全景分割升级版。DETR 在全景分割的潜力还没有被挖掘, Panoptic Segformer填上了这个洞。

设计主要基于这几点观察

  1. Deep Supervision 在 mask decoder 对于学习 high-qualities discriminative attention 表征非常重要

  2. 将things 和 stuff 同步对待 是有问题的, 因为特征不同

  3. 常用的后处理 中的 pixel-wise argmax 会产生 false - positive

贡献点:

提出mask decoder, 利用 多尺度的attention map 来 高分辨率的mask.

  • Mask decoder 是 深度监督的, 促进在中间层的attention 表征 来实现更好的mask quality 和 更快的收敛

提出 query decouping strategy, 将things 和 stuff 的queries分开来。

  • Things queries -> 2分匹配

  • Stuff queries -< class-fixed assign

  • 这个策略显著地提升了things 和 stuff 的干扰, 显著提高对象分割的质量

提出 improved post-processing method 来生成全景分割的结果

  • 效果优于pixel - wise argmax

  • Mask-wise merging strategy 考虑了 分类可能性 和 预测mask 的质量

  • 在DETR上使用这种后处理 就可以达到1.3% 的提升

参考方案5:PersFormer - PerceptionX Lab - 单目3d车道线检测

基于激光雷达的车道线/路沿检测

PersFormer: 3D Lane Detection via Perspective Transformer and the OpenLane Benchmark

相机3dBEV车道线检测的新范式 , 代码也已经开源, 非常良心, 上一篇文件已经具体介绍过。

基本的思路就是通过perspective transformer 来构建 Enhanced BEV Feature, 然后在 BEV上做3d车道线检测, 在2d图像上做2d车道线检测,检测头用的anchor based, 并且统一了2d和3d的anchor

这个工作能做很多拓展:

  • 加入多相机就可以构建周围一圈的车道线,

  • 加入时序信息 就可以构建局部地图

  • 加入lidar就可以做BEV层面下的 多传感器融合车道线检测

参考方案6:HDMapNet - 清华Mars Lab - 前融合/hdmap构建

基于激光雷达的车道线/路沿检测

HDMapNet: An Online HD Map Construction and Evaluation Framework.

很厉害实用的工作,代码也已经开源, 清华Mars Lab 和 PercetionX Lab YYDS, 希望可以多开源好的方案促进工业界的发展。

提出了一种生成局部HDmap的新方法, 可以替换之前的SLAM建图, 人工标注的方法 。(论文中也没有提供和SLAM建图对比的结果, 估计精度上还是达不到HDmap建图的要求, 但是可以作为一个很好的技术backup, 等积累的数据集足够多了,精度上来了可以, 估计厉害的图商应该有类似的数据启动的HDMap生成的方法。)

基于激光雷达的车道线/路沿检测

Lidar VS Camera VS L-R Fusion

论文也证明了, 激光雷达检测路沿比较强, 图像检测车道线比较强,如果2者做融合,无论是lane, boundary, crossroad, 都有大幅的提升。

由于路沿和车道线都是静止信息, 加入时间维度上的特征会有很大的帮助, 我准备之后在HDMapNet的基础上,在网络中加入时间维度(时序多相机 + 时序多激光雷达), 来逐步替换4d离线真值系统中的 定位建图 -> 点云地图标注 这条链路, 这边先挖个坑。

参考方案7:基于激光雷达的一些方法:

基于激光雷达的车道线/路沿检测

LidarMLT - A Simple and Efficient Multi-task Network for 3D Object Detection and Road Understanding

基于激光雷达的车道线/路沿检测

LidarMLT - A Simple and Efficient Multi-task Network for 3D Object Detection and Road Understanding

基于激光雷达的车道线/路沿检测

Mixer-based lidar lane detection network and dataset for urban roads

我们的方案:

基于激光雷达的车道线/路沿检测

单帧识别方案

受限于车端的算力限制, 和目标检测网络的兼容,我们这边初步选择了基于grid-based 的简单网络, 可以让目标检测网络和车道线/路沿检测网络共用backbone。回归的grid比较大(节省算力)并且每个grid 回归1/2个关键点位置, 类似于 Focus On Local 里的关键点回归。这个地方设计非常巧妙, 回归两个关键点可以很好的让车道线连续,在后处理上也非常简单。

当然离线的网络用来构建离线真值系统, 花里胡哨的结构就没有任何限制了, 精度怎么高怎么来!

识别的结果:

目前正在拓展的一些工作:

  1. 利用多帧时序数据 (memory bank), 融合历史信息到当前帧, 促进检测

  2. 和高精度图做融合, 1方面利用高精度图的数据做先验信息, 1方面利用高精地图做监督, 参考MapFusion 的架构。

  3. 融合图像传感器的 多相机BEV 检测 , 做多传感器融合, 参考Persformer 和 HdMapNet.

基于激光雷达的车道线/路沿检测

MapFusion: A General Framework for 3d Obejct Detection with HDMaps

如何降低数据标注的成本:

这边额外讲一个比较有意思的点, 如何做激光雷达/相机的联合3d车道线路沿标注。

可以遇见, 随着 多相机BEV 检测 的兴起,需求也会越来越大, 如何自动化高效低成本的产生3d 车道线路沿真值 也会是一个非常有意思并且挑战的工作。

如果走 SLAM 建图 , 人工标注, 这个成本也很高, 并且还有全局和局部不匹配的问题 。

如果走语义分割标注的方式,估计成本根本无法接。

这块也是一些非常核心的技术点了,透露几个点:多帧时序,数据驱动, 局部建图, hdmap做辅助监督 。细节就不透露啦。

Anyway, 想要效果好, 数据量得上来, 数据标注的时间成本都是非常重要的, 花在这块的时间可能是算法的好几倍了。

基于激光雷达的车道线/路沿检测

版权声明:本文为知乎「柴可宁」的原创文章,已获作者发表许可。

原文始发于微信公众号(汽车ECU开发):基于激光雷达的车道线/路沿检测

作者 li, meiyong

zh_CNChinese