Python基于OpenCV的视频车道线检测系统[源码&部署教程]

这篇具有很好参考价值的文章主要介绍了Python基于OpenCV的视频车道线检测系统[源码&部署教程]。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.图片演示

Python基于OpenCV的视频车道线检测系统[源码&部署教程]

Python基于OpenCV的视频车道线检测系统[源码&部署教程]

Python基于OpenCV的视频车道线检测系统[源码&部署教程]

2.视频演示

Python基于OpenCV的视频车道线检测系统[源码&部署教程]

3.边缘检测

参考该博客方案,其算法思想如下:

  1. 使用高斯模糊,去除噪音点(cv2.GaussianBlur)
  2. 灰度转换(cv2.cvtColor)
  3. 使用sobel算子,计算出每个点的梯度大小和梯度方向
  4. 使用非极大值抑制(只有最大的保留),消除边缘检测带来的杂散效应
  5. 应用双阈值,来确定真实和潜在的边缘
  6. 通过抑制弱边缘来完成最终的边缘检测
1.高斯滤波
gaussian = cv2.GaussianBlur(color_img, (gaussian_ksize,gaussian_ksize), gaussian_sigmax)

color_img 输入图片
gaussian_ksize 高斯核大小,可以为方形矩阵,也可以为矩形
gaussian_sigmax X方向上的高斯核标准偏差

2.图片转换
gray_img = cv2.cvtColor(input_image, flag)

用于颜色空间转换。input_image为需要转换的图片,flag为转换的类型,返回值为颜色空间转换后的图片矩阵。flag对应:
cv2.COLOR_BGR2GRAY BGR -> Gray
cv2.COLOR_BGR2RGB BGR -> RGB
cv2.COLOR_BGR2HSV BGR -> HSV
可以了解一下该函数和cv2.imread()的区别

3.边缘检测
edge_img = cv2.Canny(gray_img,canny_threshold1,canny_threshold2)

imag为所操作的图片,threshold1为下阈值,threshold2为上阈值,返回值为边缘图。
Python基于OpenCV的视频车道线检测系统[源码&部署教程]

4.ROI and mask

利用数组选取ROI(region of interest,感性趣的区域,然后与原图进行布尔运算(与运算)。
Python基于OpenCV的视频车道线检测系统[源码&部署教程]

poly_pts = numpy.array([[[0,368],[300,210],[340,210],[640,368]]])

四个数组创建后保存在变量poly_pts中。

mask = np.zeros_like(gray_img)

构建一个与gray_img同维度的数组,并初始化所有变量为零。

cv2.fillPoly(mask, pts, color)

绘制多边形函数。mask为绘制对像,pts为绘制范围,color为绘制颜色。

img_mask = cv2.bitwise_and(gray_img, mask)

与运算
Python基于OpenCV的视频车道线检测系统[源码&部署教程]

5.霍夫变换

lines = cv2.HoughLinesP(edge_img,  1, np.pi / 180, 15, minLineLength=40, maxLineGap=20)

edge_img: 要检测的图片矩阵
参数2: 距离r的精度,值越大,考虑越多的线
参数3: 距离theta的精度,值越大,考虑越多的线
参数4: 累加数阈值,值越小,考虑越多的线
minLineLength: 最短长度阈值,短于这个长度的线会被排除
maxLineGap:同一直线两点之间的最大距离
返回值::
[np.array([[x_1,y_1, x_2, y_2]]),
np.array([[x_1, y_1, x_2, y_2]]),
…,
np.array([[x_1, y_1, x_2, y_2]])]

6.离群值过滤

受该博客思路启发,循环查找超出设定范围的斜率,并去除。

idx = np.argmax(diff)

当diff中存放的是一维时,找到diff中最大的数值,并返回该值所在位置。
从列表lines中把第idx数去除

7.车道线标注

cv2.line(img, tuple(line[0]), tuple(line[1]), color,thickness)

在图片上画线,img为所标注的目标图片,ine[0]为起点坐标,line[1]为终点坐标,thickness为线宽。
注意两个坐标需要为tuple元组格式,即tuple(line[0])
Python基于OpenCV的视频车道线检测系统[源码&部署教程]

8.系统整合

下图完整源码&环境部署视频教程
Python基于OpenCV的视频车道线检测系统[源码&部署教程]
参考博客《Python基于OpenCV的视频车道线检测系统[源码&部署教程]》文章来源地址https://www.toymoban.com/news/detail-400048.html

9.参考文献

  • [1]基于改进Hough变换的车道线识别[J]. 辛敏,罗山. 山西电子技术. 2021(06)
  • [2]基于改进Hough变换的车道线检测[J]. 李后隆,马骊溟,钟林伟. 汽车实用技术. 2021(07)
  • [3]基于改进Hough变换与双点去除R-最小二乘法的车道线检测优化算法[J]. 姜立标,李静轩. 科学技术与工程. 2020(05)
  • [4]基于改进Hough变换的结构化道路车道线识别[J]. 陈政宏,李爱娟,王希波,葛庆英,韩文尧,刘刚. 科学技术与工程. 2020(26)
  • [5]基于叠加约束的Hough变换车道线检测研究[J]. 伍玲玲,林志贤,郭太良. 有线电视技术. 2019(03)
  • [6]基于Hough变换的车道线检测算法设计[J]. 何旭光,江磊,罗一平,张伟伟. 农业装备与车辆工程. 2019(11)
  • [7]基于Hough变换的车道线检测[J]. 钱怡. 山东工业技术. 2017(10)
  • [8]Hough变换的车道线并行检测[J]. 王赛,徐伯庆,苏栋骐. 电子科技. 2015(12)
  • [9]一种改进Hough变换的车道线检测算法[J]. 王全. 计算机与数字工程. 2014(11)
  • [10]一种基于 Hough 变换的车道线检测新方法[J]. 许宏科,秦严严. 徐州工程学院学报(自然科学版). 2013(04)

到了这里,关于Python基于OpenCV的视频车道线检测系统[源码&部署教程]的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 毕业设计选题-基于深度学习的车道线检测算法识别系统 人工智能 机器学习 卷积神经网络

    目录 前言 课题背景和意义 实现技术思路 一、车道线检测方法 1.1 卷积神经网络 1.2 注意力机制 二、 数据集 三、实验及结果分析 3.1 实验环境搭建 3.2 模型训练 实现效果图样例 最后     📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学

    2024年02月22日
    浏览(76)
  • 基于深度学习的人脸专注度检测计算系统 - opencv python cnn

    1 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于深度学习的人脸专注度检测计算算法 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 List item 工作量:3分 创新点:5分 🧿 更多资料, 项目分享:

    2024年03月22日
    浏览(96)
  • 基于深度学习的安全帽识别检测系统(python OpenCV yolov5)

    收藏和点赞,您的关注是我创作的动力    基于深度学习算法,以PaddlePaddle深度学习框架作为实验环境,选取了开源的安全帽识别数据库和实地拍摄的安全帽佩戴照片,使用样本扩增增加了实验数据集的样本数,选取了Faster R-CNN、SSD与YOLO v3三种深度神经网络模型,构建出安

    2024年02月08日
    浏览(41)
  • 竞赛保研 基于深度学习的人脸专注度检测计算系统 - opencv python cnn

    🔥 优质竞赛项目系列,今天要分享的是 🚩 基于深度学习的人脸专注度检测计算算法 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:5分 🧿 更多资料, 项目分享: https://gitee.co

    2024年02月02日
    浏览(217)
  • 计算机竞赛 基于深度学习的人脸专注度检测计算系统 - opencv python cnn

    🔥 优质竞赛项目系列,今天要分享的是 🚩 基于深度学习的人脸专注度检测计算算法 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:5分 🧿 更多资料, 项目分享: https://gitee.co

    2024年02月10日
    浏览(147)
  • 基于深度学习的人脸专注度检测计算系统 - opencv python cnn 计算机竞赛

    🔥 优质竞赛项目系列,今天要分享的是 🚩 基于深度学习的人脸专注度检测计算算法 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:5分 🧿 更多资料, 项目分享: https://gitee.co

    2024年02月07日
    浏览(207)
  • 计算机毕设 基于深度学习的人脸专注度检测计算系统 - opencv python cnn

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月11日
    浏览(75)
  • 基于Dlib&YOLOv5的疲劳驾驶和分心行为检测系统(哈欠&喝水&抽烟&打电话检测)深度学习,Python,OpenCV,PyQT

    演示视频:https://www.bilibili.com/video/BV1eD421j7zy/?spm_id_from=333.999.0.0vd_source=b68c16e2de94acf010fb2e70eb676424 开发技术环境: Pycharm + Python + PyQt5 + OpenCV + YOLOv5, 系统通过驾驶员前方摄像头采集的驾驶行为实时图像,可以输出并显示该驾驶员的驾驶行为结果,将视频和结果显示在上位机界

    2024年04月14日
    浏览(62)
  • python基于opencv的车道线检测左右转弯原理详解

    给定一组棋盘图像计算相机校准矩阵和畸变系数。 对原始图像应用失真校正。 使用颜色变换、渐变等来创建阈值二值图像。 应用透视变换来校正二进制图像(“鸟瞰图”)。 检测车道像素并拟合以找到车道边界。 确认检测到的线与现实和之前的线一致,即它们具有相似的

    2024年02月03日
    浏览(42)
  • 【论文阅读】自动驾驶中车道检测系统的物理后门攻击

    论文题目: Physical Backdoor Attacks to Lane Detection Systems in Autonomous Driving(自动驾驶中车道检测系统的物理后门攻击) 发表年份: 2022-MM(ACM International Conference on Multimedia, CCF-A) 作者信息: Xingshuo Han(南洋理工大学), Guowen Xu(南洋理工大学), Yuan Zhou* (南洋理工大学), Xuehu

    2024年02月10日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包