CLRNet: Cross Layer Refinement Network for Lane Detection

Introduction

  • 对于车道线检测任务,CNN 网络的高层次语义信息具有较强的抽象表达能力,可以更加准确判别是否为车道线。而低层次特征中包含较为丰富的纹理信息,可以帮助车道线进行精确定位。如下图所示,使用不同层次的特征对于准确的车道检测非常重要,二者缺一不可。同时如下图所示,在港口、城市道路等真实场景中,车道线还经常存在破损、被遮挡等情况
    在这里插入图片描述
  • 为了解决上述问题,作者提出了 Cross Layer Refinement Network (CLRNet),它充分利用高级和低级特征,首先用高级语义特征检测车道线并进行粗略定位,然后基于低级语义特征进行车道线的精准定位 (Progressively refining the location of lane and feature extraction leads to high accuracy detection results). 同时,针对车道线遮挡问题,作者还提出了 ROIGather,它通过建立 ROI lane feature 与整个特征图之间的联系来提取全局的上下文信息。此外,作者还定义了车道线的 IoU 并提出了 Line IoU (LIoU) loss 来将车道线作为一个整体进行位置回归,相比 smooth- l 1 l_1 l1 loss,它能大大提高车道线的回归精度

Related Work

  • 当前基于 CNN 的车道线检测方案主要分为以下三类:基于分割的车道线检测基于 anchor 的车道线检测基于曲线参数化拟合的车道线检测

Segmentation-based methods

  • 基于分割的方案由于需要在整张图上进行逐像素的预测且没有将车道线当做一个完整单元,所以往往比较 ineffective and time-consuming

Anchor-based methods

  • 基于 anchor 的方案,在一些复杂场景中的起点很难识别,这造成相对欠佳的性能表现

Parameter-based methods

  • 基于参数化拟合的方案虽然回归更少的参数,但对于预测的参数较为敏感,如高阶系数的错误预测可能造成车道线形状的变化。尽管基于参数化的方案有更快的推理速度,但在精度上有一定的瓶颈

Approach

在这里插入图片描述

The Lane Representation

  • Lane Prior (可以看作 anchors). 车道线具有很强的形状先验信息,因此 predefined lane prior 可以帮助模型更好地定位车道线。作者将车道线视为 P = { ( x 1 , y 1 ) , . . . , ( x N , y N ) } P=\{(x_1,y_1),...,(x_N,y_N)\} P={(x1,y1),...,(xN,yN)},其中这 N N N 个点的 y y y 坐标等距地分布在图像中 (i.e. y i = H N − 1 × i y_i=\frac{H}{N-1}\times i yi=N1H×i). 因此 lane prior 只包含如下参数:(1) 属于前景的概率、(2) 车道线长度、(3) 车道线起始点和与 x x x 轴的夹角 ( x , y , θ x,y,\theta x,y,θ)、(4) N N N 个偏置 (i.e. the horizontal distance between the prediction and its ground truth.)
  • 初始化的 anchor 总数为 192 个,左右边各 1/8,中间 3/4。左右每个起始点设置两种夹角,中间每个起始点设置 4 种夹角。预测目标是根据这 192 个 3 维参数向量,生成 192 个 78 维度的 anchor 向量。0、1 两位为模型预测的正负样本概率;2、3、4 三维就是 anchor 参数的三个量, x , y , θ x,y,θ x,y,θ;5 是模型预测的车道线 y y y 范围长度;6 ~ 78 就是 72 个采样点的 x x x 位置。作为 anchor,它是由 anchor 3 参数按照直线方程得到的。anchor 的 72 个值加上模型预测的 72 个 offset,那就是车道线的 x x x 位置

Cross Layer Refinement

在这里插入图片描述

  • 如上图所示,CLRNet 使用 ResNet 作为 backbone,并加入了 FPN 来利用具有不同语义信息的特征图 { L 0 , L 1 , L 2 } \{L_0,L_1,L_2\} {L0,L1,L2}. cross layer refinement 从最高层特征图 L 0 L_0 L0 开始对 anchor P 0 P_0 P0 进行 refine,依次得到 refinements { R 0 , R 1 , R 2 } \{R_0,R_1,R_2\} {R0,R1,R2}
    在这里插入图片描述refine 过程如下:输入为 P 0 P_0 P0 anchor + L 0 L_0 L0 特征,由 Head 预测可以获得 192 个 78 维的车道线预测向量,过 loss 模块提供监督信号。根据预测得到的 x , y , θ x,y,θ x,y,θ 可以重新按直线方程计算 72 个点,新的 72 个点 (注意,不是原来的) + 预测的 offset 得到完整的 72 个点。上面的 x , y , θ x,y,θ x,y,θ 以及新的 72 个点组成新的 anchor,称为 P 1 P_1 P1 (就是图中的 refined P 0 P_0 P0). 推理时,Refined P 1 P_1 P1 + L 2 L_2 L2 特征得到的预测结果为最终的预测结果
  • 值得注意的是,这篇文章本质上是一个基于 anchor 的方法,它的 anchor 训练时不是固定的,是可学习的。测试时是固定的。也就是说,在训练时,CLRNet 会通过损失函数不断更新 P 0 P_0 P0 x , y , θ x,y,θ x,y,θ 三个参数,由初始时均匀分布的 lane prior 得到更优的 lane prior 分布,帮助提高模型在推理时的精度 (这里具体怎么学习 anchor 三参数的还不太确定,关键是要把 RoIAlign 操作变为可导的,可以参考 Sun, Peize, et al. “Sparse r-cnn: End-to-end object detection with learnable proposals.” Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2021.)

ROIGather

在这里插入图片描述

  • 类似于 ROIAlign,给定 lane prior,作者从车道线上均匀采样 N p N_p Np 个点,基于特征图用双线性插值计算出每个位置的特征向量,最终得到 ROI feature of lane prior X p ∈ R C × N p \mathcal X_p\in\R^{C\times N_p} XpRC×Np,对于 L 1 , L 2 L_1,L_2 L1,L2,作者还 concat 之前层的 ROI features 来增强特征的表征。得到 ROI feature 后,作者还加入了如下的 1D Conv (相当于对 lane prior 的每维特征都施加了相同的线性变换,不同 lane prior 施加的线性变换也不同),经过卷积后的 ROI features 形状仍为 R C × N p \R^{C\times N_p} RC×Np. 之后作者加入 FC 来减小开销,得到 lane prior feature X p ∈ R C × 1 \mathcal X_p\in\R^{C\times 1} XpRC×1
nn.Conv1d(in_channels=num_priors,
          out_channels=num_priors,
          kernel_size=1,
          stride=1,
          padding=0,
          groups=num_priors)
  • 作者将特征图放缩为 X f ∈ R C × H × W \mathcal X_f\in\R^{C\times H\times W} XfRC×H×W,然后 reshape 为 X f ∈ R C × H W \mathcal X_f\in\R^{C\times HW} XfRC×HW. 为了进一步给 lane prior feature 添加 global context 来减小车道线被遮挡带来的影响,作者首先计算出 ROI lane prior feautre ( X p \mathcal X_p Xp) and the global feature map ( X f \mathcal X_f Xf) 之间的 attention matrix W ∈ R 1 × H W \mathcal W\in\R^{1\times HW} WR1×HW (代表了 lane prior feautre 和全局特征图上每个特征点之间的相似度)
    在这里插入图片描述其中 f f f 为 softmax. Aggregated feature 即为全局特征图上各个特征点的加权和,代表了与车道线相关的全局上下文信息
    在这里插入图片描述最终将 Aggregated feature 加到 X p \mathcal X_p Xp 上即可得到最终的车道线特征

Line IoU loss (LIoU loss)

  • 为了提高车道线的回归精度,CLRNet 提出了 Line IoU loss将车道线看作一个整体而非离散的点集进行 x x x N N N 个 offsets 的回归
  • line segment IoU:如下图所示,对车道线上的每个点,作者都用半径 e e e 将其延伸为一条线段,line segment IoU 可以被定义为
    在这里插入图片描述其中, x i p x_i^p xip 为 predicted lane 上的第 i i i 个点, x i g x_i^g xig 为 ground truth lane 上的第 i i i 个点。注意到当 predicted lane 和 ground truth lane 不重合时 d i O d_i^{\mathcal O} diO 为负值,因此 line segment IoU 可以被当作优化目标用于优化 predicted lane 和 ground truth lane 不重合的情况
  • LIoU ∈ [ − 1 , 1 ] \in[-1,1] [1,1] 定义如下:
    在这里插入图片描述当两条线完美重合时,LIoU 为 1,当两条线相隔很远时,LIoU 逼近 -1。LIoU loss 定义如下:
    在这里插入图片描述
    在这里插入图片描述

Training and Infercence Details

  • Positive samples selection:训练时,每个 GT lane 都被动态地分配给一个或多个 predicted lanes 当作正样本。具体而言,对于每个 GT lane,每个 GT lane 选取 LIoU 的 top-4 个预测,这四个预测的 LIoU 求和取整,就是此 GT lane 需要匹配的正预测数量 N p o s N_{pos} Npos (不少于 1),然后就选取分配代价最低的 N p o s N_{pos} Npos 个预测作为匹配到的正样本。也就是,决定匹配多少个正样本,取决于 IOU 度量。决定取哪个作为正样本,取决于分配代价函数。分配代价函数如下:
    在这里插入图片描述其中, L c l s \mathcal L_{cls} Lcls 为 focal cost, L s i m \mathcal L_{sim} Lsim 为 similarity cost. L d i s \mathcal L_{dis} Ldis 为 average pixel distance of all valid lane points, L x y \mathcal L_{xy} Lxy 为 distance of start point coordinates, L t h e t a \mathcal L_{theta} Ltheta 为 difference of the theta angle (they are all normalized to [ 0 , 1 ] [0, 1] [0,1])
  • Training Loss. Training loss consists of classification loss and regression loss. The regression loss is only performed on the assigned samples
    在这里插入图片描述其中, L x y t l \mathcal L_{xytl} Lxytl 为 start point coordinate, theta angle 和 lane length regression 的 smooth- l 1 l_1 l1 loss
  • Inference. We set a threshold with a classification score to filter the background lanes (low score lane priors), and we use NMS to remove high-overlapped lanes. Our method can also be NMS-free if we use the one-to-one assignment, i.e., set the top- k k k = 1.

Experiment

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

References

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值