自动驾驶中实时车道检测和警报
Posted CSDN资讯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自动驾驶中实时车道检测和警报相关的知识,希望对你有一定的参考价值。
作者 | 小白
头图 | CSDN 下载自视觉中国
未来十年,自动驾驶将彻底改变人们的出行方式。
目前,自动驾驶应用程序目前正在测试各种案例,包括客车、机器人出租车自、动商业运输卡车、智能叉车以及用于农业的自动拖拉机。自动驾驶需要计算机视觉感知模块来识别和导航环境。此感知模块的作用是:
车道检测
检测环境中的其他物体:车辆,行人,动物
跟踪检测到的对象
预测他们可能的运动
一个好的感知系统应该能够在各种驾驶条件下(白天/晚上、夏天/冬天、下雨/下雪等)实时完成这项工作。
车道检测模型
在本文中,我们将探究一个实时模型,用于检测车道、其他车辆等以及生成警报。
训练实时车道检测
车道检测问题通常被构造为语义或实例分割问题,目的是识别属于车道类别的像素。
TUSimple 是用于车道检测任务的常用数据集,这个数据集有 3626 个道路场景的注释视频剪辑,每个剪辑有 20 帧,数据都是从安装在汽车上的摄像机所捕获的。
下面分享一个示例图像及其注释。
TUSimple 数据集的样本图像和车道注释
在此数据集中,我们可以训练语义分割模型用于分割出属于车道类别的像素。U-Net 模型是一个理想的模型,因为它是具有实时推理速度的轻量级模型。U-Net 是一种编码器-解码器模型,具有跳过连接编码器和解码器块。模型架构如下所示:
U-Net 论文中的 U-Net 模型架构
但是,损失函数应修改为骰子损失系数。
车道线分割问题是一个极不平衡的数据问题,图像中的大多数像素都属于背景类。Dice Loss 基于 Sorenson-Dice 系数,它对假阳性和假阴性具有相似的重要性,这使它在数据不平衡问题的处理上表现更好。
你可以在他们的论文中阅读有关 Dice Loss 的更多信息。Dice Loss 尝试匹配地面真实情况和预测模型中的车道像素,并能够获得清晰的边界预测。个人非常喜欢这个关于使用骰子进行边界预测的博客。
LaneNet 模型
对于本文,我使用 LaneNet 模型生成车道线。
LaneNet 模型是两阶段车道线预测器。第一阶段是编码器-解码器模型,以创建车道线分割掩码。第二阶段是车道定位网络,该车道网络将从掩码中提取的车道点作为输入,并使用 LSTM 学习预测车道点的二次函数。
下图显示了操作的两个阶段。左图是原始图像,中间图像是第 1 阶段车道注释的输出,右图是第 2 阶段的最终输出。
LaneNet 模型的解释(论文图片-https://arxiv.org/pdf/1807.01726.pdf)
我使用了这个 repo 中的 LaneNet 模型实现。代码维护良好,运行无错误。
生成智能警报器
我将车道的预测与对象检测相结合,以生成智能警报。这些智能警报可以:
检测车辆的自我车道中是否存在其他车辆并测量与它们的距离
检测相邻车道中的车辆
识别弯曲道路的转弯半径
在这里,我使用 YOLO v5 来检测道路上的汽车和人。
YOLO v5 在检测道路上的其他车辆方面表现出色,而且推断时间也非常快。接下来,我们使用 YOLO v5 来测量我方车辆与前面最近的车辆之间的距离。模型返回以像素为单位的距离,可以根据相机参数将其转换为米。
由于 TUSimple 数据集的相机参数未知,因此我根据车道的标准宽度估算了像素到米的转换。
距离测量警报
我们同样可以计算车道的曲率半径,并将其用于汽车的转向模块。
曲率半径测量
结论
在本文中,我们探讨了针对自动驾驶中如何准确而快速地检测车道线的问题。然后,我们使用 YOLO v5 建立对道路上其他对象的识别,用于生成智能警报。
在深度学习分析中,我们非常热衷于使用机器学习解决现实世界中的问题。我们已经帮助许多企业部署了基于 AI 的创新解决方案。
☞字节跳动辟谣“出售AI技术”和“成立打车项目”;GitHub 因代码版权问题遭抵制;贝佐斯正式卸任亚马逊 CEO|极客头条☞碰上这种 Wi-Fi,iPhone 秒崩!
☞千亿企业的真实业务思考,名校大厂高手同台 PK,“马栏山杯”国际音视频算法大赛来袭!
以上是关于自动驾驶中实时车道检测和警报的主要内容,如果未能解决你的问题,请参考以下文章
自动驾驶 Apollo 源码分析系列,感知篇:车道线 Dark SCNN 算法简述及车道线后处理代码细节简述