• 正文概述
  • 编号:A340
    大小:34M
    环境:Python3.6、OpenCV3.4.x
    简介:基于Pyhon+OpenCV的转向辅助和车道偏离监控的车道检测
    带转向辅助和车道偏离监控的车道检测, 本项目旨在演示车道检测系统如何在配备前置摄像头的汽车上工作。该系统在越来越多的车辆中占有一席之地,是自动/半自动车辆中使用的高级驾驶员辅助系统(ADAS)的重要组成部分。此功能负责检测车道、测量曲线半径(曲线的紧密度)并监控从中心的偏移。有了这些信息,该系统通过确保车辆在车道线内居中而显著提高了安全性,并且如果还配置为控制方向盘在高速公路上无需任何驾驶员输入的情况下缓慢转弯,则可增加舒适性。这是用于生产车辆的简化版本,如果提供良好的条件(清晰的车道线、稳定的光照条件),则功能最佳。在这个存储库中,它包含一个行车记录仪镜头,供脚本使用。

    确保两个文件(laneDetection.py和drive.mp4)位于同一目录中。

    先决条件:

    要成功运行项目,需要安装以下软件及其各自的版本:

    -Python 3.6 or higher

    -OpenCV 3 or higher

    -Numpy 1.14 or higher

    -Scipy 1.1 or higher

    工作原理:

    laneDetection提供了一个包含汽车在公路上行驶的dashcam画面的视频文件。py按照模块化的方法,Python脚本有几个函数来执行车道检测。

    图像处理

    readVideo()

    首先是readVideo()函数,用于访问视频文件驱动器。位于同一目录中的mp4。

    processImage()

    此函数执行一些处理技术,以隔离白色车道线,并为后续函数的进一步分析做好准备。基本上,它应用HLS颜色过滤来过滤出帧中的白色,然后将其转换为灰度,然后应用阈值来去除除车道以外的不必要检测,变得模糊,最后使用cv2提取边缘。Canny()函数。

    perspectiveWarp()

    现在我们有了我们想要的图像,透视扭曲被应用。在框架上放置4个点,使其仅围绕存在车道的区域(如图所示),然后将其映射到另一个矩阵上,以创建对车道的鸟瞰。这将使我们能够处理更精细的图像,并帮助检测车道曲率。应注意,如果使用其他视频,此操作可能会发生变化。预定义的4个点是根据这一特定的镜头计算的。如果另一个视频的角度稍有不同,则应重新调谐。

    正在处理的帧的不同阶段(左),鸟瞰视图(右)

    车道检测、曲线拟合和计算

    plotHistogram()

    绘制图像下半部分的直方图是获取左右车道确切起始位置信息的关键部分。在分析直方图时,可以看到在检测到所有白色像素的地方有两个不同的峰值。这是一个很好的指示器,指示左右车道的起始位置。由于直方图x坐标表示分析帧的x坐标,这意味着我们现在有x坐标开始搜索车道。

    显示白色像素峰值的直方图

    slide_window_search()

    滑动窗口方法用于检测车道及其曲率。它使用上一个直方图函数中的信息,并在中间放置一个带有车道的框。然后根据上一个框中白色像素的位置将另一个框放在顶部,并将其自身相应地一直放置到帧的顶部。这样,我们就有了进行一些计算的信息。然后,执行二次多项式拟合以在像素空间中具有曲线拟合。

    general_search()

    在运行slide_window_search()函数后,这个通用的_search()函数现在能够填充检测到的车道周围的区域,再次应用二次多边形拟合,然后绘制一条黄线,该黄线与车道非常精确地重叠。这条线将用于测量曲率半径,这对于预测转向角至关重要。

    measure_lane_curvature()

    根据前两个函数提供的信息,np。再次使用polyfit()函数,但将值乘以xm_per_pix和ym_per_pix变量,将它们从像素空间转换为米空间。xm_per_pix设置为3.7/720,车道宽度为3.7米,从直方图中获得的左右车道基准x坐标对应于车道宽度(像素),结果约为720像素。类似地,由于帧高度为720,因此ym_per_pix被设置为30/720。

    滑动窗口搜索功能可视化(左),常规搜索功能可视化(右)

    可视化与主要功能

    draw_lane_lines()

    从这里开始,应用一些方法来可视化检测到的车道和其他信息,以便为最终图像显示。此特定功能采用检测到的车道,并用绿色填充车道内的区域。它还通过获取左fitx和右fitx列表的平均值并将其存储在pts_mean变量中(然后用淡黄色表示)来可视化车道中心。该变量还用于计算车辆到任意一侧的偏移量或车辆在车道中心的偏移量。

    offCenter()

    函数使用pts_mean变量计算偏移值,并以米为单位显示。

    addText()

    最后通过在最终图像上添加文本将完成该过程并显示信息。

    main()

    Main函数是按正确顺序调用所有这些函数的地方,它包含播放视频的循环。

    定稿图像

    图像处理阶段

    运行展示

    配套文件

    我们提供完整项目文件清单如下:
    文件目录
    ├ 1.项目源码
    ├ 2.运行截图
    └ 3.演示视频

    1. 本站所有资源来源于原创和复现,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,请不要用于商业用途!
    3. 如果你也有好源码或者文档,可以与我们交换,分享有积分奖励和额外收入!
    4. 本站提供的源码、文档等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 如遇到加密压缩包,默认解压密码为"www.2zcode.com",如遇到无法解压的请联系管理员!
    8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
    声明网站内的所有源码都经过我们亲自测试,均可以正常使用.

    索炜达.猿创 » 基于Pyhon+OpenCV的转向辅助和车道偏离监控的车道检测

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或 联络我们.。
    你们有qq群吗怎么加入?
    因为每个人购买的系统代码不一样,我们提供都是一对一的优质在线QQ技术支持,目前暂时提供QQ交流群http://www.2zcode.com/zzxt。

    发表评论

    • 209915会员数(个)
    • 3036资源数(个)
    • 0本周更新(个)
    • 0 今日更新(个)
    • 1215稳定运行(天)

    提供最优质的资源集合

    加入VIP
    开通VIP 享更多特权,建议使用 QQ 登录