1、本人的毕设收集资料a.一些算法1基于纹理特征的车牌定位法车辆图像随拍摄环境的变化而不同,然而车辆牌照具有不因外部条件变化而改变的特征。车牌内有多个基本成水平排列的字符,字符和牌照底在灰度值上存在跳变,因而车牌这个矩形区域(包括边缘)有丰富的边缘存在,呈现出规则的纹理特征。在传统的基于灰度分割技术上,这些特征为车牌定位研究提供了切实可行的依据。基于纹理分析的方法利用车牌区域内字符纹理丰富的特征定位车牌,它对于光照偏弱、偏强、不均匀性、牌照倾斜和变形等情况不敏感。但该方法应用于背景复杂的图像时,容易把一些纹理分布较丰富的非车牌区域定位进来,产生包含车牌在内的车牌候选区域,这是纹理分析方法的缺陷。2
2、基于神经网络的定位算法利用神经网络来定位车牌是一类较为常见的方法。本算法的基本步骤和各模块的功能如下:(1)神经网络训练模块:收集一定数量的车牌图像样本,归一化后输入至BP神经网络进行训练,达到预定的正确率后,训练结束。本模块将获得一个对车牌敏感的BP神经网络。(2)图像预处理模块:提取车牌前,对图像进行预处理;抑制噪声,提高图片质量。(3)车牌定位模块:利用训练好的神经网络在图像中搜索车牌区域,定位车牌。本方法的特点是从车牌区域特征来判别牌照,因此在搜索时会重点考虑以下表面特征(如边缘、对比度、纹理等)而忽视图像区域的内容。有用信号的特征有时会误导搜索,如果因为定位模块忽视了非牌照区域包含的
3、车牌特征信号点,将这些区域送入后续步骤将会影响车牌字符识别。3基于特征统计的车牌定位基于特征统计的车牌定位利用车牌区域的结构特征和字符纹理特征。车牌区域字符笔划变化含有丰富的边缘信息。对整幅汽车图像进行边缘检测,车牌区域相对于其它非车牌区域含有更多的细节信息。对边缘图像进行行或列扫描,该行或列灰度值跳变的次数明显不同非车牌区域的行或列,即基于特征统计的车牌定位方法。此方法分为两个部分:粗定位和精确定位。1粗定位:粗定位是从车牌边缘检测后的图像中找出含有车牌的区域,并把它提取出来,考虑到车牌区域中存在大量笔画边缘点集,当线段扫描到车牌区域时,会大于某个阈值,这样就能初步找到横穿车牌区域的线段,然
4、后以此线段为起点,上下平移扫描,利用车牌区域横向积分投影的连续性特征,定出车牌的上下边。在定位出上下边的同时,利用车牌白点数目占据主导的特点,用一定宽度的矩形,从左往右扫描。粗定位具体做法是用一个比估计车牌小的矩形遍历整个边缘二值图,则落在该矩形内白色的点最多的位置就是车牌区域的大致位置。2精确定位:车牌颜色主要分为:蓝底白字、黄底黑字、黑底白字,白底黑字四种。相同号码不同颜色组合的车牌不是同一个车牌,所以颜色信息在车牌定位的过程中相当重要。本文在精确定位时结合车牌的长宽信息、颜色信息,根据车牌颜色(蓝、白、黄、黑4种)像素占候选车牌区域所有像素的比例来确定哪个是车牌部分,由此得到准确的车牌区
5、域。具体思想如下:对粗定位中提取的区域进行研究,如果此区域蓝、黑、黄色中哪种颜色较多,则认为蓝底色牌照、黑底色牌照、黄底色牌照,剩余的车牌为白底色军车和武警车牌照等。每个颜色的RGB有一定的范围比例,如蓝色的RGB各值中蓝色分量最大,并且蓝色红色分量的比值大于门限Tb;黑色的RGB各值相差不大,它们与其它颜色的RGB值相比是很小的值,且小于门限Tbl;黄色的RGB各分量依次减小,而且蓝色分量远小于其它两色。设图像中像素的红绿蓝三色分量分别记为r、g、b,下面的pixel代表像素的类型,是蓝色的记为Blue,黑色的记为Black,黄色的为Yellow,具体判断如下:如果车牌颜色信息满足蓝底牌照、
6、黑底牌照条件或者Silllln2cright=n2;cleft=n2-maxwidth;endSegGray=sbw(rowtop:rowbot,cleft:cright);SegBw1=sbw(rowtop:rowbot,cleft:cright);SegBw2 = imresize(SegBw1,22 14); %变换为 22 行*14 列标准子图 subplot(2,n1,l),imshow(SegGray);if l=7title(车牌字符宽度: ,int2str(maxwidth),Color,r);endsubplot(2,n1,n1+l),imshow(SegBw2); fnam
7、e=strcat(F:MATLABworksamimage,int2str(k),.jpg);%保存子图备选入样本库,并建立样本库imwrite(SegBw2,fname,jpg) l=l+1;end2.12 将计算计算获取的字符图像与样本库进行匹配,自动识别出字符代码:进行车牌识别前需要使用样本对神经网络进行训练,然后使用训练好的网络对车牌进行识别。其具体流程为:使用汉字、字母、字母数字、数字四个样本分别对四个子网络进行训练,得到相应的节点数和权值。对已经定位好的车牌进行图像预处理,逐个的特征提取,然后从相应的文件中读取相应的节点数和权值,把车牌字符分别送入相应的网络进行识别,输出识别结果。
8、样本与数据库中图片相减计算误差找到误差最小图片依次识别并识别建立数据库程序流程图 图 2.12 识别的车牌号码四、设计结果及分析原始图像: 预处理后:车牌定位和提取: 字符的分割和识别:可以看出对于这个车牌,可以准确的识别。原始图像: 预处理:车牌的定位和提取: 字符的分割和识别:从上面结果可以看出,这张车牌的识别失败了,将 G 误识别为 B 了,K 误识为 A,0 识别为 8,这在识别中是非常容易出错的地方,因此需要在其他方面做些弥补,最后达到识别效果。在车牌识别的过程中数字库的建立很重要,只有数字库的准确才能保证检测出来的数据正确。切割出来的数据要与数据库的数据作比较,所以数据库的数据尤为
9、重要。五、总结:实验对车牌识别系统的软件部分进行了研究,分别从图像预处理、车牌定位、字符分割以及字符识别等方面进行了系统的分析。整理和总结了国内外在车牌定位、分割、字符识别方面的研究成果和发展方向,系统介绍了我国车牌的固有特征,以及车牌识别的特点。在车牌定位我们采用基于灰度跳变的定位方法,采用先对图像进行预处理,再进行二值化操作的方法。实验表明本方法既保留了车牌区域的信息,又减少了噪声的干扰,从而简化了二值化处理过程,提高了后续处理的速度。基于彩色分量的定位方法,运用基于蓝色象素点统计特性的方法对车牌是蓝色的车牌进行定位,实验表明,用该方法实现的车牌定位准确率较高。本设计用 MATLAB 编程
10、运行结果可以得出,本设计采用的图像预处理、CANNY 边缘检测、开闭运算子5,19、车牌长宽比特征识别等对车牌的定位都是非常有效的,而本设计提出的二次水平投影分析和阈值技术有效检测了车牌图像的上下左右边框、旋转角度,准确实现的车牌字符的分割,对多个车牌进行实验,均有很高的正确率。本设计虽然只对蓝底白字车牌进行分割识别,对黑底白字车牌原则上整个算法可直接适用,对白底黑字车牌、黄底黑字车牌,需要对车牌定位算法进行调整,并将图像反转(0 变 1、1 变 0) ,而车牌字符的分割算法仍然行之有效。六、设计体会经过几周的奋战我的课程设计终于完成了。课程设计不仅是对前面所学知识的一种检验,而且也是对自己能
11、力的一种提高。以前老是觉得自己什么东西都不会,什么东西都不懂,而且又急于求成,结果造成什么都没学好,还是什么都不会。通过这次课程设计,我才明白学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质,特别是对于我,基础比较差,一定不能太过于心急,要静下心来慢慢的研究。在这次课程设计中也使我们的同学关系更进一步了,同学之间互相帮助,有什么不懂的大家在一起商量,听听不同的看法对我们更好的理解知识,所以在这里非常感谢帮助我的同学,我也明白学习不是埋头苦读书,而是合理的利用资源,从同学那里,老师那里得到的有用的想法和信息,特别是网上有很多很好的资料,对自己的自学能力也
12、是很好的提高。我的心得也就这么多了,总之,不管学会的还是学不会的的确觉得困难比较多,真是万事开头难,不知道如何入手。最后终于做完了有种如释重负的感觉。此外,还得出一个结论:知识必须通过应用才能实现其价值!有些东西以为学会了,但真正到用的时候才发现是两回事,所以我认为只有到真正会用的时候才是真的学会了。也不能因为做出来就以为自己什么都懂了,在很多的地方还需要进一步的去学习和研究,就想这个课程设计虽然能实现车牌识别的功能,但是识别率还是还是非常低的,只是在理论上能行得通,根本不可能运用到商业上,因此在接下来的工作中,应该去找更好的方法来提高识别率。以前对 MATLAB 也是仅局限在数学实验上学的那
13、些知识,但是通过此次的课程设计,才了解到 MATLAB 在图形图像处理方面的强大功能,这些事 C/C+不能所及的。在此要感谢我们的指导老师叶老师对我们悉心的指导,感谢老师给我们的帮助,以前我是不相信我能做出来的,是您的鼓励让我重新找到自信。在设计过程中,我通过查阅大量有关资料,与同学交流经验和自学,并向老师请教等方式,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。在整个设计中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。虽然这个设计做的也不太好,但是在设计过程中所学到的东西是这次课程设计的最大收获和财富,使我终身受益。