字符识别系统范文

2024-09-08

字符识别系统范文(精选7篇)

字符识别系统 第1篇

本文搭建一个PCB板的检测系统,通过字符识别来判别PCB板上的芯片等元件,具有在线自动检测的功能。系统软件部分使用Lab VIEW、IMAQ Vision和Motion Assistant等软件进行系统开发,硬件使用NI公司的PCI-1405图像采集卡和PCI-7330运动控制卡及黑白模拟相机等。将需要处理的PCB板放在工作台上,系统会按照设置的程序,将芯片移动到相机镜头下,采集图象信息,并送入计算机处理,显示处理结果。然后对下一芯片重复前述过程,直到全部芯片处理完,进入下一PCB板的检测程序。

图1所示为芯片表面标识自动识别系统。整个系统包括两大模块:视觉模块和运动控制模块。视觉模块包括图像预处理、图像增强、中值滤波、文字区域裁剪、特征量提取以及字符细化、骨化的过程,通过学习模板,运用动态规划比对法,对比完成字符匹配。运动控制模块包括控制平台运行路线的编辑器、平台位置的微调、运动轴的选取、板卡型号以及加减速度编辑器。

2 系统的工作流程

整个字符识别系统的软件部分采用NI公司的Lab VIEW和IMAQ Vision以及NI-Motion软件包进行开发,它包括系统初始化模块、图像采集模块、图像处理模块、字符识别模块、运动控制模块等。所以可以根据整个系统的构成,把总系统分成两个独立工作子系统:机器视觉系统和字符识别系统。图2为机器视觉系统的工作流程,图3为字符识别系统的流程。

3 系统主要模块的原理和设计

3.1 运动控制模块

随着高密度封装技术的发展,一块PCB板上有很多的芯片,而镜头的视场是有限的,要想检测一块板上的每一块芯片,就必须要让PCB板在运动平台上运动,使其逐个进入CCD的视场区域。然后对硬件进行初始化、调焦、图像采集。

在CCD摄像机采集图像之前,必须控制步进电机完成送片过程。本系统采用PCI-7330运动控制卡发出脉冲信号给步进电机驱动器,驱动步进电机旋转,带动工作平台完成芯片移动动作。步进电机速度采用相对位置模式,T型曲线速度控制方式。为了本系统的适用性更加广泛,采用步进电机运行路线可以根据需要而进行实时编辑。所以根据Lab VIEW数据流的特点,把电机运行路径编辑在一个簇中,然后把想要的路径通过不同的半径、起点和终点在编辑器中实时编写[1]。

控制步进电机路径的编辑器如图4所示,电机运行路径的程序框图如图5所示。

3.2 图像采集模块

系统运行前,先进行图像采集卡初始化Init(img0),然后等待触发脉冲信息,当接收到触发脉冲后,采集和显示图像,最后关闭图像采集卡。系统获取图像的程序框图如图6所示。采用Viewse CCD相机采集图像,采取事件触发的方式获取图像,即当PCB板上的芯片运行到CCD视场采集点时,在前面板上有个事件触发按钮,人为的触发该按钮,软件系统就会通过PC内部发送一个触发脉冲,图像采集卡接收脉冲的上升沿信息后将图像序列采集到内存并送到计算机显示并保存,完成图像采集过程。

3.3 图像处理模块

3.3.1 图像增强

图像增强用于调整图像的对比度,突出图像中的重要细节,改善视觉质量。通常采用直方图均衡化处理技术作适当修改,即把一幅已知灰度概率分布图像中的灰度作某种映射变换,使它变成一幅具有均匀灰度概率分布的新图像,实现使图像清晰的目的[2]。本系统采用直方图指数化处理,以增强图像对比度,减少因曝光不足与振动产生的模糊,实验效果比直方图均衡化处理好。图像增强前后的图像如图7所示。

采用LUT(Look_Up Table)变换,对图像灰度进行特定计算及转换。图像增强的Lab VIEW程序框图如图9所示。

3.3.2 图像的平滑处理

实际获得的图像在形成、传输、接收和处理的过程中,不可避免地存在着外部干扰和内部干扰,如光电转换过程中敏感元件灵敏度的不均匀性、数字化过程的量化噪声、传输过程中的误差以及人为因素等,均会造成图像信息的模糊。因此,去除噪声,恢复原始图像是图像处理中的一个重要内容。图像平滑是一类局部预处理方法,利用图像数据的冗余性,达到抑制图像中噪声的目的。由于使用图像平滑处理后在图像中会出现明显的边缘模糊现象,所以,在图像平滑过程中,必须要考虑该算法经过图像平滑处理后,能否实现既能达到保持图像的清晰边缘轮廓,又能抑制图像中的噪声的作用[2]。

中值滤波是一种既能满足图像平滑要求,又可去除图像中噪声,并保持图像边缘轮廓清晰的方法。二维中值滤波的窗口形状可以有多种,如线状、方形、十字形、圆形、菱形等。不同形状的窗口产生不同的滤波效果,使用中必须根据图像的内容和不同的要求加以选择。本文设置滤波器为3,3,4即可实现图像平滑。图像平滑前后图像对比如图8所示。可以看出,图像平滑后去掉了很多对图像信息不利的干扰。中值滤波的Lab VIEW程序框图如图10所示。

3.3.3 文字特征提取

特征提取是整个字符识别环节中最重要的一环,它是从单个字符图像上提取统计特征或结构特征的过程,包括为此而做的细化(Thinning)、归一化(Normal1Zation)等步骤。细化处理不仅仅是压缩冗余信息的需要,还是进行结构分析的必要步骤。细化后的图像更利于直观特征的提取,如端点、交叉点、拐点等特征点以及各个部件之间的连接关系。字符细化后留下来的“骨架”,为字符识别提供了几何和拓扑性质的重要特征。

系统先将每一个字符单独分离出来,然后细化抽取它们的骨架,以方便后面的识别。文字的切分是利用文字行与行、字与字之间有间隙实现的。由于白颜色的灰度值是255,黑颜色的灰度值是0,所以可以逐行扫描下来,将当前行所有像素的灰度值之和与前一行的进行比较,如果发生正跳变,则说明该行为文字行的上边界,如果发生负跳变,则说明该行为文字行的下边界。确定了行边界之后再对该行进行左右扫描确定字的左右边界,从而分离每一个文字。如图11和图12所示为字符特征提取与细化、骨化后的字符特征。

3.3.4 字符识别处理

文字识别是将待识别字符与通过学习得到的特征库进行比对,找到相似度最高的字符类作为结果。根据特征选取的方法不同,比对的方法主要有欧式空间的比对方法、松弛比对法(Relaxation)、动态规划比对法(Dynamic programming,DP)、以及类神经网络的数据库建立及比对、HMM(Hidden Markoy Model)等著名方法[3]。本文采用动态规划比对法,它经过前面步骤的学习训练,建立字符对比模板,并保存在PC机中,读取图像中的字符与模板对比,找到最符合的作为结果输出[4]。如图13所示。

4 系统界面

主程序可以分为三大部分:第一部分是程序的开始,包括设置平台运行速度、加速度、运行轴以及对硬件设备进行初始化;第二部分程序等待用户的操作,一旦用户按下前面板的按钮,系统则对这些事件进行响应,输出电机运行路径曲线和图像字符识别的结果等;第三部分是程序的结束,主要作用是释放资源、进行出错处理等。图14所示为识别系统主界面。

在使用识别系统之前,用户需要完成以下两个工作:

1)启动采集设备,如图像采集卡、运动控制卡、摄像头等;

2)调整好摄像头焦距及位置等,使得采集在最佳的状态下进行,从而提高系统的识别率[5]。

5 总结

本文综合使用Lab VIEW、IMAQ Vision机器视觉技术和Motion运动控制技术,建立了一套比较完善的芯片图像采集、运动控制和芯片表面字符自动识别系统。本系统能实现在线检测PCB上芯片的型号,当有型号与模板的不同时,就会发出报警。主要运用模板匹配处理方法,实现对芯片中字符的实时识别,该检测系统检测准确率达到93%。该系统将芯片图像剪切出来,然后通过一系列的图像处理过程,对芯片上的文字进行逐一提取,最后系统通过文字的细化,获取图像中字符的特征信息,并与标准模板进行匹配,从而实现对字符的识别。系统能够根据被检测对象来编辑工作台的电机运行路径,实现一块PCB板上多处芯片自动检测。可用于PCB板的生产过程,提高生产效率。

摘要:本文使用LabVIEW和IMAQ Vision以及Motion软件包,结合PCI-1405图像采集卡和PCI-7330运动控制卡等硬件设备搭建一个在线的通过字符识别来检测PCB板上芯片的系统。运用图像增强,中值滤波使拍摄到的芯片图像质量最佳,然后运用字符特征提取、特征细化、动态规划比对法等图像处理方法实现对芯片标签上的字符的识别。

关键词:LabVIEW,IMAQVision,NI-Motion,中值滤波,动态规划比对法

参考文献

[1]NI.NI Motion for LabVIEW User Manual[Z].2005.

[2]萨雷斯.数字图像处理[M].北京:电子工业出版社,2004.

[3]National Instruments Corporation.IMAQ Vision for Lab-VIEWTM User Manual[Z].2003.

[4]程浩.基于虚拟仪器的字符图像识别系统研究[D].保定:河北农业大学,2006.

字符识别系统 第2篇

铭牌字符不同于具有白色背景的普通文档字符,它一般出现在彩色背景中,字符可能出现倾斜,而且字符数量远远少于普通文档,一般同时包含文字、数字和字母,识别这种字符对于设备的管理具有重要意义[1]。目前的铭牌字符识别是提取字符特征建立模版,利用模版匹配来进行字符识别。其中,字符特征的提取和匹配是最关键的部分。对于特征的提取,Yang等人提出以字符的孔洞数[2]、字符每一行由白到黑跳变的像素个数以及字符经过Gabor[3]变换之后的纹理特征来作为字符的识别特征;Chen等人提出以字符的小波能量[4]作为字符识别特征的方法,其中小波能量是一种细节特征,可以较好地体现字符在不同笔画方向上的频谱能量[5];Wei等人利用字符的开闭环特征[6]训练BP神经网络[7]来进行字符的识别,通过判断字符的形状有没有构成封闭的区域,以构成不同类型的封闭区域作为字符的识别特征。对于铭牌字符模版的匹配,传统方法是将字符分割成很多小块,然后计算出所有小块的灰度平均值[8]来进行匹配,字符中的汉字、数字和字母笔画弯折的部分具有丰富的笔画方向特征[9],通过小波变换可以把字符笔画方向的变化这一局部细节信息反映在频谱的高频部分,同时铭牌字符的轮廓线条存在着很多方向突变,具有丰富的形状轮廓信息,边缘方向直方图[10]可以体现字符的整体形状轮廓信息。铭牌上的内容一般是某一领域的相关术语,字符只有通过固定的排列才能构成这些术语,通过N阶马尔科夫方法[11]构建的字符排列模型可以体现出字符之间的特定排列特征。所以本文将它们融合在铭牌识别的特征提取和结果匹配中,提高铭牌字符识别的准确率。以电力设备铭牌识别实验为例,其结果也验证了本文提出方法的有效性。

1 铭牌字符预处理

在进行铭牌字符识别之前,需要对铭牌上的字符做预处理,包括字符图像的二值化、字符图像的去倾斜、以及字符图像的分割。设备铭牌的图像通常是彩色的,为了方便对字符的分割以及识别,首先要对字符图像进行二值化,本文采用全局最大方差阈值法来确定对字符图像进行二值化的灰度阈值K。设灰度图像的灰度级区间为[0,M],某一灰度级K将该区间分为两组,分别为[0,K]和[K+1,M],记为C0和C1,则这两个灰度区间之间平均灰度的方差为:

式中:μ0和μ1分别为C0和C1的平均灰度;ω0和ω1分别为C0和C1所占像素点数量与总像素点数量的比值。在[0,M]之间不断变换K的值,直到求出式(1)中δ2(K)为最大值时的K值,这个值就是对字符图像进行二值化的灰度阈值K。到此,完成了设备铭牌上字符的灰度二值化。

由于拍摄角度的原因,设备铭牌上的字符会与水平线之间存在一个微小的夹角θ。为了方便特征的提取,需要对字符图像进行去倾斜。由于铭牌上的字符是横排书写的,即从左往右书写,对字符图像分别进行x轴和y轴方向上的投影,其投影长度分别为L1和L2,然后检测y轴上灰度值为1的起始点的坐标,其到x轴的距离记为L3,设字符图像的去倾斜角度为θ,则:

对于设备铭牌上的字符,如果最左侧字符的y轴投影坐标大于最右侧字符的y轴投影坐标,则将整个字符的投影区域逆时针旋转去倾斜角θ即可,反之,则顺时针旋转去倾斜角θ即可。在进行字符图像的二值化和去倾斜之后,接下来进行字符图像的分割和归一化。设备铭牌字符的分割可分为行分割与字间分割,首先进行的是铭牌字符的行分割,对铭牌字符进行y轴方向的投影,可以得到铭牌字符在y轴方向的像素分布,在像素分布图中有一些地方为零,它们对应两行之间的空白,可以根据y轴方向的像素分布来计算每一行的宽度以及行与行之间的距离,在进行字符图像的行分割之后,再进行每一行字符图像的字间分割。与行分割类似,只需要对某一行字符图像做x轴方向的投影,可以得到铭牌字符在x轴方向的像素分布,在像素分布图中有一些地方为零,它们对应两个字之间的空白,可以根据这个空白的距离对一行字符做字间分割。对于字符图像,本文将采用线性归一的方法将其压缩为32×32的像素点阵,在归一化的过程中,若某一个方向先归一化达到32点阵,另一个方向的归一化即停止,这样可以使得在归一化的过程中不会造成字形的破坏。

2 候选字符的识别与排列

本文选取小波能量和边缘方向直方图作为铭牌字符识别的特征,它们对字符的细节、纹理、频谱有较好的表现能力,并使用这些特征训练支持向量机(SVM)分类器,通过被训练的分类器得到识别出的候选字符,并对候选字符进行排列得到最终的铭牌识别结果。

2.1 候选字符的识别

本文将预处理之后的字符图像进行小波分解,获取其在横、竖、撇这三个方向上的平均能量。将字符图像的平均能量记为Eav,则:

式中:f(x,y)表示某个字符的图像;|f(x,y)|表示该图像像素值的绝对值;M和N表示该图像的宽和高。设经过小波分解后得到的低频分量图像为A(f),它包含了字符的轮廓信息,高频分量图像为Bd,j(f),则它们的平均能量为:

式中:d=1,2,3表示横、竖、撇三个方向;j=1,2,3表示进行小波分解的次数。这样,高频分量图像就有9个能量特征,再加上低频分量图像的能量特征,就得到了一个字符图像的10维能量特征向量,即:

提取字符图像的边缘方向直方图需要先提取字符的边缘形状。本文提取字符的边缘图像使用的是Canny算子。Canny算子的实现是一个多阶段的处理过程,首先对于图像进行高斯平滑,然后对于平滑后的图像用Roberts算子进行变换,对变换后的图像,将360°的角度空间均分为72级,计算图像中边界点处法向量的方向角分别落在这72级空间中的频率,这样就得到了字符图像的边缘方向直方图向量。提取字符图像的特征之后,本文构建并训练支持向量机分类器来识别候选字符。设训练字符图像为B,其小波能量特征向量为B=(B0,B1,B2,…,B9),边缘方向直方图向量为Y=(Y0,Y1,Y2,…,Yn),待识别的字符图像为A,其小波能量特征向量为A=(A0,A1,A2,…,A9),边缘方向直方图向量为X=(X0,X1,X2,…,Xn),T1和T2为设定的阈值,则当:

同时成立时,字符B被识别为字符A的一个候选字符,候选字符可能有多个。下一步就需要对候选字符做正确排列,得到最终的铭牌识别结果。

2.2 候选字符的排列

根据铭牌所用的领域术语,构建字符排列模型,通过模型对候选字符进行正确的排列。设由k个候选字符组成的排列(m1,m2,...,mk)组成术语S的概率为P(S),根据N阶马尔科夫模型,术语S出现的概率仅仅与前面n-1个术语有关,则:

式(8)即为N阶马尔科夫字符排列模型。其中N(mi-n+1,...,mi)和N(mi-n+1,...,mi-1)分别表示候选字符排列(mi-n+1,...,mi)和(mi-n+1,...,mi-1)在所有候选字符排列中出现的次数。对这k个候选字符,根据式(8)求出其按不同排列组成不同术语的概率,并将这些概率从高到低排列,然后将组成概率最大的那个术语作为最终的铭牌识别结果。

3 实验与结果分析

本文以电力设备铭牌字符识别实验为例,选取了360张电力设备的铭牌图片作为实验样本,其中有120张为纯汉字铭牌图片,120张为包含汉字、字母、数字的铭牌图片,120张为包含字母、数字的铭牌图片。在实验样本中与OCR识别软件的对比实验结果如表1所示。

%

从表1可以看出,本文的方法在识别铭牌字符的综合准确率上比OCR软件提升了12.6%。为了进一步说明本文提出的方法的有效性,设计了两个实验,用一款OCR文字识别软件的实验结果作为对比。

实验一:识别字符数较少的设备铭牌实验(铭牌内容为“110 k V下仓线端子箱”)。

实验二:识别字符倾斜的设备铭牌实验(铭牌内容为“电池组Ⅱ”)。

从两个实验结果可以看出,本文方法可以正确识别出设备铭牌上的字符,而传统的OCR软件在实验中不能得到识别结果。

4 结论

本文提出的设备铭牌字符识别方法,以字符的小波能量和边缘方向直方图作为其特征向量,用支持向量机分类器来构建候选字符判定模型,通过字符排列模型对候选字符进行最优排列,得到最终的铭牌识别结果。相比传统OCR识别软件,识别的准确率得到了提高,更适合用于设备铭牌字符的识别。

参考文献

[1]WANG Dahan,LIU Chenglin.Learning confidence transformation for handwritten chinese text recognition[J].International journal on document analysis and recognition,2014,17(3):205-219.

[2]PAL Arpan,CHATTOPADHYAY Tanushyam,SINHA Aniruddha.Context-aware television-internet mash-ups using logo detection and character recognition[J].Pattern analysis and applications,2015,18(1):191-205.13

[3]CHIANG Yaoyi,CRAIG A.Recognizing text in raster maps[J].Geo Informatica,2015,19(1):1-27.

[4]NAMANE A,GUESSOUM A,SOUBARI E H.CSM neural network for degraded printed character optical recognition[J].Journal of visual communication and image representation,2014,25(5):120-127.

[5]CHANG J K,RYOO Seungteak,LIM Heuiseok.Real-time vehicle tracking mechanism with license plate recognition from road images[J].The journal of supercomputing,2013,65(1):353-364.

[6]RYU Sangjin,KIM In-Jung.Discrimination of similar characters using nonlinear normalization based on regional importance measure[J].International journal on document analysis and recognition,2014,17(1):79-89.

[7]ELAGOUNI Khaoula,GARCIA Christophe,MAMALET Franck.Text recognition in multimedia documents:a study of two neural-based OCRs using and avoiding character segmentation[J].International journal on document analysis and recognition,2014,17(1):19-31.

[8]PORWAL Utkarsh,SHI Zhixin,SETLUR Srirangaraj.Machine learning in handwritten arabic text recognition[J].Handbook of statistics,2013,31:443-469.

[9]MATEI O,POP P C,VĂLEAN H.Optical character recognition in real environments using neural networks and K-nearest neighbor[J].Applied intelligence,2013,39(4):739-748.

[10]王恺,李成学,王庆人,等.异态汉字识别方法研究[J].软件学报,2014,25(10):2266-2281.

车牌识别中字符识别的研究 第3篇

进入二十一世纪以来,我国科技和经济不断快速发展,汽车的普及率越来越高,已经成为人们日常生活不可缺少的主要交通工具。随之而来的交通运输问题日益严重,交通拥堵、交通事故等矛盾越发尖锐。

智能交通系统[1](Intelligent Transport System,ITS)的前身是智能车辆道路系统(Intelligent Vehicle highway system, IVHS),其将先进的信息技术、通讯技术、传感技术、控制技术以及计算机技术等有效地集成运用于整个交通运输管理体系,而建立起的一种在大范围内、全方位发挥作用的,实时、准确、高效的综合的运输和管理系统, 从而使交通设施得以充分利用并能够提高交通效率和安全保障,最终使交通运输服务和管理智能化,实现交通运输的集约式发展。

1 车牌识别系统介绍

车牌识别系统[2]主要包含获取车辆图像、车牌图像定位、车牌图像分割和车牌字符识别三个部分。

我国目前标准民用车牌格式[3]是:X1X2·X3X4X5X6X7,其中X1是汉字,X2是大写英文字母,X3X4X5X6X7是大写字母或者数字。例如:黑A·12345或者黑A·BC123等。

2 字符识别系统介绍

2.1 字符特征提取标准

字符识别[4]是整个智能交通系统ITS(Intelligence Transportation System)的最后一步,也是其主要的目的,并且所设计的系统好坏,很大程度上在于识别率的高低。汽车牌照图像经过车牌图像定位,车牌图像分割后,将归一化的单个字符提取出来进行识别。为了提高识别率和识别速度,采用了改进的BP神经网络[5]算法,并且针对中国汽车牌照号码中三种类型的字符形式:汉字、大写英文字母和数字,提出了不同的特征提取方法。

字符识别是整个车牌识别系统的关键步骤,而在许多特征中找到最重要的字符特征并提取出来是字符识别中的难点,因为车牌字符识别系统性能和精确度的高低在很大程度上取决于所选择提取特征的高效性。实验结果表明,任何一种特征都难以完美地适应于任何模式,只能根据图像的实际情况,来决定选取的具体特征。所以分类标准不一,但由诸多学者总结归纳分成以下几条。

(1)可区别性和可靠性。

(2)独立性。

(3)低复杂性。

(4)鲁棒性。

总之特征选择和提取的总体原则[6]是:应尽量减少整个识别系统的错误识别概率和处理时间。但是当两者无法同时满足时,就需要相应地平衡两者的关系,要么提高整个系统的速度,以适应实时需要,但这样会增加错误识别的概率;要么缩小错误识别的概率,以提高识别的精度,但系统会相应地增加运行时间。

2.2 13点特征法

根据阿拉伯数字和大写英文字母笔画比较少,可以提取维数较少的向量进行特征提取[7],针对于阿拉伯数字和大写英文字母采用技术比较成熟而且适应性较好的13点特征提取法[8]进行特征提取,该方法的基本思想是直接利用每个点的像素值作为特征提取的基础,统计提取出13个特征点。

13个特征点的提取分别是:首先把字符等分成大小共8等份,并且统计出每一等份内像素点的个数作为其中的前8个特征;然后将字符等分成1×3和3×1两种情况,分别统计竖直方向上中间两列和水平方向上中间两列的目标像素的个数作为接下来的4个特征,也就是画四条穿过竖直方向和水平方向的直线,统计所画4条直线所穿过的目标像素的个数;第13个特征为统计整个字符中所有目标像素的个数,将得到的这个个数作为一个整体特征,从而一共得到了关于该字符的13个特征。这样,对于每一个输入样本,输入节点个数为13个。13点特征提取法如图1所示。

2.3 改进的13点特征法

后经实验结果分析,13点特征法对于大写字母和阿拉伯数字识别率比较高,但由于汉字的结构复杂,情况多变,不能同大写英文字母和数字一样采用13点特征提取,该方法对于正确识别车牌中汉字所要提取的特征数不够,识别结果的准确率低,所以针对汉字特征提取采用基于13点特征法的改进方法,将汉字等分成共40个网格,分别计算每个网格内的像素总数,将其作为前40个特征值,由于字符全部被归一化为大小,并且根据汉字的结构特征,分别取第1、10、20、25、30、40、50行的像素累加和作为7个特征值,取1、5、10、15、20共5个特征值,最后计算整幅图像的像素总数作为一个特征,共计53个特征。样本中“黑”的二值矩阵如图2所示,根据文中提出的方法所提取的特征如表1所示。

3 实验结果

针对BP神经网络收敛速度慢,并且容易陷入局部最小点而达不到全局最小点的这个缺陷[9],引入了自适应学习速率和动量因子两种方法对BP神经网络进行了改进,从而使网络收敛到了更优点,并且减小震荡的趋势,加快了收敛速度。根据提出的字符特征提取和BP神经网络构造的方法,用Matlab对100幅车牌图像中的汉字、大写英文字母和阿拉伯数字识别进行仿真试验,识别结果如表2所示。

4 结束语

根据仿真实验结果分析,识别错误的主要原因是由于部分车牌模糊不轻,信噪比低,导致字符粘连断裂,引起错误识别。汉字结构比较复杂,在相同信噪比的车牌图像中,虽然改进了特征提取的方法,其识别率有所提高,但整体识别率还是低于字母和数字识别率。

参考文献

[1]Ichiro Masski.A Brief Hisrory of ITS[R].USA:Massachusetts In-stitute of Technology,1999.

[2]张洪刚,陈光,郭军.图像处理与模式识别[M].北京:北京邮电大学出版社,2006.

[3]陈虹.汽车车牌的自动检测与识别[D].苏州大学,2008.

[4]张忻中.汉字识别技术[M].北京:清华大学出版社,1993.

[5]韩力群.人工神经网络教程[M].北京:北京邮电大学出版社,2006.

[6]董剑军,邹明福.车牌字符的一种精判别识别方法[J].计算机工程与应用,2005(2).

[7]冯天瑾.神经网络技术[M].青岛:青岛海洋大学出版社,1994.

[8]王伟.基于BP神经网络车牌字符识别研究[D].山东科技大学,2007.

基于模型匹配法的字符识别 第4篇

模式识别的方法很多,有模型匹配法、统计模式识别法、模糊集理论识别法、神经网络识别法等。其中最常用的有模型匹配法和神经网络识别法。

本作品采用了基于特征量的模型匹配法,是传统的模型匹配法的改进,结合了统计学和数学形态学的优点。通过对数字和英文字母的分析,我们发现:将字符均匀地分成九格,每一格所包含的黑像素点总数为一个特征量,一共可以获得九个特征量,称为网格特征,不同的字符,这九个特征量是不同的。这里我们对图像作了二值化处理。但有些字符还是比较相近,因此还要提取另外一些特征:在水平方向和垂直方向三等分的地方,作水平线或垂直线穿过字符,计算每一条直线分别与字符边缘相交的次数,这样又获得4个特征量,称为交叉点特征。加起来每个字符所提取的特征量一共有13个。

在进行匹配计算的时候,一般都是采用最小距离判别函数或最近邻域判别函数,这里通过观察发现:后四个特征量具有更大的区别性,因此在识别的时候,采用了加权计算。计算式子为:

其中i为输入图像的特征量,Fi为模板的特征量,识别时,将待识别对象的特征量与所有模板的特征量逐个进行比较,计算它们各自之间的加权距离D的大小,若D值小于设定的阀值,则选取D值最小的模板作为识别结果,若所有模板的特征量与待识别对象的特征量的加权距离均大于阀值,则可能输入的不是模板中的对象,结果为无法识别。

2、Visual C++编程实现字符和手写数字识别

用V C++实现字符和手写数字识别,分为以下两个大阶段:第一、建立模板,第二、识别过程。为了简化识别处理,这里只考虑256灰度级的bmp图像。

2.1 建立模板的流程

训练样本的获取可以通过扫描仪扫描或数字摄像头拍摄后将识别对象存进计算机,保存格式为256灰度级的bmp图像,也可通过Photoshop制作相应字体的模板,然后通过“模板计算”处理函数(OnButtonTemplate)对图像进行二值化、细化处理之后,提取网格特征和交叉点特征共13个特征量,并且将该特征量暂存在digit Template[i]数组,i的数值则通过读取用户在编辑框(如图2示)中输入的模板数字值而得到,最后使用“保存数字模板”或“保存字符模板”处理函数(On Button Save Template)将这些特征量保存成外部文件,这样就方便我们的调用。

(1)输入模板数字值。在输入训练样本之后,应该在模板数字值编辑框中输入与该样本对应的数值,若训练样本是0,则应在编辑框中输入0,但当输入的是英文字母时,则要用与之对应的ASCII码,例如:A时65, B是66,以此类推。为什么要这样做呢?因为该数值指明所训练样本的特征量是哪个对象的特征量并标记它在模板文件中的位置,并且在后面的识别过程中,我们是根据该值来判断识别对象的,所以如果输入时不对应,将会导致识别发生错误。在训练样本时我们还要注意:样本只能为单个字符,即“0”、“1”、“9”、“A”、“B”等,不能为“1 2”、“A B”……由于字符识别软件是面向车牌识别而设计的,所以这里只考虑数字和大写英文字母的识别,小写的英文字母暂不接受。

(2)模板计算。在设计“模板计算”处理函数时,我们在提取特征量之前,对图像进行了二值化和细化的处理,这是因为,二值化之后,图像只用0和1来表示,对以后图像的处理带来很大的方便。细化处理,就是把二值图像中具有一定宽度的线条状区域变成一条薄线(即只有一个像素宽度),这就大大压缩了原始图像的数据量,并保持其形状的基本拓扑结构不变,这样就可以很好解决同一对象由于笔画粗细的不同而导致提取的特征量存在差异的问题,而且提高特征量的抗干扰性,从而为字符识别中特征量的提取等应用奠定了基础。

Ⅰ、二值化(Digit Binary)的程序设计思路如下:由于输入的是256灰度级的bmp图像,即图像中的每一个像素点的灰度值均在0—255之间,其中,白色为255,黑为0,中间分了256个级别。所以我们可以设置一个阀值(程序中设为120),当该像素点的灰度值大于阀值时,则为1(白底黑字的为0),反之则为0(白底黑字的为1)。

Ⅱ、细化算法的思路则比较复杂,它应满足以下条件:

(1) 将条形区域变成一条薄线;

(2) 薄线应位于原条形区域的中心;

(3) 薄线应保持原图像的拓扑特征。

下面我们来看一下细化之后的效果,如图3所示。

Ⅲ、特征量的选择和提取的思路前面我们已经作了介绍,每个样本均提取13个特征量。

(3)保存模板。当所有的样本训练完之后,就通过“保存字符模板”处理函数将其特征量保存成外部模板文件mydata.dat,若训练的是手写数字样本,则采用“保存数字模板”处理函数。两个处理函数的不同之处在于生成的文件大小不同,前者有91个特征量的长度,而后者只有10个特征量的长度。

2.2 字符识别流程

在识别之前,要先进行“打开模板”的操作,先把模板调入内存中,以方便后面的匹配工作。

从上图我们看到,“字符识别”处理函数中包含了对输入图像的预处理、特征提取、模型匹配和结果输出。这些功能集成为“字符识别”一个按钮是为了方便我们的操作,减少分步操作的麻烦。

2.2.1 图像预处理

预处理中包含了大小归一化、字符切割、二值化、细化的处理。

(1)大小归一化。由于输入的测试样本大小不一,为了与模板相匹配,我们必须进行大小归一化处理,即把它变成统一大小的图像。常用的大小归一化方法有两种:一种是将字符的外边框按比例线性放大或缩小成为规定尺寸的字符,另一种是根据水平和垂直两个方向字符像素的分布进行大小归一化。这里我采用了后者。设计思路如下:先计算字符的质心Gi和Gj:

式中c (i, j) 为1时表示该像素点为字符像素,为0时表示该像素点为背景。接着计算水平和垂直方向的散度σi和σj:

最后,按比例将字符线性放大或缩小成规定散度的点阵。

这里调用了具有该功能的函数ChangeImageSize,把图像的高度统一变成36个像素,而宽度则根据原图像的宽高比例进行变化。下面我们来看一下大小归一化之后的结果(图4所示)。

(2)字符切割。由于模板所保存的是单个字符的特征量,为了识别一串字符,就需要将每个字符的图像从整块图像中分割出来,才能够进行特征量的模板匹配。这就必须进行字符的行切割和字切割。由于这里只考虑识别一串字符的情况,所以只进行了字切割。字切割的基本方法是利用字符与字符之间的空白间隙在图像行的垂直投影上形成的空白间隙将单个字符的图像切割开来[4](如图5所示)。因为字符的笔画在竖直方向上都是连通的。这里在一般方法的指导下我将该功能设计为函数Image Cut () ,设计思路如下:

(1) 采用自上往下,自左向右逐列扫描的次序,开始时标记位flag为0;

(2) 当遇到第一个字符像素点1时,设为A (i, j) ,把i赋给要分割区域的左端标记值,把顶部标记值和底部标记值暂赋值为j,且把标记位flag赋为1,跳至下一列;

(3) 当遇到另一个新的字符像素点时,比较此时的j与顶部和底部标记值的大小关系,如果j大于顶部标记值,则将j赋值为顶部标记值,如果j小于底部标记值,则将j赋值给底部标记值,并把标记位flag赋为2;

(4) j=j+1,重复第三步,直至遇到某一列全为背景像素0且标记位flag为2,则将右端标记值赋为-1,并把标记位重新置0;到此,已经找出了要分割字符区域的最左、最右、最上和最下四个标记位置,所以就可以将该区域复制到内存中数组的特定位置保存起来,以便下一步的操作。

(5) 重复 (2) 、 (3) 、 (4) 步直至扫完所有的列。

通过上面的操作就可以将图像中的每个字符分割出来并保存到数组中的不同位置。识别时就可以将字符逐个读取出来,与模板进行匹配。这里使用标记位flag是为了标记当前所扫描的是字符间的空隙(flag=0),或是开始遇到字符像素(flag=1),或是正在扫描字符像素(flag=2)。另一个用处就是为了滤除一些存在字符空隙间的干扰噪声。例如车牌号码有时会沾上一些污渍,如果该污渍不大,经过大小归一化处理之后如果在竖直方向上只占一个像素的宽度,则当切割到该点时,由于无法执行第三步的操作,flag无法等于2,所以就无法将该污渍复制到内存中的数组,这样就可以将该点滤去,提高识别率。

(3)二值化和细化。与前面建立模板时所介绍的二值化和细化相同。这里不再重复。

2.2.2 特征量提取与模板匹配

对输入图像进行预处理之后,首先读取第一个字符,并按照前面介绍的方法提取字符的特征量,将其与所有模板逐个进行比较,计算它们之间的加权距离D。

对于印刷体字符识别功能,采用下式计算加权距离D

对于手写数字识别功能,则采用下式计算加权距离D

这里采用不同的加权系数是因为对于不同的识别功能交叉特征的区别性不同。对于手写数字识别功能交叉特征具有更大的区别性,起着关键特征的作用,所以该特征量的权重较大。

这里我们设定了一个阀值,当加权距离D大于该阀值时,则中断与该模板的比较,拿下一个模板与它进行比较,当所有模板比较完之后,找出其中加权距离最小的模板,即相似度最高的模板,则识别结果为该模板的对象。若与所有模板的加权距离均大于阀值时,则可能模板中没有该模式,识别结果为“无法识别该字符!”接着读取下一个字符,仍然进行相同的操作,直至分割出来的所有字符均处理完为止。对于印刷字符识别功能,该阀值设置得比较小,因此识别精度较高;而对于手写数字识别功能,考虑到手写数字有很大的变动范围,所以将阀值设置得比较大,这就允许测试样本的字形有较大的变动范围,不过同时也使系统无法检测出非数字的字符,所以,进行手写数字识别时务必确保输入的是数字!

另外,考虑到数字0和字母O很相似,对此特意做了如下处理:我们发现字母O的宽度显然比数字0宽一些,所以字母O的高宽比应比数字0小。通过最小加权判别法判别之后,如果结果为字母O或数字0,将它们再进行高宽比的比较,当该字符的高宽比小于1.56时,则为字母O,反之则为数字0,这样就可以很好地区别字母O与数字0。

2.2.3 输出结果。

为了让用户了解图像进行二值化和细化之后的结果,作品中开设了一个显示框(如图6所示),用来显示图像预处理之后的效果,并在该框的最下行显示识别的结果。这样我们就可以在显示框中验证识别结果的正确性。

3、实验结果分析

3.1 印刷体字符识别

通过反复的测试,该软件的识别精度比较高,可以识别不同尺寸的图像,出错的机率较低。由于本作品是采用基于特征量的模型匹配法,且采用加权距离判别法进行匹配,所以本作品的抗干扰能力较强,不仅对于清晰的图像识别效果很好,对于存在字符部分脱落或沾上泥灰等不清晰图像也能识别。由于对图像进行了细化的预处理,所以当图像沾上泥巴等污点时,可以被细化成一个像素的宽度,这就大大地减少这些干扰因素,提高识别的正确率。如果污点的干扰性较大那就另当别论(如图7所示)。

经过反复的测试,还发现模板建立的恰当与否对识别结果有很大影响:(1)字体一致与否的影响。测试时测试样本与模板的字体一样时,软件有很高的识别精度,系统也能检测出非该测试范围内的字符,提示“无法识别该字符!”。若测试样本的字符字体与模板不同,识别结果有可能会出错,不过由于车牌号码的字符字体是统一的,所以这点问题不大。(2)训练时模板大小的影响,训练时模板的尺寸最好与图像归一化之后的尺寸相匹配,即高度为34—36像素之间。尽量使训练模板的大小与测试样本归一化之后的大小一样,并且要求图像的边缘只留一个像素的空白,这是为了与识别过程中字切割相匹配,这样才有比较高的识别精度。否则测试时出错机率较大。所以建立模板的过程也是很关键的,一个好的模板会使识别精度提高很多。

3.2 手写数字识别

该系统也基本达到要求,可以进行手写数字的识别(如图8所示)。对于各种不规范的写法均能识别。

当然,一个好的模板是很重要的,这就需要通过反复训练和调试而得到,应选择最具有一般性的手写数字做训练样本,其大小与前述相同。

4、结束语

本文介绍了基于特征量的模型匹配法,并且将该方法应用于字符和手写数字的识别过程中,采用Visual C++编程实现。实验表明,采用该方法的识别效果还是不错的,识别速度也很快。在图像信息的预处理过程中,采用了图像大小的归一化算法和细化的算法,因此对于不同大小的图像和不同粗细笔画的字符都有相同的识别效果,从而提高了识别率;在特征量的提取过程中,我们提取了两种统计特征:网格特征和交叉特征,从而简化了识别时的比较量,并且采用最小加权距离判别法的识别技术,既提高识别速度,又提高识别精度;另外又对个别特殊的字符(例如数字0和英文字母O)采用了特殊的处理,从而可以很好地区别这些字符。在手写数字识别功能方面,通过将手写数字训练成模板,可以实现对应手写数字的识别。不过,本作品在实际的应用过程中仍有许多需要完善的地方。例如:怎样从一幅图中将车牌号码所在区域剪切出来?车牌号码中含有汉字,目前本作品还不能识别汉字。

参考文献

[1]何斌, 马天予, 王运坚等.Visual C++数字图像处理 (第二版) [M].北京:人民邮电出版社.2002.4-36.

[2]求实科技, 张宏林.Visual C++数字图像模式识别技术及工程实践[M].北京:人民邮电出版社.2003.219-251.

[3]沈庭芝, 方子文.数字图像处理与模式识别[M].北京:北京理工大学出版社.1998.125-150.

基于评分模型的车牌字符识别方法 第5篇

车牌识别技术是指检测目标车辆以及自动提取目标车辆的牌照信息进行处理的技术。这一技术广泛应用于道路交通的监控和管理中, 如电子收费、城市交通监控等场合。因此, 对车牌识别技术的研究已经成为智能交通系统的核心内容之一, 它是实现交通管理自动化的重要环节[1]。车牌的识别主要可分为几个大的部分:目标车辆的检测, 车牌的定位, 车牌的校正, 车牌字符的切割以及车牌字符的识别。

车牌字符的识别是车牌识别的最后一个步骤, 也是十分重要的一个部分。车牌字符的准确识别是建立在车牌的准确定位和字符准确切割的基础上的。车牌字符识别的常用方法一般有两类, 一种是基于神经网络[2]的方法, 此种方法的优点是具有较强的容错性, 但是在实际应用中存在过拟合、局部最优的缺点。另一种方法是基于模板匹配[3]的方法, 此种方法具有较快的识别速度, 尤其对二值图像速度更快, 当车牌图像较清晰, 并且前面的预处理工作做得比较好时可以获得较高的识别率[4]。但是对于低像素、模糊、字符混淆严重等之类的车牌字符则只有很低的识别率。

传统的基于模板匹配的车牌字符识别算法对噪声有一定的敏感性, 抗噪声干扰能力弱[5], 对字符的风格具有不适应性, 而实际的应用中, 环境是具有一定的复杂性的, 如光照的影响[6], 字符的清晰程度以及字符的大小, 这些因素都会影响字符识别的准确性以及识别的速度, 从而达不到实时性的要求[7]。本文提出了一种基于评分模型的车牌字符识别算法。该算法首先建立车牌字符的特征模板库, 然后对切割出来的字符进行二值化, 则字符图像上只剩下白点与黑点, 将整个字符图片根据模板划分为若干的小方格, 每个方格根据白点的数目划分为几个等级, 当与标准模板进行匹配时, 按照本文设计的评分系统机制将字符识别出来。此方法由于模板内方格的等级划分以及与模板匹配时并不是单纯分为两类不匹配与匹配, 而是通过评分系统机制加分或者减分, 所以在实际应用中对于低像素、模糊、字符混淆严重等不理想的车牌字符的识别具有更高的准确性和更快的识别速度。

1 基于评分模型的车牌字符识别算法原理

1.1 传统的模板匹配法分析

模板匹配是一种度量输入模式和已建好的标准模板之间的相似性的有效方法之一, 该方法的过程是首先建立好标准模板库, 然后将输入字符与标准模板进行比对, 由此得到与标准模板之间的相似性大小[8]。其实质是度量输入模式与样本之间的某种相似性, 取相似性最大者为输入模式所属的类别。以二维图像的处理为例, 相关匹配算法如下:

设输入的字符用输入函数f (x, y) 表示, 标准模板用函数F (x, y) 表示, 在相关器中比较后输出为T (x, y) 。由于随机变量用相关量x1, x2表示, 此时, 相关器输出为:

当x1=x2, y1=y2时:

当f (x, y) =F (x, y) 时:

上述的式 (2) 和式 (3) 即为输入字符的自相关函数。T (x, y) 在T (0, 0) 处出现主峰, 在其他的标准字符处出现一些副峰, 只要这些副峰不等于主峰, 就可选取适当的阈值将其鉴别, 从而识别出输入字符[9]。

由于车牌字符的个数是有限个的, 待分类的的类别比较少, 只有37个汉字、26个大写字母以及10阿拉伯数字[10], 所以比较适合模板匹配算法[11]。传统的模板匹配算法以及一些改进的模板匹配算法基本上都是在一个分类器里将待识别字符图片的二值图与标准模板一个一个像素进行比较匹配, 然后计算其相似性, 这样的方式导致了对低像素的车牌字符图片识别时抗干扰的能力比较差。通过观察大量的低像素以及模糊、字符混淆严重等不理想的车牌字符图片, 我们发现大部分的这类车牌字符图片得出来的二值图在边缘虽然凹凸不齐, 或者有些断掉一截, 但是大部分的这类车牌字符图片的二值图里的字符中心主干部分白点像素都是保存得很完整的, 如图1所示的几个例子。图中不理想字符图片的二值图与标准模板进行了对比。

因此, 在本文的算法中虽然也是将待识别字符放到一个分类器中进行模板匹配, 但是匹配的规则不再遵循传统的方式。首先对字符图片进行划分方格, 本文算法中每个小方格为4×4像素, 根据方格中的白点数目划分为几个等级, 匹配的时候不再是白点像素之间的匹配, 而是方格之间等级的匹配, 然后再根据匹配的结果进行打分, 加分或者减分。这样做之后便弱化了每个白点像素在模板匹配时对于整个相似性的作用。对于大多数低像素、模糊、字符混淆严重等不理想字符图片, 中心主干的白点像素保存得相对比较完整, 所以划分方格时中心主干部分的方格所处于的等级就会比较高, 在与标准模板进行方格等级匹配时, 完全匹配的可能性很大。因此, 本文设计了一套评分模型, 此模型是通过大量的实验观察与对比总结出来的, 通过此评分模型在模板匹配时进行打分, 通过加高分强化待识别字符与标准模板的中心主干部分的方格完全匹配时对于整体匹配的作用。这样, 本文的算法不仅克服了传统模板的抗干扰性差的缺点, 而且提高了对低像素、模糊、字符混淆严重等不理想车牌字符的识别率。

1.2 标准模板库的建立

在车牌字符识别中需要识别的字符是有限个的, 而且数量不多。我国的车牌字符在排列上都是有一定的格式的, 牌照的字符一共有7个, 第一位是各省或者直辖市的简称, 这些简称是汉字。而剩下的六个字符不是大写字母就是阿拉伯数字, 其中第二位肯定是大写字母, 而第三位和第四位是大写字母或者阿拉伯数字, 最后的第五、六、七位一般就是阿拉伯数字。如此, 全部的字符中汉字共有37个, 大写字母有26个, 阿拉伯数字有10个, 字符的总数不超过100个。

根据上文所述, 字符的标准模板可分为3类, 分别为汉字、大写字母、阿拉伯数字。标准模板库是通过每个字符采集一组标准的字符二值图片, 然后提取特征来建立的。在本文的算法中, 采集来的的标准字符统一归一化, 宽高的像素点分别为20×40, 然后将标准字符分割成若干个4×4像素的小方格, 每个方格里的白点个数为此格子的特征, 为了提高识别的效果, 免除干扰, 提高字符识别的容错性, 本文根据方格中的白点数目划分为4级, 等级分别为0、1、2、3, 级别越高则白点数越多。如图2中, 显示的是标准字符“2”量化级数后的特征。可见在字符的中心主干部分的方格的等级都是比较高的。

1.3 基于评分模型的车牌识别算法

在进行模板匹配时, 输入的字符图片首先要归一化为标准模板图片的大小, 然后如制作标准模板时一样, 须分割成若干个小方格, 再按照格子中的白点数目进行量化级数, 等级与标准模板一样分别为0、1、2、3。这样将得到一个与标准模板的行数、列数相等的矩阵, 矩阵中的元素取值只能是0、1、2、3这四个离散数值, 用此矩阵与标准模板通过评分模型进行模板匹配。

设输入的字符用矩阵M表示, 而标准模板也可以看作一系列的矩阵, 所以整个标准模板为一集合, 集合的元素为矩阵, 可表示为X={M1, M2, …, Mh}。假设输入矩阵M和标准矩阵Mk (Mk∈X) 都是m×n矩阵。输入矩阵M中的元素用aij表示, 而标准矩阵Mk中的元素用bij表示, 其中aij和bij的下标数值i∈{1, 2, …, m}, j∈{1, 2, …, n}。

输入矩阵M和集合X中的的每一个标准矩阵通过评分模型进行模板匹配, 设输入矩阵M和标准矩阵Mk的匹配相似度用Sk表示。由于输入矩阵和标准矩阵的取值都只能是0、1、2、3, 所以矩阵匹配时出现的情况也只有16种, 输入矩阵M和标准矩阵Mk的对应元素一一进行匹配, 设匹配后的矩阵用Ck表示, 矩阵Ck跟输入矩阵M和标准矩阵Mk一样为m×n矩阵, 里面的元素用cij表示。元素cij的取值是根据输入矩阵M和标准矩阵Mk的对应元素的值匹配比较, 然后按照评分模型进行打分得出的, 正数表示加分, 负数表示减分。此评分模型是通过大量的实验对比, 然后按识别的效果进行不断的调整, 最后才得出的, 评分模型如下式:

①当aij=0或1时:

②当aij=2或3时:

由上述式 (4) 和式 (5) 可知, 对于输入模板M中的的元素根据其数值可分为两类, 第一种情况是取值为0或1, 这数值说明此类格子中的白点数目比较少, 对整体模板匹配的影响较之等级为2或3时的情况小, 所以当完全匹配时, 匹配数值为1, 而第二种情况等级为2或3时, 完全匹配的数值为2。

通过式 (4) 和式 (5) 的匹配评分规则, 输入矩阵M和标准矩阵Mk中元素匹配的16种情况就可以得到, 如表1所示。

在输入矩阵M和标准矩阵Mk中元素匹配前, 其相似度Sk置为0, 当开始元素匹配后, 每一项元素匹配通过查询匹配评分规则表得到匹配数值, 例如, 如果输入矩阵M中的某一元素aij的值为1, 而标准矩阵Mk中相对应的元素bij的值为3, 那么通过表1查询可得匹配数值为-1, 则相对应的相似度Sk减1。输入矩阵M和标准矩阵Mk中元素匹配后, 将得到一个相对应的匹配结果矩阵Ck, 这是和输入矩阵M和标准矩阵Mk一样的m×n矩阵。将相对应的矩阵Ck里面的元素相加在一起就可以得到输入矩阵M和标准矩阵Mk之间的相似度总分数值Sk, 则:

输入矩阵M与所有标准模板中的矩阵一一分别匹配完后, 得到相对应的相似度总分数值集合为:

集合Y中的元素全部为整数, 其中值最大的元素相对应的标准模板即为字符识别的最终结果。算法的流程如图3所示。

本文通过分割方格且进行等级量化降低了噪声对模板匹配的干扰, 使得输入字符中的某一些突兀噪点对识别的影响更小, 而模板匹配时通过匹配评分规则表得到不同的或正或负的匹配数值来控制相似度总分, 让识别算法具有更高的容错性。

2 实验结果与分析

本实验主要针对传统的基于模板匹配的车牌识别法和本文提出的基于评分模型的改进的车牌识别法对各种不同的车牌字符进行识别比较。硬件环境:2 GB内存, Intel Core2 Duo CPU, 主频:2.20 GHz。本文的车牌字符图片的来源是从固定的摄像头拍摄的视频中截取出来的, 为了测试本文算法对各种环境的车牌字符识别的有效性, 选取几个天气有所不同、一天里在不同的时间点里截取车牌字符图片。视频中环境的不同, 会导致出现一些模糊、缺块等不清晰以及不明朗的字符图片, 用来进行实验的车牌字符图片会尽量选取这类图片, 而且所有的字符图片是低像素, 最低可为20×40像素。由于全部汉字的样本在现实拍摄中比较难获得, 所以一些汉字样本是从网络上搜集而来。最终获得的实验数据可以分为三类, 分别为汉字、大写字母和阿拉伯数字。其中不同的汉字共有37个, 而每个汉字的样本有20张, 汉字样本一共有740张;大写字母有26个, 阿拉伯数字有10个, 每个大写字母或数字的实验样本有100张, 一共3600张;所以全部字符样本一共有4340张。实验对比的结果由表2所示。

由表2可以看出, 本文算法的识别率是高于传统的模板匹配算法的。同时表3给出了几种不同的方法在实验时4种字符类别中的字符图片识别的平均时间。实验表明本文算法通过划分方格减少了匹配时所需要的匹配项, 传统模板匹配法是白点间的匹配, 而本文算法是16个白点为一个整体进行等级匹配。虽然比传统模板匹配法多了划分方格的时间花销, 但是总体的时间花费还是比其少的。所以说本文的算法运算简单, 易于实现, 不仅识别率高于传统的模板匹配算法, 而且平均的时间花销也是比其低的。

3 结语

针对传统的基于模板匹配的车牌识别算法以及一些改进的算法对于低像素、模糊、字符混淆严重等具有缺陷的不理想车牌字符的低识别率, 本文提出了基于评分模型的车牌识别算法。该算法中将字符模板分成若干个方格, 每个方格中根据白点的数目分成若干个等级, 在识别匹配时, 待识别字符图片与字符模板相对应的方格分别进行等级匹配, 根据等级差异, 按照本文的评分模型打出相应的分数, 有加分、减分或者给零分, 然后将分数相加, 最终得到识别结果。实验结果表明, 该算法运算简单, 易于实现, 算法的复杂度较低, 所以运算的效率比较高, 识别速度快, 能够满足实时性的需求, 而且该算法对于车牌字符的识别很有效, 识别率较高。然而, 所提算法对于一些扭曲或者倾斜的车牌字符具有较低的识别率, 而且由于汉字的复杂程度高, 所以对于汉字的识别率并不是很高, 提高这方面的字符的识别率将是下一步工作的研究重点。

参考文献

[1]Barroso J, Dagless E L, Rafael A, et al.Number Plate Reading Using Computer Vision[C]//Dagless EL, Proceedings of IEEE International Symposium on Industrial Electronics, Portuugal, 1999:385-388.

[2]李晓斌.一种改进BP神经网络的车牌字符识别方法[J].重庆电子工程职业学院学报, 2009, 18 (2) :90-94.

[3]郭晓松, 孔祥玉, 杨必武.基于连通域的模板匹配法用于字符识别的算法研究[J].计算机工程与应用, 2002 (12) :46-47.

[4]孙炎增, 张前进.车牌字符识别技术的研究与实现[J].微电子学与计算机, 2008, 25 (6) :101-104.

[5]崔政, 李壮.两种改进的模板匹配识别算法[J].计算机工程与设计, 2006, 27 (6) :1083-1085.

[6]万燕, 刘伟.基于低质量图片的两级车牌字符识别算法[J].计算机应用与软件, 2012, 29 (11) :281-284.

[7]Gao Qian, Wang Xinnan, Xie Gongfu.License Plate Recognition Based On Prior Knowledge[C]//IEEE.International Conference on Automation and Logistics.Jinan:IEEE, 2007:2964-2968.

[8]张晶, 李志敏.一种改进的自适应模板匹配法[J].微计算机信息, 2008, 24 (9) :166-167.

[9]莫玉龙, 马俊莉.一种基于改进模板匹配的车牌字符识别方法[J].小型微型计算机系统, 2003, 24 (9) :1670-1672.

[10]万燕, 李晓圆, 周增刚.基于形状上下文的低质量车牌字符识别方法[J].计算机应用与软件, 2013, 30 (5) :267-270.

基于多模板匹配的车牌字符识别算法 第6篇

字符识别是车牌识别系统的最后的一个关键模块, 也是决定整体识别率的最重要的一个方面, 目前常用的车牌识别方法有:模板匹配算法、统计特征算法、神经网络算法和支持向量机算法等, 其中尤以模板匹配算法应用最为广泛。但是传统的模板匹配算法仍存在以下不足之处: (1) 计算量大, 执行匹配运算的次数, 随着原图的增大而增多, 匹配效率不高。 (2) 对字符断裂, 偏移的情况, 识别率不高。 (3) 抗噪性比较差。原图中的噪点对结果有很大影响。

本文采用一种改进的模板匹配算法:

1.1 由于定位和分割的不准确, 导致字符可能存在右偏或左偏的现象, 本文提出了多模板匹配的思想, 通过把标准模板分为三类:一类正常的标准字符, 一类字符偏左和一类字符偏右, 在这三类模板上进行匹配。

1.2 对模板和待测字符进行分块, 将模板和待测区域都从中心分成相等四块区域, 在一块小区域内进行模板匹配, 一旦搜索其中的一个分块差别很大, 则停止匹配。

2. 多模板匹配

传统模板匹配算法抗干扰能力差, 只是选用了一些标准的字符作为模板, 然后选取平均值, 这样很难适用于实际环境中的字符识别。如汽车牌照识别, 字符分割时常会出现分割不准确, 或者定位的时候对车牌字符的左右边界定位不准造成字符左右笔画缺失等, 如图1, 2所示, 碰到这些情况传统的模板匹配算法就很难分辨。。我们针对此问题提出了一种改进的模板匹配算法:多模板匹配算法。

2.1 多模板库的构建

运用多模板匹配进行车牌字符识别的关键是多模板库的构建, 直接影响到车牌的多模板匹配最终识别率, 本文通过收集445张图片进行实验发现, 字符图片在左右笔画严重缺失的情况下, 运用传统模板识别方法, 其识别正确率非常低, 受此启发, 本文通过存储一些相互之间有一定差异, 同时又具有一定代表性的合格图像来构建多模板库。例如, 可以将“闽”字细分为整体偏左、整体偏右和正常这三种情况, 在建立模板库的时候, 为了保证字符不丢失其字符特征, 其具体方法如下:

首先载入正常的标准模板:如图3 (a) 所示:

由于本文选取标准模板大小为144×288, 所以采用在标准模板的基础上左移30个像素构建整体偏左的模板库, 这样做是为了不丢失其作为模板的基本特征:其构造后的图像如图3 (b) 所示:

同样在标准模板的基础上右移30个像素构建整体偏右的模板库, 其图像如3 (c) 所示:

多模板库的构建是为了尽可能的保证原有字符的特征, 而又能构造具有差异性的模板库。图4是多模板库图片示例:

2.2 基于分块的多模板匹配

由于多模板匹配在算法执行上存在多次匹配, 所以其识别时间和效率不是很高, 尽管现在对硬件设备处理速度的要求已经变得越来越宽松了, 然而为了进一步提高系统的实时性与识别效率, 本文提出一种基于分块匹配的思想来加速匹配。

其原理是:以待识别字符的几何中心为原点, 以过原点的水平线、垂直线将字符分成4个象限。从第一象限开始进行模板匹配, 然后依次对二三四象限进行匹配。如果第一象限匹配后与模板差别较大, 则停止匹配。

基本算法如下:设待处理字符的二值化图像为:{F (i, j) , i=1, 2……, n, j=1, 2, ……, m}, 模板的二值化图像为{T (i, j) , i=1, 2, ……, n j=1, 2, ……, m}, 且各F (i, j) , T (i, j) 取值为有图像的点取“1”, 没有图像的点取“0”。匹配系数为:

若Pk<0.5则继续搜索下一个模板, 若Pk>0.9时为最大时, 即为所要匹配的字符。

该种算法在多模板匹配保证了字符识别准确率的前提下, 通过改变匹配模板区域大小, 对模板进行分块, 可以减少了模板内像素数量和搜索时间, 准确的找到匹配的目标, 较好的解决了匹配的准确率与运算量之间的矛盾。

3. 实验及结果

本文的编程环境为MATLAB7.0, 测试图像为随机收集的445张车牌图像, 其中由于定位和分割不准确导致汉字“闽”左边出现字符笔画丢失的有35张, 其图像示例如图5所示:

通过传统的模板处理方法进行处理, 其结果如图6所示:

从图6中可以看出, 运用传统的模板匹配算法, 其车牌汉字“闽”被错误识别成了“晋”字, 尽管其他字符笔画完整的能被正确识别, 但是仍然影响系统的最终识别率。

运用本文的多模板匹配算法, 其结果示例如图7所示:

从图中可以看出, 运用多模板匹配算法, 能有效的去除字符笔画左右缺失带来的干扰, 能有效的识别出正确的字符, 而且其时间开销58ms相对于传统模板匹配的59ms还少。其最终识别结果如表1所示:

从实验结果可以看出, 由于字符笔画缺失严重, 传统的模板匹配算法不能有效的识别出这些字符, 从表1中可以看出本文的基于分块的多模板匹配算法能将识别率从25.7%提高到94.3%, 该算法不仅能大大提高识别的正确率, 而且还能有效的节约系统时间, 比传统的模板匹配算法减少了大概10ms的处理时间, 提高了系统性能。

但是仍然有两张图片识别不出来, 这主要是模板库的构建仍然不够全面和丰富, 通过改进模板库的构建以达到更好的识别效果将是本文下一步所要做的工作。

参考文献

[1]Li C.L.Hui KC.Feature recognition by template matching[J].Computers-Graphics, 2000, 24:569~582

[2]吴伟伟、王小红、周亚南.字符识别中两种改进的模板匹配算法[J].传感器世界.2008.6

[3]马俊莉、莫玉龙、王明祥.一种基于改进模板匹配的车牌字符识别方法[J].小型微型计算机系统.2003 vo1.24 No.9

基于协同神经网络的车牌字符识别 第7篇

1 车牌字符识别原理

车牌字符识别是字符识别技术的一个分支,是智能交通系统的重要组成部分。车牌字符识别的任务是将车牌图片上的7个由汉字,数字和大些英文字符组合而成的字符图片识别成字符,相关字符如图2。[1]

车牌字符识根据识别对象分类属于有限样本的印刷体脱机字符识别,常用的方法有模板匹配字符识别法,人工神经网络字符识别和特征统计匹配法等。[2]模板匹配字符识别算法是将待识别字符与系统中已收录的标准字符样本进行像素级别的逐一匹配,通过匹配度的高低判定待识别样本。字符特征识别对待识别字符进行字符布局,结构,笔划等特征进行分析,通过特征的分析结果与系统字符库中的样本进行比对,得出识别结果。人工神经网络以人脑识别物体的原理为依据,构建一个与人脑识别过程相似的网络系统。该网络经过训练后对各字符样本的特征极为敏感,能够对待识别对象在较短时间能做出判断,得出识别结果。

在实际应用中,车牌识别算法远达不到理想状态下的性能,单独采用上述算法中的任何一种均难以取得较好的效果,个别情况乃至各种技术的组合都难以奏效。车牌识别率不高的主要原因是有效信息不足或缺失和噪声太大等失真,原因包括由天气、光线、背景环境、摄取角度、车牌污损等,图像在采集过程中存在不同程度的信息损失和图像变形;个别字符间的高相似度严重使得样本特征不易提取和区分;图像预处理导致的图像有效信息弱化,乃至消失等,如图3。因此,如何保证待识别图像信息的完整性是高效识别字符的关键。

2 协同神经网络

20世纪70年代,德国科学家H.Haken教授在斯图加特大学冬季学期演讲中首次引入协同学(Synergetic)的概念。20世纪80年代末,协同学原理被引入计算机科学和认知科学,基于协同学的神经网络正式提出。[3]

2.1 协同神经网络原理

协同神经网络(Synergetic Nerural Network,SNN)是一种竞争性网络。根据协同学将模式识别过程与模式形成过程视为同一过程的原理[3],系统将根据待识别对象q和样本构造一系列的序参量,让序参量在一个动力学过程中进行竞争,最终取胜的序参量将驱使整个系统进入一个特定的有序状态,使得q从中间状态进入某个原型模式止中,完成整个系统的宏观质变。整个过程可描述为q(0)q(t)vk。忽略涨落力F(t)和暂态量,势函数表达式如式(1),

对应的动力学方程为式(2):

式中q是以输入模式q(0)为初始值的状态向量;为注意参数,其值为正数时可q指数增长;vk为原型模式向量,满足归一化和零均值条件,即式(3)和式(4);

vk+为vk的伴随向量,B和C为指定系数。

在势函数表达式中,各项的含义为:定义在势能面上各原型模式的极小值,每个极小值的深度由注意参数λk决定定义了各原型模式之间的竞争并决定各原型模型吸引域间的边界,用于辨别多个模式,这些靠参数B来定义;是抑制第一项增长的限制项,由常数C来定义。V的上述结构决定了协同系统动力学过程的各可能状态。

Haken在系统中引入了系统动力学中序参量的概念,定义为ξk,用于描述q在最小二乘意义下vk上的投影,即可把q分解为原型向量vk和剩余向量w,如式(5)

定义其伴随向量如式(6)

由式(5)和式(6)可得(vk+q)=q(+v k),将式代入,根据正交关系可得序参量ξk如式(7)

将序参量代入式可得相应序参量的动力学方程和势函数如式(8)和式(9)

当系统演化至序参量的动力学能量耗尽时,就是符合式(10)的情况下

式(11)中此时系统将处于稳定状态。

2.2 协同神经网络的构建

根据上述协同神经网路的原理,构造Haken网络结构,将序参量的动力学方程离散化为式(12)

式中为迭代步长离散系统神经网络的稳定性主要取决于r的大小。通过上述处理,Haken网络转化为三层前向网络的形式,如图4所示。

设原型模式数为M,状态向量与特征向量的维数为N,为满足原型模式之间线性无关条件,M£N,则网络输入层的神经元数为N,输出层的神经元个数为N,中间层的神经元个数为M。从网络的输入单元j到中间层k的连接权值,为伴随向量v+kj,该伴随向量v+kj通过网络的训练获得;中间层k到输出层单元l的连接权值,为原型向量vlk,通过网络的训练获得[4]。

协同神经网络的运行过程分为两个阶段:首先是网络学习阶段,然后是网络识别阶段,其运行步骤包括以下八步:

1)网络学习阶段

(1)选择网络的训练模式,将训练模式向量化;

(2)计算出满足归一化和零均值条件的原型模式向量vk,即网络中间层到输出层的连接权值;

(3)求出原型向量vk的伴随向量vk+,并存储伴随向量矩阵,从而获得网络输入层到中间层的连接权;

2)网络识别阶段

(4)网络输入层读入待识别模式的特征向量q(0),输入模式的特征向量q(0)满足归一化和零均值条件;

(5)输入层模式特征向量q(0)与网络权值相乘,即ξk(0)=vk+q(0),求出网络中间层序参量ξk的初始值;

(6)网络中间层的序参量ξk按式(5—14)描述的动力学方程进行演化;

(7)判断序参量ξk(t)演化过程是否稳定,若演化过程已稳定,则转第八步;否则,转第六步,序参量ξk(t)继续进行动力学演化;

(8)将演化稳定的序参量投影到网络的输出层,按式(13)进行投影;

从而实现网络的联想功能,最终完成协同神经网络的识别过程。

3 识别实验

我国现行的02式车牌字库样本包含40个汉字,26个大写英文字母和10个数字,总共76个,样本如图5所示。相对于数字和字母而言,汉字结构比较复杂,以脱机方式识别难度较大,且识别原理相同,故以34个省、自治区、直辖市简称的字符为识别样本进行实验,实验的软件平台采用Matlab2009a,实验结果将分别与BP神经网络(BPNN)和Hopfield神经网络(HNN)的识别效果进行比较。

图像样本分割为34个18×32的二值化图片,采用平衡参数协同神经网络,平衡参数λk均设为1,迭代步长求得各序参量初值ξ(0)如下:

3.1 信息缺失字符的识别实验

信息缺失是干扰识别效果的极为重要的因素,主要表现为字符不完整,多数由于图像采集和字符分割预处理过程所导致的,如图6。该待识别样本由于车牌的倾斜校正处理使得走字底部分造成残缺。经过约110轮的迭代,获胜模式为“辽”,识别所需时间为0.036287秒,迭代过程如表1,图7显示了竞争过程中各序参量的变化,识别结果图8,各神经网络的识别结果及开销对对比如表2。

3.2 噪声干扰字符的识别实验

噪声干扰也是图像识别中主要的干扰因素,主要源于图像采集和二值化预处理过程,如图9,该字符由于车牌污损导致字符布满噪声。经过约96轮的迭代,获胜模式为“浙”,识别所需时间为0.035126秒,迭代过程如表3,图10显示了竞争过程中各序参量的变化,识别结果图11,各神经网络的识别结果及开销对比如表4。

结果表明,协同神经网络识别效果最好,与原型模式完全一致;Hopfield神经网络虽也识别,但识别结果存在少许失真;BP神经网络则识别错误。在时间开销方面,协同神经网络需要迭代的次数较多,但用时最短,Hopfield神经网络迭代的次数较少,但用时较多。

经过对400个车牌样本的识别,识别结果的统计如表5,各项数据充分表明了协同神经网络优异的识别性能。

4 结束语

协同神经网络是协同学在模式识别方面的重要应用,该文介绍了协同神经网络的原理,以Matlab为平台实现了网络模型,并以车牌汉字为例进行实验。大量的实验结果表明,Haken协同神经网络比BP神经网络和Hopfield神经网络具有更好的识别效果,充分表明了协同神经网络在字符识别方面的有效性。但是,实验结果也表明,经典的Haken神经网络对于外形酷似的字符,如字符“”与字符“”、字符“”与字符“”等,仍不能进行有效精确识别,有待进一步的挖掘和提高。

摘要:字符信息缺失和噪声干扰是车牌字符识别的主要困难。研究从还原车牌图像有效信息完整性的角度,介绍了协同神经网络的原理,实现了网络模型,并以预处理后的二值化字符图像为试验对象进行识别实验。实验结果表明该网络具有良好的识别性能。

关键词:协同神经网络,车牌字符,字符识别

参考文献

[1]公安部.GA36-2007,中华人民共和国公共安全行业标准—中华人民共和国机动车号牌[S],2007.

[2]刘静.几种车牌字符识别算法的比较[J].电脑与电信,2008(8):72-73.

[3]Haken H.Synergetic computers and cognition:a top-down approach to neural nets[M].Berl in:Springer-Verlag Berlin and HeidelbergGmbH&Co.K,1991.

本文来自 99学术网(www.99xueshu.com),转载请保留网址和出处

【字符识别系统】相关文章:

光学字符识别08-14

联机手写字符识别09-14

字符分割06-08

字符设备07-10

字符叠加08-11

字符检测09-15

字符设备驱动程序总结07-10

c语言字符串与数组06-09

行为识别系统06-10

系统识别技术07-23

上一篇:还原能力下一篇:集成与共享