Keep your Eyes on the Lane: Real-time Attention-guided Lane Detection
论文地址:https://arxiv.org/pdf/2010.12035.pdf
Github地址:https://github.com/lucastabelini/LaneATT
本文提出一个基于锚框的深度车道线检测模型,目前在Culane数据集上F1 Score排名第一名。
相关研究
- 基于语义分割的方法:
- SCNN:对于细长的车道线检测是很有效的但是速度慢(7.5FPS),这阻碍了它在现实世界中的适用性。
- SAD:提出了一种自注意蒸馏模块,基于信息蒸馏为了解决大主干网络对速度的影响,可以聚合文本信息。 该方法允许使用更轻量级的骨干,在保持实时效率的同时实现高性能。
- CurveLanes-NAS:使用神经架构搜索(NAS)来寻找更好的骨干。 虽然取得了最先进的结果,但在计算上非常耗时。
- 行分类方法:
行分类方法是一种基于输入图像网格划分的车道检测方法。 对于每一行,模型预测最有可能的单元格包含车道标记的一部分。 由于每一行只选择一个单元格,因此对图像中的每个可能的车道重复此过程。
比如: E2E-LMD,IntRA-KD,UFAST,其中UFAST实现了当前最快的检测速度,达到了300FPS。 - 其他方法:
- FastDraw :不需要后处理,需要分割和行分类的方法。虽然速度高。但是精确度不高。
- PolyLaneNet:速度快,但是由于现有的数据集不均衡,造成一些偏差。
- Line-CNN:提出了一种基于锚点的车道检测方法,无代码,速度慢一点。
本文贡献
LaneATT是一种基于锚的单级模型,类似YOLOv3或SSD。
- 提出了一种在大型复杂数据集上比现有最先进的方法更精确的实时车道检测方法;
- 比其他大多数模型更快,检测速度达到了250FPS;
- 提出了一种新的基于锚的车道检测注意机制。
详细解读
输入一幅图像,LaneATT使用Resnet作为特征提取,生成一个特征映射,然后汇集起来提取每个锚的特征。 这些特性与一组由注意力模块产生的全局特征相结合,通过结合局部和全局特征,这在遮挡或没有可见车道标记的情况下可以更容易地使用来自其他车道的信息。 最后,将组合特征传递给全连接层,以预测最终的输出车道。
与Line-CNN一样,anchor是图像平面中的一条虚拟线,由位于图像的边界(顶部边界除外)的原点O=(
X
o
r
i
g
X_{orig}
Xorig,
Y
o
r
i
g
Y_{orig}
Yorig)和方向θ定义。
注意力机制:
每个anchor都有对应的特征向量
a
i
l
o
c
a^{loc}_{i}
ailoc.
损失函数如下:其中第一项代表车道线类型的分类损失,第二项代表以anchor为参考的车道线位置的回归损失。
模型输出由三个主要组成部分组成:
(一)K+1概率(K条车道线类型和一个类别的背景);
(二)水平偏移x0,x1…(预测与锚线之间的水平距离);
(三)车道线长度
l
l
l。
最后通过非极大值抑制NMS给出最后的预测结果。
代码复现
// 先配置好相关环境,cd到相关文件夹
git clone https://github.com/lucastabelini/LaneATT
cd lib/nms;
python setup.py install;
cd -
//train,my_r18_culane为自定义实验名称
python main.py train --exp_name my_r18_culane --cfg cfgs/laneatt_culane_resnet18.yml
//test,--view all可视化
python main.py test --exp_name my_r18_culane --view all
可视化结果:
数据比对:
版权声明:本文为CSDN博主「Thomson Tang」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_50996258/article/details/114194722
暂无评论