Matlab车牌辨认体系
分院(系)
| 信息科学与工程
| 专业
|
| 学生姓名
|
| 学号
|
| 设计题目
| 车牌辨认体系设计
| 内容及要求:
车牌定位体系的目的在于正确获取整个图像中车牌的地区,
并辨认出车牌号。通过设计实现车牌辨认体系,能够进步学生
分析问题和解决问题的本领,还能造就肯定的科研本领。
1.牌照辨认体系应包罗车辆检测、图像采集、牌照辨认等几
部分。
2.当车辆检测部分检测到车辆到达时,触发图像采集单位,采
集当前的视频图像。
3.牌照辨认单位对图像进行处理惩罚,定位出牌照位置,再将牌
照中的字符分割出来进行辨认,然后构成牌照号码输出。
进度安排:
19周:Matlab环境认识与基础知识学习
19周:课程设计选题与题目分析
20周:步伐设计编程实现
20周:课程设计验收与答辩
| 指导西席(具名):
年 月 日
| 学院院长(具名):
年 月 日
|
目 录
一.课程设计目的……………………………………………3
二.设计原理…………………………………………………3
三.详细设计步调……………………………………………3
四. 设计效果及分析…………………………………………18
五. 总结………………………………………………………19
六. 设计体会…………………………………………………20
七. 参考文献…………………………………………………21
一、课程设计目的
车牌定位体系的目的在于正确获取整个图像中车牌的地区,并辨认出车牌号。通过设计实现车牌辨认体系,能够进步学生分析问题和解决问题的本领,还能造就肯定的科研本领。
二、设计原理:
牌照自动辨认是一项利用车辆的动态视频或静态图像进行牌照号码、牌照颜色自动辨认的模式辨认技能。其硬件基础一般包罗触发装备、摄像装备、照明装备、图像采集装备、辨认车牌号码的处理惩罚机等,其软件核心包罗车牌定位算法、车牌字符分割算法和光学字符辨认算法等。某些牌照辨认体系还具有通过视频图像判断车辆驶入视野的功能称之为视频车辆检测。一个完备的牌照辨认体系应包罗车辆检测、图像采集、牌照辨认等几部分。当车辆检测部分检测到车辆到达时触发图像采集单位,采集当前的视频图像。牌照辨认单位对图像进行处理惩罚,定位出牌照位置,再将牌照中的字符分割出来进行辨认,然后构成牌照号码输出。
1. 提出总体设计方案:
牌照号码、颜色辨认
为了进行牌照辨认,必要以下几个根本的步调:
a.牌照定位,定位图片中的牌照位置;
b.牌照字符分割,把牌照中的字符分割出来;
c.牌照字符辨认,把分割好的字符进行辨认,终极构成牌照号码。
牌照辨认过程中,牌照颜色的辨认依据算法不同,可能在上述不同步调实现,通常与牌照辨认互相配合、互相验证。
(1)牌照定位:
自然环境下,汽车图像配景复杂、光照不均匀,怎样在自然配景中正确地确定牌照地区是整个辨认过程的关键。首先对采集到的视频图像进行大范围相关搜索,找到符合汽车牌照特征的若干地区作为候选区,然后对这些侯选地区做进一步分析、评判,末了选定一个最佳的地区作为牌照地区,并将其从图象中分割
流程图:
(3)牌照字符辨认 :
字符辨认方法目前主要有基于模板匹配算法和基于人工神经网络算法。基于模板匹配算法首先将分割后的字符二值化,并将其尺寸大小缩放为字符数据库中模板的大小,然后与所有的模板进行匹配,末了选最佳匹配作为效果。基于人工神经元网络的算法有两种:一种是先对待辨认字符进行特征提取,然后用所获得特征来训练神经网络分配器;另一种方法是直接把待处理惩罚图像输入网络,由网络自动实现特征提取直至辨认出效果。实际应用中,牌照辨认体系的辨认率与牌照质量和拍摄质量密切相关。牌照质量会受到各种因素的影响,如生锈、污损、油漆剥落、字体褪色、牌照被遮挡、牌照倾斜、高亮反光、多牌照、假牌照等等;实际拍摄过程也会受到环境亮度、拍摄亮度、车辆速率等等因素的影响。这些影响因素不同水平上降低了牌照辨认的辨认率,也正是牌照辨认体系的困难和挑战所在。为了进步辨认率,除了不停的美满辨认算法,还应该想办法克服各种光照条件,使采集到的图像最利于辨认。
2. 各模块的实现:
2.1输入待处理惩罚的原始图像:
clear ;
close all;
%Step1 获取图像 装入待处理惩罚彩色图像并表现原始图像
Scolor = imread('3.jpg');%imread
2.2图像的灰度化:
彩色图像包含着大量的颜色信息,不但在存储上开销很大,而且在处理惩罚上也会降低体系的执行速率,因此在对图像进行辨认等处理惩罚中经常将彩色图像转变为灰度图像,以加速处理惩罚速率。由彩色转换为灰度的过程叫做灰度化处理惩罚。选择的尺度是颠末灰度变换后,像素的动态范围增加,图像的对比度扩展,使图像变得更加清楚、细腻、轻易辨认。
%将彩色图像转换为黑白并表现
Sgray = rgb2gray(Scolor);%rgb2gray转换成灰度图
figure,imshow(Sgray),title('原始黑白图像');
函数读取图像文件
2.6边缘检测:
两个具有不同灰度值的相邻地区之间总存在边缘,边缘就是灰度值不连续的效果,是图像分割、纹理特征提取和形状特征提取等图像分析的基础。为了对故意义的边缘点进行分类,与这个点相联系的灰度级必须比在这一点的配景上变换更有用,我们通过门限方法来决定一个值是否有用。所以,假如一个点的二维一阶导数比指定的门限大,我们就定义图像中的次点是一个边缘点,一组这样的依据事先定好的连接准则相连的边缘点就定义为一条边缘。颠末一阶的导数的边缘检测,所求的一阶导数高于某个阈值,则确定该点为边缘点,这样会导致检测的边缘点太多。可以通过求梯度局部最大值对应的点,并认定为边缘点,去除非局部最大值,可以检测出正确的边缘。一阶导数的局部最大值对应二阶导数的零交叉点,这样通过找图像强度的二阶导数的零交叉点就能找到正确边缘点。
grd=edge(bw2,'canny')%用canny算子辨认强度图像中的边界
figure,imshow(grd);title('图像边缘提取');%输出图像边缘
图2.6像边缘提取
2.7对得到图像作开操纵进行滤波:
数学形态非线性滤波,可以用于抑制噪声,进行特征提取、边缘检测、图像分割等图像处理惩罚问题。腐蚀是一种消除边界点的过程,效果是使目标缩小,孔洞增大,因而可有用的消除孤立噪声点;膨胀是将与目标物体打仗的所有配景点合并到物体中的过程,效果是使目标增大,孔洞缩小,可弥补目标物体中的空洞,形成连通域。先腐蚀后膨胀的过程称为开运算,它具有消除微小物体,并在纤细处分离物体和平滑较大物体边界的作用;先膨胀后腐蚀的过程称为闭运算,具有填充物体内微小空洞,连接邻近物体和平滑边界的作用。对图像做了开运算和闭运算,闭运算可以使图像的表面线更为光滑,它通常用来消掉狭窄的中断和长细的鸿沟,消除小的孔洞,并弥补表面线中的断裂。
bg1=imclose(grd,strel('rectangle',[5,19]));%取矩形框的闭运算
figure,imshow(bg1);title('图像闭运算[5,19]');%输出闭运算的图像
bg3=imopen(bg1,strel('rectangle',[5,19]));%取矩形框的开运算
figure,imshow(bg3);title('图像开运算[5,19]');%输出开运算的图像
bg2=imopen(bg3,strel('rectangle',[19,1]));%取矩形框的开运算
figure,imshow(bg2);title('图像开运算[19,1]');%输出开运算的图像
c.计算车牌上每个字符中心位置,计算最大字符宽度maxwidth
l=0;
for k=1:n1
markcol3(k)=markcol(k+1)-markcol1(k+1);%字符下降点
markcol4(k)=markcol3(k)-markcol(k); %字符宽度(上升点至下降点)
markcol5(k)=markcol3(k)-double(uint16(markcol4(k)/2));%字符中心位置
end
markcol6=diff(markcol5); %字符中心间隔(字符中心点至下一个字符中心点)
maxs=max(markcol6); %查找最大值,即为第二字符与第三字符中心间隔
findmax=find(markcol6==maxs);
markcol6(findmax)=0;
maxwidth=max(markcol6);%查找最大值,即为最大字符宽度
d.提取分割字符,并变换为22行*14列尺度子图
l=1;
[m2,n2]=size(subcol);
figure;
for k=findmax-1:findmax+5
cleft=markcol5(k)-maxwidth/2;
cright=markcol5(k)+maxwidth/2-2;
if cleft<1
cleft=1;
cright=maxwidth;
end
if cright>n2
cright=n2;
cleft=n2-maxwidth;
end
SegGray=sbw(rowtop:rowbot,cleft:cright);
SegBw1=sbw(rowtop:rowbot,cleft:cright);
SegBw2 = imresize(SegBw1,[22 14]); %变换为22行*14列尺度子图
subplot(2,n1,l),imshow(SegGray);
if l==7
title(['车牌字符宽度: ',int2str(maxwidth)],'Color','r');
end
subplot(2,n1,n1+l),imshow(SegBw2);
fname=strcat('F:\MATLAB\work\sam\image',int2str(k),'.jpg');%生存子图备选入样本库,并创建样本库
imwrite(SegBw2,fname,'jpg')
l=l+1;
end
2.12将计算计算获取的字符图像与样本库进行匹配,自动辨认出字符代码:
进行车牌辨认前必要使用样本对神经网络进行训练,然后使用训练好的网络对车牌进行辨认。其具体流程为:使用汉字、字母、字母数字、数字四个样天职别对四个子网络进行训练,得到相应的节点数和权值。对已经定位好的车牌进行图像预处理惩罚,逐个的特征提取,然后从相应的文件中读取相应的节点数 和权值,把车牌字符分别送入相应的网络进行辨认,输出辨认效果。
运用基于蓝色象素点统计特性的方法对车牌是蓝色的车牌进行定位,实验表明,用该方法实现的车牌定位正确率较高。本设计用MATLAB编程运行效果可以得出,本设计采取的图像预处理惩罚、CANNY边缘检测、开闭运算子[5,19]、车牌长宽比特征辨认等对车牌的定位都黑白常有用的,而本设计提出的二次水平投影分析和阈值技能有用检测了车牌图像的上下左右边框、旋转角度,正确实现的车牌字符的分割,对多个车牌进行实验,均有很高的正确率。本设计虽然只对蓝底白字车牌进行分割辨认,对黑底白字车牌原则上整个算法可直接实用,对白底黑字车牌、黄底黑字车牌,必要对车牌定位算法进行调整,并将图像反转(0变1、1变0),而车牌字符的分割算法仍然行之有用。
七、参考文献:
[1] 陈桂明、张明照、戚红雨.应用MATLAB语言处理惩罚数字信号与数字图像。科学出书社,2000
[2] 霍宏涛.数字图像处理惩罚.机器工业出书社,2003.5
[3] 郁梅等,基于视觉的车辆牌照检测,计算机应用研究,1999(5),P65~67
[4] 叶晨洲,廖金周,一种基于纹理的牌照图象二值化方法,微型电脑应用,1999(6),P28~29
[5] 周妮娜、王敏、黄心汉、吕雪峰、万国红.车牌字符辨认的预处理惩罚算法.计算机工程与应用,2003(15)
[6] 杨万山等,基于BP 神经网络的工程图纸图形符号的辨认,微型电脑应用,Vol.16,No.2,2000
[7] 王年、李婕、任彬、汪炳权.多条理汽车车牌照定位分割方法. 安徽大学学报,1999(6)Vol.23.No.2
[8] 崔 江、王友仁.车牌自动辨认方法中的关键技能研究.计算机测量与控制,2003.11(4)
[9] 许志影、李晋平.MATLAB极其在图像处理惩罚中的应用.计算机与现代化,2004(4)
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |