所以很好奇, 基于图像的车道线,路沿检测学术界/工业界有很多人在研究, 但是基于激光雷达的实时车道线/路沿检测 很少有人研究, 并且做这块的参考和论文也特别少。问题也出来了, 实时的基于激光雷达的车道线/路沿检测有价值吗?
价值是有的, 看场景和应用!
多帧点云的拼接效果 (局部分段)
没有专门的开源激光雷达车道线,路沿的数据集
激光雷达的车道线缺少纹理信息, 需要依赖车道线漆和地面的反射率不同来区分, 识别的能力没有图像强
激光雷达的点云数据比较稀疏, 而且往往受到安装位置的影响, 照不到很远的地面
激光雷达没有颜色信息, 对于车道线的颜色无法识别
然而, 和图像相比, 激光雷达的车道线和路沿检测也有那么几个优点:
对光源和阴影的抗干扰能力强, 黑夜光线不好的时候, 进出隧道等Camera很头痛的corner case, 对于lidar 来说完全不是问题
提供的3d位置非常准确, 能直接输出给定位,预测, 规划控制等模块使用, 不需要像图像2d 转 3d等步骤 ,能在大区率弯道提供准确的车道线/路沿3d位置
实际应用 看 场景和需求
在L3 干线物流卡车这条赛道里, 长途卡车经常半夜2/3点就出发, 长的一直要在路上跑十几个小时, 我们组也有小伙伴实际跟过长途卡车做体验。在L3 卡车干线物流中, 对于车道线/路沿识别有那么特点:
基本是以高速为主, 中国的高速公路的车道线/路沿质量相对比较好
车道线/路沿需要识别的非常远, 通常对于车道线的距离希望能在100m以上, 对于路沿的识别在150m以上
对于定位精度高,车道线c0, c1, c2, c3 的精度直接决定了 LCC这个功能的体验
卡车作业经常是黑夜,在某些地区光线不是特别好, 在隧道进出的时刻, 容易收到光照变化的影响。
在L3干线卡车这个场景中, lidar能够给 车道线/路沿检测这个任务带来很多的帮助, 和图像一起互为冗余 ,各自发挥各自的优点:
可以看到, 卡车车头很高,激光雷达可以装在离地3-4m的位置,极大地增强了远距离道路元素识别的能力
lidar的原始数据
camera 的原始数据
1. 装的高, 照的远
卡车车头比较高, lidar安装高度可达离地面3.5m, 能照的特别远。可以在下图中看到, 场景比较好的时候,车道线能照到140m, 路沿能照到240m.
2. 对光照不敏感, 在黑夜,进出隧道等场景能很好地弥补图像 。
3. 位置精度高, 对于大区率弯道的道路居中功能(LCC), 自动进出闸道给图像很好的补充 。
参考方案:
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结合二分类分割的方法进行车道线检测和实例分割,该方法性能好,且能检测数量变化的车道线。
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 用在了激光雷达路沿检测上面, 据说效果不错 。
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。
可能无法处理纵向的车道线?
Panoptic SegFormer: Delving Deeper into Panoptic Segmentation with Transformers(2021)
DETR的全景分割升级版。DETR 在全景分割的潜力还没有被挖掘, Panoptic Segformer填上了这个洞。
设计主要基于这几点观察
Deep Supervision 在 mask decoder 对于学习 high-qualities discriminative attention 表征非常重要
将things 和 stuff 同步对待 是有问题的, 因为特征不同
常用的后处理 中的 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% 的提升
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层面下的 多传感器融合车道线检测
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离线真值系统中的 定位建图 -> 点云地图标注 这条链路, 这边先挖个坑。
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 里的关键点回归。这个地方设计非常巧妙, 回归两个关键点可以很好的让车道线连续,在后处理上也非常简单。
当然离线的网络用来构建离线真值系统, 花里胡哨的结构就没有任何限制了, 精度怎么高怎么来!
目前正在拓展的一些工作:
利用多帧时序数据 (memory bank), 融合历史信息到当前帧, 促进检测
和高精度图做融合, 1方面利用高精度图的数据做先验信息, 1方面利用高精地图做监督, 参考MapFusion 的架构。
融合图像传感器的 多相机BEV 检测 , 做多传感器融合, 参考Persformer 和 HdMapNet.
MapFusion: A General Framework for 3d Obejct Detection with HDMaps
这边额外讲一个比较有意思的点, 如何做激光雷达/相机的联合3d车道线路沿标注。
可以遇见, 随着 多相机BEV 检测 的兴起,需求也会越来越大, 如何自动化高效低成本的产生3d 车道线路沿真值 也会是一个非常有意思并且挑战的工作。
如果走 SLAM 建图 , 人工标注, 这个成本也很高, 并且还有全局和局部不匹配的问题 。
如果走语义分割标注的方式,估计成本根本无法接。
这块也是一些非常核心的技术点了,透露几个点:多帧时序,数据驱动, 局部建图, hdmap做辅助监督 。细节就不透露啦。
Anyway, 想要效果好, 数据量得上来, 数据标注的时间成本都是非常重要的, 花在这块的时间可能是算法的好几倍了。
版权声明:本文为知乎「柴可宁」的原创文章,已获作者发表许可。
联系客服