检测车道线——1.检测车道 Color Selection
Posted 瘦小园
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了检测车道线——1.检测车道 Color Selection相关的知识,希望对你有一定的参考价值。
本文的图片和代码大多来自优达无人驾驶工程师课程,目的是为了记录自己学习过程总结经验错误,侵删。
目前工程师促使自动驾驶一般采用两种不同方式:机器人技术和深度学习。很多年来,机器人技术用于融合一套传感器输出的数据直接测量汽车周边环境然后驾驶。近期,开始使用深度学习,模仿人类驾驶行为。机器人技术和深度学习方法都在运用发展。
这是 Udacity 无人驾驶课程的项目1,在python中实现。
一、检测车道 Color Selection
教车开车,教车感知世界。用摄像头和传感器获取车道线信息。第一个模块是编写代码识别和跟踪一系列图像中车道线的位置。基于图像分析技术。
简单地说就是把路面上的行车线找出来。由于行车线的颜色与周围环境有一定区分,我们可以对RGB分别设定阈值,把有用的信息分离出来。
步骤:
1.加载numpy和matplotlib库
2.获取坐标轴并拷贝图片
3.定义颜色阈值
4.选择像元并输出
1 #1.导入库 2 import matplotlib.pyplot as plt #Matplotlib 是一个 Python 的 2D绘图库 3 import matplotlib.image as mpimg 4 import numpy as np #NumPy是Python的一种开源的数值计算扩展 5 6 #2.读取图片并输出状态:得到x和y轴的数值,对图片进行拷贝(copy) 7 image=mpimg.imread(\'E:/spyder/a/a/test.jpg\') 8 print(\'This image is :\',type(image), 9 \'with dimensions:\',image.shape) 10 ysize=image.shape[0] #获取x轴和y轴并对图片进行拷贝 11 xsize=image.shape[1] 12 color_select=np.copy(image) #用copy拷贝而不是用‘=’ 13 14 #3.接下来,我在变量red_threshold,green_threshold和blue_threshold中定义颜色的阈值,并用这些值填充rgb_threshold。 这个矢量包含我在选择时允许的红色,绿色和蓝色(R,G,B)的最小值。 15 red_threshold=0 16 green_threshold=0 17 blue_threshold=0 #若红绿蓝的阈值都设置为0,则说明图片的全部像素都被选中 18 rgb_threshold=[red_threshold,green_threshold,blue_threshold] 19 20 #4.接下来,我将选择阈值以下的任何像素并将其设置为零。之后,符合我的颜色标准(高于阈值)的所有像素将被保留,而那些不符合阈值的像素将被黑掉。 21 #用布尔值或者\'|\'来识别低于阈值的像元 22 thresholds= (image[:,:,0]<rgb_threshold[0]) \\ 23 | (image[:,:,1]<rgb_threshold[1]) \\ 24 | (image[:,:,2]<rgb_threshold[2]) 25 color_select[thresholds]=[0,0,0] #color_select 是选择像素高于阈值的结果,低于阈值的显示黑色。 26 27 plt.imshow(color_select) #显示图像 28 plt.show()
结果如下图
若将21~23的代码设计如下:
21 red_threshold=200 22 green_threshold=200 23 blue_threshold=200
结果如下图
最终,我发现在red_threshold = green_threshold = blue_threshold = 200的情况下,我得到了一个相当不错的结果,在这里我可以清楚地看到车道线,但其他大部分内容都被遮住了。
然而,在这一点上,自动提取准确的线条仍然很棘手,因为我们周围还有许多其他的像素。
若将21~23的代码设计如下:
21 red_threshold=150 22 green_threshold=250 23 blue_threshold=150
结果如下图
以上是关于检测车道线——1.检测车道 Color Selection的主要内容,如果未能解决你的问题,请参考以下文章
车道线检测基于matlab Hough变换视频车道线检测 含Matlab源码 274期
车道线检测基于matlab Hough变换图片车道线检测 含Matlab源码 276期