计算机视觉—车道线检测

简介: 计算机视觉—车道线检测

一、 方案设计目标

使用计算机视觉方法和技术,识别、检测提供视觉数据中的车道线目标。


二、 技术要求

使用OpenCV、深度学习等方法(自选),识别提供视频中的车道线;

输出车道线中点在每帧图像中的坐标数组。


三、 主要研究内容

1. 检测过程

对车道线检测采用OpenCv方法实现,整体思路采用连通域思想,提取车道线的蓝色区块信息,拟合近似车道线曲线。如图3-1,检测过程共分为五部分:

① 视频分解为图像帧

② 对每一帧图像提取车道线蓝色部分

③ 提取车道线轮廓信息,计算轮廓中心

④ 使用轮廓中心拟合近似曲线

⑤ 绘制拟合曲线并输出车道线中点的坐标数组


3.1.png

图3-1 车道线检测整体流程图


2. 视频分解

读取视频文件后,循环读取视频帧,将每一帧图像保存至已创建的文件夹,以备后续调用。视频分解过程和视频分解成图像帧结果分别如图3-2和3-3所示。

3.2.png


图3-2视频分解

3.3.png


图3-3 视频分解成图像帧

原车道线视频共分解为750帧图像,新车道线视频(采用1.mp4视频文件)共分解为240帧图像。


3. 分割图像

为了提高处理图像效率,将原始图像分辨率减半。提取车道线目标区域需要将图像按颜色分割,在OpenCv中默认的色彩空间是RGB颜色空间。人眼能识别不同的颜色是由于人的感官系统所致,与人的生理系统有关,RGB格式更适合于人的肉眼区分不同的颜色,事实上按颜色分割图片在HSV通道上分割效果要远远优于在BGR通道上分割,所以先将BGR格式的图像转换到HSV空间,划定感兴趣的颜色区间后,将不在区间的图像值变为0,而在区间内的值变为255,由此便可得到按颜色分割的二值化图像。如图3-4所示:


3.4.png

图3-4图像分割程序段


划定好要提取的颜色阈值后经过运算便可得到图片中所有的蓝色区块,如图3-5所示。


3.5.png

图3-5 提取指定阈值内的蓝色区块(左为新视频,右为原视频)


观察到分割后的图像,车道线均在图像的下半部分,即只需要截取图像的车道线部分图像即可。截取图像如图3-6和图3-7所示。


3.6.png

图3-6 图像分割处理结果(新)


3.7.png


图3-7 图像分割处理结果(原)

可以看到截取后的图像中仍有一些不属于车道线的部分,需进行下一步的处理筛选掉无关部分。


4. 筛选轮廓、计算中心

通过图像分割处理后得到一个含蓝色车道线的二值化图像,但仍有一部分不属于车道线,需要通过计算各区域面积来筛选无关区域,首先计算每一帧图像中所有区域的轮廓,将没有轮廓和图像中最大轮廓面积不超过150的图像过滤掉。

符合要求的图像中再将面积大于30的轮廓依次取出(这样可以筛掉那些距离车道线主体较远的杂点),得到了该轮廓的一系列坐标信息,将其存入变量中。再将这些坐标信息转置处理,其目的是为了将轮廓的横纵坐标信息分开归类(即其中一列为单个轮廓的所有横坐标,另一列为该轮廓的所有纵坐标)。

得到分开的坐标信息后即可更进一步的筛选和计算。首先要筛选掉横坐标最大差值小于15或纵坐标最大差值小于10的轮廓,(这里是筛选掉距离过远的车道线轮廓),其次要筛选掉面积过大的轮廓(主要是筛选掉如图3-8所示部分)。


3.8.png

图3-8 需要筛选掉的部分

3.9.png


图3-9 筛选无关轮廓

至此,所需要的车道线蓝色区块的轮廓已经得到,接下来计算轮廓中心即可,但是如果使用像素坐标绘制拟合曲线会产生一个x对应多个y的情况(如图3-10像素坐标系所示),因此为了拟合的曲线更符合实际,将自行建立坐标系,以图像的高为x轴,图像的长作为y轴(如图3-10自建坐标系所示)。

取上述轮廓的像素坐标系的x的中位数为自建坐标系的纵坐标;像素坐标系的y的中位数为自建坐标系的横坐标。

自此可以得到每一帧图像,部分车道线蓝色区块的中心坐标,于是可以通过这些车道线中心坐标拟合出近似曲线。


3.10.png

图3-10 像素坐标和自建坐标示意图


5. 拟合车道线近似曲线

依次将图像帧中所得轮廓的中心点进行曲线拟合,实验表明除没有轮廓的图像外,其余图像的车道线蓝色区块轮廓均大于3(即基本每帧图像都能采集到3个蓝色箭头块),于是采用三次多项式拟合曲线。

相较于二次多项式拟合,三次多项式拟合在曲线近似程度上要更接近实际的车道线,但在靠近镜头的车道线部位效果较差,其拟合的曲线与实际相差甚远,仍需改进。

通过轮廓中心点使用三次多项式拟合的曲线如图3-11所示(以其中一帧图像作为例子)。

3.11.png


图3-11 显示拟合曲线


6. 在图像帧上绘制曲线并输出坐标数组

该部分为主函数,使用循环依次对所有图像帧完成上述操作。而后将图像分辨率减少一半以便与前期处理后的图相匹配,再分别计算分割后图像与降低分辨率图像的长和高。

截取拟合曲线的一段进行绘制,循环中将图像的高作为横坐标带入拟合曲线计算拟合曲线的纵坐标,该纵坐标即为像素坐标系的横坐标。由于分割的图像是截取自图像的下半部分,所以要把两者高的差值加上横坐标才是像素坐标系的纵坐标。该循环在一帧图像上不断绘制点,得到一条近似曲线,实现车道线的检测。

拟合曲线虽然是近似车道线中线,但匹配车道线的精度还有待提高,故只截取与车道线中线极为相近的一段作为车道线的中点进行输出。

将所有车道线点保存到变量中,并输出对应帧和对应坐标数组,如图3-12所示。

3.12.png


图3-12 输出对应图像帧和其坐标数组


四、 技术创新

车道线识别采用连通域思想,提取车道线蓝色区块进行分析,将蓝色区块的中心点做曲线的拟合,实现车道线识别。

算法上对每一帧图像的蓝色区块进行进行不断筛选、过滤得到目标车道线区块。

并且面对像素坐标可能会产生一个x对应多个y的问题上,采用自行构建坐标系的解决方法来规避上述问题,完成车道线近似曲线的拟合。


五、 方案优化展望

目前车道线识别上采用的只是传统的OpenCv方法,后续有条件时会尝试使用深度学习方法进行训练,对比两种方法的优劣。

目前运用的检测思想是使用连通域,该方法的识别效果受到图像的亮度、车道线的曲度等因素的影响,后续有条件会尝试图像逆透视方法对车道线进行识别,该方法有助于更精确的车道线识别,在视觉上有更直观、易理解的图像结构。

目录
相关文章
|
9月前
|
机器学习/深度学习 算法 计算机视觉
计算机视觉实战项目3(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A路径规划+单目测距与测速+行人车辆计数等)
计算机视觉实战项目3(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A路径规划+单目测距与测速+行人车辆计数等)
160 2
|
5月前
|
JSON 人工智能 数据格式
AI计算机视觉笔记二十六:YOLOV8自训练关键点检测
本文档详细记录了使用YOLOv8训练关键点检测模型的过程。首先通过清华源安装YOLOv8,并验证安装。接着通过示例权重文件与测试图片`bus.jpg`演示预测流程。为准备训练数据,文档介绍了如何使用`labelme`标注工具进行关键点标注,并提供了一个Python脚本`labelme2yolo.py`将标注结果从JSON格式转换为YOLO所需的TXT格式。随后,通过Jupyter Notebook可视化标注结果确保准确性。最后,文档展示了如何组织数据集目录结构,并提供了训练与测试代码示例,包括配置文件`smoke.yaml`及训练脚本`train.py`,帮助读者完成自定义模型的训练与评估。
|
3月前
|
机器学习/深度学习 传感器 算法
行人闯红灯检测:基于计算机视觉与深度学习的智能交通解决方案
随着智能交通系统的发展,传统的人工交通违法判断已难以满足需求。本文介绍了一种基于计算机视觉与深度学习的行人闯红灯自动检测系统,涵盖信号灯状态检测、行人检测与跟踪、行为分析及违规判定与报警四大模块,旨在提升交通管理效率与安全性。
|
9月前
|
机器学习/深度学习 算法 计算机视觉
计算机视觉实战项目3(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A*路径规划+单目测距与测速+行人车辆计数等)
计算机视觉实战项目3(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A*路径规划+单目测距与测速+行人车辆计数等)
|
5月前
|
人工智能 并行计算 测试技术
AI计算机视觉笔记三十一:基于UNetMultiLane的多车道线等识别
该项目基于开源数据集 VIL100 实现了 UNetMultiLane,用于多车道线及车道线类型的识别。数据集中标注了六个车道的车道线及其类型。项目详细记录了从环境搭建到模型训练与测试的全过程,并提供了在 CPU 上进行训练和 ONNX 转换的代码示例。训练过程约需 4 小时完成 50 个 epoch。此外,还实现了视频检测功能,可在视频中实时识别车道线及其类型。
|
5月前
|
人工智能 计算机视觉
AI计算机视觉笔记十五:编写检测的yolov5测试代码
该文为原创文章,如需转载,请注明出处。本文作者在成功运行 `detect.py` 后,因代码难以理解而编写了一个简易测试程序,用于加载YOLOv5模型并检测图像中的对象,特别是“人”类目标。代码实现了从摄像头或图片读取帧、进行颜色转换,并利用YOLOv5进行推理,最后将检测框和置信度绘制在输出图像上,并保存为 `result.jpg`。如果缺少某些模块,可使用 `pip install` 安装。如涉及版权问题或需获取完整代码,请联系作者。
|
6月前
|
机器学习/深度学习 算法 大数据
【2023年MathorCup高校数学建模挑战赛-大数据竞赛】赛道A:基于计算机视觉的坑洼道路检测和识别 python 代码解析
本文提供了2023年MathorCup高校数学建模挑战赛大数据竞赛赛道A的解决方案,涉及基于计算机视觉的坑洼道路检测和识别任务,包括数据预处理、特征提取、模型建立、训练与评估等步骤的Python代码解析。
109 0
【2023年MathorCup高校数学建模挑战赛-大数据竞赛】赛道A:基于计算机视觉的坑洼道路检测和识别 python 代码解析
|
6月前
|
机器学习/深度学习 人工智能 数据处理
AI计算机视觉笔记一:YOLOV5疲劳驾驶行为检测
如何使用云服务器AutoDL进行深度学习模型的训练,特别是针对YOLOV5疲劳驾驶行为训练检测
|
8月前
|
机器学习/深度学习 人工智能 监控
一文读懂计算机视觉4大任务:分类任务、检测任务、目标分割任务、关键点检测任务
一文读懂计算机视觉4大任务:分类任务、检测任务、目标分割任务、关键点检测任务
|
9月前
|
机器学习/深度学习 人工智能 算法
如何建立计算机视觉驱动的汽车损伤检测系统-------杂记
如何建立计算机视觉驱动的汽车损伤检测系统-------杂记
139 0