自动驾驶中实时车道检测和警报
点击上方“AI算法与图像处理”,选择加"星标"或“置顶”
重磅干货,第一时间送达
车道检测模型
未来十年,自动驾驶将彻底改变人们的出行方式。目前,自动驾驶应用程序目前正在测试各种案例,包括客车,机器人出租车,自动商业运输卡车,智能叉车以及用于农业的自动拖拉机。自动驾驶需要计算机视觉感知模块来识别和导航环境。此感知模块的作用是:
车道检测
检测环境中的其他物体:车辆,行人,动物
跟踪检测到的对象
预测他们可能的运动
一个好的感知系统应该能够在各种驾驶条件下(白天/晚上、夏天/冬天、下雨/下雪等)实时完成这项工作。在本文中,我们将探究一个实时模型,用于检测车道、其他车辆等以及生成警报。
车道检测问题通常被构造为语义或实例分割问题,目的是识别属于车道类别的像素。TUSimple是用于车道检测任务的常用数据集,这个数据集有3626个道路场景的注释视频剪辑,每个剪辑有20帧,数据都是从安装在汽车上的摄像机所捕获的。下面分享一个示例图像及其注释。
TUSimple数据集的样本图像和车道注释
在此数据集中,我们可以训练语义分割模型用于分割出属于车道类别的像素。U-Net模型是一个理想的模型,因为它是具有实时推理速度的轻量级模型。U-Net是一种编码器-解码器模型,具有跳过连接编码器和解码器块。模型架构如下所示。
U-Net论文中的U-Net模型架构
但是,损失函数应修改为骰子损失系数。车道线分割问题是一个极不平衡的数据问题,图像中的大多数像素都属于背景类。Dice Loss基于Sorenson-Dice系数,它对假阳性和假阴性具有相似的重要性,这使它在数据不平衡问题的处理上表现更好。你可以在他们的论文中阅读有关Dice Loss的更多信息。Dice Loss尝试匹配地面真实情况和预测模型中的车道像素,并能够获得清晰的边界预测。个人非常喜欢这个关于使用骰子进行边界预测的博客。
对于本文,我使用LaneNet模型生成车道线。LaneNet模型是两阶段车道线预测器。第一阶段是编码器-解码器模型,以创建车道线分割掩码。第二阶段是车道定位网络,该车道网络将从掩码中提取的车道点作为输入,并使用LSTM学习预测车道点的二次函数。
下图显示了操作的两个阶段。左图是原始图像,中间图像是第1阶段车道注释的输出,右图是第2阶段的最终输出。
LaneNet模型的解释(论文图片-https://arxiv.org/pdf/1807.01726.pdf)
我使用了这个repo中的LaneNet模型实现。代码维护良好,运行无错误。
我将车道的预测与对象检测相结合,以生成智能警报。这些智能警报可以:
检测车辆的自我车道中是否存在其他车辆并测量与它们的距离
检测相邻车道中的车辆
识别弯曲道路的转弯半径
在这里,我使用YOLO v5来检测道路上的汽车和人。如果您有兴趣测试YOLO v5,请在此处查看我的博客(https://towardsdatascience.com/yolov5-compared-to-faster-rcnn-who-wins-a771cd6c9fb4)
YOLO v5在检测道路上的其他车辆方面表现出色,而且推断时间也非常快。接下来,我们使用YOLO v5来测量我方车辆与前面最近的车辆之间的距离。模型返回以像素为单位的距离,可以根据相机参数将其转换为米。由于TUSimple数据集的相机参数未知,因此我根据车道的标准宽度估算了像素到米的转换。
距离测量警报
我们同样可以计算车道的曲率半径,并将其用于汽车的转向模块。
曲率半径测量
在本文中,我们探讨了针对自动驾驶中如何准确而快速地检测车道线的问题。然后,我们使用YOLO v5建立对道路上其他对象的识别,用于生成智能警报。在深度学习分析中,我们非常热衷于使用机器学习解决现实世界中的问题。我们已经帮助许多企业部署了基于AI的创新解决方案。如果您发现合作的机会,请通过此处的网站与我们联系。
YOLO v5
LaneNet
U-Net
个人微信(如果没有备注不拉群!) 请注明:地区+学校/企业+研究方向+昵称
下载1:何恺明顶会分享
在「AI算法与图像处理」公众号后台回复:何恺明,即可下载。总共有6份PDF,涉及 ResNet、Mask RCNN等经典工作的总结分析
下载2:终身受益的编程指南:Google编程风格指南
在「AI算法与图像处理」公众号后台回复:c++,即可下载。历经十年考验,最权威的编程规范!
下载3 CVPR2020 在「AI算法与图像处理」公众号后台回复:CVPR2020,即可下载1467篇CVPR 2020论文
觉得不错就点亮在看吧