嵌入式车牌识别系统博创杯设计文档Word下载.docx
《嵌入式车牌识别系统博创杯设计文档Word下载.docx》由会员分享,可在线阅读,更多相关《嵌入式车牌识别系统博创杯设计文档Word下载.docx(38页珍藏版)》请在冰豆网上搜索。
第一章绪论
1.1背景分析
随着社会的发展和人民生活水平的提高,车辆的数目不断增加,交通状况日趋恶化,给社会和环境到来了巨大的压力。
智能交通系统ITS(IntelligenceTransportSystem)是在比较完善的道路设施基础上,将先进的电子技术、信息技术、传感器技术和系统工程技术集成运用于地面交通管理所建立的一种实时、准确、高效、大范围且全方位发挥作用的交通运输管理系统。
这种系统能够解决由交通拥挤所产生的各种道路问题,因而越来越受到人们的关注。
车牌识别(VLPR,VehicleLicensePlateRecognition)技术是智能交通系统中的关键技术之一,同时它的发展也十分迅速,已经逐渐融入到我们的现实生活中。
车牌识别系统可以对来往车辆进行自动登记、验证、监管和报警,是现代高速公路收费管理系统、高速公路超速自动化监督系统、公路布控、停车场自动收费管理等领域的重要组成部分。
1.2课题意义
为了缓解车辆越来越多而对公路交通方面造成的巨大压力,为公路安全提供更为全面的监控设施,我们结合嵌入式技术和图像处理与识别技术,提出并设计了基于图形图像处理与识别技术的车牌定位与识别系统。
本系统通过摄像头采集含有车牌图像的照片,通过对图像进行处理,车牌定位以及车牌识别,将图像中的车牌通过字符的形式显示出来。
本系统的算法优异,运算速度快,对噪声大的车牌图像,也能很好的对车牌定位以及识别。
本系统解决了一个非常明显的且正在不断引起社会关注社会问题,相信随着系统性能的不断优化和功能的不断扩展,定会有非常广泛的应用前景。
1.3技术现状
本系统融入了嵌入式技术、图像处理技术和图像识别技术。
嵌入式系统地开发已经进入了32位时代,在当前数字信息技术和网络技术告诉发展的后PC时代,嵌入式系统已经广泛地渗透到社会的方方面面。
目前,图像处理技术和图像识别技术正蓬勃的发展,特别是在人工智能的研究方面,是一个很重要的一个课题,也是一个应用前景比较广泛的领域。
第二章相关技术
本章介绍本系统主要采用的主要相关技术。
首先介绍嵌入式系统,包括嵌入式系统的微处理器、操作系统、QT技术,接着介绍车牌图像的处理以及车牌识别技术。
2.1嵌入式系统
嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
它包括硬件和软件两部分。
硬件包括微处理器、存储器及外设器件和I/O端口、图形控制器等;
软件部分包括操作系统和应用程序,操作系统控制着应用程序与硬件的交互,而应用程序控制着系统的运作和行为,有时设计人员把这两种软件组合在一起。
嵌入式操作系统是一种支持嵌入式系统应用的操作系统软件,它是嵌入式系统(包括硬、软件系统)极为重要的组成部分,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。
嵌入式操作系统具有通用操作系统的基本特点,但与其相比较,嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固态化以及应用的专用性等方面具有较为突出的特点。
2.1.1嵌入式微处理器
.嵌入式系统的核心是嵌入式微处理器(EmbeddedMicroprocessorUnit,EMPU),其在汽车、个人数字助理(PDA)甚至是家用电器领域都获得了广泛的运用。
嵌入式微处理器一般具备4个特点:
(1)对实时和多任务有很强的支持能力。
能完成多任务且中断响应时间较短,从而使内部的代码和实时操作系统的执行时间减少到最低限度;
(2)具有功能很强的存储区保护功能。
由于嵌入式系统的软件结构已模块化,为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能,同时也有利于软件诊断;
(3)可扩展的处理器结构。
能迅速地扩展出满足应用的高性能的嵌入式微处理器;
(4)嵌入式微处理器的功耗必须很低。
尤其是用于便携式的无线及移动的计算和通信设备中,靠电池供电的嵌入式系统更是如此,功耗只能为mW甚至μW级。
本系统使用ARM9系列微处理器。
.采用ARM技术知识产权(IP)核的微处理器,即通常所说的ARM微处理器(AdvancedRISCMachines),采用RISC架构。
ARM9系列微处理器在高性能和低功耗特性方面提供最佳的性能。
具有以下特点:
⏹5级整数流水线,指令执行效率更高
⏹提供1.1MIPS/MHz的哈佛结构
⏹支持32位ARM指令集和16位Thumb指令集
⏹支持32位的高速AMBA总线接口
⏹全性能的MMU,支持WindowsCE、Linux、PalmOS等多种主流嵌入式操作系统
⏹MPU支持实时操作系统
⏹支持数据Cache和指令Cache,具有更高的指令和数据处理能力
ARM9系列微处理器主要应用于无线设备、仪器仪表、安全系统、机顶盒、高端打印机、数字照相机和数字摄像机等。
2.1.2嵌入式操作系统
本系统采用Linux操作系统。
Linux具备稳定、高效、易定制、易裁减、硬件支持广泛等特点,并具有免费、开放源代码等独特特征。
嵌入式Linux与其它嵌入式操作系统相比(详见表2.1),Linux的特点如下。
表2.1专用嵌入式实时操作系统与嵌入式Linux的比较
项目
专用嵌入式实时操作系统
嵌入式Linux操作系统
版权费
每生产一件产品需交纳一份版权费
免费
购买费用
数十万元(RMB)
技术支持
由开发商独家提供有限的技术支持
全世界的自由软件开发者提供支持
网络特性
另加数十万元(RMB)购买
免费且性能优异
软件移植
难(因为是封闭系统)
易,代码开放(有许多应用软件支持)
应用产品开发周期
长,因为可参考的代码有限
短,新产品上市迅速,因为有许多公开的代码可以参考和移植
实时性能
好
须改进,可用PT_Linux等模块弥补
稳定性
较好
较好,但在高性能系统中须改进
Linux系统是层次结构且内核完全开放。
Linux是由很多体积小且性能高的微内核系统组成。
在内核代码完全开放的前提下,不同领域和不同层次的用户可以根据自己的应用需要方便地对内核进行改造,低成本地设计和开发出满足自己需要的嵌入式系统。
Linux具有广泛的硬件支持特性。
无论是RISC还是CISC、32位还是64位等各种处理器,Linux都能运行。
Linux支持各种主流硬件设备和最新硬件技术,甚至可以在没有存储管理单元(MMU)的处理器上运行。
这意味着嵌入式Linux具有更广泛的应用前景。
2.1.3QT技术简介
Qt是一个跨平台的C++图形用户界面库,由挪威TrollTech公司开发,目前包括Qt/X11、基于Framebuffer的Qt/Embedded、快速开发工具QtDesigner以及国际化工具QtLinguist等。
人们所熟知的Linux下面的KDE环境就是基于Qt开发而成的。
Qt支持Unix和Linux系统以及Windows系统。
Qt的主要特点有:
面向对象,很容易扩展,并且允许真正的组件编程;
Qt对各个模块进行了良好的封装,使各模块可重用性较好;
优良的跨平台特性,使用Qt类编写的程序可以实现“一次编码,到处编译”,极大的降低了跨平台开发的难度;
构件支持,对于对象间通信,Qt没有采用函数回调的方法,而是采用了一种全新并且可选的被称为“信号与槽”的对象间通信机制,通过一个对象信号的发射,另一个槽函数的响应,使各个对象之间的通信安全而且高效。
Qt的这些特点使它非常适合于真正的构件编程,同时使各个组件之间的协同工作变得十分简单,并且Qt是直接基于Xlib的,不依赖Motif工具包,所以它的执行效率比一般的基于平台的代码的执行效率要高。
2.2车牌图像处理技术
图像处理是人工智能在计算机图形学中的一个重要分支。
图像处理的一些常用方法,包括图像的灰度化、二值化、边缘提取等。
以下简单的介绍这些方法。
·
2.2.1图像灰度化
一般情况下,输入计算机的视频截取图像为RGB格式,即彩色图片。
由于这种图像包含大量的颜色信息,它的每个像素都具有三个不同的颜色分量R(Red)、G(Green)、B(Blue),这样的图片占据的存储空间很大,而且在对其进行处理时也会耗用较多的系统资源,导致系统的执行效率不高。
与之相比,灰度图像只含有亮度信息,从而大大减少了系统的工作时间,满足汽车牌照识别系统的实时性要求。
因此,在对图像进行其它预处理之前,一般先将彩色图像转换成灰度图像。
比较常用的方法是给像素的R、G、B分量各自增加一个特定的加权系数,相乘后求和,其计算结果作为灰度值,转换公式如下:
I=0.299*R+0.587*G+0.114*B
式中I表示像素的灰度值。
2.2.2图像二值化
一幅灰度图像有256个灰度级,其中灰度级为0表示黑色,灰度级为255表示白色。
图像的二值化就是将灰度图中的灰度级转化为只有黑色和白色的两个灰度级。
也就是寻找一个阈值,如果图像中的某一像素值大于该值时,就将该像素值置为白色;
如果小于或等于该值时,就将该点的像素值置为黑色。
所以,找阈值就将成为图像二值化的一个重要部分,如果阈值取得好的话,就可以很好的将目标和背景分为两部分。
现在求图像阈值的方法有迭代法和Otsu法等。
在这里就不对这些方法进行介绍了。
2.2.3图像边缘提取
物体的边缘是以图像局部特征的不连续性的形式出现的,图像的边缘信息在图像分析和人的视觉中都是非常重要的,是图像分割中提取图像特征的一个重要属性。
边缘二值化方法就是利用了图像的这一特征来得N-值图像。
边缘二值化方法中最重要的是对图像进行边缘检测,之后进行二值化。
在最终的二值图像中,图像中的物体边缘部分的像素值为1,其它像素值为0。
边缘是图像上灰度变化比较剧烈的地方,在灰度变化突变处进行微分,将产生极值,因此在数字上可以用灰度的导数来表示变化。
最早的边缘检测方法都是基于像素的数值导数的,在数字图像中应用差分代替导数运算。
f(i,,)为灰度图像中某一像素的值,则边缘检测具体的运算过程如下公式所示:
边缘检测算子可以用数字图像f(x,y)与模板的卷积来表示,模板操作实现了一种邻域运算,即某个像素点的计算结果不仅和该像素点的灰度相关,而且和其邻域点的值有关。
例如Robert梯度算子采用的是对角方向相邻两像素之差。
如下公式所示:
几种常见的边缘检测算子的模板分别如下图所示:
以上几种边缘检测算子对噪声敏感,它们都会使噪声成分增强,因而对图像进行边缘提取前,图像的平滑处理非常必要。
2.2.4基于车牌图像的二值化
对车牌图像的处理,是基于车牌在整个图像中所具有的独特的特征进行处理的。
本系统的车牌图像二值化处理是基于车牌具有独特的颜色进行二值化处理的。
目前,国内主要使用四种车牌,分别是民用蓝底白字车牌、民用黄底黑字车牌、军用白底黑字或红字车牌以及国外驻华机构使用的黑底白字车牌,其中军用车牌的格式具有多样化的特征。
根据车牌的颜色,我们很容易就将车牌字符和车牌的背景颜色区别开,这样就很容易根据车牌字符的纹理特征对车牌进行定位。
根据这个方法,可以大大降低各种干扰信息,使车牌定位的精确度也大大提高了。
2.3车牌定位技术
2.3.1基于灰度图像的车牌定位方法
基于灰度图像的车牌定位方法都是针对车牌区域的特征提出来的。
字符特征是车牌区的主要特征,对车牌的灰度图像进行分析,可以看出车牌区域的灰度变化非常明显,有密集的纹理特征。
基于灰度图像的车牌定位方法,根据采用的图像处理方法的不同,可以把它们归为以下四类:
第一类是利用图像的梯度信息对图像进行边缘提取,应用数学形态学运算或者采用特定的填充算法进行下一步处理,直到图像中只留下待识别的目标。
这种定位方法属于经典的图像分割方法。
这类方法的缺点在于:
由于车头部分细节丰富,尤其是车头部,要获得较好的边缘图像比较困难,而且运算量大,另外如果车头中下部有与车牌尺寸相仿的干扰区,很可能产生误识别;
对于污染严重的车牌图像,识别率不高。
另一种思路是在对图像进行了边缘提取后,考虑到车牌区域会有较长的直线边缘,利用Hough变换能有效检测直线的特性,来确定车牌在图像中的位置。
第二类方法主要考虑车牌图像中车牌区域的纹理特征。
在数字图像处理技术中,描述图像纹理的方法有很多。
例如,采用能量或其它自定义的特征量来描述车牌区域的纹理特征,把车牌图像划分为若干小块,计算出每一小块的特征量的值,根据目标区域的特征量的值的范围确定哪些小块是属于目标区域的,联接属于目标区域的小块从而定位车牌区域。
这类方法的优点是利用了车牌区域纹理的二维特征,但同时也使得对车牌图像的背景干扰更为敏感,所以初定位后要进行进一步的验证和精定位操作。
第三类方法是利用车牌区的灰度信息,直接对图像进行水平方向的扫描,寻找灰度变化满足车牌区灰度变化规律的区域,确定其为待识别目标,该方法被称之为灰度跳变法。
这类方法先对灰度图像进行扫描,然后判断行扫描线是否穿过车牌区域。
通过对穿过车牌区的扫描行的分析,确定车牌的边界位置,由此确定车牌区域。
采用这类方法时,还有另一种思路,先将灰度图像进行二值化处理,再对图像进行行扫描。
在二值扫描行中根据黑白明暗级的跳变频率及间隔长度确定车牌区域。
这种方法的主要缺点是很难找到一种准确率高的二值化方法。
当车牌图像的背景干扰比较小时,且车牌部分占整幅图像比例较大时,这类方法有可能取得较好的效果。
但是事实上车牌图像中车牌区域所占图像的比例往往比较小,车牌的背景又比较复杂,所以采用这种思路对车牌进行定位效果并不好。
第四类方法是投影法,这类方法思路比较简单,通过在原车牌图像上提取图像竖直边缘或其它的图像特征值,将其投影到竖直坐标轴上,车牌区域由于垂直边缘密集,所以在对应的位置上会出现一个峰值。
设计算法搜索投影峰值,就可以定位出车牌区域的水平边界。
在提取出的水平带状区域上进行垂直定位,确定车牌区域的左右边界。
这类方法的缺点同样是在图像背景比较复杂的情况下,准确定位车牌比较困难。
2.3.2基于车牌颜色的定位方法
上文已经提及过我国的车牌的主要一些颜色特征,根据这些颜色特征对车牌的图像进行二值化,可以大大减少图像中的干扰信息。
例如,对蓝底白字的车牌进行二值化是将蓝色的部分变成黑色,将白色部分变成白色,图像中的其他颜色变成白色。
车牌定位则根据所转化成的二值化图像进行定位。
在所形成的二值化图像中,车牌区域内有很明显的纹理特征,而在图像的其他区域中出现和车牌相同的纹理特征的情况很少。
所以根据这种情况是很容易对车牌进行精确定位的。
2.4车牌字符分割及识别技术
2.4.1车牌字符分割
目前,使用较多且效果较好的几种分割算法有:
1.针对噪声较大车牌的分割方法,这是一种先分段,再利用Hough变换拟合直线的水平分割方法和基于先验知识约束的垂直分割方法,这种方法在汽车图像质量较好的情况下能比较顺利的提取出车牌的中心线,并根据已有的经验对字符区域进行分割。
2.基于模板匹配的字符分割算法,这种算法利用了车牌字符宽度一致、排列规则的特征,利用车牌的先验知识构造标准模板,并使用该模板与垂直投影曲线匹配,计算最佳匹配位置,从而得到准确的分割结果。
3.传统的垂直投影法,它通过分析车牌的垂直投影,搜索其中的峰谷变化,简单的统计投影中白像素的个数从而确定字符的分界区域。
4.基于纵向投影图规则变换的字符分割方法,这种方法的基本思想是:
首先在图中从右至左寻找第一个右峰谷点,接着继续往前寻找第一个左峰谷点,找到这两个峰谷点后,设置它们之间所有点的高度为峰点的高度。
通过投影图规则变换可以很好的分离出字符。
由于各种算法都具有一定的适应条件,因此大多数情况下需要结合它们的优点,在速度允许的前提下取得较好的分割效果。
2.4.2车牌识别技术
目前已有的字符识别算法大致有以下几种:
1.模板匹配法。
这种方法首先对待识别字符进行二值化处理,并规范其大小为字符数据库中模板的大小,然后与所有模板进行匹配,选择相似度最大的匹配模板作为输出结果。
因为涉及一些特征矩阵的计算,并且要与多个模板进行匹配,处理时间较长且易受噪声影响。
2.基于神经网络的字符识别字符识别方法。
又可分为有特征提取和无特征提取,这种方法要求理清各个类别的关系,识别效果受多种因素牵制。
3.基于小波的字符特征提取法。
这种方法的原理是,利用小波变换提取字符的一些基本特征,搜索能够提取字符特征的最佳小波函数,最后用神经网络进行识别。
4.模板匹配和神经网络相结合的字符识别方法。
这种方法融合了模板匹配和神经网络的优点,提高了字符的识别效率。
5.SVM(SupportVectorMachine支持向量基)法。
这是一种新的识别算法,它通过对大量的样本进行训练而得到一个最佳判别函数,从而把各种类别很好的分离出来。
除了这些常用的车牌字符识别方法外,还有许多其它的识别方法,如基于字符笔划特征的统计识别算法、对字符的空间分布进行分析的识别算法等等。
第三章系统方案
本章主要介绍系统的总体设计。
首先介绍系统的功能及配置;
然后介绍系统硬件的结构(硬件总体规划);
最后介绍系统工作的总体流程(包括软件流程)。
3.1系统功能及配置
3.1.1系统功能
系统的功能主要分为两个部分:
系统的初步功能和系统的扩展功能。
系统基本功能:
通过摄像头拍摄车辆前部或后部的图片,然后交给车辆定位程序处理定位出车牌的位置,最为交给车牌字符识别程序分析出车牌的号码。
可扩展功能:
本系统可以和汽车测速等系统做成很多系统,可以用来监控高速公路上汽车超速行驶等车辆违规行为
3.1.2系统配置
根据系统功能以及设计嵌入式系统的要求,开发此系统需要以下主要配置(图3-1-2):
(1)8寸640*480TFT真彩LCD触摸屏
(2)4个主USB口、1个从USB口
(3)2个JTAG接口
(4)一个100M网卡,预留一个100M网卡
(5)两个串口、一个485接口
(6)CAN总线接口
(7)PCMCIA接口
(8)IDE硬盘接口
(9)CF卡接口
(10)8个用户自定义LED数码管
(11)17键键盘
(12)PS2鼠标、键盘接口
(13)高性能立体声音频模块,支持放音、录音
(14)一个168Pin的扩展插座,硬件可无限扩展
图3-1-2
3.2系统硬件结构
本系统的硬件主要设计定义为手执与定位采集使用为主,若为定位采集需在加上一个外部传输模块。
车牌定位与字符识别系统采用博创公司的开发板(UP-NETARM2410-S)主频202MHZ以及64M的FLAHRAM并且以S3C2410作为处理器。
S3C2410是Samsung公司推出的32位RISC处理器,为手持设备和一般类型的应用提供了价格低、低功耗、高性能的小型微控制器的解决方案。
S3C2410X采用了ARM920T的内核,0.18um工艺的CMOS标准宏单元和存储器单元。
它的低功耗、精简和出色的全静态设计特别适用于对成本和功耗敏感的应用,这也是本系统采用此芯片作为处理器的重要原因之一。
在处理器周围,包括一些单独的模块和接口电路,用来实现本系统的预期功能。
这些模块包括:
(1)LCD模块,显示功能;
(2)