IEEE TITS 2019 YangJian
名词解释:
本文提出了一个端到端的车道线检测模型Line-CNN, 该模型的使用ResNet提取特征, 使用RPN思想实现车道线检测, 其核心是提出LPU结构, LPU解决了车道线误差计算的问题, 使得该检测模型达到蛮好效果.
在车道线检测中使用射线代替RPN中的Anchor box, 这个射线就称为LP
D ( L i , l j ) = { ∑ p = s c e c ∣ X p − x p ∣ e c − s c + 1 , e c ≥ s c i n f , e c < s c D\left(L_{i}, l_{j}\right)= \begin{cases}\frac{\sum_{p=s^{c}}^{e^{c}}\left|X_{p}-x_{p}\right|}{e^{c}-s^{c}+1}, & e^{c} \geq s^{c} \\ i n f, & e^{c}D(Li,lj)={ec−sc+1∑p=scec∣Xp−xp∣,inf,ec≥scec<sc
车道线 l i l_i li 和 LP L i L_i Li之间的距离用上述公式计算;
起始索引选车道线和LP最大的索引, s c = max ( s L i , s l j ) s^{c}=\max \left(s^{L_{i}}, s^{l_{j}}\right) sc=max(sLi,slj) 注意: 由于索引是从下往上递增的, 所以两者中的大的值是离边缘较远的那个索引.
结束索引选车道线和LP最小的, LP索引结束索引会是无穷大, 即为车道线结束索引 e c = min ( e^{c}=\min \left(\right. ec=min( inf, e l j ) = e l j \left.e^{l_{j}}\right)=e^{l_{j}} elj)=elj
该距离度量公式可以计算两个车道线的距离, 可以做线的聚类
首先将LP L i L_i Li 设置正负标签, 如果满足1. D ( L i , l j ) = d D\left(L_{i}, l_{j}\right)=d D(Li,lj)=d 是最小的, 2. d < t p o s d
由于一条车道线可能将多个LP设置为正标签, 所以将一个非正的LP设置为负标签如果该LP对于所有的车道线的距离都大于 t n e g t_{neg} tneg
没有标签的LP不会参与模型训练
L ( p i , r i ) = λ ∑ i L c l s ( p i , p i ∗ ) + ∑ i p i ∗ L r e g ( r i , r i ∗ ) \mathcal{L}\left(p_{i}, \mathbf{r}_{i}\right)=\lambda \sum_{i} \mathcal{L}_{c l s}\left(p_{i}, p_{i}^{*}\right)+\sum_{i} p_{i}^{*} \mathcal{L}_{r e g}\left(\mathbf{r}_{i}, \mathbf{r}_{i}^{*}\right) L(pi,ri)=λ∑iLcls(pi,pi∗)+∑ipi∗Lreg(ri,ri∗)
r i ∗ = { e l j − s l j + 1 , x s l j − X s L i , x s l j + 1 − X s L i + 1 , ⋯ } \mathbf{r}_{i}^{*}=\left\{e^{l_{j}}-s^{l_{j}}+1, x_{s}^{l_{j}}-X_{s} L_{i}, x_{s^{l_{j}}+1}-X_{s} L_{i}+1, \cdots\right\} ri∗={elj−slj+1,xslj−XsLi,xslj+1−XsLi+1,⋯}
网络输入原始图像尺寸为288x512, 假设特征图为原来的1/16, 特征图大小为18x32; 特征图上的每个像素生成的k( k l k_l kl,或 k r k_r kr,或 k d k_d kd)个LP会映射到原始图像中, 和RPN的Anchor映射会原图的原理是一样的, 这个是我猜的, 毕竟论文中也没写实怎么映射的, 需要看代码了FC.
为了解决车道线检测问题, 提出了LPU来提取LP用于车道线的位置回归和类别判断, 思路挺朴素但是效果挺好; 文章不足, 特征图提取的LP如何映射回原图没有写, 还是我自己猜的, 应该和RPN差不多; 数据集代码都没有, 简直太坑了, 数据集可以没有, 代码不开源都不知道细节怎么实现的, 好在LaneATT是开源的, 从这里应该能够知道这篇文章的实现细节吧, 但愿如此.