道路交通标志的识别MATLAB

道路交通标志的识别MATLAB

一、背景

如果完全依靠驾驶员注意和发现交通标识并做出正确的反应,难免会增加驾驶员的 负担,加速疲劳,严重地可能导致交通事故。道路交通标识识别是通过用安置于车辆前 方的摄像头(这里常借助车道保持辅助系统中的摄像头),检测道路标识(限速、禁止超 车),通对交通标志的采集、处理、识别,将所获取的信息以最快的速度第一时间传送给 驾驶员或直接对汽车采取相应的操作.从而降低了交通安全隐患并节省了人力资源。

二、 设计思想



1.主要步骤

①寻找交通标志所在位置

②二值化处理

③边缘检测提取边缘

④腐蚀、膨胀

⑤切割交通标志

⑥模板匹配

、核心算法

1.特征色彩提取法

在 MATLAB 中,彩色图像大多数是基于 RGB 三色彩模型。交通标志的特征颜色有 三种。我们需要提前选定交通标志的颜色,利用颜色作为特征点,提取出整个图像中该 颜色最大区域。以红色为例,对于一个 RGB 图像,我们可以分三通道 R、G、B 分别提 取颜色,在该算法下,我们采取分别提取三通道色彩信息,然后红色信息加倍,与蓝色、 绿色区域相减,这样可以得到一副只含有红色的图像。然后在利用区域生长法,找出最 大红色区域,即为交通标志所在区域。

主要的实现是使用 MATLAB 工具箱中的颜色阈值器 Color Thresholder 中的 RGB 颜 色空间,在点云上绘制 ROI 选择图像颜色并且分割图像,从而确定标志位置。

2. 交通标志分类处理

为了将交通标志切割分类,我们可以采取以下算法:首先,对车牌图像进行二值化; 其次对图像进行边缘检测,采取 Canny 算子进行边缘检测,分为四个步骤:噪声处理、 计算梯度图像、对图像进行非极大值抑制处理和双阈值检测及边缘连接;随后对图像不 断进行腐蚀、膨胀操作,使得交通标志中噪声、杂质点消除,同时使图像更加突出。

3.模板匹配识别法

为判断识别交通标志,采样基础的模板匹配法。它是通过将所有像素值看成一个坐 标(无论它是多少维的),通过最小化这两个坐标的欧式距离来确定最终在原始图像上 匹配的位置。所谓欧式距离算法,既是对两幅图像中的每一块进行相减再平方,得出其 欧式距离作为相似性的判断依据,从而利用计算两幅图像的欧式距离得出相似性,取最优解,最终识别出交通标志的含义。

、核心代码

由于代码篇幅较长,所以只放入了核心部分的代码

%识别标志

Color = 0; % 按照颜色来分 颜色标记  1是红色 2 是蓝色 3是黄色

if get(handles.radiobutton3,'Value')

Color = 1;

elseif get(handles.radiobutton4,'Value')

    Color = 2;

elseif get(handles.radiobutton5,'Value')

    Color = 3;

end

handles.Color = Color;

Image = handles.I;

switch Color

    case 1

        DI = Image(:,:,1);       

            &abs(double(Image(:,:,2))-double(Image(:,:,3)))<50& abs(double(Image(:,:,1))-double(Image(:,:,2)))>30);

    case 2

        DI = Image(:,:,3);      

case 3        

DI = rgb2gray(Image);

      

end

axes(handles.axes2);

imshow(DI);

axes(handles.axes3);

imshow(GI);

handles.GI = GI;

guidata(hObject, handles);

五、GUI界面截图

1.测试图

为了更好地呈现程序对多交通标志的处理,测试时选取了一幅有三个标志两种不同颜色的图像,且需要识别的是黄色警告类标志。

2.边缘检测

边缘检测的目的是找到图像中亮度变化剧烈的像素点构成的集合,表现出来往往是轮廓。如果图像中边缘能够精确的测量和定位,那么就意味着实际的标志能够被定位和测量,包括标志的面积、直径、形状等就能被测量。边缘检测分为四个步骤,分别如下。

2.1 噪声处理

噪声,简而言之就是图像中随机出现的灰度变化大的离散的像素点。噪声可能来自于图像采集,量化等过程,也可能产生于图像传送过程中,具有离散性和随机性等特点。而高斯滤波实质上是一种信号的滤波器,其用途是信号的平滑处理。

首先进行噪声处理。用imnoise函数添加高斯噪声并用高斯滤波去除噪声。

2.2 计算梯度图像

当用高斯滤波降低图像噪声的时候,会带来图像模糊的副作用。从逻辑上考虑,图像模糊是因为图像中物体的轮廓不明显,轮廓边缘灰度变化不强烈,层次感不强造成的。

我们知道微分就是求函数的变化率,即导数。由于梯度的定义只适用于连续的函数,而图像是二维的离散函数,因此对于图像来说我们需要使用有限差分来近似计算梯度。

梯度提供了两种信息——大小和方向。梯度的方向告诉我们函数在这个点沿着这个方向上升最快(负梯度就代表函数在这个点沿着负梯度方向下降最快)。把函数比作一座“山”,我们站在半山腰上,如果我们要上山则沿着梯度方向可以最快到达山顶,如果是下山则沿着梯度的反方向(负梯度方向)则可以最快到达山脚。梯度的大小代表了沿着这个方向的变化率,即导数。所以我们用微分来表示图像灰度的变化率。

2.3 非极大值抑制

非极大值抑制是抑制不是极大值的元素,可以理解为局部最大搜索,这个局部代表的是一个邻域,邻域有两个参数可变,一是邻域的维数,二是邻域的大小。它可以帮助抑制除局部最大值之外的所有梯度值,使其指示具有最强烈的强度值变化的位置。

在交通标志检测过程中在同一目标的位置上会产生大量的候选框,这些候选框相互之间可能会有重叠,此时我们需要利用非极大值抑制找到最佳的目标边界框,消除冗余的边界框。

2.4 双阈值检测和边缘连接

它利用图像中要提取的目标与背景在灰度上的差异,通过设置阈值来把像素级分成若干类,从而实现目标与背景的分离。

先设置高、低两个阈值(一般高阈值是低阈值的2至3倍),遍历整个灰度矩阵,若某点的梯度高于高阈值,则在结果中置1,若该点的梯度值低于低阈值,则在结果中置0,若该点的梯度值介于高低阈值之间,则需要进行如下判断:检查该点(将其视为中心点)的8邻域点,看是否存在梯度值高于高阈值的点,若存在,则说明该中心点和确定的边缘点相连接,故在结果中置1,否则置0。

3. 腐蚀膨胀

图像的腐蚀操作类似于中值平滑,首先要取每个位置的一个邻域内的最小值(中值平滑是取中间值),将其作为该位置的输出像素值。这里的邻域不局限于矩形结构,还包括椭圆形结构和十字交叉形结构。它的具体定义为结构元,作用类似于平滑操作中的卷积核。

膨胀和腐蚀操作原理相似,膨胀是选取每个位置邻域内的最大值作为输出灰度值。膨胀后的图像的整体亮度会有提高,图形中较亮物体的尺寸变大,而较暗物体的尺寸会减小甚至消失。

4. 切割标志

根据MATLAB工具箱中的颜色阈值器Color Thresholder的RGB颜色空间,在点云上绘制ROI选择黄色并确定标志位置。

根据图像处理后的结果及颜色阈值器Color Thresholder确定的位置对原图像进行切割,得到交通标志

5. 识别结果

模板匹配是数字图像处理的重要组成部分之一。把不同传感器或同一传感器在不同时间、不同成像条件下对同一景物获取的两幅或多幅图像在空间上对准,或根据已知模式到另一幅图中寻找相应模式的处理方法就叫做模板匹配。简单而言,模板就是一幅已知的小图像。模板匹配就是在一幅大图像中搜寻目标,已知该图中有要找的目标,且该目标同模板有相同的尺寸、方向和图像,通过一定的算法可以在图中找到目标,确定其坐标位置。

采用模板匹配法对切割后的标志进行识别,系统成功识别出结果——注意行人。

六、结论

正如绪论中所说的一样,MATLAB软件在数值计算,矩阵运算,信号处理和图形生成等方面有着强大的实现功能和广泛的应用。本次MATLAB软件实习,我主要选取了MATLAB在软件应用方面进行探究,分别从图像预处理、交通标志定位、腐蚀膨胀以及标志识别几个方面对系统进行分析。

七、主要工作

1.收集,整理和总结了国内外在交通标志定位、分割、识别方面的研究成果和发展方向,系统介绍了我国交通标志的固有特征,以及标志识别等特点。

2.在Color Thresholder中采用点云选取ROI对标志定位后,我们对先图像进行噪声处理、求梯度、非极大值抑制、双阈值检测和边缘连接,再进行腐蚀、膨胀处理,得到标志区域的结果图。实验表明本方法不仅保留了标志区域的信息,又减少了噪声的干扰,从而简化了处理过程,提高了后面分割的准确性。

3.采用彩色分量的定位方法,通过对黄色像素点的统计是对车牌是黄色的警告类标志进行定位,实验表明,通过该方法得到的标志定位准确率较为理想。

4.该设计采用的图像预处理、边缘检测、交通标志颜色特征识别等对标志的定位都比较成功。而且对我国的三种颜色红色禁止类、黄色警告类以及蓝色指示类都适用,且结果较好。因此,此课设提出的交通标志的分割算法实验证明在实际运用中是准确、有效、可行的。

在整个实习过程中,我学习了Color Thresholder工具箱用法、特征色彩提取法、Canny算子边缘检测、腐蚀膨胀处理及模式匹配识别法,进一步地提高了自己发现问题,分析问题和解决问题的能力;与此同时还看到MATLAB软件在作图及GUI呈现方面的功能强大,使用起来也较为方便。因此,在今后的学习中我将进一步地学习图像处理的理论知识和MATLAB在此方面的应用。

八、参考文献

[1] 张建波. 大学数学实验:MATLAB版[M]. 北京:人民邮电出版社,2022.8.

[2] 崔盼,张荣辉. 基于MATLAB图像处理的道路交通标志处理技术的研究[J]. 黑龙江交通科技,2022,40(10):182-183.

[3] 房泽平,段建民,郑榜贵. 基于特征颜色和SNCC的交通标志识别与跟踪[J]. 交通运输系统工程与信息,2021,14(1):47-52.

[4] 关鑫. 自然环境下交通标志牌的检测与识别[J]. 电脑知识与技术,2019,12(15):190-192.

[5] 娄月新. 基于Matlab的交通标志识别系统设计与实现[J]. 电脑编程技巧与维护,2019(6):83-84.

[6] 孙巍,孙国荣,张瑞龙. 基于MATLAB的道路交通标志识别[J]. 教育教学论坛,2022(12):55-57.

[7]王国栋,姚力. 基于MATLAB的图像处理技术在足迹图像中的应用[J]. 云南警官学院学报,2019(5):107-113.

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值