作者 | 小白
来源 | 小白学视觉
未来十年,自动驾驶将彻底改变人们的出行方式。
目前,自动驾驶应用程序目前正在测试各种案例,包括客车、机器人出租车自、动商业运输卡车、智能叉车以及用于农业的自动拖拉机。自动驾驶需要计算机视觉感知模块来识别和导航环境。此感知模块的作用是:
一个好的感知系统应该能够在各种驾驶条件下(白天/晚上、夏天/冬天、下雨/下雪等)实时完成这项工作。
车道检测模型
在本文中,我们将探究一个实时模型,用于检测车道、其他车辆等以及生成警报。
训练实时车道检测
车道检测问题通常被构造为语义或实例分割问题,目的是识别属于车道类别的像素。
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)
生成智能警报器
我将车道的预测与对象检测相结合,以生成智能警报。这些智能警报可以:
在这里,我使用 YOLO v5 来检测道路上的汽车和人。
YOLO v5 在检测道路上的其他车辆方面表现出色,而且推断时间也非常快。接下来,我们使用 YOLO v5 来测量我方车辆与前面最近的车辆之间的距离。模型返回以像素为单位的距离,可以根据相机参数将其转换为米。
由于 TUSimple 数据集的相机参数未知,因此我根据车道的标准宽度估算了像素到米的转换。
距离测量警报
我们同样可以计算车道的曲率半径,并将其用于汽车的转向模块。
曲率半径测量
结论
在本文中,我们探讨了针对自动驾驶中如何准确而快速地检测车道线的问题。然后,我们使用 YOLO v5 建立对道路上其他对象的识别,用于生成智能警报。
在深度学习分析中,我们非常热衷于使用机器学习解决现实世界中的问题。我们已经帮助许多企业部署了基于 AI 的创新解决方案。
更多精彩推荐Windows 11 上手机!小米 8、一加 6T、微软 Lumia 950 XL 都可以运行
深度学习教你重建赵丽颖的三维人脸
Openpose+Tensorflow 这样实现人体姿态估计 | 代码干货
点分享点收藏点点赞点在看