实现自动驾驶功能-识别直车道线

本文介绍了如何使用OpenCV进行图像处理,从彩色图像转为灰度,通过阈值处理、Canny边缘检测,再到Hough线变换识别车道线,详解了每个步骤。通过这些技术,车辆能实现基本的车道线跟踪,为自动驾驶提供关键信息。
摘要由CSDN通过智能技术生成

自动驾驶

所谓图像处理(Image processing)指的是根据目的需要将输入的图像转换成全新图像的一个处理技术。目前,大部分图像处理指的是将数字化图像通过数学演算的处理。在OpenCV中已经具备数字图像的处理函数,因此可以轻易地实现各种图像处理理论。加之,OpenCV是通过开源库公开谁都可以使用,这是其优点。

在本篇文章中我们会带大家来看一下将摄像头拍摄的(模拟)道路图像通过OpenCV处理方式转换为无人驾驶所必须的图像的过程。这里提到的图像处理具体指的便是自动驾驶的基本要素-车道线识别。那接下来我们来看一下利用OpenCV的几种开源库是如何识别出道路车道线的。

1. 转变灰色调‘cvtColor’

由一定数量的亮度和颜色不同的像素(picture element)组成。为表现出多样的颜色及亮度位置通过摄像头拍摄到的彩色图像拥有诸多复杂形态的数据。也因此需要将这些拥有多样复杂数据的彩色图像转换为灰色图像。

在这里插入图片描述 在这里插入图片描述
<图1> 转换成灰色调前 (上图)及转变后 (下图)

2. 二十进制“threshold( )”

需要将灰色图像转换为更容易处理的二十进制图像。详细来说是将图像的暗色部分完全转换为黑色,将代表车道线的亮色部分转换为白色。作为Threshold( )的因子,可以设置临界值。比临界值暗的话就处理成黑色, 比临界值亮的话就处理成白色。根据灯光或摄像头性能的不同,只有设置合适的临界值,才可以识别出清晰的车道线。

在这里插入图片描述 在这里插入图片描述
<图2> 将灰色图像(上图)二十进制处理的图像 (下图)

3. 检测轮廓线“Canny( )”

在二十进制处理后的图像中输出白色与黑色警戒线。可以检查出Canny( ) 函数后的白色与黑色图像是否连接在一起。将这些连接点标注出来的话就会出现如下图所示的内容。


在这里插入图片描述 在这里插入图片描述

<图3> 在二十进制图像(上图)中检测出轮廓线的图像(下图)
4. 识别直线“HoughLines( )”

识别出轮廓线中的直线,将其中合适的直线选作车道线。在图像的最下端往上扫描,将最先检测出来的直线选定为车道线。按照这样的方法将选定的车道线用红色标注后便会得到如下图所示的图像。

在这里插入图片描述

<图4> 在轮廓线图像(上图)中识别出直线(下图)

以上就是我们利用OpenCV识别车道线的过程。识别出车道线并测定其角度后,可计算出车辆轮胎的转角度,或者设定合适的速度帮助车辆沿车道线正常行驶。

如果只有数据图像没有OpenCV的话,想要实现演算逻辑的话会怎么操作呢?肯定不会像上面说的这样简单,我想我们的下一个课题是思考如何通过其他多样的方法来实现演算逻辑。

想要获取更多关于自动驾驶方面的介绍,一定要关注我们的公众号,我们会定期分享干货知识。

往期精彩内容回顾

迈向无人驾驶之路– ADAS技术概要

ADAS缺陷验证解决方案 ADAS Inspector 简介

何谓OTA(Over-the-air programming)?

何谓BMS(Battery Management System)控制器?

故障注入测试(Fault Injection Test)评价类型说明

故障注入测试(Fault Injection Test)方法

MATLAB Simulink数据的小数点设计

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值