URL
TL;DR
- 本文提出一种新的车道线检测范式,可以在极低的计算复杂度下精准预测车道线位置。
- 与常见的使用语义分割算法实现车道线检测的范式不同,本文提出的车道线检测范式是将图片 ROI 区域分割成若干像素块,使用分类的方法判断像素块是否包含车道线。
Algorithm
算法思想
- 将 ROI 区域(通常是一张图片的下半部分,上半部分是天空不包含车道线)分成若干 稀疏的行和稠密的列,论文给出的行数是
18 行 200 列
。 - 模型预测每个小格子是否包含车道线,以及包含的车道线属于哪一个车道线实例(主流 benchmark 要求模型预测相邻的 4 条车道线:| |车| |)。
- 对于
CULane
数据集,模型输出 shape == (N, 4, 18, 201),分别表示 18 行 200 列每个格子是否包含车道线(所以是 201 分类),以及包含的车道线的实例编号。 - 加入了一个普通分割辅助任务头加速训练,推理时丢弃,不影响速度。
- 另外除了分类交叉熵损失函数之外,本文加入了两个车道线相关的先验损失函数:
-
基于车道线连续属性:每条车道线的第 i 行和第 i + 1 行应该具有相近的位置。
-
基于车道线相对笔直属性:每条车道线点第 i 行和第 i + 1 行的连线应该和第 i + 1 行与第 i + 2 行的连线共线。
-
部署优化
- 网络末尾使用的高维 FC 层对部署模型加速不利,使用 conv + pixelshuffle(depth to space) 可有效解决。
Thought
- 辅助训练输出头是分割任务的标配
- 结构先验损失函数貌似是个故事,作者开源代码中这两个 loss 的权重都是 0
- 范式很好,可经过部署优化后上车