当前位置:文档之家› 数字图像处理课程设计-基于图像处理的车牌识别技术

数字图像处理课程设计-基于图像处理的车牌识别技术

数字图像处理课程设计-基于图像处理的车牌识别技术
数字图像处理课程设计-基于图像处理的车牌识别技术

《数字图像处理》

课程设计报告

设计题目:基于图像处理的车牌识别技术学院:xxxxxxxxxxxxxxxx

专业:xxxxxxxxxxxx

xxxxxxxxxxxxxxx

姓名:xxxxxxxxxxxxxxxxxxxxxxx

学号:xxxxxxxxxxxxxxxxxxx

指导教师:xxxxxx

2015 年xx 月xx 日

摘要

智能交通系统已成为世界交通领域研究的重要课题,车牌识别系统作为智

能交通系统的核心,起着非常关键的作用。目前,图像处理技术在车牌识别中

的应用研究已经成为科学界的一个重要研究领域。

本课程设计旨在粗浅地运用所学基本原理和知识分析数字图像处理技术在

友好环境下的应用(所选车牌识别的车辆图片均为友好环境下,易于处理的实

验图片,不具有广泛性)。以车牌为研究对象,主要研究如何通过图像的预处理、

车牌的定位、车牌字符分割和字符识别等一系列过程,完成车牌的识别。

关键词:智能交通、数字图像处理、车牌识别

ABSTRACT

Intelligent transportation system has become an important research topic

in the world of transportation, license plate recognition system as the

core of intelligent transportation system, plays a key role. At present,

the application of image processing technology in vehicle license plate

recognition has become an important research area of the scientific

community.

This course is designed to scratch the surface and apply the knowledge

to analyze the basic principles of digital image processing technology

in a friendly environment (experimental vehicle license plate

recognition image selected pictures are environment-friendly, easy to

handle, does not have the breadth) . With license plate for the study,

the main research how image preprocessing, license plate and license

plate character segmentation and character recognition process and a

series of complete license plate recognition.

Keywords:smart transportation 、Image Processing 、License Plate Recognition

目录

1、绪论 (4)

1.1问题提出 (4)

1.2背景及现状分析 (4)

1.3目的及意义 (5)

1.4开发工具 (5)

2、系统设计 (5)

2.1总体设计方案 (5)

2.2流程图 (5)

2.3模块功能分析 (6)

2.3.1图像预处理 (6)

2.3.2车牌定位 (8)

2.3.3字符分割 (8)

2.3.4字符识别 (10)

3、系统结果分析 (12)

3.1本系统结果分析 (12)

3.2本系统的不足 (12)

4、课程设计总结 (13)

5、课程设计体会 (13)

6、参考文献 (13)

7、附录 (14)

1、绪论

伴随着工业的迅速发展,城市化的进展和汽车的普及,世界各国的交通量急剧增加。如何管理好公路的运行与运营,保障好车辆在公路上的安全、快速的行驶,成为交通管理的重要问题。人们开始考虑修建更多更宽的道路,然而修建新路的巨额资金和城市空间的限制使得这一方法的有效性大打折扣。近年来,随着科技的发达、计算机技术、通信技术和计算机网络技术的发展,自动化的信息处理能力和水平不断提高,于是人们把目光聚焦到运用科学管理的方法来解决交通问题,并得到迅速的发展,最终形成了智能交通系统ITS的概念。

1.1问题提出

在信息业快速发展的今天,各行各业都迫切需要进行信息化、自动化以提高效率、减小人员使用。交通业也是如此。由于经济的腾飞,我国交通事业正在如火如荼地发展。信息事业与交通事业近几年来的快速发展使二者形成一个交集,那就是用高度发达的信息化方法去适应高速发展的交通事业。具体来说,如何开发一套高效、实用的智能交通管理系统,已是迫在眉睫的问题。

然而,实现基于图像处理的机动车牌识别又是一切智能交通管理活动的基础,所以说车牌识别系统是智能交通系统中重要组成部分。汽车牌照识别系统的应用非常广泛,停车场、交通路口、高速公路收费站以及机关门卫等领域都大量运用了车牌识别技术。所以说,如何开发一套高效、准确、使用方便的车牌识别系统已成为最亟待解决的问题。

1.2背景及现状分析

基于图像处理的车牌识别技术的研究在国外起步比较早,在美国、意大利、德国、以色列、新加坡等国家,现在都已经有比较成熟的产品投入使用,比如美国的(AUTOSCOF)2003系统、以色列的Hi-Tech公司研制的See/Car System、德国西门子公司的ARTEM7SXI系统、新加坡的Optasia公司研制的VLPRS等车牌识别系统,但因为我国车牌样式的多样性、车牌颜色的多样性以及包含汉字等特点,这些车牌识别系统不适合我国国情。

基于图像处理的车牌识别技术主要包括车牌定位、车牌分割、字符识别等方面的技术。关于车牌定位方面,主要理由车牌的边缘、形状、颜色等特征,再结合数字图像处理、形态学、小波变换、人工神经网络等技术对车牌进行定位。

基于特征的车牌定位的方法有 C.J.Setchel提出的基于字符边缘检测的车牌定位方法,M.M.Mfahmy提出一种基于迭代阈值的车牌定位方法。完全基于形态学的算法有运用数学形态学的闭运算获得车牌的候选区,然后采用投影的方法剔除假车牌,定位针车牌。基于神经元网络的方法有基于BP网络的牌照定位方法,基于彩色的车牌定位方法有采用多层感知器网络对输入彩色图像进行彩色分割及多级混合集成分类器的车牌自动识别方法。还有根据彩色边缘检测算子ColorPrewitt和彩色边缘检测与区域生长相结合的车牌定位算法。

1.3目的及意义

1. 掌握图像的获取、预处理和分割的原理及MATLAB实现方法。

2. 自学一种字符图像的分割算法并用MATLAB编程实现该算法。

3. 在课程设计中复习并丰富在数字图像课上学到的知识。

车牌定位系统的目的在于正确获取整个图像中车牌的区域,并识别出车牌号。通过设计实现车牌识别系统,能够提高学生分析问题和解决问题的能力,还能培养一定的科研能力。

1.4开发工具

PC机、MATLAB应用软件

2、系统设计

2.1总体设计方案

车辆牌照识别整个系统主要是由车牌定位和字符识别两部分组成,其中车牌定位又可以分为图像预处理及边缘提取模块和牌照的定位及分割模块;字符识别可以分为字符分割与特征提取和单个字符识别两个模块。

为了用于牌照的分割和牌照字符的识别,原始图象应具有适当的亮度,较大的对比度和清晰可辩的牌照图象。但由于该系统的摄像部分工作于开放的户外环境,加之车辆牌照的整洁度、自然光照条件、拍摄时摄像机与牌照的矩离和角度以及车辆行驶速度等因素的影响,牌照图象可能出现模糊、歪斜和缺损等严重缺陷,因此需要对原始图象进行识别前的预处理。牌照的定位和分割是牌照识别系统的关键技术之一,其主要目的是在经图象预处理后的原始灰度图象中确定牌照的具体位置,并将包含牌照字符的一块子图象从整个图象中分割出来,供字符识别子系统识别之用,分割的准确与否直接关系到整个牌照字符识别系统的识别率。由于拍摄时的光照条件、牌照的整洁程度的影响,和摄像机的焦距调整、镜头的光学畸变所产生的噪声都会不同程度地造成牌照字符的边界模糊、细节不清、笔划断开或粗细不均,加上牌照上的污斑等缺陷,致使字符提取困难,进而影响字符识别的准确性。因此,需要对字符在识别之前再进行一次针对性的处理。车牌识别的最终目的就是对车牌上的文字进行识别。主要应用的为模板匹配方法。

本系统设计主要分为四个模块:图像预处理、车牌定位、字符分割、字符识别

2.2流程图

2.3模块功能分析

2.3.1图像预处理

首先载入车牌图像,目前我国普通汽车牌照的字符与背景搭配一般为蓝底白字,本程序主要针对上述类型的车牌进行识别。

然后进行预处理,首先进行车牌图像的灰度处理和二值化处理,基于RGB颜色空间中的车牌颜色特征提取,当某像素呈现为蓝色时,其蓝色分量必大于其他两个分量,记d1(xy) = b(x,y) - r(x,y);d2(x,y) = b(x,y) - g(x,y) , 则可通过公式F(x,y) =k1*d1(x,y)+k2*d2(x,y)提取蓝色特征。该特征可以看做是蓝色分量与其他两个颜色分量差的加权和。二值化处理,利用大津阈值法对灰度图像进行二值处理,进一步将车牌从复杂背景中分离。

灰度和二值化处理后图像如下:

灰度处理后效果图

二值化处理后效果图

形态学处理与连通域标记,形态学处理:利用结构算子对二值图进行形态学运算,以融合图像中的孔洞,去除车牌区域中的孤立背景噪声。连通域标记:将处理后的二值图像各连通域进行8-连通标记处理。效果图如下:

2.3.2车牌定位

特征识别定位车牌,首先选取特征:以车牌的宽高比作为识别特征。车牌定位:求每个连通域的最小包围矩形,计算其宽高比,当满足车牌的宽高比范围时,该区域即为车牌候选取。车牌定位效果如下:

2.3.3字符分割

提取车牌并预处理,通过形态学滤波去除孤立的噪声,利用行扫描法分割车牌,将字符上方因螺丝造成的噪声除去,精确定位目标字符区域。效果图如下:

计算垂直投影,计算行积累量,通过列扫描法求出列的投影值。垂直投影直方图,根据行矩阵绘制垂直投影的直方图,可以明显地看出字符之间有间距。效果图如下:

字符分割,通过垂直投影直方图来确定字符的边界,从而将其切割成7个独立的图像。在汽车牌照自动识别过程中,字符分割有承前启后的作用。它在前期牌照定位的基础上进行字符的分割,然后再利用分割的结果进行字符识别。字符识别的算法很多,因为车牌字符间间隔较大,不会出现字符粘连情况,所以此处采用的方法为寻找连续有文字的块,若长度大于某阈值,则认为该块有两个字符组成,需要分割。

字符归一化,一般分割出来的字符要进行进一步的处理,以满足下一步字符识别的需要。但是对于车牌的识别,并不需要太多的处理,将分割的7个字符统一成识别库中模板的尺寸,就已经可以达到正确识别的目的。在此只进行了归一化处理,然后进行后期处理。效果图如下:

2.3.4字符识别

字符的识别目前用于车牌字符识别(OCR)中的算法主要有基于模板匹配的OCR算法以及基于人工神经网络的OCR算法。基于模板匹配的OCR的基本过程是:首先对待识别字符进行二值化,并将其尺寸大小缩放为字符数据库中模板的大小,然后与所有的模板进行匹配,最后选最佳匹配作为结果。用人工神经网络进行字符识别主要有两种方法:一种方法是先对待识别字符进行特征提取,然后用所获得的特征来训练神经网络分类器。识别效果与字符特征的提取有关,而字符特征提取往往比较耗时。因此,字符特征的提取就成为研究的关键。另一种方法则充分利用神经网络的特点,直接把待处理图像输入网络,由网络自动实现特征提取直至识别。

模板匹配的主要特点是实现简单,当字符较规整时对字符图像的缺损、污迹干扰适应力强且识别率相当高。综合模板匹配的这些优点我们将其用为车牌字符识别的主要方法。

模板匹配是图象识别方法中最具代表性的基本方法之一,它是将从待识别的图象或图象区域f(i,j)中提取的若干特征量与模板T(i,j)相应的特征量逐个进行比较,计算它们之间规格化的互相关量,其中互相关量最大的一个就表示期间相似程度最高,可将图象归于相应的类。也可以计算图象与模板特征量之间的距离,用最小距离法判定所属类。然而,通常情况下用于匹配的图象各自的成像条件存在差异,产生较大的噪声干扰,或图象经预处理和规格化处理后,使得图象的灰度或像素点的位置发生改变。在实际设计模板的时候,是根据各区域形状固有的特点,突出各类似区域之间的差别,并将容易由处理过程引起的噪声和位移等因素都考虑进去,按照一些基于图象不变特性所设计的特征量来构建模板,就可以避免上述问题。

我们采用相减的方法来求得字符与模板中哪一个字符最相似,然后找到相似度最大的输出。汽车牌照的字符一般有七个,大部分车牌第一位是汉字,通常代表车辆所属省份,或是军种、警别等有特定含义的字符简称;紧接其后的为字母与数字。车牌字符识别与一般文字识别在于它的字符数有限,汉字共约50多个,大写英文字母26个,数字10个。所以建立字符模板库也极为方便。为了实验方便,结合本次设计所选汽车牌照的特点,只建立了4个数字26个字母与10个数字的模板。其他模板设计的方法与此相同。

首先取字符模板,接着依次取待识别字符与模板进行匹配,将其与模板字符相减,得到的0越多那么就越匹配。把每一幅相减后的图的0值个数保存,然后找数值最大的,即为识别出来的结果。效果图如下:

通过以上的方法,我组对多幅图像进行了检测,有较好的识别效果。下面是对另一幅车牌照的检测效果图:

原始图片

灰度处理

二值化处理

识别

字符分割

输出车牌

3、系统结果分析

3.1本系统结果分析

对于光照条件不理想的图象,可先进行一次图象增强处理,使得图象灰度动态范围扩展和对比度增强,再进行定位和分割,这样可以提高分割的正确率。而采用了色彩通道的牌照区域分割算法充分利用了牌照图象的色彩信息,简化了算法的实现,加快了图象的处理速度,具有较高的检出正确率,而且整个过程用MATLAB 语言编程实现,无时间滞后感,可以满足实时检出的要求。但是在设计的过程中发现,使用另一幅图像后,识别效果始终没有那么理想。需要做一定的设置后才能识别出相应的字符。

字符识别过程使用的是模板匹配的方法,利用两幅图片相减的方法,找到相减后值最小的,即为相似程度最大的。模板的制作很重要,必须要用精确的模板,否则就不能正确的识别。

3.2本系统的不足

本系统设计的重大缺陷就是只能识别情况较好的车牌图像,对情况较复杂的交通图像识别正确率较低。

4、课程设计总结

根据车牌特点,一般采用的车牌定位算法有:1.边缘检测定位算法;2.利用哈夫变换进行车牌定位;3.色彩分割提取车牌等。这里是通过色彩分割提取车牌的方法实现定位的。

字符分割的方法也有多种:1. 基于聚类分析的字符分割;2. 投影分割的方法;3.基于模板匹配的字符分割等。最常用的是投影分割,主要是针对在车牌定位,图像预处理后比较规则的车牌图像。优点是程序逻辑设计简单,循环执行功能单一,便于设计和操作,程序执行时间短。

字符识别的基本方法通常又三类:1.结构特征分析方法;2.模板匹配法;3.神经网络法。此处采用的是模板匹配的方法,即是将要识别的字符与事先构造好的模板进行比对,根据与模板的相似度的大小来确定最终的识别结果。

5、课程设计体会

课程设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。通过这次课程设计使我们明白了自己原来知识还比较欠缺。这个课程设计让我们学到了很多东西,涉及到方方面面的知识,在这整个过程中我们查阅了大量的资料,得到了老师和同学的帮助,在此对他们表示谢意。在这期间遇到了很多困难,我知道做什么都不容易,只能塌下心来,一步一个脚印的去完成才行。这学期我们学习了数字图像处理这门课程,在这个课程设计中应用到了很多其中的知识。理论只有应用到实际中才能学着更有意义。学习是一个长期积累的过程,在后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。此外,还得出一个结论:知识必须通过应用才能实现其价值!有些东西以为学会了,但真正到用的时候才发现是两回事,所以我们认为只有到真正会用的时候才是真的学会了。在整个设计中我们懂得了许多东西,也培养了我们独立工作的能力,树立了信心,相信会对今后的学习工作生活有非常重要的影响。同样此次课程设计也大大提高了动手的能力,使我们充分体会到了在创造过程中探索的艰难和成功时的喜悦。虽然这个设计做的并非对所以车牌都合适,但是在设计过程中所学到的学习方法是我们最大收获和财富,相信定会使我们受益终身。

6、参考文献

[1] (美)冈萨雷斯.数字图像处理(第三版).电子工业出版社,2011.6

[2] 许志影、李晋平. MATLAB极其在图像处理中的应用.计算机与现代化,2010.4

[3] 叶晨洲等. 车辆牌照字符识别系统,计算机系统应用,2009.5

[4] 郑成勇. 基于RGB颜色空间中的车牌定位新方法. 中国图象图形学报,2010.11

7、附录

源代码:

clear all;

I = imread('C:\Users\lenovo\Desktop\作业\car3.jpg');

figure;imshow(I);title('原图');

%%%%%%%%%% 基于蓝色对图片进行灰度处理%%%%%%%%%%

I_double = double(I);

[row,column,color] = size(I_double);

P = zeros(row,column);

d1 = zeros(row,column);

d2 = zeros(row,column);

k1 = 0.33748;

k2 = 0.66252;

for i = 1:row

for j = 1:column

d1(i,j) = I(i,j,3) - I(i,j,1);

d2(i,j) = I(i,j,3) - I(i,j,2);

if( d1(i,j,1) >= 0 && d2(i,j,1) >= 0)

P(i,j) = k1 * d1(i,j) + k2 * d2(i,j);

else

P(i,j) = 0;

end;

end;

end;

P = uint8(P);

%%%%%%%%%%%% 大津阈值法求二值%%%%%%%%%%%

thresh = graythresh(P);

P_bw = im2bw(P,thresh);

subplot(1,2,1),imshow(P),title('灰度');

subplot(1,2,2),imshow(P_bw),title('二值');

%%%%%%%%%%%%%% 对二值图片进行形态处理%%%%%%%%%%%%%%%

SE_1 = strel('rectangle',[10 25]);

SE_2 = strel('rectangle',[2 10]);

SE_3 = strel('rectangle',[10 2]);

P_close = imclose(P_bw,SE_1);

P_open = imopen(P_close,SE_2);

P_open = imopen(P_open,SE_3);

figure;imshow(P_open);title('形态处理');

%%%%%%%%%%%%%%% 对处理后的图片进行连通标记%%%%%%%%%%%%%%%

[P_con,num] = bwlabel(P_open,8);

figure;imshow(P_con);title('8连通处理');

%%%%%%%%%%%%%% 定位车牌位置并提取%%%%%%%%%%%%%%%%% %%%%%%%% 通过车牌的最小包围矩形长宽比%%%%%%%%%%

state = regionprops(P_con,'BoundingBox');%最小包围矩形

P_reg = zeros(row,column);

for m = 1:num

top = round(state(m,1).BoundingBox(2));%左上角X值

left = round(state(m,1).BoundingBox(1));%左上角Y值

length = round(state(m,1).BoundingBox(3));%矩形宽

width = round(state(m,1).BoundingBox(4));%矩形高

rate = double(length / width);%宽高比

for i = top:top + width-2

for j = left+1:left+length

if (rate >= 2.7 && rate <= 4.7)

P_reg(i,j) = 1;

flag=1;

end;

end;

end;

end;

state = regionprops(P_reg,'BoundingBox');

top = round(state(1,1).BoundingBox(2));

left = round(state(1,1).BoundingBox(1));

length = round(state(1,1).BoundingBox(3));

width = round(state(1,1).BoundingBox(4));

P_pick=I(top:top + width-2,left+1:left+length,:);

M=rgb2gray(P_pick);

thresh = graythresh(M);

P = im2bw(M,thresh);

I1=bwareaopen(P,7); %删除二值图像P中面积小于7的对象,默认情况下conn使用8邻域。

[y1,x1,z1]=size(I1); %获取二值图像的尺寸

I2=double(I1); %将图像转换为double类型便于运算

相关主题
文本预览
相关文档 最新文档