最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

柯力 车牌识别

来源:动视网 责编:小OO 时间:2025-09-24 10:42:01
文档

柯力 车牌识别

武汉工程大学计算机科学与工程学院综合设计报告设计名称:图像处理与机器视觉综合设计设计题目:车牌识别系统实现学生学号:*******211专业班级:09智能2班******学生成绩:指导教师(职称):赵彤洲(副教授)课题工作时间:2012-11-26至2012-12-07说明:1、报告中的第一、二、三项由指导教师在综合设计开始前填写并发给每个学生;四、五两项(中英文摘要)由学生在完成综合设计后填写。2、学生成绩由指导教师根据学生的设计情况给出各项分值及总评成绩。3、指导教师评语一栏由指导教师就学
推荐度:
导读武汉工程大学计算机科学与工程学院综合设计报告设计名称:图像处理与机器视觉综合设计设计题目:车牌识别系统实现学生学号:*******211专业班级:09智能2班******学生成绩:指导教师(职称):赵彤洲(副教授)课题工作时间:2012-11-26至2012-12-07说明:1、报告中的第一、二、三项由指导教师在综合设计开始前填写并发给每个学生;四、五两项(中英文摘要)由学生在完成综合设计后填写。2、学生成绩由指导教师根据学生的设计情况给出各项分值及总评成绩。3、指导教师评语一栏由指导教师就学
武汉工程大学 

计算机科学与工程学院

综合设计报告

设计名称:       图像处理与机器视觉综合设计      

设计题目:           车牌识别系统实现            

学生学号:             *******211                

专业班级:             09智能2班               

****               **                    

学生成绩:                                       

指导教师(职称):         赵彤洲(副教授)       

课题工作时间:       2012-11-26   至   2012-12-07  

说明:

1、报告中的第一、二、三项由指导教师在综合设计开始前填写并发给每个学生;四、五两项(中英文摘要)由学生在完成综合设计后填写。

2、学生成绩由指导教师根据学生的设计情况给出各项分值及总评成绩。

3、指导教师评语一栏由指导教师就学生在整个设计期间的平时表现、设计完成情况、报告的质量及答辩情况,给出客观、全面的评价。

4、所有学生必须参加综合设计的答辩环节,凡不参加答辩者,其成绩一律按不及格处理。答辩小组成员应由2人及以上教师组成。

5、报告正文字数一般应不少于5000字,也可由指导教师根据本门综合设计的情况另行规定。

6、平时表现成绩低于6分的学生,其综合设计成绩按不及格处理。

7、此表格式为武汉工程大学计算机科学与工程学院提供的基本格式(适用于学院各类综合设计),各教研室可根据本门综合设计的特点及内容做适当的调整,并上报学院批准。

成绩评定表

学生姓名:    柯力      学号:     *******211      班级:    09智能02班     

类别合计

分值

各项分值评分标准实际得分合计得分备注
平时表现1010按时参加综合设计,无旷课、迟到、早退、违反实验室纪律等情况。
完成情况3020按设计任务书的要求完成了全部任务,能完整演示其设计内容,符合要求。
10能对其设计内容进行详细、完整的介绍,并能就指导教师提出的问题进行正确的回答。
报告质量3510报告文字通顺,内容翔实,论述充分、完整,立论正确,结构严谨合理;报告字数符合相关要求,工整规范,整齐划一。
5课题背景介绍清楚,综述分析充分。
5设计方案合理、可行,论证严谨,逻辑性强,具有说服力。
5符号统一;图表完备、符合规范要求。
5能对整个设计过程进行全面的总结,得出有价值的结论或结果。
5参考文献数量在3篇以上,格式符合要求,在正文中正确引用。

答辩情况2510在规定时间内能就所设计的内容进行阐述,言简意明,重点突出,论点正确,条理清晰。
15在规定时间内能准确、完整、流利地回答教师所提出的问题。

总评成绩:                 分

          

补充说明:

                                       指导教师:                   (签字)

日    期:        年     月     日

答辩记录表

学生姓名:   柯力      学号:   0905030211     班级:    09智能02班   

答辩地点:                                                  

答辩内容记录:
答辩成绩合计

分值

各项分值评分标准实际得分合计得分备注
2510在规定时间内能就所设计的内容进行阐述,言简意明,重点突出,论点正确,条理清晰。
15在规定时间内能准确、完整、流利地回答教师所提出的问题。

答辩小组成员(签字):

         年     月    日

指导教师评语

指导教师:                   (签字)

日    期:        年     月     日

一、综合设计目的、条件、任务和内容要求:

设计目的:

重点培养学生对智能系统的认识,使学生在掌握图像处理基本原理的基础上,进行方法设计和实现编程的能力培养;培养学生综合运用多门课程知识的能力;培养学生自学能力及自主查阅资料的能力。培养学生在智能应用方面的创新设计能力和实际动手能力,以及计算机编程实现的综合应用能力。

条件:

Windows, Matlab, C++,Visual C++,要求能上网。

任务:

设计开发一个车牌识别系统。

内容要求:

    能较好的分割出图像中的车牌,并对其进行字符识别。

                                 指导教师签字:                    

                                               年     月     日

二、进度安排:

2012-11-26               查阅资料

2012-11-27~ 2012-11-28    设计规划及原理分析

2012-11-29~ 2012-12-07    设计实现数字识别系统

2012-12-12               答辩

三、应收集资料及主要参考文献:

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

[2] 胡小锋、赵辉.VC++/MATLAB图像处理与识别使用案例精选.人民邮电出版社,2004.9

[3] 郁梅等,基于视觉的车辆牌照检测,计算机应用研究,1999(5),P65~67

[4] 叶晨洲,廖金周,一种基于纹理的牌照图象二值化方法, 1999(6),P28~29

[5] 朱学芳等,一种自适应细化方法,模式识别与人工智能,Vol.10,No.2,1997(6),P140~145

[6] 杨万山等,基于BP 神经网络的工程图纸图形符号的识别, Vol.16,No.2,2000

[7] 袁志伟,潘晓露.车辆牌照定位的算法研究[J].昆明理工大学学报,2001,26(2):  56~60

四、综合设计(课程设计)摘要(中文):

   汽车牌照自动识别系统是制约道路交通智能化的重要因素,包括车牌定位、字符分割和字符识别三个主要部分。主要思路是首先确定车辆牌照在原始图像中的水平位置和垂直位置,从而定位车辆牌照,然后采用局部投影进行字符分割。在字符识别部分,提出了在无特征提取情况下基于支持向量机的车牌字符识别方法。实验结果表明,此方法具有良好的识别性能。

关键词:车牌定位 ;  字符分割 ; 字符识别;局部投影

五、综合设计(课程设计)Abstract(英文):

     Car license plate automatic recognition system is the important factor to restrict road traffic becoming intelligent, including license plate location and character segmentation and character recognition of three major parts. The main idea is to first identify the license plates in the original image of the horizontal and vertical position, thus positioning vehicle license plate, then using the local projection for character segmentation. In character recognition part, put forward the character recognition method without feature extraction based on support vector machine (SVM) license plate. The experimental results show that this method has good recognition performance.

Keywords: license plate location ;  character segmentation  ;  character recognition ;

            local projection

摘  要

   汽车牌照自动识别系统是制约道路交通智能化的重要因素,包括车牌定位、字符分割和字符识别三个主要部分。主要思路是首先确定车辆牌照在原始图像中的水平位置和垂直位置,从而定位车辆牌照,然后采用局部投影进行字符分割。在字符识别部分,提出了在无特征提取情况下基于支持向量机的车牌字符识别方法。实验结果表明,此方法具有良好的识别性能。

关键词:车牌定位 ;  字符分割 ; 字符识别;局部投影

 

Abstract

     Car license plate automatic recognition system is the important factor to restrict road traffic becoming intelligent, including license plate location and character segmentation and character recognition of three major parts. The main idea is to first identify the license plates in the original image of the horizontal and vertical position, thus positioning vehicle license plate, then using the local projection for character segmentation. In character recognition part, put forward the character recognition method without feature extraction based on support vector machine (SVM) license plate. The experimental results show that this method has good recognition performance.

Keywords: license plate location ;  character segmentation  ;  character recognition ;

            local projection

第一章  课题背景

1.1 车牌识别背景

车牌识别技术(Vehicle License Plate Recognition,VLPR) 是指能够检测到受监控路面的车辆并自动提取车辆牌照信息(含汉字字符、英文字母、阿拉伯数字及号牌颜色)进行处理的技术。车牌识别是现代智能交通系统中的重要组成部分之一,应用十分广泛。它以数字图像处理、模式识别、计算机视觉等技术为基础,对摄像机所拍摄的车辆图像或者视频序列进行分析,得到每一辆汽车唯一的车牌号码,从而完成识别过程。通过一些后续处理手段可以实现停车场收费管理,交通流量控制指标测量,车辆定位,汽车防盗,高速公路超速自动化监管、闯红灯电子、公路收费站等等功能。对于维护交通安全和城市治安,防止交通堵塞,实现交通自动化管理有着现实的意义。 

汽车牌照号码是车辆的唯一“身份”标识,牌照自动识别技术可以在汽车不作任何改动的情况下实现汽车“身份”的自动登记及验证,这项技术已经应用于公路收费、停车管理、称重系统、交通诱导、交通执法、公路稽查、车辆调度、车辆检测等各种场合。

车辆牌照是车辆的“身份证”号码,在交通系统中有着不可替代的作用。通过它可以检索车辆的许多重要信息,记录车辆的违章或进行收费等工作。若能用计算机实时地识别车牌就可以在无需为车辆加装其它特殊装置的情况下实现对车辆的自动监测,从而给交通系统的自动管理提供了极大的方便。因此车辆牌照自动识别系统的实现是推进交通管理计算机化的关键技术之一。

    车辆牌照自动识别系统的实现过程是:在各交通路口、桥梁入口、主要街道上架设数字或模拟摄像机,以固定的角度拍摄来往行使车辆的动态或静态图象;识别系统的研究对象就是拍摄的数字或模拟录像带,如果待识别数据是模拟图象,则通过A/D转换器或其它数字化设备将其转换为数字图象,作为识别系统的输入。识别系统的任务是分析输入的数字图象,对其包含的车辆信息自动进行身份认证,即识别图象中车辆牌照的汉字、字母、数字字符,如图1-1所示,系统识别的结果应为“沪BC0255”。

图1-1

识别出车辆的牌照,就可唯一确定该部车辆。之后对此信息加以处理、分类,就能实现交通管理中违章处罚、流量管理、路口收费等各种任务的自动化管理。

第二章  设计简介及设计方案论述

本章将概述车牌识别系统工作流程及算法实现方法。

2.1 设计原理

由于车辆牌照是机动车唯一的管理标识符号,在交通管理中具有不可替代的作用,因此车辆牌照识别系统应具有很高的识别正确率,对环境光照条件、拍摄位置和车辆行驶速度等因素的影响应有较大的容阈,并且要求满足实时性要求。

该系统是计算机图像处理与字符识别技术在智能化交通管理系统中的应用,它主要由图像的采集和预处理、牌照区域的定位和提取、牌照字符的分割和识别等几个部分组成,如图2-1 所示。

 

                           图2-1 牌照识别系统原理图

其基本工作过程如下:

(1)当行驶的车辆经过时,触发埋设在固定位置的传感器,系统被唤醒处于工作状态;一旦连接摄像头光快门的光电传感器被触发,设置在车辆前方、后方和侧面的相机同时拍摄下车辆图像;

(2)由摄像机或CCD 摄像头拍摄的含有车辆牌照的图像通视频卡输入计算机进行预处理,图像预处理包括图像转换、图像增强、滤波和水平较正等;

(3)由检索模块进行牌照搜索与检测,定位并分割出包含牌照字符号码的矩形区域;

(4)对牌照字符进行二值化并分割出单个字符,经归一化后输入字符识别系统进行识别。

2.2 图像分割基本理论

    图象的分割一般是依据其自身的图象特征来进行的。图象特征是指图象场中可用作标志的属性,其中有些是视觉直接感受到的自然特征,如区域的亮度、色彩、纹理或轮廓等,有些是需通过变换或测量才得到的人为特征,如各种变换频谱、直方图、矩等。常用的图象特征有幅值特征、直方图特征、变换系数特征、灰度边沿特征及纹理特征,相应的分割算法主要有灰度阈值法及边沿提取等。

2.1.1 幅值特征

幅值可在特定的象点上或某个区域内加以测量,我们不仅可以直接利用图象的灰度值或三刺激值,也可利用各种变换(线性的或非线性的,可逆的或不可逆的)形成的、位于变换域中的变换系数的幅值。

2.1.2 直方图特征

一幅数字图象可看作是二维随机过程的一个样本,能用联合概率分布加以描述。统计各象点的灰度值所得到的直方图。可用来估计图象的概率分布,从而形成一类特征。

定义图象f(x,y)灰度的一阶概率分布为P(b)=Prob(f(j,k)=b) , 0<=b<=L-1 ,式中b是量化所得的灰度值,其取值为0到L-1量化级别中的任一级。定义 P(b) N(b)/M 是一阶近似直方图,其中M是以(j,k)为中心的测量窗口中的象点总数,N(b)是该窗口内灰度值为b的象点数。通常假定图象是平稳的,取窗口大小为整幅图,则M为整幅图中的象点总数,N(b)是整幅图中灰度值为的b的象点数。

图象直方图的形状可给出图象特征的许多信息。例如,分布狭窄的直方图反映图象的对比度很低,双峰型直方图反映图中存在两个不同灰度区等。由一阶直方图表征的参数有:

(1)平均值 :

(2)方差:

(3)能量:

(4)熵:

二阶直方图特征是以象点对的联合概率分布为基础的。设象点f(j,k)和f(m,n)分别位于坐标(j,k)和 (m,n)上,二者相距| j – m |,| k – n |,(或表示成极坐标r, ),这时联合概率为:

P(a,b)=Prob{f(j,k)=a, f(m,n)=b}

式中a和b是图象灰度的量化值,由于数字图象中直线也离散表示,距离参数(r, )只能取一定的离散值。P(a,b)的估计值为:P(a,b) N(a,b)/M ,式中M是测量窗口中的象点总数,N(a,b)是窗口中满足距离参数的两点f(j,k)=a和 f(m,n)=b出现的总数。习惯上假定图象是平稳的,窗口取整幅图大。如果图象中象点对是与高度相关的,则P(a,b)的阵元将沿阵列的对角线聚集。下列参数常用来表征能量在对角线附近散布的程度:

(1)自相关系数:

(2)协方差:

 (3)能量:

 (4)熵:

在纹理分析中,二阶直方图测度非常有用。

2.1.3 变换系数特征

    各种酋变换的变换系数是同图象f(x,y)一一对应的,但是,譬如Fourier变换的频谱 F(u,v)的平方值,即:

却与F(u,v)不是唯一地对应,这时即使f(x,y)的原点有了位移,M(u,v)的值仍保持不变。在某些应用中可利用这一特点。

2.1.4 采用灰度阈值法进行分割

这是最简单的分割方法,通过设置一门限(阈值)T,把象点按灰度级分为大于和小于T的两组,若水平的或垂直的相邻两点属于不同组别,则给予标记Le,否则给予标记Lb。于是把图象f(x,y)分割成二值化图g(x,y),g(x,y)的取值规则为:

(1)若f(x,y) 和 f(x,y-1) 或f(x,y) 和f(x-1,y) 属于不同点组:g(x,y)=Le

(2)其它情况:g(x,y)=Lb

T是图象灰度级范围[zl,zh]中的某个值,当图象的直方图呈现若干块较明显的不同分布形状时,则T大致可选在两分块的边界处。显然,从直方图上妥善地选择T值,对正确划分出感兴趣的区域(或目标)和背景很有关系。

2.3 车牌识别算法设计方案

    设计车牌识别算法及程序工作流程如下: 

    1)使用BP网络使用训练样例对程序进行训练;

    2)对车牌图像进行灰度化、二值化、归一化、滤波等预处理;

    3)在得到预处理后的图像后,对图像进行车牌定位,定位成功后使用图像分割算法将车牌分割成【中文(例如鄂)】、【字母(如A)】、【字母或数字1】、【字母或数字2】、【字母或数字3】、【字母或数字4】、【字母或数字5】这7块图像;

    4)通过上述的使用BP网络的算法对上述的七幅图像进行识别; 

5)如果识别错误则对程序进行反馈,即将当前样例添加到训练库中对程序重新训练。

    车牌识别算法设计流程图如图2-2所示:

图2-2 车牌识别算法流程图

第三章  详细设计

本章将具体介绍如何在一个VS2010工程中实现车牌图像预处理及车牌定位分割功能和在Matlab下使用BP网络实现车牌号识别算法。

3.1 界面设计

由于我使用的开发环境是Visual Studio 2010,因此,这里描述的是在VS2010上面演示操作。首先,按照VS2010的向导,产生一个默认的MFC的工程。如下图所示:

图3-1 车牌识别界面设计

    该界面将程序划分为了这样几个模块,首先打开图片。然后是将图像依据算出的最大最小阈值进行自适应阈值二值化并使用Canny算子进行边缘提取。然后是车牌定位模块,即将一整幅图像中的车牌从图像中定位出来。然后是字符分割模块,将提取出来的车牌分割成7张图像,每张图像即为一个字符。由于对比C++等高级语言来说,Matlab能更方便的使用BP网络对样例库进行训练并对图像进行识别,所以将分割出来的7幅图像输入到Matlab子程序中,进行识别。

3.2 环境搭建

因为在本次综合设计中,需要使用大量的OpenCV的库函数,所以首先要对本工程添加OpenCV库支持。

在创建好的工程界面的菜单栏上单击“工具”并选择下拉菜单中的“选项”,选择“目录”页。选择右边的下拉菜单“Include Files”并为其添加OpenCV安装目录下的“…\\OPENCV\\CV\\INCLUDE”、“…\\OPENCV\\CXCORE\\INCLUDE”和“…\\OPENCV\\OTHERLIBS\\HIGHGUI”。在下拉菜单中选择“Library Files”并为其添加“…\\ OPENCV\\LIB”。

图3-2 为工程添加OpenCV支持

接着在菜单栏中选择工程并在下拉菜单中选择设置,选择打开的对话框的“链接”页并在左边的“设置”下拉菜单中选择“所有配置”。在“对象/库模块:”编辑框中,加入“cxcore.lib”、“cv.lib”和“highgui.lib”,如下图所示:

图3-3 为工程加入OpenCV支持

接着在工程的头文件中,加入“#include "highgui.h"”并使用如下语句实现打开图像功能模块:

图3-4 图像显示代码

编译整个程序,就可以通过“打开图像”按钮打开图像并且显示在第一个Picture Control中了。在以后的算法及程序设计中,就可以调用这个图像进行处理了。

3.3 模块设计

    在下面的段落中,将具体介绍如何实现上述各个模块图像处理方法得到最终结果,包括图像处理算法设计及程序编写。

3.3.1 图像阈值分割

    图像阈值分割是一种广泛应用的分割技术,利用图像中要提取的目标区域与其背景在灰度特性上的差异,把图像看作具有不同灰度级的两类区域(目标区域和背景区域)的组合,选取一个比较合理的阈值,以确定图像中每个像素点应该属于目标区域还是背景区域,从而产生相应的二值图像。 

阈值分割法的特点是:适用于目标与背景灰度有较强对比的情况,重要的是背景或物体的灰度比较单一,而且总可以得到封闭且连通区域的边界。

在OpenCV的库函数中,提供两种阈值分割方法:cvThreshold对数组元素进行固定阈值操作和AdaptiveThreshold对图像使用自适应阈值方法,下面将具体介绍数组元素固定阈值操作。

cvThreshold对数组元素进行固定阈值操作中,定义函数为:

图3-5 cvThreshold函数定义

    其中,阈值类型的逻辑关系分为:

1)Binary:若像素点value大于阈值则为Max_Value,否则为0;

2)Binary_Inv:若像素点value大于阈值则为0,否则为Max_Value;

3)Trunk:若像素点value大于阈值则为阈值,否则仍未value;

4)Zero_Inv:若像素点value大于阈值则为0,否则为仍为value;

5)Zero:若像素点value小于阈值则为0,否则仍为value。

阈值逻辑关系的图形化关系描述如下:

图3-6 阈值逻辑关系图形化关系描述

    在程序中实现这个算法只需要调用OpenCV的cvAdaptiveThreshold函数即可。

图3-7 自适应阈值分割实现方法

3.3.2 图像边缘提取

边缘检测是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点。图像属性中的显著变化通常反映了属性的重要事件和变化。 这些包括(i)深度上的不连续、(ii)表面方向不连续、(iii)物质属性变化和(iv)场景照明变化。 边缘检测是图像处理和计算机视觉中,尤其是特征提取中的一个研究领域。

一般图像边缘提取的步骤可归纳为:①滤波:边缘检测算法主要是基于图像强度的一阶和二阶导数,但导数的计算对噪声很敏感,因此必须使用滤波器来改善与噪声有关的边缘检测器的性能。需要指出,大多数滤波器在降低噪声的同时也导致了边缘强度的损失,因此,增强边缘和降低噪声之间需要折中。②增强:增强边缘的基础是确定图像各点邻域强度的变化值。增强算法可以将邻域(或局部)强度值有显著变化的点突显出来。边缘增强一般是通过计算梯度幅值来完成的。③检测:在图像中有许多点的梯度幅值比较大,而这些点在特定的应用领域中并不都是边缘,所以应该用某种方法来确定哪些点是边缘点。最简单的边缘检测判据是梯度幅值阈值判据。④定位:如果某一应用场合要求确定边缘位置,则边缘的位置可在子像素分辨率上来估计,边缘的方位也可以被估计出来。在边缘检测算法中,前三个步骤用得十分普遍。这是因为大多数场合下,仅仅需要边缘检测器指出边缘出现在图像某一像素点的附近,而没有必要指出边缘的精确位置或方向。边缘检测的实质是采用某种算法来提取出图像中对象与背景问的交界线。我们将边缘定义为图像中灰度发生急剧变化的区域边界。图像灰度的变化情况可以用图像灰度分布的梯度来反映,因此我们可以用局部图像微分技术来获得边缘检测算子。

OpenCV的库函数中提供了三种边缘检测的算子:Sobel算子、Laplace算子和Canny算子。本次课程设计中使用的是Canny算子通过前面算出来的最大阈值进行边缘提取。

图3-8 Canny算子边缘提取实现方法

目前,Canny算子(或者这个算子的变体)是最常用的边缘检测方法。 在 Canny 创造性的工作中,他研究了设计一个用于边缘检测最优预平滑滤波器中的问题,后来他说明这个滤波器能够很好地被一阶高斯导数核优化。另外 Canny 引入了非最大抑制概念,它是说边缘定义为在梯度方向具有最大梯度值的点。

3.3.3 车牌定位

    目前,主要有下列几种车牌定位方法:

(1)直接法:利用车牌的特征来提取车牌的方法。常用的特征有:车牌的边缘特性、投影特性、形状特性以及颜色特性等”)。

(2)人工神经网络方法:首先进行神经网络的训练,从而得到~个对车牌敏感的人工神经网络,然后利用训练好的神经网络检测汽车图像,定位车牌。

(3)数学形态学的方法:使用一定的结构元素,利用数学形态学中的开运算与闭运算来对图像进行处理,得到多个可能是车牌的区域,然后在处理后的图像中用多区域判别法在多个可能是车牌的区域中找到车牌的正确的位置。

(4)基于颜色和纹理的定位方法:该算法采用基于适合彩色图像相似性比较的Hsv色彩模型,首先在色彩空间进行距离和相似度计算;然后对输入图像进行色彩分割,只有满足车牌颜色特征的区域,才进入下一步的处理;最后再利用纹理和结构特征对分割出来的颜色区域进行分析和进一步判断,从而确定车牌区域。

(5)基于分形盒子维的方法:由于车牌内的字符笔划几乎是随机分布,但又有明显的笔划特征,因此可以采用分形维数来对其进行分析从而达到分割车牌的目的。

而在本次课程设计的车牌识别系统中,首先对整幅图像进行水平轮廓细化:

图3-9 图像水平轮廓细化

然后通过实验并对已知的车牌进行训练,可以获得一组车牌的数据量,并对整幅图像的水平方向进行遍历,可以得到信息量最大的20行,即车牌水平区域,并依次找到车牌的上下界限,部分代码如下所示:

图3-10 获得车牌水平位置并确定车牌上下界限

    在获得车牌水平和车牌的上下界限后,转置并重复上述操作,即可获得车牌的垂直位置并确定车牌的左右界限。

3.3.4 车牌字符分割

字符分割的方法主要有基于车牌字符特征的投影法和基于聚类分析的车牌字符分割方法以及气泡法等嘲。投影法首先计算牌照字符的垂直投影,利用投影直方图得到一个闽值,然后再结合车牌字符固定宽度、间距的比例关系等先验知识来分割字符。基于聚类分析的车牌字符分割方法按照属于同一个字符的像素构成了一个连通域的原则,再结合牌照的先验知识来进行字符分割。气泡法是一种适用于二值图像的区域增长法。它把一幅图像分成许多小区域,这些初始的区域可能是小的邻域甚至是单个像素。在每个区域中,对经过适当定义能反映一个物体内成员隶属程度的性质(度量)进行计算。首先给每个区域~组参数来反映这些区域分别属于哪个物体,接下来,对相邻区域的所有边界进行考查,相邻区域的平均度量之间的差异是计算边界强度的一个尺度,经过反复迭代,每一步都重新计算被扩大区域的物体成员的隶属关系,并消除弱边界,当没有可以消除的弱边界时,区域合并的过程结束。

而在本次课程设计车牌识别系统中,首先对程序设定一个默认分割为:

int letter[14]={0,20,23,43,55,75,78,98,101,121,124,127,147,167};

然后将由上述操作分割出来的车牌进行垂直投影,并对第一个字符进行初定位,并在找到第二个字符的初端的时候停止循环。然后重复上述过程依据默认分割循环14次(每一行和每一列)将第一个到第七个字符都初定位出来。

图3-11 车牌垂直投影

图3-12 车牌字符初分割

最后依据如下代码即可对字符进行精确定位(具体解释可见注释):

    精确定位以后,即可将所得的车牌分割成七个字符图像显示在界面中并继续保存为7个图像文件用于下面的使用Matlab的基于BP网络的字符识别模块。

3.3.5 车牌字符识别

车牌字符的识别是整个车牌识别的最后一步,其目的是为了输出识别后的车牌。在车牌自动识别系统中,因自然因素或采样因素使得原本规则的印刷体字符产生畸变,给字符识别来了很大困难。Back-Propagation(简称BP)反向传播神经网络算法是把一组样本输入输出问题转化为一个非线性优化问题,并通过梯度算法利用迭代运算求解权值的一种学习方法。采用BP网络进行分类,并附加线性感知器来实现单字符的有效识别,算法简便,识别率高,可适用于多种高噪声环境中的印刷体字符识别。

1. BP网络介绍

        BP网络的实现主要分为两个阶段:学习(训练)阶段和识别阶段。在学习阶段输入供训练的样本,将训练好的网络进行识别。若结果输出错误还可将当前的识别重新放入训练样例中进行训练,从而形成一个良性的循环,图3-13显示了一个带有隐藏层的三层BP网络的结构图。

图3-13 三层BP网络结构

    一般地,BP反向传播算法的算法步骤如下:

(1)初始化网络权值,并将所有的权值设置为一个较小的随机值。

(2)提供训练样本X,获得与当前权值相对应的输出O(u).

(3)计算误差项E(k),并根据该误差项调整权值。

(4)算法的终止条件:到达指定数目的循环或者是E(k)小于一个设定好的数值。

BP网络本身有许多的优点,比如可以轻易的推广到多层网络,三层网络可以以任意

精度去逼近任意的函数等,但是它在实际应用中也存在许多的不足,主要体现在以下的几个方面:

(1)算法的运行效率较低。由于采用的是将图像完整的输入到网络中去,这意味着图像

的信息量越大,算法越慢。而且标准算法选用Sigmoid非线性函数作为神经元的激励函数,函数值对自变量的变化不敏感,从而对权值调节量减小,更加影响了BP网络的速度。

(2)局部极小值问题。对于一个非线性的启发式优化算法,BP网络不可避免的存在极小

值问题。即BP算法可以使网络权值收敛到一个解,但并不能保证这个解就是全局最优解,无法跳出这一局部最小值会导致学习过程失败。但现在国内外的学者已经提出许多办法来解决这一问题,比如增加附加动量项,随机项或者自适应学习速率,这些方法对有效解决BP网络的局部极小值有很大的帮助。

    

2. 基于MATLAB的BP网络字符识别

    在MATLAB神经网络工具箱中,对于神经网络有很多种训练函数,与其对应的是不同的训练算法。在本次的综合设计中,我选用的是学习率可变的BP算法(variable learning rate backpropagation,VLBP),即在训练的过程中,是学习率随之变化,而使算法沿着误差性能曲面进行修正。

而在BP网络的实际设计方面,主要包括输入层,隐藏层,输出层以及各层之间的激励函数几个方面:

(1)网络层数。大多数通用的神经网络都预先确定了网络的层数,而BP网络可

以包含不同的隐层。但理论上已经证明,在不隐层节点数的情况下,两层(只有一个隐层)的BP网络已经可以实现任意非线性映射。此时,选择两层BP网络就可以了,但当模式样本数很多时,为了减小网络规模也可以增加一个隐层。

(2)输入层的节点数。输入层起缓冲存储器的作用,它接受外部的输入数据,因

此其节点数取决于输入矢量的维数。例如在本次综合设计中,需要输入一张40×20大小的图像,则输入节点数为800个。

(3)输出层的节点数。输出层的节点数取决于两个方面,输出数据类型和表示该

类型所需的数据大小,以二进制形式来表示不同模式的输出结果,则输出层的节点数可根据待分类模式数来确定。

(4)隐层的节点数。一个具有无限隐层节点的两层BP网络可以实现任意从输入

到输出的非线性映射。但对于有限个输入模式到输出模式的映射,并不需要无限个隐层节点,通常根据前人经验,隐层节点数n可以大概地表示为输入节点数a与输出节点数b之和的开方。

(5)激励函数。通常采用Sigmoid函数,但在MATLAB中也可以使用纯线性

(pureline)函数。如果BP网络的最后一层是Sigmoid函数,那么整个网络的输出就在一个较小的范围内(0-1之间的连续量),如果BP网络的最后一层是Pureline函数,那么整个网络的输出可以取任意值。

    在进行车牌字符识别时,首先要取得足够多的训练样例,在原先的MFC程序中加入以下的语句,如图3-14所示。在初期的神经网络的训练中,可以先添加少量的训练样例,随着识别的种类增多,可以将所需识别的样例再次添加到训练样例库中,这样可以增大识别的准确度。以数字识别为例,我在网络上找了将近一百多个车牌,并将其用图像分割的方法分割成七个不同的图片,每一个图片代表一个字符,如同3-15所示。

    车牌的区域被分割成七个40×20的子图像区域,利用这个子图像可以作为输入节点输入到BP网络中去进行训练。在本次设计中,我的初始训练样例为每个字符十个,训练最大次数为4000次,截止误差为0.0001。

图3-14 获取训练样例

     图3-15 获得的训练样例

第四章  设计结果及分析

4.1程序的调试与运行

    运行程序并点击“打开图像”按钮并选择一幅车牌图像如图4-1所示:

图4-1 打开车牌图像

    对打开的车牌图像并依次进行灰度化、计算最小最大阈值并依此进行自适应阈值分割和Canny算子边缘提取: 

图4-2 车牌图像阈值化并边缘提取

点击车牌定位按钮,即可将定位后的结果,显示在相应窗口中:

图4-3 车牌定位

车牌定位后,即可对车牌进行字符分割。点击字符分割按钮后,即可实现第三章所述的字符分割,并显示在下面的Picture Control控件中:

图4-4 字符分割

字符分割成7幅图像后,将其分别放入BP网络训练样例库中,进行训练,训练误差曲线如图4-5所示。可以注意到,按照VLBP的方法,训练误差基本上以指数级递减,大概循环到600-700次的时候误差符合截止误差的要求。

图4-5 训练误差曲线

    训练完成后进行识别,输入要识别的图片名称,BP网络可按照训练好的权值算出当前图片所对应的数值,如图4-6所示。

图4-6 识别结果

4.2 结果分析

基于OpenCV的车牌识别系统图像预处理和分割模块,处理速度较快。但是如果车牌在整幅图片中所占比值过小的时候,可能会出现信息值过弱或者信息值过于密集,而导致的识别不准确并且不能很有效的进行图片放大等操作。

字符的分割是指将单个有意义的字符从字符串中提取出来,作为的字符图像。标准车牌照上的字符间隔有一定的规律:一般车牌(军车、警车、教练车、领事馆车除外)上有7个字符,首位为省名缩写汉字,第二位为英文字母,第三位为英文字母或阿拉伯数字,末四位为数字,字符总长度为409mm,其中单个字符统一宽度为45mm,第二、三个字符间隔为34mm,中间的小圆点为10mm宽,小圆点与第二、三个字符间隔分别为12mm。充分利用这些先验知识有助于字符的准确分割,使结果的精确度在原有基础上得到了很显著的提高。

对BP神经网络进行仿真。用不同的方法生成测试样本图像,存于另外的bmp文件中,测试结果如表4-1所示:

测试样本识别情况
与训练样本数字完全相同测试20个样本(2组0~9,皆是训练样本的复本),100%正确

非训练样本数字测试20个样本(2组0~9,不是训练样本),60%正确

与训练样本字母完全相同测试20个样本(2组A~D,皆是训练样本的复本),100%正确

非训练样本字母测试20个样本(2组A~D,不是训练样本),40%正确

表4-1 字符识别的结果分析

    结果表明,数字识别的鲁棒性较好,但并不是能够保证可以识别出每一个非训练样例的字符。以后可以通过增大训练样例库中的样例和种类来进行改进。但字母识别由于图像更加复杂,识别率对比数字较低,可能需要通过其他途径(如增加图像的特征向量)来解决。

总   结

通过本次实验,我进一步理解和消化了数字图像处理的相关理论知识和技术熟练度,如图像阈值分割、图像边缘提取等,并且我的自主学习能力、动手能力和团队协作精神都得到了显著的提高,通过设计车牌识别系统的算法和程序,在不断设计和尝试中发现问题、解决问题,通过对算法的探索、研究与实践并求得对问题的解决,从而达到了提高算法设计能力、程序编写和项目开发的能力的目的。

当然在本次课程设计中,我也遇到了许多困难,比如说算法设计的合理性、分类器识别准确率问题等等,但是我们通过互相学习、上网查找资料以及向老师、学长请教后,终于达到了目标。但是我仍存在几个问题没有解决,例如当车牌在图像中的比例过小时,车牌分割不是很准确。 

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

致   谢

感谢武汉工程大学计算机科学学院给予了我们这次课程设计的机会,也感谢学校给我们提供实验室和实验电脑还有空调使我们能在舒适优秀的环境中进行学习。在这次综合设计的过程中,虽说不算太曲折,但是还是遇见了一些问题,在这里感谢曾经帮助过我的李熹,蒋云,向瑞同学。还要感谢我的指导老师赵彤洲和闵锋老师,感谢他们对我的悉心的教导。

参考文献

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

[2] 胡小锋、赵辉.VC++/MATLAB图像处理与识别使用案例精选.人民邮电出版社,2004.9

[3] 郁梅等,基于视觉的车辆牌照检测,计算机应用研究,1999(5),P65~67

[4] 叶晨洲,廖金周,一种基于纹理的牌照图象二值化方法, 1999(6),P28~29

[5] 朱学芳等,一种自适应细化方法,模式识别与人工智能,Vol.10,No.2,1997(6),P140~145

[6] 杨万山等,基于BP 神经网络的工程图纸图形符号的识别, Vol.16,No.2,2000

[7] 袁志伟,潘晓露.车辆牌照定位的算法研究[J].昆明理工大学学报,2001,26(2):  56~60

文档

柯力 车牌识别

武汉工程大学计算机科学与工程学院综合设计报告设计名称:图像处理与机器视觉综合设计设计题目:车牌识别系统实现学生学号:*******211专业班级:09智能2班******学生成绩:指导教师(职称):赵彤洲(副教授)课题工作时间:2012-11-26至2012-12-07说明:1、报告中的第一、二、三项由指导教师在综合设计开始前填写并发给每个学生;四、五两项(中英文摘要)由学生在完成综合设计后填写。2、学生成绩由指导教师根据学生的设计情况给出各项分值及总评成绩。3、指导教师评语一栏由指导教师就学
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top