- 论文:《CLRNet: Cross Layer Refinement Network for Lane Detection》
- 论文:http://arxiv.org/abs/2203.10350
- 代码:https://github.com/Turoad/clrnet
- 内容:使用 CNN,基于关键点检测车道线
引入了四项先验信息:
P t = P t − 1 ∘ R t ( L t − 1 , P t − 1 ) P_t=P_{t-1}\circ R_t(L_{t-1},P_{t-1}) Pt=Pt−1∘Rt(Lt−1,Pt−1)
其中,
- P t P_t Pt 是车道线先验参数(起始点及夹角)。
- R t R_t Rt 用于获取 RoI 车道线特征,然后再由两个 FC 层得到精调之后的参数 P t P_t Pt。
G = s o f t m a x ( X p T X f C ) X f T \mathcal{G}=softmax(\frac{\mathcal{X}^T_p \mathcal{X}_f}{\sqrt{C}})\mathcal{X}^T_f G=softmax(CXpTXf)XfT
其中, X p ∈ R C × 1 \mathcal{X}_p\in \mathbb{R}^{C\times 1} Xp∈RC×1, X f ∈ R C × H W \mathcal{X}_f\in \mathbb{R}^{C\times HW} Xf∈RC×HW
L L I o U = 1 − L I o U \mathcal{L}_{LIoU}=1-LIoU LLIoU=1−LIoU
LIoU 的计算公式见上图。
其中,
- d i O = min ( x i p + e , x i g + e ) − max ( x i p − e , x i g − e ) d^{\mathcal{O}}_i=\min(x^p_i+e,x^g_i+e)-\max(x^p_i-e,x^g_i-e) diO=min(xip+e,xig+e)−max(xip−e,xig−e)
- d i U = max ( x i p + e , x i g + e ) − min ( x i p − e , x i g − e ) d^{\mathcal{U}}_i=\max(x^p_i+e,x^g_i+e)-\min(x^p_i-e,x^g_i-e) diU=max(xip+e,xig+e)−min(xip−e,xig−e)
LIoU 可以为 负数,这可以使它具备对非重叠线段的优化能力。
基于下面的 Cost,为每条GT车道线分配多个预测的车道线(top-K)。
C a s s i g n = w s i m C s i m + w c l s C c l s \mathcal{C}_{assign}=w_{sim}\mathcal{C}_{sim}+w_{cls}\mathcal{C}_{cls} Cassign=wsimCsim+wclsCcls
其中, C s i m = ( C d i s ⋅ C x y ⋅ C θ ) 2 \mathcal{C}_{sim}=(\mathcal{C}_{dis}\cdot\mathcal{C}_{xy}\cdot\mathcal{C}_{\theta})^2 Csim=(Cdis⋅Cxy⋅Cθ)2。
- C c l s \mathcal{C}_{cls} Ccls 是 Focal Loss;
- C s i m \mathcal{C}_{sim} Csim 中分别是车道线点的平均像素距离、起始点距离、起始角度距离。
L t o t a l = w c l s L c l s + w x y t l L x y t l + w L I o U L L I o U \mathcal{L}_{total}=w_{cls}\mathcal{L}_{cls}+w_{xytl}\mathcal{L}_{xytl}+w_{LIoU}\mathcal{L}_{LIoU} Ltotal=wclsLcls+wxytlLxytl+wLIoULLIoU
此外,文中还使用了一个辅助的分割损失函数。
L x y t l \mathcal{L}_{xytl} Lxytl 是关于起始点位置、起始角度、车道线长度的 s m o o t h − l 1 smooth-\mathcal{l}_1 smooth−l1 损失