基于图像处理交通信号灯识别算法
基于图像处理交通信号灯识别算法
摘 要:交通信号灯是智能车辆在城市环境中⾏驶的主要指⽰信号,在城市交通安全中发挥了不可或缺的作⽤。交通信号灯通常设在交叉⼝,能够供应智能车辆的⽅位信息,查看和辨认交通信号灯的情况是智能车辆感知的重要任务。在简单⼯况下,可在各种颜⾊空间中利⽤信号灯颜⾊的先进⾏分割得到兴趣区域,然后再通过信号灯所特有的形状特征等进⾏进⼀步的判定。
关键词:智能车辆;感知;颜⾊空间
1. 前⾔
智能车辆感知层主要有摄像头、雷达等,其中摄像头是视觉识别的重要元件。智能车辆可以通过摄像头进⾏交通标识识别,配合其它感知元件进⾏环境感知。交通信号灯是智能车辆在城市环境中⾏驶的主要指⽰信号,如交通信号灯等交通标⽰识别,是智能车辆进⾏路径规划、车道动态控制的前提因素。本⽂介绍了在简单⼯况下,利⽤ MATLAB 图像处理⼯具箱的相关函数在颜⾊空间中对信号灯颜⾊进⾏分割等操作,然后再通过信号灯形状特征等进⾏进⼀步的判断从⽽识别交通信号灯的简便⽅法。
系统分析
tool工具箱1. 交通信号灯
道路交通信号灯[1]是指挥交通运⾏的信号灯,⼀般由红灯、绿灯、黄灯组成三个⽆图案圆形单位组成的⼀组灯,指导机动车通⾏。绿灯亮时,准许车辆通⾏,但转弯的车辆不得妨碍被放⾏的直⾏车辆、⾏⼈通⾏;黄灯亮时,已越过停⽌线的车辆可以继续通⾏;红灯亮时,禁⽌车辆通⾏。
国标 GB14887 中对道路交通信号灯有明确规定,如发光单元尺⼨Φ200mm、Φ300 mm、Φ400 mm 三种规格发光单元在信号灯壳体上安装孔的直径分别为Φ200mm、Φ290
mm、Φ390 mm,尺⼨允许偏差±2 mm。对于⽆图案信号灯,出光⾯直径分别为Φ185mm、Φ275 mm、Φ365 mm,尺⼨
允许偏差±2 mm;对于有图案信号灯,出光⾯直径分别为Φ185mm、Φ275 mm、Φ365 mm,尺⼨允许偏差±2 mm,图
像尺⼨符合国标附录。
发光亮度在各个⽅向上的平均值不低于表 1 中的最⼩亮度值,且不⼤于 15000cd/m2。在可观察信号灯点亮区域内, 亮度应均匀,在基准轴上的发光亮度的最⼤值与最⼩值之⽐应不⼤于 2。
表 1 有图案信号灯最低亮度值
发光强度在基准轴上不⼩于 150cd,且不⼤于 400 cd,其它⽅向上的发光强度应不低于表 2 规定。
表 2 有图案信号灯轮廓最低光强
1. 彩⾊视觉
彩⾊视觉(color vision)是⼀个⽣物体或机器基于物体所反射,发出或透过的光的波长(或频率) 以区分物体的能⼒。颜⾊可以以不同的⽅式被测量和量化;事实上,⼈对颜⾊的感知是⼀个主观的过程,
即,脑响应当进⼊的光与眼中的若⼲种视锥细胞作⽤时所产⽣的刺激。
彩⾊视觉常⽤颜⾊空间也称彩⾊模型(⼜称彩⾊空间或彩⾊系统)描述,它的⽤途是在某些标准下⽤通常可接受的⽅式对彩⾊加以说明。彩⾊模型是坐标系统和⼦空间的阐述。位于系统的每种颜⾊都有单个点表⽰。采⽤的⼤多数颜⾊模型都是⾯向硬件或⾯向应⽤的。
图 1 颜⾊空间模型
其中 RGB 颜⾊空间是依据⼈眼识别的颜⾊定义出的空间,可表⽰⼤部分颜⾊。以 R(Red 红)、G(Gre
en 绿)、B(Blue 蓝)三种基本⾊为基础,进⾏不同程度的叠加,产⽣丰富⽽⼴泛的颜⾊,所以俗称三基⾊模式。在⼤⾃然中有⽆穷多种不同的颜⾊,⽽⼈眼只能分辨有限种不同的颜⾊,RGB 模式可表⽰⼀千六百多万种不同的颜⾊,在⼈眼看来它⾮常接近⼤⾃然的颜⾊,故⼜称为⾃然⾊彩模式。
亮度、⾊调、饱和度三个基本特征来描述;其中亮度是指明暗程度,⾊调是指光的颜⾊,饱和度是指颜⾊的深浅程度。颜⾊空间[2]模型如图 1 所⽰。
H 参数表⽰⾊彩信息,即所处的光谱颜⾊的位置。该参数⽤⼀⾓度量来表⽰,红、绿、蓝分别相隔 120 度。S 为⼀⽐例值,范围从 0 到1,它表⽰成所选颜⾊的纯度和该颜⾊最⼤的纯度之间的⽐率。S=0 时,只有灰度。V 表⽰⾊彩的明亮程度,范围从 0 到 1。有⼀点要注意:它和光强度之间并没有直接的联系。
1. MATLAB 图像处理⼯具箱
Matlab 对图像的处理功能主要集中在它的图像处理⼯具箱(Image Processing Toolbox)中,图像处理⼯具箱是由⼀系列⽀持图像处理操作的函数组成,可以进⾏诸如⼏何操作、线性滤波和滤波器设计、图像变换、图像分析与图像增强、数学形态学处理等图像处理操作,主要有以下功能模块:
Image Acquisition Toolbox(图像采集⼯具箱)
Image Processing Toolbox(图像处理⼯具箱)
Signal Processing Toolbox(信号处理⼯具箱)
Wavelet Toolbox(⼩波分析⼯具箱)
Statistics Toolbox(统计⼯具箱)
Bioinformatics Toolbox(⽣物信息学⼯具箱)
Matlab 其具有上⼿容易,开发周期短,见效快;程序代码编写量明显减少;提供多种图像处理⼯具包等特点,⽐较适合进⾏图像识别相关⼯作。
1. 识别系统⽅案实施
本⽂分析了道路交通信号灯⾊彩特点、图形学特点等特征,结合彩⾊视觉 RGB 颜⾊空间基本特征,并利⽤ Matlab 图像处理⼯具箱进⾏图像的灰度分割、边缘检测等操作,能够实现多交通信号灯的识别,并制定其系统流程如图 2 所⽰:
图 2 识别系统流程图
其中红⾊信号灯识别为例,⾸先将 RGB 值转换为相应的⾊调、饱和度和明度 (HSV) 坐标。rgb 可以是 p×3 颜⾊图数组或 m×n×3 图像数组。hsv 的⼤⼩与 rgb 相同。其次,
利⽤红⾊⾊彩特征值,搜索敏感区域识别红⾊颜⾊区域;并结合交通信号灯外形特征完成结构元素。再次,对图形结构元素实现⼆值化图像,填充背景⾊。
部分主要代码如下:
%hsv 三元⾊图像hsv=rgb2hsv(a); h=hsv(:,:,1);
s=hsv(:,:,2);
v=hsv(:,:,3); figure(2) imshow(hsv);
title('HSV 图像'); %转换为 hsv 图像并显⽰
bw1=h>0.9|h<0.05; %0.9,0.05
bw1=bw1.*(s>0.5); %检测红⾊区域se=strel('disk',3); %创建⼀个指定半径 R 的平⾯
结构元素
bw2=imopen(bw1,se); %⽤结构元素 SE 实现⼆值图像
的 bw1 的形态开运算。
bw2=bwfill(bw2,'holes'); %填充⼆进制图像的背景⾊figure
imshow(bw2)
依据以上⽅案在 MATLAB 环境中完成了整个算法搭建及实现,算法运⾏正常,随后分别针对⽹络资源道路交通信号灯图⽚、实际路况道路交通信号灯图⽚进⾏功能测试。
试验效果
1. ⽹络资源验证
图 3 ⽹络资源红灯识别效果
图 4 ⽹络资源黄灯识别效果
为了验证算法实际效果,⾸先通过⽹络资源下载相关交通信号灯图⽚,利⽤已完成的算法进⾏离线交通信号灯识别效果验证,其效果如图3、图 4 所⽰。
1. 实际路况验证
为了进⼀步检验实际路⼝交通信号灯识别效果,本⼈通过⼿机(华为 LDN-AL20)拍摄实际路⼝交通信号灯图⽚进⾏实际效果检验,其效果如图 5、图 6 所⽰。
图 5 实际路⼝红灯识别效果
图 6 实际路⼝绿灯识别效果
根据验证效果分析,利⽤道路交通信号灯⾊彩特点、图形学特点等特征,结合彩⾊视觉 RGB 颜⾊空间基本特征, 并利⽤ Matlab 图像处理⼯具箱进⾏图像的灰度分割、边缘检测等操作,可以实现简单路况道路交通信号的识别。
结论
本⽂实现的评估⽅案是建⽴在道路交通信号灯⾊彩和形状特征基础上,利⽤ MATLAB 图像处理⼯具箱相关函数进⾏识别;相对于基于深度学习的⽅案,⽆需进⾏⼤量的前期数据采集、标注等⼯作,可以快速搭建及实现。经过测试可以满⾜简单路况道路交通信号的识别需求。
下⼀步计划对⾊彩⼲扰、图形⼲扰等⼲扰因素进⾏剔除, 提⾼识别精度;并图像坐标上半区域敏感区域进⾏筛选,预计减少 50%运算量;其次根据实际车速,选取合理的间隔帧, 提⾼实时,可进⼀步优化⽅案。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论