车牌识别系统论文.docx
《车牌识别系统论文.docx》由会员分享,可在线阅读,更多相关《车牌识别系统论文.docx(15页珍藏版)》请在冰豆网上搜索。
车牌识别系统论文
华北水利水电大学
研究生结课论文
姓名高阳
学号9
专业计算机技术
性质国家统招(√)单考()
工程硕士()同等学力()
科目计算机视觉与模式识别
任课老师杨阳蕊
成绩
一种简易车牌识别算法及其探究
【摘要】:
本文介绍了一种标准车牌中简易的识别算法。
与传统的数字识别方法相比较,其效率较高。
该算法利用对字符二值化后的图像作特征向量,并用最近邻法实现字母的识别。
利用该方法时,由于图像是不规则的,则需对识别字符进行规整提取处理,减少了因图片不规则而引起的误识,降低了(对字符作特征向量时)算法复杂度。
经试验验证,效果良好。
【关键字】:
字符识别;二值化;特征向量;最近邻;欧氏距离
1引言
随着人们生活水平的不断提高,机动车辆数量大幅度增加,与之相配套的高速公路,城市路网及停车场越来越多,显著提高了人们对交通控制方面的要求。
由于计算机技术的发展,信息处理水平的提高使智能交通系统成为世界交通领域研究的重要课题。
其中车牌识别是智能交通系统的重要组成部分。
本文主要探究车牌中非汉字的字符识别。
在有关字符识别的大型系统中,通常采用的是神经网络算法,但这种算法计算量比较大,实现起来较复杂。
而车牌中,非汉字字符个数有限,利用神经网络算法识别车牌中非汉字字符则显得大材小用,而很多字符识别算法又需要大量的预处理运算,包含图片二值化、去噪、规整、细化、轮廓提取、模板匹配等,使得识别的运算量大大增加。
本文主要使用相应字符形状特点来构建字符的特征向量,通过对待识别对象进行特征提取,利用最近邻法,通过比对模板特征向量和待选字符特征向量之间的距离,即可对车牌非汉字字符快速准确的识别,并降低了算法复杂度。
2实现方法
2.1设计思想
在车牌识别中,由于图像本身受到各种自然因素或设备因素的影响,图像的清晰度往往不是很理想,有时还会带有较明显的图像噪声,使真实信号与理想信号之间存在偏差,若不对图像进行预处理,这将给后续的识别模块带来严重影响,最终可能造成识别错误。
因此,识别前要对图像进行预处理成不含噪声的较易识别的图像。
预处理的好坏一定程度上影响到字符识别的正确率。
另外,基于所研究字符图像的特征,在不丢失字符基本信息的情况下,首先将每个图像处理为和字符等高等宽的m行n列的二值图像,取每个图像的6条特征线,构成一个字符的向量,然后对每个图像分别用同样的方法处理,最后取平均值,从而得出一个字符的特征向量。
用同样的方法求得其它字符的特征向量。
用最近邻法判断待测样本,以观察匹配效果。
2.2实验流程图
2.3设计过程
2.3.1图像预处理
图像预处理是对输入的图像进行一系列变换处理,使之成为符合字符识别模块要求的图像,即将把待识别的字符从背景中分离出来。
图像预处理首先需要将待识别的字符从输入的灰度图中分割出来。
利用对比度线性展宽对分离后的图像进行图像增强,利用高斯平滑滤波器,对图像进行规整,除噪等操作。
经试验验证,通过以上处理即可得到较清晰的图片,且效果良好。
2.3.2灰度图像二值化
所谓图像二值化就是指将灰度图转化为只含有两种灰度值的图像,即每个像素点不是黑就是白,灰度值没有中间过渡的图像。
这就需要找一个合适的阈值,并利用阈值方法将背景与字符良好的区分。
阈值方法的核心就是阈值Th的确定方法。
常用的阈值确定方法有:
p参数法、均匀性度量法、类间最大距离法、最大类间类内方差比法、聚类方法等。
基于所处理图像的特征,本文给出一种简易有效的确定阈值的方法,即求所处理图像的灰度直方图中的最大值和次大值,利用最大值和次大值的平均数作为二值化中的阈值。
设原图像为
,经过分割处理后的图像为
即为二值图像,则将图像二值化的数学表达式则有:
其中Th为二值化的阈值。
通过二值化处理,也可以去除或减轻部分噪声,至此获得的图像已基本上满足识别模块的要求,为了使识别模块具有统一的评判标准,需对二值化后的图像进行字符提取,使其拥有和字符相同的尺寸。
这样才能使提取出来的特征量具有良好的区分能力。
图像经过上述步骤处理后,已经从带有噪声的灰度图像转变为符合识别要求的图像。
该图像为只包含0和255两种灰度值的二值图像,并且具有和字符等大小的统一的尺寸。
而且在预处理环节中,已最大限度地去除了输入图像中的噪声,在保持字符原本信息不丢失的前提下,把待识别的字符从背景中成功地分离出来。
2.3.3计算字符特征向量
图2.3.3.1:
二值图图2.3.3.2:
画特征线
由图一、图二可看出,在不损失待识别字符基本信息的情况下,二值化后的图像已比较清晰了。
用6条线分别从两个方向不同的位置穿越二值化后的图像。
横向的3个,方向从上向下依次为x1,x2,x3;竖直方向3个,从左向右依次为x4,x5,x6。
6个值从而构成一个向量。
由于图像本身的特征,固穿越的线间距大约离中点1/6左右。
若图像是m行n列的,则x2取了第m/2行的数据,x1取了(m/2)-(m/6)行的数据,x3取了(m/2)+(m/6)行的数据,同样的x5取了第n/2列的数据,x4取了第(n/2)-(n/6)列的数据,x6取了第(n/2)+(n/6)列的数据。
在每条线的方向上设置一个计数器,当沿着线向一个方向穿进去的时,每当遇到像素值突变的时候计数器加一,用同样的方法对其它的几条线即可计算出穿越时像素值变化的次数。
并且将值分别给相应的变量X,6个值即可构成字符的一个特征向量。
其余字符用同样的方法进行处理即可。
总共计算出了k个向量。
再分别对每个字符的k个向量求平均值,计算出所有字符的特征向量。
下面给出了运行程序后计算出来0~9及A~Z的特征向量表(见附表1)。
3字符识别
3.1最近邻法
所谓最近邻法是根据样本提供的信息,通过概率的估计而直接决策的方法,是一种非参数决策方法。
对于字符识别部分则根据计算的特征向量,采用最小近邻法对待识别的数字进行特征匹配。
最常用的方法有欧氏距离法、马氏距离法、最小方差法、统计量卡方法等。
由表一,我们可以很容易的看出,虽然所有字符的特征向量的值不完全相同,但它们都具有很大的相似性,为了较准确的识别字符,则在字符识别中不易采用最小方差法和统计量卡方法(这两种方法精确度较低)。
对于马氏距离法,虽然有很多优点,如它不受量纲的影响,点和点之间的马氏距离与原始数据的测量单位无关;马氏距离可以排除变量之间的相关性的干扰,但是在计算过程中夸大了变化微小的变量的作用。
对于车牌中非汉字字符的识别,经实验验证分析,我们熟悉的欧氏距离法,虽然它将样品的不同属性(即各指标或各变量)之间的差别等同看待,但相对于其他方法而言,欧氏距离法即可将非汉字字符快速、准确的识别。
3.2字符模板匹配
字符特征量的提取主要针对的是对字符的个体特征,但是对于某些字符的特征向量在一定程度上具有相同性。
因此,为了避免错误识别,必须对具有相同特征向量的字符再进行进一步的处理。
基于每个字符图像的特殊特征,本文给出一种简易的识别方法,即利用字符的特殊特征来提高系统的识别正确率。
由附表1,我们可以发现,第8号、15号、27号元素其特征向量值相同,即H、O和0的特征向量值完全相同。
其处理方法如下,如下图为经处理后的8号、15号和27号(即H、O和0)字符的图像。
图3.2.1图3.2.2图3.2.3
由图易知:
三幅图片的第一行像素点中,只有8号元素其像素值为0的点的个数多于像素点值为255的个数,而对于15号和27号元素,可由其行和列像素个数比值不同进行区分。
本文采用这种方法可以很容易且准确的将这三个字符识别出来,经试验验证效果良好。
3.3字符识别算法
当测试样本时,计算出待测字符的特征向量,再对统计出的模板特征向量分别求欧氏距离,距离值最小的就是相应的字符。
测试程序代码如下:
Distance(i,:
)=sqrt((test(e,y1)-Avg(i,x1))^2+(test(e,y2)-Avg(i,x2))^2+(test(e,y3)-Avg(i,x3))^2+(test(e,y4)-Avg(i,x4))^2+(test(e,y5)-Avg(i,x5))^2+(test(e,y6)-Avg(i,x6))^2)%计算欧氏距离[1]。
[C,class]=min(Distance)
在输出相对应结果即可。
4关键算法描述
4.1图像灰度化
输入车牌图片
输出车牌图像的灰度图
图4.1图像灰度化
灰度化处理函数:
OnFILE256ToGray()该函数实现对256色彩色BMP图像的灰度化处理函数首先计算每个颜色所对应的灰度值,更新DIB调色板。
然后实现图像每个像素点到新调色板的映射,继而实现图像的灰度化。
//更新DIB调色板的主要代码如下:
if(bWinStyleDIB)
{
ap[i]=(BYTE)(0.299*lpbmi->bmiColors[i].rgbRed+
0.587*lpbmi->bmiColors[i].rgbGreen+
0.114*lpbmi->bmiColors[i].rgbBlue+0.5);
lpbmi->bmiColors[i].rgbRed=i;
lpbmi->bmiColors[i].rgbGreen=i;
lpbmi->bmiColors[i].rgbBlue=i;
bmi->bmiColors[i].rgbReserved=0;
}
//实现图像像素颜色到新调色板映射的主要代码如下:
for(i=0;i{
for(j=0;j{
//指向DIB第i行,第j个象素的指针
lpSrc=(unsignedchar*)lpDIBBits+lLineBytes*(lHeight-1-i)+j;
*lpSrc=bMap[*lpSrc];
}
4.2图像增强
车牌图片经过图像增强处理,使得计算机更容易识别和处理。
该模块程序流程图如图5-5所示:
输入灰度图像
输出增强的车牌灰度图
图4.2图像增强
图像增强函数:
GrayStretch(),该函数实现对车牌灰度图像分段灰度拉伸(即分段线性变换,也就是分段图像增强)函数说明如下:
/*************************************************************************
**函数名称:
*GrayStretch()
**参数:
*LPSTRlpDIBBits-指向源DIB图像指针
*LONGlWidth-源图像宽度(象素数)
*LONGlHeight-源图像高度(象素数)
*BYTEbX1-灰度拉伸第一个点的X坐标
*BYTEbY1-灰度拉伸第一个点的Y坐标
*BYTEbX2-灰度拉伸第二个点的X坐标
*BYTEbY2-灰度拉伸第二个点的Y坐标
**返回值:
*BOOL-成功返回TRUE,否则返回FALSE。
**说明:
*该函数用来对图像进行灰度拉伸。
*************************************************************************/
//计算灰度映射表代码如下:
bMap[i]=(BYTE)bY1*i/bX1;
bMap[i]=bY1+(BYTE)((bY2-bY1)*(i-bX1)/(bX2-bX1));
bMap[i]=bY2+(BYTE)((255-bY2)*(i-bX2)/(255-bX2));
//更新像素索引代码如下:
for(i=0;i{
//每列
for(j=0;j{
//指向DIB第i行,第j个象素的指针
lpSrc=(unsignedchar*)lpDIBBits+lLineBytes*(lHeight-1-i)+j;
//计算新的灰度值
*lpSrc=bMap[*lpSrc];
}
}
4.3二值化
输入增强后的灰度图像
N
Y
NN
YY
输出车牌图像的二值图像
图4.3二值化
图像二值化是指整幅图像画面内仅黑、白二值的图像。
在数字图像处理中二值图像占有很重要的地位。
二值化处理程序流程图如图5-6所示:
二值化函数:
BOOLWINAPIThresholdTrans(LPSTRlpDIBBits,LONGlWidth,LONGlHeight,BYTEbThre),lpDIBBits指向图像的起始指针,lWidth图像的宽度,lHeight图像的高度,bThre设定的阈值。
5总结
5.1特色与优点
车牌识别技术在国外已经很成熟,但联系到我国的特殊情况,国内对车牌识别技术研究起步比较晚,而且技术的核心涉及到公司的商业机密,商业公司不会泄漏源代码。
所以这就为我们的毕业设计增加了难度,即使如此但我们小组发扬不怕难不怕苦的精神四处搜集资料,迎难而上,克服重重困难,终于有所突破。
本设计采用了一种简单易行的方法,实现了对车牌中非汉字字符的识别。
本文的算法主要是通过对车牌中的非汉字字符进行提取、除噪、二值化等操作,在不丢失字符基本信息的基础上,获得基本上满足识别模块要求的图像,确保了字符识别的正确性。
并通过提取字符的特征向量,对待识别的字符进行欧氏距离的计算,从而进行字符的识别。
该方法思路简单清晰,程序简单易读,并对从0~9及A~Z的每个数字图像进行了测试。
通过对大量字符的识别,证明了本算法的可行性和正确性,且匹配率较高。
在设计过程中成功地解决了问题分析时提出的难点和关键问题。
我们基于面向对象方法学的思想,用神经网络等方面的知识来开发系统。
利用BP神经网络良好的学习能力和容错能力对汽车牌照的识别在识别精确度与速度有很大的改善。
车牌识别技术的运用使得“大输入小输出”成为了可能——输入一幅很大存储量的图像,输出时仅仅是很小存储量的数字,这必然使得其在大量存储和管理数据库相连等方面有无可替代的优越性。
5.2问题与展望
尽管本模块具有上述优点,但是,由于时间的仓促,本模块还存在着一些不足。
如:
本系统的整体感觉比较烦琐,这些问题的解决有待自己知识结构的进一步完善和动手能力的进一步加强。
而且,本系统的功能也有待进一步的完善,一个能够实际应用,并达到一定识别精度的车牌识别系统必须要经过大量的训练,我们在设计本系统时,选择的训练样本不是很多,这可能会影响识别的效果,今后的工作是如何降低网络规模和改进算法,进一步提高字符识别精度和速度,使其在现代交通监控和管理系统得到广泛应用。
参考文献:
[1]王亚坤,曾德良,李向菊.一种新颖的数字识别算法[J].电力科学与工程学报,2009年,第25卷(第一期).
[2]朱虹,潘英杰,冯春来等.数字图像处理基础[M].北京:
科学出版社,2009.8
[3]朗锐.数字图像处理学.第一版.北京:
北京希望电子出版社,2008:
200-204.
[4]欧珊瑚,王倩丽,朱哲瑜.VisualC++.NET数字图像处理技术与应用.第一版.北京:
清华大学出版社,2006:
244-262,274-290,446-456.
[5]陈轩飞,陈志刚.车牌字符的预处理研究.《现代电子技术》,西安:
陕西电子杂志社陕西省电子学会会刊出版社,2005年第二期总第193期.