1、基于matlab车牌识别系统的研究基于MATLAB的车牌识别系统研究前言早在二十世纪90年代时,智能交通系统的概念已经被美国智能交通学会提出。全世界经济较为发达国家的一线城市以及高速道路系统中已经得到广泛的应用。而在该领域中我国对此研究起步较晚,伴随着全世界智能交通领域的发展,以及我们奥运盛事的成功举办,我国对此领域已经缓缓进入应用阶段,我们必须加紧对此研究步调,缓缓进入发展期。车牌系别系统在智能交通领域的应用有数字摄像、图像分割以及图像识别和计算机信息管理等多处应用,它在智能交通管理系统中有着举足轻重的地位。车牌识别技术已经应用于道路违章自动记录、道路交通监控、道路事故现场勘察、小区智能化管
2、理以及高速公路超速管理系统等,提供给智能交通管理高效、实用的手段。目前全球各国都在着手研究适应于本国汽车牌照识别技术,当前已经有相关系统技术出现。而一个国家引进它国的系统可能无法满足本国城市发展的需求,在国内市场中虽有产品已经有投入使用,但后期处理过程中任然需要人工操作识别,然而当今高科技领域热门话题之一还是车牌识别技术。车牌识别系统设计、制作与应用会给社会带来巨大的社会、经济、文化效益。车牌图像处理的识别系统包含有以下五部分: 图1 车牌图像处理别系统在现实的生活之中,我们不仅需要设计出的识别系统能够快速而且准确的识别出检测到的车辆牌照号码。而且在车辆检测、图像采集、车牌识别等在系统识别过程
3、之中都是不可忽视的重要环节,其核心技术如下:1)车牌区域定位技术,即是把所采集到车牌图像的具体位置确定出来。2)车牌字符切分技术,即是切分和归一处理所采集到车牌区域之中的字符,其中字符的切分和识别很重要的步骤是对其进行二值化和校正处理。3)车牌字符识别技术,即是把切分出来的字符再进行识别。研究过程之中,车牌识别非常棘手的环节是图像处理与模式识别,需要加倍努力克服困难。图2 自选车牌示例首先,当今车牌识别技术实际情况如下:目前国内外已经拥有大量媒体关于车牌识别技术的报道。早于上世纪70年代时,英国某实验中心就首次成功检测与开发“实时车牌检测系统”,就在此时世界上的第一个面向被盗车辆实时自动管理系
4、统也就此产生,时至当前该领域已经取得令人瞩目的成就。其次,当今之时车辆识别技术的应用如下:当今智能交通系统之中的重要环节部分是车牌自动识别技术的研究,已经广泛地应用于交通管理、交通监控之中。车牌识别技术可以准确地在一幅车辆图像中定位出车牌图像,再紧接着经过字符切分和识别后实现汽车牌照的自动识别,以此达到为以上所述的应用模块提供尽量多的信息以及有效作用基础。目前的车牌识别系统之中主要集中的应用有:A 高速公路超速自动化管理系统;B 停车场管理系统;C 公路布控;D 城市十字交通路口的“电子警察”; E 小区车辆管理系统。再次,对于当今国内车牌识别技术的发展趋势如下:智能交通系统中的关键技术是车牌
5、识别技术,在各国学者以及专家的共同团结努力之下,并且在实际应用之中已经取得不同的程度,但是当今该领域中还存在着某些不足之处。目前汉王科技智能交通部总经理乔炬对于未来车牌识别产品的技术发展状况有所认识到,实用中的车牌识别技术与产品性能发展时间相对于很短,但如今伴随着人工智能识别技术和自动识别技术取得进步,并且对于未来的发展空间有着深远的影响。1 系统总体设计车牌识别系统设计过程之中包含的重要环节有图像采集、预处理、车牌定位、字符切分以及识别和图像编码、数码传输与更新等,基本上包含有软件和硬件设计两大部分,完成图像数据的摄取与采集是硬件部分的主要功能,对采集到的图像数据再次通过进行车牌的定位、字符
6、切分与识别等工作是设计中软件部分主要功能,紧接着的环节是对前面环节的结果进行数据传输与存储,再紧紧接着的环节是管理系统管理处理后的交换信息。软件设计环节部分是本次设计,是否能够准确地通过牌照对车辆实施有效的管理,很大程度上依靠于软件部分对于车牌识别系统的准确性。而一个车牌识别系统的基本结构如图1-1所示图1-1 车辆识别系统图2 系统硬件设计车牌识别系统之中的摄像机、主控机、采集卡和照明装置是其基本硬件。对于停车场管理系统来讲,其系统硬件部分主要有:CCD自动亮度控制器、高分辨率的CCD摄像机、车辆传感探测器、高放大倍数镜头、高性能的工控计算机和视频采集卡等。该系统的第一步是探测行驶过程中车牌
7、的的接近、通过和停留间隔时间数据。当前世界常用的探测器有红外探测器、火星探测器、伽利略号木星探测器、闪烁探测器、美国凤凰号火星探测器、半导体探测器、金星号探测器、希望号火星探测器、光电导探测器、光子型探测器等等。据当前国内市场而言,红外线探测器以及电磁感应探测器使用较为广泛。首先应该是在停车场的出、入口处设置两队红外光线发射与接收检测到的车牌数据信息。其次是利用编码调剂信息,达到提高系统数据采集之中的干扰能力,从而使其系统达到较高可靠性能,该系统执行过程为首先利用红外线探测器探测到车牌采样数据信息以及同时制约着图像采集卡抓拍车牌图像,其次是利用车牌识别技术识别车牌图像,而摄像机与此同时就直接控
8、制光圈的大小,从而适应不同光照强度的外在环境,最终还需要将识别出来的数据信息存储到信息服务器之中,车辆离开之时仍然需要进行这些处理步骤,再此进一步通过计算机的对比、计算后,将计算出车辆的停靠时间数据,再进一步计费,而本课题侧重于算法的研究,并且最为主要的部分是系统软件的设计,对于已经摄取到的卡口信息进行车牌的识别。3 系统软件设计图像的存储格式是硬件部分采集图片首要考虑的因数。当前常用的图像格式有:*.GIF、*.PCX 、*.BMP、*.JPG等,*.JPG格式是本课题采集到的图片格式。本课题的软件系统的编写的是MATLAB 语言(也可以采用VC语言)。但是MATLAB语言却具有如下优点:1
9、)MATLAB提高了数值计算的编程效率;2)MATLAB扩充性强,交互性好,移植性和开放性也较好;3)图形控制和处理功能的特性较强,且编程接口和应用程序是自带的,MATLAB与C+、C等其他编程语言之间建立数据的通信MATLAB 搭建车辆牌照识别系统。是本文设计系统采用的主要核心技术,具有如下明显的特点: 搭建整个系统平台的骨架有MATLAB的Neural Network Toolbox 、Image Acquisition Toolbox以及Image ProcessingToolbox。 MATLAB设计出的图形用户界面技术(Graphical User Interface简称GUI):在
10、使用编写牌照识别系统面板过程之中,相对其它其语言可以较为容易地无缝连接车辆牌照的切分、识别、定位程序模块。 专业工具箱在使用过程之中,研究人员没有必要始终如一的关心程序的细节毛病,因此可以把主要时间与精力放于算法与设计部分,这就能有效减少了工作量,从而为算法的研究以及改进提供了重要的根基。本次课题软件开发工具为 Matlab 7.1,测试图片来源为卡口车辆照片,像素大小为768*288 ,总计353张。对于整个软件系统的设计流程图如图3-1示:图3-1 系统流程图3.1 车牌定位 系统的总体设计方案在制定确立之后,基于小波变换的车牌定位算法应该是首当其次需要介绍的算法。图像进行处理的第一步在于
11、车牌识别系统采集到图像后对其定位,此步采集数据结果的优劣会影响系统的识别效率的高低。如下几个模块图就是车牌定位的过程:3.1 车牌定位流程图3.1.1 图像预处理摄像头在拍图过程之中总是存在某些噪点,处理过程之中首先需要预处理后再识别。所谓的图像预处理就是在于图像灰度化和去噪点处理,以此能够改善车牌主要区域的图像质量,同时使车牌区域纹理和颜色信息得以加强,以此为车牌定位提供有利条件。3.1.2 图像灰度化灰度图仅仅指的是无色彩信息情况下仅仅包含的是亮度信息,平时生活之中的黑白图片就是很好的灰度图。一张色彩图处理变换为黑白图称之为灰度化处理, R、G、B称之为彩色图三个分量,分别对应红、绿、蓝等
12、各种颜色,将R、G、B三者变换为相等值过程称之为灰度化途径,比较亮的像数点表示灰度值较大(白色像素值【255】最大),反之较暗值较小(黑色像素值【0】最小)。当今图像灰度化常见3中算法如下:a) 最大值法:使其中三者之中任何一个数据值都转换为之前的的最大数据值:R=G=B=max(R,G,B)(3.1.2-1),该算法转换后灰度图亮度较强。b) 平均值法:使其中三者之中任何一个数据值都转换为之前三者和的平均值:R=G=B=(R+G+B)/3(3.1.2-2),该算法产生的灰度图亮度较为柔和。c) 加权平均值法:按照一定的权值,对 R、G、B 的值加权平均:R=G=B=()/3(3.1.2-3)
13、其中:、分别为其权值。当、三者数值不同时,形成的不同的灰度图像亮度。肉眼而言,最为敏感的是绿色,次之是红色,最低为蓝色,因此当将易得到灰度图像较易识别。通常讲:当=0.299、=0.587、=0.114 时,将得到最好效果的灰度图像。本次课题选择的算法是加权平均值法,处理后结果显示出灰度图效果如图3.1.2-1所示:图3.1.2-1(a)原始汽车图像 (b)灰度图3.1.3灰度拉伸车牌图经过灰度图处理之后,由于图像显示车牌以及非车牌对比度不高,若是此时就直接提取车牌的边缘信息,加之的是较为模糊不清车牌界限,因而车牌定位准确度很难。为了改善其弊端,使其明暗鲜明,有利于提高识别率,因此需要进行拉伸
14、处理。下图中就是把输入图像中某点( x, y)的灰度f( x, y)通过映射函数T映射成输出图像中的灰度g( x, y):即 g(x,y)=Tf(x,y) (3.1.3-1)图 3.1.3-1灰度变换的对比曲线如果原图像f(x,y)的灰度值范围是 s1,s2 想变换后灰度值范围扩展至t1,t2,可采用下述线性变换来实现:g( x, y)= (t 2 t1)/(s2 s1)*f( x, y) +t1 (3.1.3-2)图 3.1.3-2 (a)灰度图 (b)灰度变换图从上图可知进行车辆图像的灰度拉伸处理前后的效果,明显增加车牌的灰度图,显示结果也可以看出明显增加车牌区域大小。3.1.4 图像平滑
15、车牌图像之中经常存在着某些孤立的噪点。车牌图预处理的初期,倘若不能够行之有效的去噪以及抑制噪点的强度,必将影响到车牌定位的准确度,或者无法定位。而且去噪可以采用图像平滑的方法。先选3再选5是实际应用中的窗口尺寸一般选择方法,依次逐级递增,直止达到满意的滤波效果。本文采用的窗口尺寸为 3。滤波效果如下图示:图3.1.4-1 (a) 灰度图 (b)中值滤波后图像3.2 基于小波变换车牌边缘的提取小波变换的算法的研究是车牌定位后边缘提取的主要方法,小波变换的理论是基于傅里叶级数变换的时频分析方法,是一种时频同时局部变换的方法,并且通过有效的自动调节时频窗口的大小以及位置,从而达到局部信号条件。使其调
16、节积聚于信号时频段上的各处细节处。在图像处理领域中基于小波变换的这一突出特点已经得到广泛的应用,可用于图像平滑去噪、边缘检测以及压缩等多种作用。车牌边缘主要基于目目标与背景、区域与区域、标与目标(包括不同色彩)之间,边缘检测主要集中于定位边缘和抑制噪点,其基本思想在于利用边缘增强算子,从而突出图像局部边缘,最后定义像素“边缘强度”, 设置门限的方法可以提取到边缘点集。基于传统边缘检测算子检测到的边缘信息中往往包含有很多无用的干扰信息,要想在复杂的背景和种种的干扰中定位出准确度高的车牌区域是较为困难。实验表明两层的小波变换分解就能够达到预期的要求。车牌区域图像检测如下所示:图3.2-1 车辆灰度
17、图灰度图3.2-1像素大小为768*288,实验取得 X=214作为车牌中间的一条数据线:S(k), k (1: 768);数据分析采用MATLAB7.1的小波分析工具箱,图3.2-3是HAAR小波5 层小波分解后的结果:图3.2-2 X=214数据线灰度图图3.2-3 HAAR小波五层分解图图3.2-2很明显看出号牌区的纹理有着一些特点,图中是一张密集的高频纹理图区。而低频区是一个非车牌区域。图3.2-3显示可知d线谱为细节信号,a 线谱为相似信号。图3.2-3的前三层分解中,可以非常明显观察出号牌区的细节信号特征,并且可以较容易的分离出来,而第四、五层的细节信号中非车牌区域的干扰越来越严重
18、,同时也可以观察到相似信号中号牌区和非号牌区差异并不是很明显。因此车牌定位可以选择两层分解的小波细节信号。从以上实验结果分析可以看出,经过Mallat分解后的小波图像信息,可以很好的反映出原图像在不同尺度、方向上的细节分量与模糊分量。再通过小波分解车牌图像,可以发现到小波分解后的细节分量可也可以较好的体现出车牌位置的信息,尤其是水平方向低频、垂直方向高频细节分量有利于车牌的准确定位。图3.2-4可以观察到,图像噪点经过小波分解已下降了很多,而且也明显的显示出车牌的纹理。其中水平分量包含有汽车前面的进、排气格栅等干扰信号,严重的影响车牌的定位。而较好的是垂直分量的效果。因此本课题采取的算法是提取
19、车牌图像小波分解垂直分量法。图3.2-4 小波分解车牌图像图3.2-5是小波分解后车牌图像进行边缘提取的垂直分量图像,据图较为明显的是车牌部分的纹理特征,已排除了车前格栅等干扰,噪点干扰也有效地减小,而且只需要将高频图像的检测提高,即1/4的图像得以检测,运行时间也减少很多。图3.2-5 小波分解提取边缘3.3 车牌字符切分准确定位车牌字符后,主要研究的是车牌识别字符切分算法,依次需要研究的三种算法是二值法、倾斜校正法与字符切分法。如下图是车牌字符切分过程流程图:图 3.3-1 车牌字符切分流程如下是对部分图像采用Ots算法进行二值化的结果:(a) (b)(c)图3.3-2 Otsu算法二值化
20、实验图3.3-2是在光照不均的条件下摄取到的车牌图像,其中图(a)摄取图片条件光照过度,图(b)摄取图片条件是曝光不足,图(c)对比度较差黄底黑字的车牌图,基于亮度要求即是能够基本满足后续车牌切分和识别的条件。3.3车牌字符识别车牌字符进行准确切分后,本小节是完成车牌识别最后一步(车牌字符识别),该步却是计算量较大的一部分。途经多年研究,目前已经有多种字符识别方法,本节主要是模板匹配法和神经网络法进行对比后,并分别进行改进,将两种方法的运算速度提高。当今已提出的车牌字符识别方法有如下几种:模板匹配字符识别算法、统计特征匹配法、神经网络字符识别算法、支持向量机模式识别算法;四种方法中,最早使用的
21、方法之一是模板匹配法,目前比较流行的算法是神经网络字符识别算法。4 系统测试及分析4.1测试平台的构建据上文研究到的算法,利用 MATLAB 的 M 语言可以分别实现车牌识别系统的定位、字符切分以及字符识别功能模块,而利用 MATLAB 的 GUI 工具箱可以开发测试系统,验证上面设计的算法可以在车牌识别系统中的可得以应用,本测试平台利用 MATLAB 的图形用户开发环境(GUIDE)得以实现,流程图如下:图4.1-1 车辆识别测试系统流程图启用测试界面时,首先用到load global_var.mat语句导入识别参数设置值,当更改参数设置值后,再次用到update_global_var(mu
22、ban, range, province, confidence)语句更新识别参数设置值,使之与当前设置具有一致性。最后通过文件菜单导入图像并显示出来,部分代码为:image=imread(file); %file 为图像的绝对路径axes(handles.PicShow);imshow(image);guidata (hObject, handles);输入的图像信息以及识别参数设置值通过参数的形式传送到 go.m 文件中,于该文件之中,完成了整个车牌的识别。该模块需要调用三个子模块(车牌定位模块 location.m、字符切分模块 segmentation.m 和字符识别模块 ocr.m)
23、如下所示:bw, grounding = location (image);%汽车图像之中截取车牌图像seg = segmentation (bw); %字符切分截取后的车牌图像load net.mat; %导入训练好的改进 BP 网络number = ocr(bw, seg, net); %根据切分字符识别出车牌号每个子模块中都要先调用load global_var.mat语句把最新的识别参数值导入。识别时首先往 location.m 中输入图像image的参数形式,图像定位采用小波变换法和投影法,bw做为了得到的车牌部分图像,通过车牌颜色特征判断得出车牌底色grounding。立即把车牌部
24、分图像bw 传输到 segmentation.m 中,然后对其采用改进otsu算法进行二值法,再进行倾斜校正以及字符切分其投影,seg作为了字符切分的图像。将其导入net.mat文件中,网络对象 net的得到是通过该文件中的匹配字符模板进行 BP 网络训练途径。 ocr.m 将输入得到训练好的网络对象net和切分好的字符图像seg,调用函数 sim 将模拟出一个网络,模拟网络输出训练好的网络 net 及输入向量 seg,从而最终得到实验识别的效果。4.2 测试平台的介绍测试平台是根据上述过程搭建起来的,如下图所示:图 4.2-1 车牌识别测试系统界面系统设置、识别参数设置、视频设备、文件是该测
25、试平台包含有的四个菜单选项。如下定义了各菜单的功能,如下是文件菜单选项:图 4.2-2 文件菜单文件菜单选项包含有三个下拉菜单(录像文件、图片文件和清除本地记录)。录像文件功能是导入视频,在从视频中抓拍出有用车辆图片,有后续识别作用。图片文件功能是将抓拍的图片导入文件中,再进行识别处理。清除本地记录功能在于清除当前窗口中全部图像信息。如下为视频设备菜单:图 4.2-3 视频设备菜单视频设备菜单主要设置的是视频设备的属性,包含有的四个下拉菜单(格式设置、通道设置、显示设置、设备编号)。下图是识别参数的设置:图 4.2-4 识别参数设置菜单识别参数设置最先还是车牌模板设置。包含有(军用车牌及民用车
26、牌、武警车牌、警车车牌、民用车牌【2002个性版】、民用货车尾牌【单行】),如今由于大量的92式车牌存在,该车牌分为92是黄牌和92式,2002个性化车牌中包含有所有的新的个性化。识别范围在于车牌模板右边,包括 0100%,可以有效设置识别的汽车图像的范围(即设置上、下、左、右四方位)。下半部分集中大多部位额车牌图,较小的范围可得以选择,识别范围的缩小,有利于提高识别速度,置信度和省份设置在于该模板的下边。最低置信度设置输出时,一般在 7590 之间,值太小出错率大,值太大无法准确截取车牌。省份设置过程中区、省市代码模糊的时可直接替换。上述设置完后点击确定保存。如下为系统设置菜单图:图 4.2
27、-5 系统设置菜单初始化配置文件系即为系统设置下唯一的子菜单。其主要功能是恢复默认状态的设置条件;选取1#设备作为视频设备;在识别参数设置中全选车牌模板,识别范围选择为左边为 0、右边为100、上边为 0、下边为 100,置信度为 75,省份为空。重新启动程序时初始化配置文件立即生效。4.3测试结果分析测试数据库存中的卡口图片有353 张,像素大小为768 *288 ,该图像全部都是在路口摄像头中拍摄得到的实物图。测试系统使用步骤如下: 识别参数的设置。所有测试图片基本上全部是民用车牌,于是车牌模板选择有民用车牌【2002个性版】、民用车牌【92式黄牌】以及民用车牌【92式】。设置识别范围有(
28、左边为 0,右边为 100%、上边为 0,下边为 100%),省份无设置,置信度75。 文件菜单中导入图片,系统自动进行识别,显示出结果。系统测试的结果如图4.3-1所示:图4.3-1 测试分析(1)图中显示出导入汽车图片,左下角第一栏表示为定位后的车牌;第二栏显示出识别到车牌号码、颜色、宽度;第三栏表面整图分辨率,最后栏表明图像的文件名(即识别了那张图片)。图4.3-1的车辆图像存在问题是曝光过度,车牌与其它部分对比度相差甚远,传统方法的边缘检测到的边缘模糊现象较为严重,采用改进前的 Otsu算法后的二值化处理后会缺失部分车牌字符信息,识别度会变难。而本系统的功能得以实现是利用小波变换以及改
29、进的 Otsu 算法。虽图像对比度不是很好,但车牌部分垂直特征还是较为明显,通过小波分解高频信息之后,能够捕捉到较为准确的信息,得以准确定位车牌。二维直方图范围的重新划分是通过采用改进后的Otsu 算法,从而将目标物体区域得以扩大,防止认为是目标物体的背景问题,完好地得到车牌字符二值化图像。通过本系统可以明显观察得出正确地截取车牌图像,准确地识别车牌字符。图4.3-2是一黄色车牌图片。图中可以看到,该上方有着很大空间的排气格栅,车牌大小与两边车灯的大小比较相似,传统算法使用过程中,这些都会干扰车牌的准确定位。但车牌部分有其很弱的纹理特征,通过小波分解处理得到的高频特征之后,消失了几个车灯部分消
30、息,通过形态学处理之后,留下来的是一些很小块的区域,而在初步定位之时就会认为是伪车牌而被去除。虽然排气栅格部分有着很多的纹理特征,但其区域面积比车牌大很多,因此初步定位之时也会被去除掉。而经过上述的处理步骤后最终得到真正的车牌区域。图4.3-2 测试分析(2)图4.3-3倾斜比较严重的车牌识别处理的情况。该车牌之中有其较弱的边框信息,而经过定位二值化处理后边框信息就得以消失,此时采用Houng变化查询倾斜角之时,会发现车牌水平与垂直方向有着最长的一直线事实上也是倾斜的,而查询到的倾斜角并不是显示真正的倾斜角,进行校正后任然是倾斜的。通过采用投影法判断标准的MATLAB坐标轴,查询并校正后得到的
31、车牌位子就正了。通过倾斜校正以及切分字符之后,字符通过采用改进的 BP 网络识别之后,因为“浙”字或许有些变形,很容易与“湘”字产生混淆,而形成识别错误,通过增加模板之后,就能够准确无误的识别出来。图4.3-3 测试分析(3)图4.3-4 测试分析(4)通过测试平台识别了 353张像素为768*288的卡口车辆图像后,去除四张摄取到的部分图像,容易导致无车牌而导致无法识别之外,而余下的车牌图像识别后得到的结果如表4.3-1 所示:表4.3-1 车牌识别结果分析总数正确数错误数准确率车牌定位349343698.3%车牌识别343336798%识别时间0.7s1s从上表统计结果得出到的整个车牌系统的识别率为96.2%。可得出系统定位还是较为准确,车牌图像不能准确定位往往是由于车牌上方有垂直条纹以及面积大小相似的车牌模块,都可以通过改进算法而去除干扰信息,而有效的提高系统识别率,这都是较为理想的方法步骤,系统识别过程之中识别字符产生的干扰原因多数是由于相似字符,使其无法识别其结果,该问题都可以增加字符模块得以解决问题。综上之本系统有以下特点:A车牌识别准确率还是较高,高达 96.2%的准确率,也基本上是满足设计要求;B车牌系统有着较好的适应性能,能够较好地适应车身自己的不
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1