实时车道线检测和智能告警

2023-11-01

导读

车道线检测 + 距离告警 + 转弯曲率半径计算。

代码:https://github.com/MaybeShewill-CV/lanenet-lane-detection

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

来自模型的车道线预测

介绍

自动驾驶将在未来十年给旅行带来革命性的变化。目前,自动驾驶应用正在进行各种应用案例的测试,包括乘用车、机器人出租车、自动商业送货卡车、智能叉车和用于农业的自动拖拉机。

自动驾驶需要一个计算机视觉感知模块来理解和导航环境。感知模块的作用包括:

  • 检测车道线
  • 检测其他物体:车辆、人、环境中的动物
  • 跟踪检测到的对象
  • 预测他们可能的运动

一个好的感知系统应该能够在各种驾驶条件下 —— 白天/晚上,夏天/冬天,雨雪等等,实时做到这一点。在这篇博客中,我们着眼于一个实时模型,用于检测车道线、其他车辆等,并生成警报。

训练一个实时的车道线检测器

车道检测问题通常被定义为语义或实例分割问题,目标是识别属于车道类别的像素。

TUSimple是车道检测任务常用的数据集。该数据集包含3626个道路场景的标注视频剪辑。每个剪辑有20帧。这些数据是通过安装在车上的摄像头捕捉到的。下面分享了一个示例图像及其标注。

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

来自TUSimple 数据集的示例图像以及车道线掩码

在这个数据集上,我们可以训练一个语义分割模型来分割出属于lane类的像素。U-Net model非常适合做这个,因为它是一个具有实时推理速度的轻量级模型。U-Net是一种带有跳跃连接的编译码器和解码器模块的编译码器模型。模型架构如下所示。

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

来自U-Net论文的U-Net模型结构

然而,损失函数需要修改为Dice损失系数。车道线分割问题是一个极其不平衡的数据问题。图像中的大多数像素属于背景类。Dice Loss基于Sorenson-Dice系数,其对false positives和false negatives的重要性相似,这使得它在处理不平衡数据问题时表现得更好。Dice损失试图匹配groundtruth和预测模型中的车道线像素,希望能够得到一个清晰的边界预测。

LaneNet模型

这里,我使用了LaneNet模型来生成车道线。LaneNet模型是一种两阶段车道线预测器。第一阶段是一个编码器-解码器模型,为车道线创建分割掩码。第二阶段是车道先定位网络,从掩码中提取的车道点作为输入,使用LSTM学习一个二次函数来预测车道线点。

下图显示了这两个阶段的运行情况。左边是原始图像,中间是阶段1的车道线掩码输出,右边是阶段2的最终输出。

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

LaneNet模型的解释

生成智能告警

我将车道线预测与物体检测结合起来,生成智能警报。这些智能警报可能涉及:

  • 检测其他车辆是否在车道线内,并量度与他们的距离
  • 检测邻近车道上是否有车辆的存在
  • 了解弯曲道路的转弯半径

在这里,我使用YOLO-v5来检测道路上的汽车和人。YOLO-v5在检测道路上的其他车辆方面做得很好。推理时间也非常快。

下面我们用YOLO v5来测量自己的车和前面最近的车的距离。模型返回的距离以像素为单位,可以根据相机参数转换成米。由于TUSimple数据集的相机参数未知,我根据车道线的标准宽度估计了像素到米的转换。

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

距离度量的报警

我们可以类似地计算车道的曲率半径,并将其用于汽车的转向模块。

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

曲率半径的测量

总结

在这篇博客中,我们探讨了在自动驾驶中准确和快速检测车道线的问题。然后,我们使用YOLOv5来构建对道路上其他物体的理解。这可以用来生成智能警报。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

实时车道线检测和智能告警 的相关文章

随机推荐

  • tcp_transmit_skb的发送时机梳理

    在上文数据通过网络发送的过程中 当程序调用tcp sendmsg发送数据的时候有可能当前的数据不会马上发送出去 当前在哪些场景下会触发数据的发送呢 检查mtu 创建 一个新的路径MTU 发现段 未启用路径MTU 当前路径MTU探测段的长度不
  • Andriod期末复习总结

    一 安卓项目的目录结构 AndroidManifest xml 项目清单文件 设置应用名称 图标等属性 libs 项目依赖的外部库 src Java源文件 bin 目标文件 Java字节码 class 资源打包文件 ap 和Dalvik虚拟
  • 机器学习——SVM(支持向量机)与人脸识别

    忆如完整项目 代码详见github https github com yiru1225 转载标明出处 勿白嫖 star for projects thanks 目录 系列文章目录 一 SVM的概念与原理 1 SVM简介 2 SVM基本流程
  • JS中cookie的增删改查

    JS中对cookie进行增删改查 以下个人总结 如有错误 请指出修正 cookie简单介绍 cookie是一段有大小限制的文本信息 由于浏览器厂商不同 各个浏览器大小不一致 其伴随着用户请求和浏览器与Web服务器之间传递当用户访问站点时 W
  • 全国省市区编码表

    Excel转sql表 将Excel转换成支持导入的数据格式 本文用csv示例 使用Navicat工具导入我们的csv文件 选择对应的文件格式导入 然后执行下一步 然后就一直无限下一步 就导入成功了哦 下面附上下载链接 如果有帮到你的话请点赞
  • ./nginx: error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No

    在CentOS7下配置Nginx 但是一致都在报错 报错信息为 nginx error while loading shared libraries libcrypto so 1 1 cannot open shared object fi
  • Unity3d 离散仿真引擎基础

    Unity3d 游戏 离散仿真引擎基础简答题 1 解释游戏对象 GameObjects 和资源 Assets 的区别与联系 游戏对象 GameObjects 用来表示游戏中具体的角色 道具和场景 它们通过容纳组件 Component 来实现
  • Ubuntu20.04+RTX3090+CUDA11.4+CUDNN8.5.0安装与卸载

    目录 CUDA CUDNN卸载 CUDA CUDNN下载与安装 CUDA CUDNN下载 CUDA CUDNN安装 CUDA CUDNN卸载 CUDA卸载有两种方式 一种是执行CUDA自带的卸载脚本 该脚本位于 usr local cuda
  • 网络驱动->PHY驱动调试

    1 Linux 系统网络协议层架构 网络协议框架图 网络子系统是 linux 操作系统里很重要的一部分 关于这部分有很多的参考资料 这里主要说明一下 phy 芯片在整个子系统里的位置 从这个结构里看到 PHY 驱动的功能处于链路层 以太网物
  • Python实现并发编程

    利用python实现并发编程的方法有 1 多线程 2 多进程 3 多线程 多进程 面试题 进程和线程的区别和联系 进程 操作系统分配内存的基本单位 一个进程可以包含一个或多个线程 线程 操作系统分配CPU的基本单位 并发编程 concurr
  • 我的梦想指引前行与追寻梦想之路

    在毕业季来临之际 我想向即将踏入职场的各位同学们致以真诚的祝福和鼓励 在这个毕业季的到来 让我们满怀梦想和热情 准备好迈出职场的第一步 追逐成功的道路 不断成长和拓展自己的辉煌人生 在大学期间 我有幸参与了一项关于人工智能领域的研究项目 这
  • EF Core CodeFirst 添加表字段表述

    1 通过Fluent API 来添加描述 使用HasComment实现 protected override void OnModelCreating ModelBuilder modelBuilder modelBuilder Entit
  • html视频怎么改大小,对视频大小、比例进行修改

    很多人在刚开始制作视频的时候会问 怎么修改高宽比 怎么做全屏视频 为什么我输出的视频有黑边 我们今天就来把这些问题一并解决了 首先来了解问题的原因 问 为什么输出的视频有黑边 答 当剪辑的视频比例与你所选的项目比例不一致 软件会自动填充黑边
  • 【数学】三角函数及部分微积分函数图象整理

    三角函数及部分微积分函数图象整理 1 三角函数 1 1 cosx secx 1 2 sinx cscx 1 3 tanx cotx 1 4 s e c
  • Easyx简单使用

    创建窗口大小为 initgraph 640 长 480 宽 showconsole 显示控制台 关闭窗口closegraph 绘图函数 例 画圆 radius半径 circle 无填充 fillcircle 有边框填充 solidcircl
  • Study Note:CSIN3 Chapter 2: C# Language Basic

    I should familiar with this chapter If not I should hit the wall 2 1 A First C Program I m very glad to see the first C
  • launch4j

    launch4j 3 5 win32 百度百科 http baike baidu com view 2254377 htm launch4j是Java应用程序的Windows本地 可执行文件 exe 封装器 提供了本地弹出屏幕 应用程序图标
  • 【大数据】HiveQL:索引

    HiveQL 索引 Hive 只有有限的索引功能 Hive 中没有普通关系型数据库中键的概念 但是还是可以对一些字段建立索引来加速某些操作的 一张表的索引数据存储在另外一张表中 这是一个相对比较新的功能 所以目前还没有提供很多的选择 Hiv
  • 计图:5秒训好NeRF!已开源

    金磊 转载整理自 图形学与几何计算量子位 公众号 QbitAI 计图 Jittor 框架的NeRF模型库JNeRF正式开源了 通过JNeRF可以5秒训练好NeRF模型 见图1 Jittor成为首个支持Instant NGP的深度学习框架 图
  • 实时车道线检测和智能告警

    导读 车道线检测 距离告警 转弯曲率半径计算 代码 https github com MaybeShewill CV lanenet lane detection 来自模型的车道线预测 介绍 自动驾驶将在未来十年给旅行带来革命性的变化 目前