【车牌识别】模板匹配汽车出入库计时系统【含GUI Matlab源码 3802期】

在这里插入图片描述
✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式
⛳️座右铭:行百里者,半于九十。

更多Matlab仿真内容点击👇
Matlab图像处理(进阶版)
路径规划(Matlab)
神经网络预测与分类(Matlab)
优化求解(Matlab)
语音处理(Matlab)
信号处理(Matlab)
车间调度(Matlab)

⛄一、车牌识别简介

1 设计要求
(1)使用MATLAB设计一个车库进出车辆的计时系统。
(2)能自动识别进入车辆的车牌。
(3)可以对车辆出入时间进行计时计费。
(4)提交设计报告。

2 题目分析
随着我国经济快速发展,人口规模不断扩大,汽车保有量不断增加等因素引发了大量的停车需求。停车场指的是提供汽车停放的地方,它的主要功能就是帮助车主保管汽车,因此,停车场对维护城市交通秩序的重要性不言而喻。

目前停车场设施随处可见,包括各种路障、立柱以及亭岗等,停车场设施已经是非常普遍的停车场管理工具了,对城市交通的发展也起到了很大的作用。进入21世纪,中国经过了30年的快速发展,城镇化水平越来越高,人们的生活水平显著提高,汽车拥有量突飞猛进,停车设施的功能也更加完善。如今的停车场集收费管理、车辆图像识别、出入口道闸自动控制等多种功能于一身,进一步满足了人们的停车需求。

随着汽车数量的增加,城市交通状况日益受到人们的重视,如何进行有效的交通管理更是成为了人们关注的焦点。智能交 通系统通过车辆检测装置对过往的车辆实施检测,提取有关交通数据,达到监控、管理和指挥交通的目的。因此,它已成为世界交通领域研究的重要课题。 车牌识别系统作为智能交通系统的一个重要组成部分,已在高速公路、城市交通和停车场等项目的管理中占有无可取代的重要地位。它在不影响汽车状态的情况下,由计算机自动完成车牌的识别,从而降低交通管理工作的复杂度。

拟定的课题名称为基于MATLAB 的汽车入库计时系统,带有丰富的人机交互GUI 界面。在传统的车牌识别基础上有所创新。加入出、入库识别,并且实行计算停车时间以及停车费用。整个设计在一个GUI 界面上完成。

3 总体方案论证
车牌识别技术通常包含三大处理流程,它们分别是车牌定位、字符分割和字符识别,本章将对车牌定位和字符分割进行研究。车牌定位是车牌识别系统的重要组成部分,它是要从整幅图像中获得车牌所在的位置,并把它提取出来,以此保证后续的处理–字符分割能顺利完成。字符分割也是车牌识别的重要组成部分,它是对经过车牌定位并经过一系列图像处理后得到的新图像进行字符分割,其任务是将车牌的7个字符分别分割出来。
在这里插入图片描述
图 3.1方案流程图
车牌定位是指在经过图像预处理之后的灰度图像上进行行列扫描或对彩色图像进行像素统计,来最终确定车牌的有效区域。字符分割指的是在图像中定位出车牌区域后,首先对该区域进行灰度化、二值化等图像处理,然后根据车牌字符的先验知识分割车牌字符。字符识别是对车牌分割后得到的字符进行缩放、特征提取,处理后的字符图像通过模板匹配或神经网络等方法获取到计算机可以存储并处理的编码字符,最终将其以文本的形式输出。

4 系统总体设计
在这里插入图片描述

图4.1总体设计框图

5 各部分定性说明以及定量计算
5.1 图像采集
图像采集是该系统的第一步,照片质量的好坏直接关系到系统识别的精度,故选择好的摄像设备,设置好的摄像角度是关键。随着现代社会的发展,数码照相机的分辨率已越来越高,可使用红外传感器来控制照相机的开启与关闭,照相机通过串口通信来传递图片信息给计算机。

5.2 图像的预处理
在整个车牌识别系统中,由于采集进来的图像为真彩图,再加上实际采集环境的影响以及采集硬件等原因,图像质量并不高,其背景和噪声会影响字符的正确分割。和识别,所以在进行车牌分割和识别处理之前,需要先对车牌图像进行图像预处理操作。预处理的具体操作是规整大小、噪声滤波,规整为统一大小便于后续处理的参数设置,提高定位精确度及识别正确率。规整大小函数:imresize (I,[row,col] )接着进行图像平滑滤波。RGB 图像的平滑滤波,需要将R,G,B 三个色道分别提取出,分别滤波。这里采用3*3 的中值滤波算子,对三个色道分别滤波,然后使用cat 函数将三色道整合起来。

5.3 车牌定位
目前,从事车牌定位有两类技术路线。第一类是在预处理后的灰度图像中实施检测,灰度图像相对于人的视觉而言,是以灰度等级来体现图像的深浅度。车辆图像的背景通常很复杂,背景可能包括生活中的人、树木、建筑物等,然而车牌为一个含有字符的固定区域,其内部含有丰富的边缘,因而车牌部分呈现出规则的纹理特征。第一类包括的主要方法有基于纹理特征法、基于数学形态学法、基于小波分析法等方法。车牌定位的第二类是在彩色图像中检测,由于人的视觉感受更倾向于彩色图像,且彩色图像能够提供更多有用的信息,因此人类可很好地区分上万种不同的颜色。随着计算机技术和图像处理技术的发展,计算机处理彩色图像的能力越来越高,通过彩色图像定位车牌成为近年来车牌定位的研究热点。第二类包括的主要方法有基于RGB 颜色法、基于神经网络法等。

5.3.1基于灰度图像的车牌区域定位方法
目前,通过摄像机、数码相机或手机采集到的图像通常是彩色图像。彩色图像中最常见的是RGB 图像,即每个像素由R、G、B 分量构成的图像,R 表示红色分量,G 表示绿色分量,B 表示蓝色分量,每个分量的取值范围都是0~255 。

如图所示的RGB 彩色模型,图中的每-一点表示一种颜色,每个点有三种组成部分,分别为红色分量、绿色分量和蓝色分量,分量的亮度值归一化到0到1之间。从模型中可看出,青色中含有绿色和蓝色,不含红色;品红中包含红色以及蓝色,不含绿色;黄色中含有绿色和红色,不含蓝色。在模型中黑与白之间的连线上,所有点的红、绿、蓝三种分量是相等的,从黑色逐渐变为白色。通过红、绿、蓝三分量的不同组合,形成了这个彩色空间。

5.3.2基于彩色图像的车牌区域定位方法
相比于基于灰度图像的车牌定位,基于彩色图像的车牌定位则无需做大量的图像预处理,比如图像的灰度化、边缘检测、数学形态学处理等。采用彩色图像定位车牌是利用车牌区域的颜色特征,先定位到与车牌颜色相关的区域,然后再利用纹理特征或者结构特征对相关区域进行分析和进一步判断,最终确定车牌区域。该方法不同于大多数的车牌定位方法,因为它对车牌的大小以及汽车在图像中的位置限制较少"。车牌除了具有颜色方面的特征之外,还具有一定的字频统计特征和几何结构特征,只有满足特定的字频统计特征和长宽比特征的区域才是真正的车牌区域。目前根据普通车牌的国家标准规定汽车牌照是有规则的长方形,且尺寸标准为:长440mm ,宽140mm ,长宽比约为3.14 。颜色信息的使用可以提高车牌定位的成功率,本文采用基于RGB 颜色分量的方法进行车牌定位研究。

传统的方法往往只考虑蓝色分量来对蓝色车牌进行定位,并未考虑其他分量,这样做的结果是找到的车牌区域往往会比较大。本文采用三分量实现对蓝色车牌定位,实验证明三分量获取的车牌区域比较理想。图2-7 所示为基于三分量的车牌定位流程图。
在这里插入图片描述
图5.3.3 基于三分量的车牌定位流程图
  参看图5.3.3 ,基于彩色图像的车牌区域定位方法的基本流程为:首先确定蓝色车牌背景色的RGB 各自对应的灰度范围。之后由彩色像素点统计法在行方向上统计出此范围内的蓝色像素点个数,同时设定一个合理的阙值,进而确定出行方向上车牌边界。在列方向上统计出上述灰度范围内的蓝色像素点个数,也设定一个较为合理的阈值,以此确定出列方向上的车牌边界。通过这种扫描的方式确定出车牌的上下左右边界,并对该边界范围内的子图像进行切割,最终分割出待定的车牌区域图像。待定区域是否为最终的车牌定位区域还要结合车牌形状方面的先验知识,即字频统计特征和几何结构特征。因此除了采用三分量进行车牌定位外,还通过车牌的几何结构及字频统计特征对车牌区域进行再判断。车牌定位时将长宽比的范围设置在[1.6,5] 之间(标准值为 3.14 ),预留有一定的裕度,同时将字符面积与车牌区域面积的比例设置在[0.12,0.6] ,即字符面积与车牌区域面积比例的最小值不超过0.12 ,最大值不超过0.6 。结合车牌的字频统计特征、几何结构特征和颜色特征,定位出的车牌区域合理,便于后续处理。
在这里插入图片描述
图5.3.4 基于彩色图像的车牌定位方法定位到的车牌区域

5.4字符分割
字符分割模块也是整个识别系统中的重要模块之一,字符分割的好坏直接对后续字符识别产生重要的影响,甚至影响字符识别的成败,在车牌识别中起着承上启下的作用。车牌字符分割就是把车牌照图像中的汉字、字母以及阿拉伯数字分割成为一个个独立的单字符,为下一步做好充分的准备。对于清晰的图像,字符分割准确率可以达到90%以上,但是由于摄像机或者照相机在实际拍摄车牌图像时会因存在这样或者那样的问题,进而影响字符分割的准确性。在进行字符分割前还需要对车牌区域进行一定的预处理,比如车牌校正和旋转等。

首先对车牌进行水平投影,去除水平边框;再对车牌进行垂直投影。通过对车牌进行投影分析可知,与最大值峰中心对应的为车牌中第二个字符和第三个字符的间隔,与第二大峰中心距离对应的即为车牌字符的宽度,并以此为依据对车牌进行分割。

5.4.1车牌矫正
通常情况下,由于拍摄角度不同,致使拍摄的图像有一定的倾斜,特别是车牌照区域发生了定倾斜。具有一定倾斜的图像对后续的字符分割与字符识别都将会造成严重的影响。即使倾斜角度很小,这也将会加大字符分割的难度,而且也会造成一定的偏差,此时系统还可以较准确的去定位车牌区域,但是仍对字符识别构成一定的影响。当倾斜角度较大时,将会分割出不完整的车牌区域,甚至分割出错误的车牌区域,致使整个系统识别失败。因此,在字符分割前,首先对车牌图像进行图像倾斜校正。常用的车牌校正算法有基于Hough 变换的车牌图像倾斜校正算法和基于Radon 变换的车牌图像倾斜校正算法。本次课程设计采用基于Radon 变换的车牌图像倾斜校正算法。

常用的车牌校正算法有基于Hough 变换的车牌图像倾斜校正算法和基于Radon 变换的车牌图像倾斜校正算法。本次课程设计采用基于Radon 变换的车牌图像倾斜校正算法。

5.4.2插值算法
倾斜校正之后还需要对图像进行旋转,当图像旋转之后会出现许多空洞点,对这些空洞点必须进行填充处理,否则画面效果不好,通常称这种操作为插值处理。常采用的插值方法有最近邻插值法、双线性插值法和三次插值法R 。

(1)双线性插值
在双线性插值算法当中,用原图像中点(x0,y0) 临近的四个网格点(m,n),(m+1,n),(m,m+1) 按照如所示的公式来计算归一化图像中点(x1,y1) 处的灰度值P(x1,y1) 。

p(x1,y1)=f(m.n)×(1-a)×(1-b)+f(m+1,n)×a×(1-b)
f(m,n+1)×(1-a)×b+f(m+1,n+1)×a×b
式中,m,n 分别为x0,y0 取整之后的值,a=x0-m,b=y0-m,f(m.n) 为点(m,n) 处的像素值,f(m+1,n) 为点(m+1,n) 处的像素值,f(m,n+1) 为点(m.n+1) 处的像素值,f(m+1,n+1) 为点(m+1,n+1) 处的像素值。

(2)三次插值
在三次插值算法当中,用原图像中点(x0,y0) 邻近的 16个网格点来近似归一化图像中点(x1,y1) 处p(x1,y1) 的灰度值。虽然此算法精度相当高,但是此算法相当复杂,而且计算量相当大。

(3)临近插值
在邻近插值算法中,用原图像中点(x,y) 邻近的四个网格点(m, n), ( m +1, n), ( m,n +1) ,( m+1, n+1) 最接近归一化图像中(x1,y1) 点处的灰度值f(x0’,y0’) 赋值给p(x1,y1) ,它的数学表达式如下所示。
p(x1,y1)=f(x0’,y0’)
式中点(x0,y0) 表示点(x0,y0) 与其相邻近的四个网格点最近的那个网格点。从系统的执行速度、算法的复杂度、系统运行的时间以及实际的效果方面综合考虑,本文采用双线性插值法,该方法实现简单而且能满足实际的效果要求,图2-9所示为图2-8经过Radon 变换和双线性插值后的车牌校正图像。
在这里插入图片描述
图5.4.1车牌矫正图像

5.5车牌识别
经过前面的车牌定位与分割以后,车牌的字符已经被分割成了多个单一字符,现在到了最为关键的一步——字符识别,它处理的好坏将会直接影响到整个车牌识别的识别效果。字符识别是将字符通过计算机识别出来,并标明其所属类别的问题,属于模式识别。模式识别技术是用机器来模拟人的各种识别能力,图像模式识别是用机器对图像、图片等模式信息加以处理和识别。它综合了人工智能、数字图像处理等学科,是当今的研究热点。目前常用的字符识别方法有:模板匹配字符识别方法、人工神经网络字符识别方法、基于字符特征的字符识别方法和基于统计分类器的字符识别方法。

字符识别需要有相应的模板库保存下分割后的字符图像,开始进行字符识别。第一个字符为行省简称,其余六个字符为数字与字母的组合,据此分别构建行省简称字符模板与数字、字母字符模板,供识别匹配备用。字符模板制作统一为40*20 的二值图像,利用模字制作软件,制模后保存在同一个文件夹中以备用识别过程中,首先建立标准字库,再将分割所得到的字符进行归一化,将归一化处理后的字符与标准字库里的字符逐一比较,最后把误差最小的字符作为结果显示出来。
在这里插入图片描述
图5.5.1二值图像

5.5.1车牌字符识别的特点
车牌字符识别的特点有:

(1)针对特定字符集
国内车辆牌照一般为中文字符、英文字符(不包含大写字母“O”和“I”)以及数字字符所组成,字符集里含有的元素只有几十个。

(2)待识别的字符图像相对小
由于车牌的大小通常只占采集图像的小部分,而在我国车牌的第一个字符为中文字符,由于中文字符结构相对复杂,形状多变,字符的像素较少就会给识别带来了更大的难度,甚至导致字符识别的失败。

(3)干扰噪声多
由于天气、光线的变化较多,会导致车牌识别系统受到的噪声干扰较多,拍摄的图像很可能非常模糊甚至是破坏,这就要求车牌字符识别具有更好的抗噪声能力,能够根据周围的环境做出改变。

(4)存在结构特征相似的字符
由于车牌字符会同时出现英文字符和数字字符,某些数字字符和英文字符具有相同的特征,从而增加了的字符识别的难度。比如英文字符"D" 和数字字符”0” ,数字字符"8" 和英文字符"B" ,数字字符"5" 和英文字符"S" ,英文字符"Z" 和数字字符"2" 等。

5.5.2基于模板匹配的车牌字符识别方法
模板匹配法是一种直观的分类算法,就是用不同字符的标准字形建立模板,然后把要识别的字符与其逐一比较,相似程度最大的作为识别结果,模板匹配法与人工神经网络字符识别方法相比具有识别速度快、方法简单等优点。为了实现模板匹配,首先要选择一些样本字符图像建立相关的字符模板库,当进行字符判定时,将每个待识别的二值化车牌字符图像进行归一化处理,将待识别字符图像缩放到模板字符同样的大小,然后计算待识别字符与模板库中样本字符特征点之间的距离,找出特征距离最小的模板,其所对应的输出值就是期望的识别结果。

模板匹配法算法简单,容易实现,对图像质量、模板大小比较敏感,实际系统中通常采用一个字符的多个模板或面积较大的模板以提高匹配识别的精度,但模板面积和数量的增加就会降低匹配效率。

5.6汽车出入库计时计费
图5.6.1 出入库计时计费流程图
1、记录汽车入库时间,车库位数减一;
2、记录汽车出库时间,车库位数加一;
3、计算停车时长,按标准计算停车费用;

6 系统软件设计
停车场管理系统软件设计部分包括图形用户界面设计、数据库设计。图形用户界面作为一个传达信息的工具,如计算机软件界面以及网页设计等等。“人机界面”的范围很宽泛,凡事人与机器进行信息交流的一切领域都应归于人机界面的范畴。界面设计是开发中非常重要的环节,优秀的界面设计通常是设计者预见的过程,设计的界面是开发者需要根据用户需求而设计的。同时优秀的界面通常简单且是用户乐于接受的。

⛄二、部分源代码

function varargout = gui(varargin)
gui_Singleton = 1;
gui_State = struct(‘gui_Name’, mfilename, …
‘gui_Singleton’, gui_Singleton, …
‘gui_OpeningFcn’, @gui_OpeningFcn, …
‘gui_OutputFcn’, @gui_OutputFcn, …
‘gui_LayoutFcn’, [] , …
‘gui_Callback’, []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
%结束初始化
function gui_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);
function varargout = gui_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;

% 输入图像=========
function pushbutton1_Callback(hObject, eventdata, handles)
[filename pathname]=uigetfile({‘.jpg’;'.bmp’}, ‘File Selector’);
I=imread([pathname ‘’ filename]);
handles.I=I;
guidata(hObject, handles);
axes(handles.axes1);
imshow(I);title(‘原图’);

% 图像处理=========
function pushbutton2_Callback(hObject, eventdata, handles)
I=handles.I;
I1=rgb2gray(I);
I2=edge(I1,‘roberts’,0.18,‘both’);
axes(handles.axes2);
imshow(I1);title(‘灰度图’);
axes(handles.axes3);
imshow(I2);title(‘边缘检测’);
se=[1;1;1];
I3=imerode(I2,se);%腐蚀操作
se=strel(‘rectangle’,[25,25]);
I4=imclose(I3,se);%图像聚类,填充图像
I5=bwareaopen(I4,2000);%去除聚团灰度值小于2000的部分
[y,x,z]=size(I5);%返回15各维的尺寸,存储在x,y,z中
myI=double(I5);
tic %tic计时开始,toc结束
Blue_y=zeros(y,1);%产生一个y*1的零针
for i=1:y
for j=1:x
if(myI(i,j,1)==1)%如果myI图像坐标为(i,j)点值为1,即背景颜色为蓝色,blue加一
Blue_y(i,1)=Blue_y(i,1)+1;%蓝色像素点统计
end
end
end

⛄三、运行结果

在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]李强,张娟.一种改进的基于模板匹配的污损车牌识别方法[J].智能计算机与应用. 2019,9(03).

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

🍅 仿真咨询
1 各类智能优化算法改进及应用

生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化

2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化

5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配

6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化

7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化

8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置

9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长

10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

  • 24
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Matlab领域

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

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

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

打赏作者

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

抵扣说明:

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

余额充值