Paper name
CLRNet: Cross Layer Refinement Network for Lane Detection
Paper Reading Note
URL: https://arxiv.org/pdf/2203.10350.pdf
TL;DR
- CVPR 2022 文章,自动驾驶公司飞步科技与浙大联合出品。lane anchor-based 方案,在多个数据集上取得 sota 效果
Introduction
背景
- 车道线检测问题中的难点
(a) 基于 low-level 特征检测到的错误的车道线
(b)基于 high-level 检测的车道线定位不准
(c)被车遮挡
(d)光照导致的模糊现象 - 需要结合 high-level 和 low-level 的特征获取准确的车道线检测效果
related works
- 基于分割的方法:SCNN 等耗时长,CurveLane-NAS 需要较长的训练 GPU hours;因为需要逐像素预测并且没有将车道线看成一个整体单元,分割方法整体耗时较长
- 基于 anchor 的方法:
- line anchor-based:采用预先定义的 line anchor 来回归准确的车道线,Line-CNN 是baseline、LaneATT 提出 anchor-based attention 来利用全局信息,SGNet 使用消失点 guided anchor。
- row anchor-based:在图片的每一行上预测可能是车道线的单元。UFLD 是 baseline;CondLaneNet 基于 conditional convolution 来进行车道线检测,首先检测车道线的起点,然后进行 row anchor-based 车道线检测,不过车道线的起点在复杂场景中较难找到。
- 基于参数回归的方法:PolyLaneNet 和 LSTR,这类方法一般速度快,但是精度低
本文方案
- 提出了 Cross Layer Refinement Network (CLRNet) 来充分利用 lowlevel 和 high-level 特征。
- 首先在 high-level 特征图上粗略的车道线,然后在 low-level 特征上进行 refinement 来获取到定位更精确的车道线
- 为了解决一些视觉上不可见的车道线,提出了 ROIGather 来采集更全局的语义信息(建立ROI车道特征与整个特征图之间的关系)
- 提出了一种 Line IoU loss ,相比于 smooth-L1 提升精度
Dataset/Algorithm/Model/Experiment Detail
实现方式
车道线表示
- 车道线先验:
- 和 Line-CNN 和 LaneATT 的定义一样,使用等分的 2D 点作为车道线的先验
其中 y 在图像垂直方向上均匀采样得到,也就是如下
其中 H 是图像高度,N 是分段数目
- 和 Line-CNN 和 LaneATT 的定义一样,使用等分的 2D 点作为车道线的先验
- 每个车道线先验经过网络预测以下值:
- 是车道线的概率
- 车道线的长度
- 车道线的起点 (x,y),车道线先验与 x 轴的夹角 ( θ \theta θ )
- N 个水平方向的 offset
跨层精修 (Cross Layer Refinement)
- 通用目标检测中使用 FPN 利用不同尺度的特征,让 FPN 的不同尺度的特征预测不同尺度的目标,但是车道线这里不同尺度的特征对于车道线预测都很重要,所以借鉴 Cascade-RCNN,在所有特征层上都分配车道线正样本,逐层精修
- 对于初始的车道线先验 P0(x,y,
θ
\theta
θ ),先结合高层特征 L0 进行预测出 R0,然后将 R0 送入 L1 层进行 refine,即前一层的输出作为下一层的车道线先验
其中对于第一层的 L0,P0 是在图像中均匀分布;Rt 使用 Pt 作为输入获取 ROI 车道线特征,然后使用两层 fc 回归出refine 后的 Pt
ROIGather
将 lane priors 分配给 feature map 后,使用 ROIGather 提取车道线特征
- 对于 lane prior 中的点,通过双线性插值提取特征,对于 L1 L2 提取的 ROI 特征,会与上一层的 ROI 特征 concat,然后经过卷积操作来收集附近的特征,提取 lane prior 的特征是 Xp(CxNp),然后经过 fc 生成 Xp (Cx1)
- 特征图 Xf(Cx1)被 resize 为 Xf(CxHW)
- 通过车道线特征 Xp 与全局特征图 Xf 的 attention
其中 f 是 softmax,聚合后的特征为
输出的 g 是 Xf 对于 Xp 的 bonus,最后将输出 g 加在原始的输入 Xp 上。
Line IoU loss
训练测试细节
-
Positive samples selection:综合类别、平均像素距离、角度偏差等对gt和lane prio 进行排序,将 gt 分配给最接近的 lane prior
-
Training Loss
Lcls 是 focal loss,Lxytl 是起始点的 smooth-l1 损失,Liou 是本文提出的损失;另外在训练中也会增加真值的分割损失用于辅助训练 -
测试
- 使用分类分数的阈值来过滤 backgrounds lanes,接 nms 得到最终预测结果
- 如果设置 一对一 的 assignment,可以做到 nms free
实验结果
实施细节
- 所有图片 resize 到 320x800
- 数据增广
- random affine
- 随机水平翻转
- 车道线 prior 点数 N=72
- 车道线特征采样点 Np=36
culane 精度
llamas 精度
ablation study
- 可以看出 refinement 涨点明显
- 需要从高层特征开始往底层特征融合精度最高,符合常规认知
可视化
Thoughts
- 各方面都有创新的工作,也取得了多个数据集的 sota
- 比较奇怪的是 llamas 数据集上 resnet18 比 dla34 精度还高