自动驾驶
所谓图像处理(Image processing)指的是根据目的需要将输入的图像转换成全新图像的一个处理技术。目前,大部分图像处理指的是将数字化图像通过数学演算的处理。在OpenCV中已经具备数字图像的处理函数,因此可以轻易地实现各种图像处理理论。加之,OpenCV是通过开源库公开谁都可以使用,这是其优点。
在本篇文章中我们会带大家来看一下将摄像头拍摄的(模拟)道路图像通过OpenCV处理方式转换为无人驾驶所必须的图像的过程。这里提到的图像处理具体指的便是自动驾驶的基本要素-车道线识别。那接下来我们来看一下利用OpenCV的几种开源库是如何识别出道路车道线的。
由一定数量的亮度和颜色不同的像素(picture element)组成。为表现出多样的颜色及亮度位置通过摄像头拍摄到的彩色图像拥有诸多复杂形态的数据。也因此需要将这些拥有多样复杂数据的彩色图像转换为灰色图像。


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


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


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


以上就是我们利用OpenCV识别车道线的过程。识别出车道线并测定其角度后,可计算出车辆轮胎的转角度,或者设定合适的速度帮助车辆沿车道线正常行驶。
如果只有数据图像没有OpenCV的话,想要实现演算逻辑的话会怎么操作呢?肯定不会像上面说的这样简单,我想我们的下一个课题是思考如何通过其他多样的方法来实现演算逻辑。
想要获取更多关于自动驾驶方面的介绍,一定要关注我们的公众号,我们会定期分享干货知识。
往期精彩内容回顾
ADAS缺陷验证解决方案 ADAS Inspector 简介
何谓OTA(Over-the-air programming)?
何谓BMS(Battery Management System)控制器?
故障注入测试(Fault Injection Test)评价类型说明