目录
前言
PointLaneNet 是2019 IEEE Intelligent Vehicles Symposium (IV) 的一篇论文,通过检测车道线上的点来确定车道线位置,并对车道线进行分类,是受YOLO系列启发的ont-stage网络结构。
Title:《PointLaneNet: Efficient end-to-end CNNs for Accurate Real-Time Lane Detection》
version 1.0
abstract
提出一种端到端车道检测算法,可以直接从驾驶场景中获取车道线点的坐标。
method description
受启发于YOLO系列算法,该车道线检测算法可以在单个网络中同时进行位置预测和车道线分类,为了便于网络训练,还明确了车道线距离的概念。
车道线的结构化表示
文章指出:一般使用直线或者多项式曲线来结构化表示车道线,其实在实际情况中,这样是不可取的,即使是三次多项式的曲线都不能完全表示复杂的车道线,但是一系列精确的点可以表示车道线,这些点可以通过插值的办法得到 ,只要知道了车道线中的起始点,终止点,中间点,车道线的宽度这四个参数,就能表示车道线的形状。车道线的宽度是已知的(根据法规),车道线的终止点是在图片的底部(本文默认)。
水平的等间隔的直线和每一条车道线都有唯一的交点,现在只需要找到车道线的起始点和车道线的点。Fig2 是结构化车道线的表示方法。
y是预先设定的(水平的线),所以想确定每一个点的坐标只需要确定那个点的偏移量,因此,每一个车道线预测的值为:偏移量,起始点,车道线的置信度。下图是对车道线上的点的定义:
Distance
对车道线之间的距离进行定义(论文说:车道线之间距离的定义对训练来说是很重要的。一般地,point-point 距离是欧氏距离,box-box是IOU定义,车道线之间的距离没有明确的定义)。
对point-line距离进行定义:
欧式距离。
对 line-line距离定义公式:
两条直线之间的距离定义为重叠点之间距离的平均值。对于不重叠的部分,定义的距离是无限的(无穷大)。
detection pipeline
使用one-stage方法去检测车道线,模型分别检测点的位置和对车道线进行分类。
使用GoogleNet作为特征提取网络,进行8次下采样,图片分为 w x h的grid
Location detection
使用2次1 x1 的卷积, 将feature map的输出维度转换成n+1,n是n个偏移量,另1维为车道线的起始位置。
Classification
使用2次1 x1 的卷积,将输出通道转换为2,来表示是否车道线通过这个grid,通过修改通道,这里可以用来检测车道线的颜色或者类型,因为本文使用的数据集的原因,这里只是检测车道线存在或者不存在。最后的输出是:w * h * (n+1+2)
post-processing:
因为一条车道线经过很多的grid,每一条车道线有很多的预测结果,所以需要后处理。
具体步骤:
-
初始化距离,阈值为\delta = 10 pixels,confidence 的阈值为cls = 0.99;
-
删除掉所有cls < 0.99的车道线;
-
对confidence 进行排序,选取confidence 最高的那一个,如果confidence 最高的那一个的distance < \delta,删除掉这条车道线,继续找第二高的confidence;
-
如果 lane number超过了5,将\delta = \delta+10,重新步骤3;否则结束;
注:这个数据集设置的是不超过五条车道;
注意:公式是Latex,\delta。
Model Analysis
模型评价指标:
对Mem、计算量FLOPS和模型的计算强度I进行定量分析。其中,模型的计算强度表明 计算过程中每个字节内存交换所需的浮点操作数,单位为Flops/Byte。三个变量的关系:
I = Flops/Mem
model 参数对比
对比SCNN,LaneNet.(这里文章是用了三个轻量级的特征网络作为对比,GoogLeNet, SqueezeNet, and MobileNet)
Training
data:进行了数据增强的操作;
Matching strategy :为了平衡正样本和负样本,在训练集中,将距离地真车道线一定距离阈值内的网格中心点设为正样本;否则设为负样本。threshold = 20 pixels。
Loss:模型输出的三种预测值,车道线的置信度confidence,车道线点的偏移量\triangle x(x-coordinate),车道线的起始点y(y-coordinate),对应地,loss 函数也是由这三部分组成,置信度的loss 使用交叉熵,车道线点的损失函数使用的是欧氏距离。loss function 如下图所示:
Choosing scales:通过实验确定采样的倍率,本论文选用16倍下采样,虽然下采样之后车道线的信息可能会丢失,但是仍然能够通过车道结构或者环境信息获知车道线的位置。
Hard negative mining:根据置信度对负样本进行排序,选取得分高的样本,并将正样本与负样本的比例调整为1:3,以加强网络对误报的识别能力。(这里不明白,留个坑)
experiments
使用了Tusimple 数据集和CuLane数据集。
评价指标:accuracy,FP,FN
总结
PointLaneNet是one-stage的网络结构,一个网络同时输出车道线的位置信息和车道线分类信息,在输入图片上建立水平的直线,直线和车道线存在唯一的交点,通过寻找车道线的起始点,终止点,中心点和车道线的宽度来确定车道线的形状和车道的分类,网络最后输出的是:偏移量,起始点,车道线的置信度。( y是预先设定的(水平的线),所以想确定每一个点的坐标只需要确定那个点的偏移量);此外,定义了车道线和车道线之间,点和车道线之间的距离;设定阈值确定检测到的车道线是正样本还是负样本。