基于MATLAB的实现交通标志的识别

MATLAB实现交通标志的识别
一、识别的效果
1.图片中交通标志位置不固定,可以居中、倾斜
2.交通标志类型以及颜色不唯一,做到多类型多颜色的交通标志识别
3.识别出交通标志的图形,并显示出对应的标志含义

二、设计思想

1.主要步骤
①寻找交通标志所在位置
②二值化处理
③边缘检测提取边缘
④腐蚀、膨胀
⑤切割交通标志
⑥模板匹配

三、各模块算法设计
3.1 寻找交通标志所在位置
本文的交通标志识别算法主要是针对大陆交通标志来识别。 在汽车行驶过程中,利用安装于汽车上的数字摄像机对远处的交通标志进行动态拍 摄,将拍摄到的连续图片传送给计算机,计算器通过逐行扫描法完成对预处理图像采集。 在提取交通标志位置的时候,我们可以利用交通标志的颜色特征来确定其位置,即特征 色彩提取法。主要的实现是用 MATLAB 工具箱中的颜色阈值器 Color Thresholder 确定标志位置。
在 GB5768.2—2009《道路交通标志和标线:第 2 部分道路交通标志》中,对交通 标志的分类、特征颜色、轮廓、尺寸大小、内部包含的字符、数字、几何图样和数量等 作了明确的规定.每种交通标志具有鲜明的颜色特征和明确的含义.每种交通标志具有 明显的背景和内景颜色特征.禁令标志、指示标志、警告标志的背景特征颜色分别为红色、蓝色、黑色,禁令标志、指示标志、警告标志的内景特征颜色 分别为白色、白色、 黄色.因此,标准交通标志的背景和内景特征颜色作为提取和识别交通标志的依据。
设计核心思想是对图像首先进行分块处理,提取色彩特征点,计算出每一块颜色所占比例;人为设置一个颜色阈值,使得交通标志有效区域可以保留;经过对图像的颜色 筛选,可以计算出图像中颜色区域的大致位置。
3.2 对图像进行二值化处理
得到交通标志图像后,进行二值化处理,得到二值图像。二值图像又称黑白图像, 图像的每个像素只能是黑或者是白,也就是说,其每个图像的像素值只有两个状态.即: 0 和 1,二值图像的表示是用 0 和 1 组成的二维矩阵来表示的。
3.3 对图像进行边缘检测
数字图像处理中的边缘检测是图像处理过程中关键的一步,边缘是目标与背景的分 割线,只有进行边缘检测提取边缘,才能将目标物与背景分开,因此是图像分割、图像 识别分析领域的基石。
边缘检测的方法有很多种,如:Roberts 算子、Prewitt 算子、Canny 算子、Sobel 算 子、Log 算子等。Roberts 算子定位比较精确,但由于不包括平滑,所以对于噪声比较敏 感。Prewitt 算子和 Sobel 算子分别是平均滤波、加权平均滤波,且检测的图像边缘可能 大于 2 个像素,两者对灰度渐变低噪声的图像又较好的检测效果,但对于混合多复杂噪声图像处理效果并不理想。
本识别系统将采取 Canny 算子进行边缘检测,Canny 算子是边缘检测中最具有代表 的一种局部极值边缘检测,具有滤波、增强效果,无论从视觉效果还是客观评价来看, 提取的边缘线性连接程度较好,对线类的边缘提取的比较完整,边缘线很细腻。
3.4 腐蚀、膨胀
膨胀与腐蚀处理是形态学操作的一部分,膨胀就是求局部最大值的操作,即用一个 结构元素 B,对原始图像 A 的每一个像素进行扫描,再用结构元素 B 与其覆盖的图像 A 做“或”操作, 其中结构元素 B 可以是方形结构也可以是圆盘结构。经过膨胀处理后 的图像会“变胖”,因为 其在运行的过程中,用结构元素 B 中心点与图像 A 中的像素一 个一个的对比,一旦结构元素 B 中有一点属于 A 中,则结构元素 B 被 A 所吸收, 所以 原始图像会变胖膨胀一圈,其膨胀的大小由结构元素的大小所决定。
而与膨胀具有相反意义的腐蚀就是求局部最小值的操作。同样是用结构元素 B 对原 始图像 A 中的每个像素进行扫描,但此时结构元素 B 与原始图像 A 做的是“与”运算, 即结构元素 B 中心点与原始图像 A 一个一个的对比,只有当结构元素 B 中的所有点都 包含在 A 中时,结构元素 B 才会被保留,所以原始图像经过腐蚀运算后,图像会“变瘦” 部分边界像素会被删除。
本文运用的识别系统是先进行腐蚀后进行膨胀的运算,也叫开运算。开运算能够消除一些孤立的小点、毛刺等细小的点,而总的位置和形状不发生改变。所以,开运算也 能够达到滤波降噪,改善图像视觉质量的效果。
放入几篇通俗易懂的blog:数字图像处理—通俗理解腐蚀与膨胀;形态学操作:膨胀与腐蚀;图像的膨胀indilate和腐蚀imerode
3.5 切割交通标志
对图像分割我们首先找到它的轮廓图,根据交通标志 5 类图形轮廓进行有效部分的切割,由于交通标志的形状有 5 种,分别是正三角形、圆形、倒三角形、八边形和矩形。 通过对轮廓图的研究分析提取出符合这五种形状的有效区域,为下面图像的有效区域的 裁剪识别提供基础。
在获取了边缘图和轮廓图后,根据边缘图和轮廓图上的圆形、正三角形、倒三角形、 八边形和矩形进行有效部分的切割,提取出图片上的交通标志。
3.6 模板匹配
模板匹配作为图像分析和处理的一项重要手段,在计算机视觉和模式识别的众多领 域获得广泛的应用。模板匹配的基本思想是利用模板叠放在待搜索图 上平移,模板覆盖下的那块待搜索图成为子图,记为

,其中 i、j为子图的左上角像点在S中的坐标,通过比较模板与搜索子图的匹配度,进行目标的搜索。
四、具体实现
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. 识别结果
模板匹配是数字图像处理的重要组成部分之一。把不同传感器或同一传感器在不同时间、不同成像条件下对同一景物获取的两幅或多幅图像在空间上对准,或根据已知模式到另一幅图中寻找相应模式的处理方法就叫做模板匹配。简单而言,模板就是一幅已知的小图像。模板匹配就是在一幅大图像中搜寻目标,已知该图中有要找的目标,且该目标同模板有相同的尺寸、方向和图像,通过一定的算法可以在图中找到目标,确定其坐标位置。
采用模板匹配法对切割后的标志进行识别,系统成功识别出结果——注意行人。

  • 12
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值