📄 +
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0054)http://www.china-pub.com/computers/emook/0382/info.htm -->
<HTML><HEAD><TITLE>基于神经网络的车牌照字符识别</TITLE><!-- #BeginTemplate "/Templates/emook1.dwt" --><!-- #BeginEditable "doctitle" --><!-- #EndEditable --><!-- #BeginEditable "dianji" -->
<SCRIPT src="基于神经网络的车牌照字符识别.files/counter.html"></SCRIPT>
<!-- #EndEditable -->
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<STYLE type=text/css>.line {
LINE-HEIGHT: 150%
}
.font1 {
FONT-SIZE: 14pt
}
A:link {
COLOR: blue; TEXT-DECORATION: none; A: visited {
TEXT-DECORATION: none
}
A:active {
BACKGROUND-COLOR: #c49800; TEXT-DECORATION: none
}
A:hover {
BACKGROUND-COLOR: #c49800
}
FONT {
FONT-SIZE: 9pt
}
SPAN {
FONT-SIZE: 9pt
}
P {
FONT-SIZE: 9pt
}
TABLE {
FONT-FAMILY: "宋体"; FONT-SIZE: 9pt
}
TD {
FONT-FAMILY: "宋体"; FONT-SIZE: 9pt
}
DIV {
FONT-FAMILY: "宋体"; FONT-SIZE: 9pt
}
H1 {
FONT-FAMILY: "宋体"; FONT-SIZE: 11pt; FONT-WEIGHT: bold
}
H2 {
FONT-FAMILY: "宋体"; FONT-SIZE: 11pt; FONT-WEIGHT: bold
}
H3 {
FONT-FAMILY: "宋体"; FONT-SIZE: 11pt; FONT-WEIGHT: bold
}
H4 {
FONT-FAMILY: "宋体"; FONT-SIZE: 11pt; FONT-WEIGHT: bold
}
</STYLE>
<SCRIPT language=JavaScript>
<!--
function CheckPingJia()
{
if (document.pinglunform.pingjia.value.length==0)
{
alert("请您务必填写评价内容!");
return false;
}
else
{
//alert("your advice has been adopted !" +document.pinglunform.pingjia.value );
document.pinglunform.submit();
return true;
}
}
// -->
</SCRIPT>
<META content="MSHTML 5.00.2614.3500" name=GENERATOR></HEAD>
<BODY bgColor=#ffffff>
<TABLE align=center border=0 cellPadding=0 cellSpacing=0 width=647>
<TBODY>
<TR>
<TD colSpan=16 width=647>
<TABLE border=0 cellPadding=0 cellSpacing=0 width="100%">
<TBODY>
<TR>
<TD align=right width="20%"><IMG height=70
src="基于神经网络的车牌照字符识别.files/newLogo.gif" width=103></TD>
<TD vAlign=bottom width="79%"><IMG height=60
src="基于神经网络的车牌照字符识别.files/emook_center.gif" width=477></TD>
<TD vAlign=bottom width="1%"> </TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD colSpan=16 width=647>
<TABLE border=0 cellPadding=2 cellSpacing=0 width="100%">
<TBODY>
<TR>
<TD height=8 rowSpan=2
width="23%"> </TD>
<TD align=middle bgColor=#b9a8ff height=1 width="73%"><FONT
color=#ffffff><IMG height=0 src="基于神经网络的车牌照字符识别.files/point.gif"
width=1></FONT></TD>
<TD height=8 rowSpan=2 width="4%"> </TD></TR>
<TR>
<TD align=middle bgColor=#330066 width="73%"><FONT color=#ffffff><!-- #BeginEditable "title" -->基于神经网络的车牌照字符识别 作者:夏寒 发布时间:2000/11/03<!-- #EndEditable --></FONT></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD colSpan=16 height=25 width=647> </TD></TR>
<TR>
<TD align=middle colSpan=16 width=647></TD></TR>
<TR>
<TD align=middle colSpan=16 height=22 width=647>
<TABLE align=left border=0 cellPadding=5 cellSpacing=0 width="95%">
<TBODY>
<TR bgColor=#e6e6e6>
<TD><FONT size=2>文章摘要:</FONT></TD></TR>
<TR>
<TD><!-- #BeginEditable "summary" --><SPAN class=line><SPAN
class=line> 本文介绍了字符识别的各种方法,重点讨论了用神经网络方法对车牌照字符的识别,用MATLAB完成了对车牌照数字识别的模拟,最后给出实验结果。<BR> 关键词:BP神经网络 模式识别 MATLAB</SPAN></SPAN><!-- #EndEditable -->
</TD></TR></TBODY></TABLE><FONT size=2><IMG height=1 src="" width=1>
</FONT></TD></TR>
<TR>
<TD colSpan=16 width=647>
<HR align=left SIZE=1 width="95%">
</TD></TR></TBODY></TABLE>
<TABLE align=center border=0 cellPadding=5 cellSpacing=0 width=647>
<TBODY>
<TR>
<TD bgColor=#e6e6e6 height=25 width=200><FONT size=2>正文:</FONT></TD>
<TD align=right bgColor=#e6e6e6 width=395><A
href="javascript:window.close()"><IMG border=0 height=19
src="基于神经网络的车牌照字符识别.files/button_class.gif" width=66></A></TD>
<TD align=right height=25 width=22> </TD></TR>
<TR>
<TD colSpan=2><!-- #BeginEditable "topic" -->
<DIV align=center><FONT color=#1e4d7c><B class=font1>基于神经网络的车牌照字符识别
</B></FONT></DIV>
<P><SPAN class=line><SPAN class=line><B><FONT color=#cb6500> <FONT
color=#5288c7>引言</FONT></FONT></B><BR> 字符识别是模式识别领域的一项传统的课题,这是因为字符识别不是一个孤立的问题,而是模式识别领域中大多数课题都会遇到的基本问题,并且在不同的课题中,由于具体的条件不同,解决的方法也不尽相同,因而字符识别的研究仍具有理论和实践意义。这里讨论的是用神经网络识别数字的问题.
<BR> 人工神经网络模式识别方法是近些年提出的新方法,为字符识别研究提供了一种新手段,它具有一些传统技术所没有的优点:良好的容错能力、分类能力强、并行处理能力和自学习能力。因而,采用神经网络识别方式是一种很好的选择。<BR> <FONT
color=#5288c7><B>一、模式识别方法的比较</B></FONT><BR> 针对模式特征的不同选择及其判别决策方法的不同,可将模式识别方法大致分为5大类。这5种识别方法均可实现字符识别,但它们特点不同,必须根据条件进行选择。<BR> 1.
统计模式法:对已知类别的模式样本进行各种特征的提取和分析,选取对分类有利的特征,并对其统计均值等按已知类别分别进行学习,按贝叶斯最小误差准则,根据以上统计特征设计出一个分类误差最小的决策超平面,识别过程就是对未知模式进行相同的特征提取和分类,通过决策平面方程决定该特征相应的模式所属的类别。此方法比较成熟,能考虑干扰、噪声等的影响,识别模式基元能力强。但对结构复杂的模式抽取特征困难;不能反映模式的结构特征,难以描述模式的性质;难以从整体角度考虑识别问题。<BR> 2.
句法结构方法:分为训练过程和识别过程:训练过程就是用已知结构信息的模式作为训练样本,先识别出基元和它们之间的连接关系,并用字母符号表示它们,然后用构造句子的方法来描述生成这些场景的过程,并由此推断出生成该场景的一种文法规则;识别过程就是对未知结构的模式进行基元识别及其相互关系分析,然后用训练过程中获得的文法对其作句法分析,如果它能被已知结构信息的文法分析出来,则该模式具有与该文法相同的结构,否则就可判定不是这种结构。此方法识别方便,可从简单的基元开始,由简至繁;能反映模式的结构特征,能描述模式的性质,对图像畸变的抗干扰能力较强,但当存在干扰及噪声时,抽取基元困难,且易失误。<BR> 3.
逻辑特征法:就是其特征的选择对一类模式识别问题来说是独一无二的,即在一类问题中只有1个模式具有某1种(或某1组合的)逻辑特征,此方法建立了关于知识表示及组织,目标搜索及匹配的完整体系;对需通过众多规则的推理达到识别目标的问题,有很好的效果,但当样品有缺损,背景不清晰,规则不明确甚至有歧义时,效果不好。<BR> 4.
模糊模式方法:就是在模式识别过程中引入了模糊集的概念,由于隶属度函数作为样品与模板相似程度的量度,故能反映整体的、主要的特性,模糊模式有相当程度的抗干扰与畸变,从而允许样品有相当程度的干扰与畸变,但准确合理的隶属度函数往往难以建立。目前有学者在研究,并将其引入神经网络方法形成模糊神经网络识别系统。<BR> 5.
神经网络方法:就是使用人工神经网络方法实现模式识别。可处理一些环境信息十分复杂,背景知识不清楚,推理规则不明确的问题,允许样品有较大的缺损、畸变,神经网络方法的缺点是其模型在不断丰富完善中,目前能识别的模式类还不够多,神经网络方法允许样品有较大的缺损和畸变,其运行速度快,自适应性能好,具有较高的分辨率。<BR> <B><FONT
color=#5288c7>二、神经网络字符识别系统</FONT></B><BR> 神经网络的字符识别系统是神经网络模式识别系统的一种,原理是一致的。一般神经网络字符识别系统由预处理,特征提取和神经网络分类器组成。预处理就是将原始数据中的无用信息删除,平滑,二值化和进行幅度归一化等。神经网络字符识别系统中的特征提取部分不一定存在,这样就分为两大类:(1)有特征提取部分的:这一类系统实际上是传统方法与神经网络方法技术的结合,这种方法可以充分利用人的经验来获取模式特征以及神经网络分类能力来识别字符。特征提取必须能反应整个字符的特征。但它的抗干扰能力不如第2类。(2)无特征提取部分的:省去特征抽取,整个字符直接作为神经网络的输入(有人称此种方式是使用字符网格特征),这种方式下,系统的神经网络结构的复杂度大大增加了,输入模式维数的增加导致了网络规模的庞大。此外,神经网络结构需要完全自己消除模式变形的影响。但是网络的抗干扰性能好,识别率高。<BR> 构造神经网络分类器首先要选择适当的网络结构:神经网络分类器的输入就是数字字符的特征向量;神经网络分类器的输出节点应该是字符数。10个数字输出层就有个10个神经元,每个神经元代表一个数字;隐层数要选好,每层神经元数要合适,目前有很多采用一层隐层的网络结构。然后要选择适当的学习算法,这样才会有很好的识别效果。在学习阶段应该用大量的样本进行训练学习,通过样本的大量学习对神经网络的各层网络的连接权值进行修正,使其对样本有正确的识别结果,这就像人记数字一样,网络中的神经元就像是人脑细胞,权值的改变就像是人脑细胞的相互作用的改变,神经网络在样本学习中就像人记数字一样,学习样本时的网络权值调整就相当于人记住各个数字的形象,网络权值就是网络记住的内容,网络学习阶段就像人由不认识数字到认识数字反复学习过程是一样的。神经网络是按整个特征向量的整体来记忆数字的,只要大多数特征符合曾学习过的样本就可识别为同一字符,所以当样本存在较大噪声时神经网络分类器仍可正确识别。在字符识别阶段,只要将输入进行预处理,特征提取后的特征向量作为神经网络分类器的输入,经过网络的计算,分类器的输出就是识别结果。<BR> <B><FONT
color=#5288c7>三、BP神经网络</FONT></B><BR> 这里我们采用BP神经网络来进行车辆字符的识别。BP网络是采用Widrow-Hoff学习算法和非线性可微转移函数的多层网络。一个典型的BP网络采用的是梯度下降算法,也就是Widrow-Hoff算法所规定的。backpropagation就是指的为非线性多层网络计算梯度的方法。一个典型的BP网络结构如图所示:</SPAN></SPAN></P>
<P><SPAN class=line><SPAN class=line> <IMG height=219
src="基于神经网络的车牌照字符识别.files/1.gif"
width=325><BR><BR> 我们将它用向量图表示如下:<BR><BR> <IMG height=167
src="基于神经网络的车牌照字符识别.files/2.gif" width=421>
<BR> 其中:对于第k个模式对,输出层单元的j的加权输入为 <IMG height=44
src="基于神经网络的车牌照字符识别.files/3.gif" width=104>,该单元的实际输出为<IMG height=25
src="基于神经网络的车牌照字符识别.files/3-1.gif" width=92> ,而隐含层单元i的加权输入为<IMG height=43
src="基于神经网络的车牌照字符识别.files/4.gif" width=95> ,该单元的实际输出为 <IMG height=25
src="基于神经网络的车牌照字符识别.files/4-1.gif" width=88>,函数f为可微分递减函数 <IMG height=42
src="基于神经网络的车牌照字符识别.files/5.gif"
width=95>。<BR> 其算法描述如下:<BR> (1)初始化网络及学习参数,如设置网络初始权矩阵、学习因子等。<BR> (2)提供训练模式,训练网络,直到满足学习要求。<BR> (3)前向传播过程:对给定训练模式输入,计算网络的输出模式,并与期望模式比较,若有误差,则执行(4);否则,返回(2)。<BR> (4)后向传播过程:a.计算同一层单元的误差;b.修正权值和阈值;c.返回(2)<BR> <B><FONT
color=#5288c7>四、车牌数字识别</FONT></B><BR> 我采用Matlab来模拟用神经网络进行车牌照数字识别这一过程。作为对比,一种采用提取特征部分的方法,一组采用无特征部分提取的方法。<BR> 提取特征法采用投影-变换系数法进行特征提取。设N为图形尺寸,g(x)和g(y)分别是图形在X轴和Y轴上的投影,对它们进行Fourier变换得到K个变换系数,从K个变换系数gk(k=0,1,2,…,K-1)中选出M个有代表性的特征,使它满足类间距离要大、类内距离要小,这里选出16个作为有代表性的特征作为网络输入。<BR> 由于神经网络对图形的旋转、平移敏感,车牌照数字的获取中不可避免的存在这一类问题,所以即使是采用无特征部分提取的时候,也要对图形进行处理,这里对图形矩阵进行二维fft变换,分别得到矩阵的幅值和相值,通过实验可知网络对变换矩阵的相值收敛性好,因此这里取矩阵的相值作为网络输入。<BR> 我取了0-9共十个数字作为待识别数,每个数字取6个样本进行训练,共有60个训练样本,另取10个样本作为识别样本。神经网络采用三层结构,提取特征法有16个输入,隐含层取24个神经元,输出为十个,无特征提取法有16X16个输入,隐含层取24个神经元,输出也为10个,取最大输出端对应的数字作为识别结果,如果所有输出端的结果都小于0.5,则认为系统无法识别。其收敛波形如下图所示:<BR><SPAN
class=line> 有特征提取法的收敛图像
无特征提取法的收敛图像<BR></SPAN></SPAN></SPAN><SPAN class=line><SPAN
class=line> <IMG height=115 src="基于神经网络的车牌照字符识别.files/6.gif"
width=241> <IMG height=115 src="基于神经网络的车牌照字符识别.files/7.gif"
width=253><BR> 由图可知,两种不同方法的收敛速度,采用无特征提取法要快的多,但是由于其网络规模要比特整体取法大,每一次训练所耗时间要长,所以总的训练时间两者相差不多。识别样本和识别结果示例如附录所示。根据结果来看,采用无特征提取得到字符识别率为84.3%,采用有特征提取得到的字符识别率为92.9%,后者明显高于前者。如要进提高识别率,可以考虑改良特征值的提取,采集更多的样本进行训练及改善网络结构。<BR> <FONT
color=#5288c7><B>五、结论</B></FONT><BR> 由实验可知,采用神经网络识别车牌号字符是切实可行的,由于时间关系,目前只是用Matlab进行了简单的试验,下一步的工作是如何降低网络规模,似的字符识别达到系统可忍受的程度,并把它改编为C语言程序,以便用到高速公路车辆管理收费系统中去。<BR> 附录:<BR> 原始图像<BR> <IMG
height=190 src="基于神经网络的车牌照字符识别.files/8.gif" width=304>
<BR> 分割后的字符图像<BR> <IMG height=48 src="基于神经网络的车牌照字符识别.files/9.gif"
width=234> <BR> 识别出来的结果是<BR> 7 3 0 5 1</SPAN></SPAN></P><!-- #EndEditable --></TD>
<TD width=22> </TD></TR></TBODY></TABLE>
<TABLE align=center border=0 cellPadding=0 cellSpacing=0 width=647>
<TBODY>
<TR>
<TD width=615><!-- #BeginEditable "topic1" --> <!-- #EndEditable --></TD>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -