基于MATLAB的交通信号灯检测系统

项目演示视频链接:

链接: link
源码下载链接:链接: link


前言

随着我国经济的发展和人民生活水平的提高,汽车保有量不断增长,交通状况和出行环境也得以持续发展。道路信号灯作为指挥交通运行的关键设备,是维护交通秩序正常运行、保障车辆与行人的出行安全的基础支撑,也被称为不出声的“交通警察”。道路信号灯包括红色、绿色、黄色三种颜色,分别对应禁止、通行、警告三种指示,我们儿时就会背诵的交通口诀“红灯停、绿灯行、黄灯亮了等一等”正是对应了这三种信号灯颜色的安全规则。
考虑到红灯、绿灯、黄灯的颜色特点,以及彩色数字图像的R、G、B三通道构成,可采用颜色增强分割的方法,突出包含特定颜色的信号灯区域,进行信号灯的定位及识别。因此,本案例采用颜色显著度分析的思路,重点对道路信号灯图像的红、绿、黄三颜色进行增强分割,定位信号灯区域并分析内部的颜色分布情况,判断信号灯类别,最终给出图像内信号灯的位置标记及类型信息。


一、信号灯特征分析

GB14886—2006道路交通信号灯设置与安装规范提供了道路信号灯的安装方式、顺序、位置等权威标准,适用于日常生活中常见的道路信号灯的安装与维护。
道路信号灯根据颜色可以分为三类,红灯表示禁止通行;绿灯表示允许通行;黄灯表示警示或慢行。道路信号灯根据功能可以分为多种类别,按照信号灯是否包含图案,可分为两类,一类无图案,例如机动车信号灯、闪光警告信号灯等;另一类有图案,例如方向指示信号灯、掉头信号灯、非机动车信号灯、人行横道信号灯。
针对常见的机动车信号灯、方向指示信号灯进行实验,二者主要特点如下。
(1)机动车信号灯为圆形信号灯,由红、黄、绿三个位置间隔的图形单元组成,通过满屏的圆形信号进行交通指示。典型的圆形信号灯如图所示。请添加图片描述
请添加图片描述
此处选择垂直方向的信号灯图例进行说明,信号灯的颜色按照红、黄、绿的顺序进行分布,呈现明显的颜色特征,可考虑选择颜色特征进行分析,定位信号灯所处的位置。
在RGB颜色空间,红绿蓝被称为三基色或三原色,且图像的每一种颜色都可以由红、绿、蓝三基色按照一定的比例构成,通过加色模式构成RGB颜色空间。为此,通过模拟加色过程来绘制三基色原理图,查看基本的红、绿、蓝构成的颜色分布,并观察生成颜色的互补色,关键代码如下所示。
请添加图片描述
运行程序后,可得到三基色原理图,如图6-3所示。其默认是黑色底图,通过R、G、B三基色的叠加生成了黄色、青色、品红色、白色,可以简要总结出如下的规律。
(1)白色=红色+绿色+蓝色;
(2)青色=蓝色+绿色;
(3)品红色=红色+蓝色;
(4)黄色=红色+绿色。
更进一步,观察颜色的对角线关系,可以发现黄色和蓝色呈现互补色的关系,即黄色+蓝色=白色,假设Y表示黄色,B表示蓝色,255表示白色,则可得到:请添加图片描述
在RGB颜色空间,如果三通道的数值相等即R=G=B,则可视为灰度图,该数值也称为亮度值,将彩色图转为灰度图的过程称为图像灰度化,得到不包含颜色信息的图像矩阵。一般来说,可以采用计算三通道加权均值的方式来进行灰度化,通过对各个像素位置的R、G、B值做加权求和得到对应的亮度值。由于人眼对绿色通道敏感度高、红色通道敏感度次之、蓝色通道敏感度最低,所以加权系数c应该满足cG>cR>cB的约束。参考主流的图像灰度化计算公式,一般将加权系数设置为cR=0.229、cG=0.587、cB=0.114,进而得到符合人眼观察的灰度图像,具体公式如下:
请添加图片描述
为了突出红色、黄色、绿色的显著特性,对RGB图进行三通道提取得到R、G、B分量,并进行灰度化得到亮度图V。将提取R、G分量减去V获得红色、绿色的显著图,将B分量做补色并减去V的补色获得黄色的显著图,关键代码如下:请添加图片描述
分别对红、黄、绿的示例图进行实验,将原图和对应的显著图进行汇总显示,结果如图6-5所示。分别计算红灯、黄灯、绿灯的显著图,并对结果图进行对比度增强显示,可以发现采用简单的颜色分量差分计算,可以有效突出颜色显著度,有助于快速准确定位出红灯、黄灯、绿灯的候选区域。
请添加图片描述
请添加图片描述

二、信号灯检测识别

根据道路信号灯的颜色特点,可采用显著图增强的思路提高信号灯区域对比度,通过二值化分割及形态学后处理进行信号灯检测,最后可结合信号灯区域的颜色特征进行分类识别。

1.信号灯检测

从图6-5可以看出,经过红色、黄色、绿色的显著增强后,信号灯区域呈现明显的亮度特点,比较简单的方法就是直接进行二值化分割得到信号灯候选区域,再通过形态学闭合及膨胀操作进行一定的区域拓展,进行信号灯的检测定位,关键代码如下所示。
请添加图片描述
考虑到实验图例均为单信号灯,所以此段程序采用otsu阈值分割方法进行二值化,通过imclose进行区域闭合并经bwareafilt保留最大面积区域,最后通过imdilate进行区域膨胀,得到拓展后的信号灯位置。下面对前面选择的三幅圆形信号灯示例图,再增加一幅箭头信号灯示意图进行实验,将检测到的信号灯位置进行标记可视化,具体效果如图所示。
请添加图片描述
对图像进行颜色显著度增强,再进行二值化分割及形态学膨胀,可获得信号灯的区域对应关系,最后提取区域矩形框并标记可视化,实验表明此流程能准确定位信号灯区域,实现信号灯检测的目标。

2.信号灯识别

信号灯区域检测定位后,可裁剪信号灯区域,得到局部图进行分类识别。考虑到信号灯的颜色特性,结合圆形信号灯、箭头信号灯的区域特点,可选择局部图的颜色量化计数及圆形度属性来进行分类识别。
1)颜色量化计数。参考前面提到的红、黄、绿颜色显著度增强过程,可对信号灯局部图做同样的计算,统计红、黄、绿颜色显著图二值化后的有效像素数量,提取最多的计数结果作为颜色类别的判断依据,关键代码如下。
在这里插入图片描述
此段程序重复了红、黄、绿颜色显著增强的过程,对处理结果进行二值化并统计有效像素的数量,最终提取最多的颜色作为识别结果。
(2)圆形度常用于衡量区域的属性特征,根据圆形信号灯、箭头信号灯的特点,可选择圆形度作为二者分类的参考依据。其中,圆形度的计算公式如下:
请添加图片描述
其中,Area表示区域的面积;perimeter表示区域的周长。当区域为圆形时,则圆形度与1的绝对值差异最小,其他图形时圆形度与1的绝对值差异越大。因此,可以通过信号灯区域的圆形度属性来判断其所属的圆形、箭头形状类别。在MATLAB中,可以通过regionprops的Circularity属性直接提取区域的圆形度属性,关键代码如下。

在这里插入图片描述

此段程序裁剪信号的局部区域,并提取圆形度属性,若圆形度与1的绝对值差异小于0.1,则认为是圆形信号灯,否则为箭头信号灯。
(3)箭头朝向。针对箭头形状的信号灯,还需进一步识别其朝向信息,根据道路交通灯设计标准,箭头朝向有“上、左、右”三种,结合箭头信号灯的对称性特点,可采用网格对称分割的思路进行朝向的判断,具体如图所示。

在这里插入图片描述

对不同朝向的箭头,按照上下拆分、左右拆分,计算上下白色像素比例、左右像素比例,提取最大比例对应的形状即可识别其朝向,关键代码如下所示。

在这里插入图片描述

此段程序裁剪信号的局部区域,并按照上下、左右拆分,计算上下、左右、右左的有效像素比例,最终提取最大比例对应的朝向作为识别结果。
综合本节的叙述,下面融合信号灯检测、识别的步骤,检测目标信号灯的位置并识别其形状信息,运行效果如图所示。

在这里插入图片描述

对图像进行信号灯检测及识别,可获取信号灯位置矩形框及形状信息,最后对信号灯区域进行标记可视化。实验表明此流程能准确定位信号灯区域,识别信号灯的类别,实现信号灯检测识别的目标。更进一步,可对多信号灯的情形进行连通域分析,并按照子区域裁剪的方式进行类似的处理,即可拓展到多信号灯的检测识别应用。

三、系统设计

为了更好地集成对比不同步骤的处理效果,贯通整体的处理流程,本案例开发了一个GUI界面,集成图像读取、颜色显著增强、信号灯检测、信号灯识别等关键步骤,并显示处理过程中产生的中间结果图像。其中,集成应用的界面设计如图所示:
请添加图片描述
单击“图像读取”按钮可弹出文件选择对话框,可选择道路信号灯图像并显示到右侧窗口;单击“颜色显著增强”按钮,可以分别对红、黄、绿颜色进行显著增强,并在右侧窗口汇总显示。为了验证处理流程的有效性,选择多信号灯的图像进行实验,具体效果如图所示。此实验图的红色、绿色显著图最为明显,可进行二值化检测标记。

单击“信号灯检测”按钮,将在右侧窗口显示二值化图、区域标记结果和区域裁剪图。信号灯检测模块可定位标记信号灯区域,并裁剪信号灯局部图像,进行汇集显示。
单击“信号灯识别”按钮,将对已定位的信号灯区域图像进行分类识别,判断信号灯的类型,在右侧窗口显示识别结果。信号灯识别模块可对定位出的信号灯区域进行分类识别,此实验图像三个信号灯的颜色及形状信息识别为“左绿-箭头-左|红-圆|红-圆|”,并将其作为标题信息在最后一个坐标系窗口进行显示。

最后,单击“信号灯导出”按钮,可将此实验图像的基本信息、信号灯位置和类型进行汇总,导入Excel表格。导出数据包含了图像路径、信号灯数目、信号灯位置和形状信息,对应了当前实验图像的检测识别结果,读者可以尝试其他的图像进行实验分析,也可自定义导出数据的内容格式,进行实验拓展。


总结

随着人工智能技术的不断发展,智能驾驶特别是无人驾驶技术创新也得以大幅进步,道路信号灯的检测识别作为重要的组成部分,也产生了越来越多的研究成果。考虑到数据规模和基础算法应用的要求,本案例采用颜色分割知识进行信号灯检测,采用颜色统计及图形属性信息进行信号灯的识别,能够快速定位信号灯并判别其颜色和类型,基于GUI框架搭建了道路交通信号灯检测识别的集成应用,可方便观察各个步骤的处理过程并展开分析。

  • 20
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
基于MATLAB的智能交通信号灯控制系统的实现 写在前⾯ 1)现实意义 早期使⽤的交通信号灯是固定配时的调控⽅式,⽆法随着车流量的变动⽽调整绿灯时间,这降低绿灯的使⽤效益,增⼤了车辆在交叉⼝的延 误。堵车现象频繁发⽣,给市民⼯作⽣活带来了极⼤不便,国民经济受到影响。这时候提⾼道路通⾏效率,特别是交叉路⼝的车辆通⾏效率 就显得尤为重要。 2)关键技术 智能交通系统的核⼼是交通信号灯的智能控制算法,根据实时交通流的⼤⼩,配置信号周期及各种⾊灯的闪亮时间, 以在所有道⼝的全体 车辆等待时间最短为⽬标。 3)实时配时算法的实现 本⽂主要以MATLAB的模糊数据⼯具箱和GUI界⾯设计模块为基础,结合现有的关于智能交通信号灯控制系统的理论,进⾏对智能交通系统 的实时配时算法的设计和实现。 关于实时配时模型设计的理论知识,这⾥就不再 赘述了,通过上⽅给出的⽂献,也可以在知⽹上搜寻其他⽂献,来了解下理论内容。接下 来,主要将智能交通信号灯控制系统的核⼼部分(即实时配时算法),⽤MATLAB⼯具进⾏设计和实现。 1. 模糊控制算法的设计 2. 模糊控制平⾯ 3. GUI界⾯设计 1)Road01与Road02为输⼊值,它们分别代表着⼗字路⼝两条路况下检测到的路况数⽬。 既可以⼿动输⼊,两条路况车辆的数⽬进⾏模拟计算其中⼀条路⼝绿灯延时情况。也可以点击输⼊,⾃动为Road01和Road02两者进⾏赋 值随机数,并且由于路况车辆数⽬是随机的,并且根据统计学规律,该随机数是服从泊松分布的,因此,该界⾯可以⾃动为两者赋值泊松分 布随机数的(泊松分布参数可以根据统计进⾏修改,暂时分别设定为20与5⽅便智能交通信号灯系统的模拟)。如下图所⽰: 2)为Road01与Road02赋值后,点击确定,图框内会模拟绿灯,并且在其下⽅,根据所建⽴的模糊数据模型计算得到绿灯的延时时间。 此时的时间保留为双精度的。 3)点击倒计时,右侧的时间会开始以整型数据的形式,进⾏倒计时。 并且,在倒计时完成之后,会变为红灯。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

挂科边缘(毕业版)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值