基于matlab的车牌识别的研究与实现
- 格式:doc
- 大小:361.47 KB
- 文档页数:20
目 录
摘要………………………………………………………………………
ABSTRACT…………………………………………………………………
1 车牌号码识别的概述………………………………………………
1.1 国内外研究动态………………………………………………
1.2 车牌号码识别系统的特点和设计的基本原则………………
2 运行环境和开发工具的选择…………………………………………
3 实现车牌号码识别的重难点及其解决方法……………………
3.1 车牌定位……………………………………………………
3.2 字符分割……………………………………………………
3.3 字符识别……………………………………………………
3.4 识别结果显示输出…………………………………………
4 车牌号码识别系统的具体设计及实现…………………………
5 结论与展望…………………………………………………………
5.1 结论……………………………………………………………
5.1.1 主要完成的工作…………………………………………
5.1.2 系统运行的结果…………………………………………
5.1.3 存在的缺陷………………………………………………
5.2 展望…………………………………………………………
参考文献………………………………………………………………
致谢……………………………………………………………………
附录(源代码)………………………………………………………… 摘 要
随着社会的迅猛发展,人们的生活水平越来越高,各种私家车也越来越多,而车牌号码,作为机动车辆唯一的管理标志符号,在交通管理中具有不可替代的作用。所以高效,快速,实时地进行车辆牌照辨认对于构建和谐文明的交通氛围是至关重要的。随着智能交通系统的的慢慢普及,车牌识别系统的实时性和准确性受到了人们的广泛关注。
车牌识别是数字图像处理的范畴,它主要包括图像的预处理,车牌定位,车牌号码分割,车牌号码识别和结果显示输出。在本文中以上各方面都一一做了详细的研究,图像的预处理介绍了图像的灰度化、二值化、预割和增强等方面;车牌号码区域的定位采用了基于灰度图像中车牌区域的纹理特征的方法,这种方法用梯度表示相邻像素点之间的灰度变化,梯度越大,表示灰度变化越大,而车牌号码的边界点与背景有明显的灰度变化,所以可以迅速得确定车牌区域;车牌号码分割采用了直接分割法中的垂直投影法,由于字符块在竖直方向上的投影不仅在字符间取得局部最小值,而且在字符内的间隙处也能取得局部最小值,因此字符的正确分割位置也应该是在上述局部最小值的附近;车牌号码识别运用的是模板匹配。
本文采用了matlab编程工具来完成本文算法的实现,编程简单易执行,而且具有图形用户界面和专业工具箱。
关键词:图像预处理,车牌定位,车牌分割,车牌识别
一 车牌号码识别的概述
1.1 国内外研究动态
a.国外发展概况
运用图像处理技术解决汽车牌照识别的研究,最早出现于上个世纪80年代,这个阶段的研究并没有形成完整的系统体系,而是就车牌识别中的某一个具体问题进行讨论,并且通常是采用简单的图像处理技术来解决。进入20世纪90年代,由于计算机视觉技术的发展,开始出现汽车牌照识别的系统化研究。1990年A.S.Johnson等人运用计算机视觉技术和图像处理技术实现了车辆牌照的自动识别系统。同年,R.A.Lotuf等人使用视觉字符识别分析所获取的图像,首先在二值化图像中找到车牌,然后用边界跟踪技术提取字符特征,利用统计最邻近分类器与字符库中的字符比较,得出一个或几个车牌号码,对这些号码做核实检查,看是否确实有该车牌号码,从而最终确定出个实际存在的正确的号码。随着计算机及其相关技术发达的一些国家开始探讨用人工神经网络技术解决车牌的自动识别问题。1997年,J.Barros等人在《基于计算机视觉的车牌识别》一文中提出了基于水平搜寻的定位方法,此种方法使车牌定位的正确率有了很显著的提高。1999年,K.Yamaguchi等人将模板匹配方法应用于特殊车牌的识别,很好的解决了传统识别算法无法识别的特殊车牌图像。2004年T.D.Duan等人提出了基于Hough变换与外围轮廓相结合的车牌图像检测算法。
b.国内发展概况
我国车牌的包括汉字,字母和数字,由于车牌的这种特殊性使得我国的车牌识别与国外相比更具难度。因此国内许多学者针对我国车牌的特点提出了很多有效的车牌图像处理与识别的方法。1999年叶晨洲等人采用纹理信息和多分类器进行集成的方法来进行车牌的定位和识别,但是车牌的纹理信息好多不太明显,受环境的影响较大。2000年,戴青云等人将小波分析和数学形态学理论应用于车牌图像分割,为车牌识别提供了良好的分割效果,但是结构元素的尺寸与形状对实验结果有较大的影响,有待于进一步改进。2001年陈友仁等人提出了一种基于隐马尔可夫模型的车牌字符识别方法。2003年,黄志斌应用支持向量机(SVM)算法对车牌中的英文字符进行了识别。同年,敖银辉使用了模糊控制和神经网络的方法设计车牌识别系统。2005年魏志轩提出基于神经网络的车牌自动识别算法,采用了全局自适应快速BP算法神经网络进行了车牌自动识别。2006年白利波等人利用了车牌的颜色特征与纹理特征,提出一种新的基于模糊集的车牌提取方法,对光照不均、背景复杂的车牌提取,具有一定的鲁棒性。
1.2 任务的提出及需求分析
随着我国国民经济的高速发展,机动车辆规模及流量大幅度增加,路上违规违章的车辆屡见不鲜,城市交通管理现代化水平的提高势在必行,迫切需要采用高科技手段来实时监测和检测路上行驶的车辆,以加强交通管理水平。相比之下,我国在道路管理监控等设施建设却显得相对滞后。虽然国内已经出现了很多牌照识别产品,但是,这些产品大都是为高速公路不停车,,城市车辆出入监管,机场,港口等出口车辆管理等识别设备固定的牌照识别系统设计的,都是其针对的识别环境,而对于移动中进行牌照识别技术的研究却很少。而且,这两种方式的识别环境却相差很大。
1.3 车牌号码识别系统的特点和设计的基本原则
车牌识别系统是指采集到的图像通过图像的预处理,然后再从图像中自动提取车牌图像,自动分隔字符,并对字符进行识别,再将识别出的号码存储输出。
设计步骤:
二 运行环境和开发工具的选择
2.1 运行环境
硬件部分:图像的采集需要数码相机 图像输入 图像预处理 区域分割
字符分割 字符识别 结果输出 软件部分: 软件可运行在windows xp,windows 7之上
2.2 开发工具
开发工具的选取将会对整个系统的开发效率和周期非常重要,合理选择开发工具将会提高开发效率,降低开发成本,提高系统的稳定性,同时使系统的维护更加容易。牌照识别系统的开发属于一个较为复杂的图像处理程序,为此,选择了matlab的编程语言作为开发工具。
Matlab的概述
Matlab是用于算法开发,数据可视化,数据分析以及数值计算的高科技计算
语言和交互式环境。它具有以下特点:
1.友好的工作平台和编程环境
Matlab由一系列工具组成。这些工具方便用户使用matlab的函数和文件,其中许多工具使用的是图形用户界面。包括matlab桌面和命令窗口,历史命令窗口,编辑器和调试器,路径搜索和用于用户浏览帮助,工作空间。文件的浏览器。随着matlab的商业化以及软件的不断升级,matlab的用户界面也越来越精致,更加接近windows的标准界面,人机交互式更强,操作更简单。而且新版本的matlab提供了完整的联机查询,帮助系统,极大的方便了用户的使用。简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能及时地报告出现的错误及进行出错原因分析。
2.简单易用的程序语言
Matlab是一个高级的矩阵/阵列语言,他包含控制语句,函数,数据结构,输入和输出和面向对象编程的特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后在一起运行。新版本的matlab语言是基于最为流行的c++语言基础上的,因此语法特征与c++语言极为相似,而且更加简单,更加符合科技人员使用。而且这种语言可移植性好,可拓展性极强,这也是matlab能够深入到科学研究及工程计算各个领域的重要原因。
3.强大的科学计算数据处理能力
matlab是一个包含大量计算算法的集合。其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。函数中所使用的算法都是科研和工程计算中的最新研究成果,而且经过了各种优化和容错处理。在通常情况下,可以用它来代替底层编程语言,如c和c++。在计算要求相同的情况下,使用matlab的编程工作量会大大减少。Matlab的这些函数集包括从最简单最基本的函数到诸如矩阵,特征向量,快速傅里叶变换的复杂函数。函数所能解决的问题其大致包括矩阵运算和线性方程组的求解。微分方程及偏微分方程的求解,符号运算,傅利叶变换和数据的统计分析,工程中的优化问题,稀疏矩阵运算,复数的各种运算,三角函数和其他初等数学运算,多维数组操作以及建模动态仿真等。
4.出色的图像处理功能
Matlab自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行注标和打印。高层次的作图包括二维和三维的可视化,图像处理,动画和表达式作图。可用于科学计算和工程绘图。新版本的matlab对整个图形处理功能做了很大的改进和完善,是她不仅在一般数据可视化都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理,色度处理以及四维数据的表现等),matlab同样表现了出色的处理能力。同时对一些特殊的可视化要求,例如图形对话等,matlab也有相应的功能函数,保证了用户不同层次的要求。另外新版本的matlab还着重在图形用户界面的制作上作了很大的改善,对这方面有特别要求的用户也可以得到满足。
5. 应用广泛的模块集合工具箱
Matlab对许多专门的领域都开发了功能强大的模块集和工具箱。一般来说,他们都是由特定领域的专家开发的,用户可以直接使用工具箱学习,应用和评估不同的方法而不需要自己编写代码。目前,matlab已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集,数据库接口,概率统计,样条拟合,优化算法,偏微分方程求解,神经网络,小波分析,信号处理,图像处理,系统辨别,控制系统设计,LMI控制,鲁棒控制,模型预测,模糊逻辑,金融分析,地图工具,非线性控制设计,实时快速原型及半物理仿真,嵌入式系统开发,定点仿真,DSP与通信,电力系统仿真等,都在工具箱家族中有了自己的一席之地。
6. 使用的程序接口和发布平台
新版本的matlab可以利用matlab编译器和C/C++数学库和图形库,将自己的matlab程序自动转化为独立于matlab运行的C/C++代码。允许用户编写可以和matlab进行交互的C/C++语言程序。另外,matlab网页服务程序还容许在web应用中使用自己的matlab数学和图形程序。Matlab的一个重要特色就是具有一套程序扩展系统和一组称之为工具箱的特殊应用子程序。工具箱是matlab函数子程序库,每一个工具箱都是为某一类学科专业和应用而定制的,主要包括信号处理,控制系统,神经网络,模糊逻辑,小波分析和系统仿真等方面的应用。