还剩9页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
车牌识别系统实验报告《图像处理与计算机视觉》期末作业专业计算机软件与理论年级20级学号120_000758姓名何勇20年8月21日1车牌识别系统(VLRP)实验报告
一、实验目的
1、了解车牌识别系统及其应用;
2、结合本门课程所学内容,设计一个车牌识别系统并实现
二、实验原理
1、图像预处理针对车牌的颜色特征,利用hsv色域进行二值化,并进行膨胀和去噪处理摄像时的光照条件,牌照的整洁程度,摄像机的设计好BP神经网络模型后,将车牌的字符投入训练,在网络收敛后可用(实际在论文完成的过程中,并没有出现收敛,而是达到训练次数后停止训练,这个次数10000_72是在实验过程中测试后决定的,同样不保证最优)这时的神经网络可以认为是已具备区分34个不同字符的能力了然后对任意的一个从车牌分割得到的字符进行归一化之理后,依次假设其分别是编号0到33,并且求出每个编号对应的误差,最后在34个不同的误差中找出最小的那个编号,找到的编号即对应的字符了如某分割的字符投入网络后得到的最小误差编号为10,那么认为这个字符为Ao把从车牌分割下来的字符全部投入动作后得到的字符串即车牌的号码了效果如图4-12所示10图4-13字符识别效果图
五、实验结果分析本次基于颜色和BP神经网络的车牌识别系统已基本完成,实验也达到预期的效果但是问题仍旧存在实验结果显示如表5-1所示车牌定位车牌分割车牌识别识别2个字符以内错误测试图片数16151515正确图片数151557正确率
93.8%100%
33.3%
46.7%表5-1部分实验结果在车牌定位方面,由于采用基于颜色定位方法,要求要定位的车牌图像质量较清晰,车牌底色为蓝色或和标准蓝色相差不大,这时BP网络能非常有效地区分蓝色与非蓝色,从而实施定位但也常有无法定位的情况,当车身也是蓝色时,BP网络必定无法把车牌从图像中分离出来;在字符分割方面,采用基于垂直投影特征值的方法,能有效地分割字符,但也有分割错误的情况,如在车牌定位不够精确或定位出来的车牌有噪点时,无法在字符或数字之间找到一条无边的空白区(窄的区域),此时往往会分割错误(一字符可能分为多个,噪点也可能认为是字符);在字符识别方面,在本文中,实验过程发现当车牌定位和字符分割均能得到较好结果时大多数情况下均能有效地识别,但是字符分割错误或要识别噪点较多或字符倾斜较严重时往往会出现错识甚至拒识比如B有可能错误为8,B错识为R等等状态(焦距,角度和镜头的光学畸变),以及车速的不稳定等因素都会不同程度的影响图像效果,出现图像模糊,歪斜或缺损,车牌字符边界模糊不清,细节不清,笔画断开,粗细不均等现象,从而影响车牌区域的分割与字符识别的工作,所以识别之前要进行预处理
2、车牌定位对预处理后的图片进行区域标记,根据各连通量的长宽比以及黑色像素所占比例定位车牌位置从背景中准确地确定牌照区域是整个识别过程的关键首先对采集到的图像进行大范围相关搜索,找到符合汽车牌照特征的若干区域作为候选区,然后对这些侯选区域做进一步分析、评判,最后选定一个最佳的区域作为牌照区域,并将其从图象中分割出来
3、字符分割完成牌照区域的定位后,再将牌照区域分割成单个字符,然后进行识别在本次系统开发中,字符分割采用垂直投影法由于字符在垂直方向上的投影必然在字符间或字符内的间隙处取得局部最小值的附近,并且这个位置应满足牌照的字符书写格式、字符尺寸限制和一些其他条件,利用垂直投影法对复杂环境下的汽车图像中的字符分割有较好的效果
4、字符识别用图像分类和识别中的所学内容对字符识别,比如基于模板匹配算法、基于支持向量机或基于神经网络的方法我选择的是基于BP的神经网络算法将分割出来的字符做n等分分割,统计个等分块内的黑像素比例,并与特征库比对,识别字符2
三、系统流程图开始车辆图片预处理车牌定位BP神经网络特征提取字符分割字符识别画出字符结果结束3
四、实验步骤
4.1基于颜色的BP神经网络车牌定位图4-1车牌定位流程图图4-2车牌底色库部分样本建立车牌底色库,在本论文中仅对蓝底白字车牌进行研究对于这些车牌样本,将其从RGB色彩空间转换为得到其CR CB红色及蓝色分量对车牌样本每个像素,均可得到其CR CB而我们关心的只是两种像素,即蓝色非蓝色像素对O于蓝色的像素,在转换为CR CB后其对应的BP神经网络映射关系为输出为lo非蓝色的像素,在转换为CR CB后相对应的BP映射为输出为Oo由于BP神经网络要求输入值0到1,所以CR CB还需作简单的处理,把它转为符合要求的输入至U此,用于进行车牌定位的BP神经网络模型有了输入层及输出层即,输入层含两个神经结点(某像素的CR CB分量),输出层仅一个神经结点(对应逻辑关系为这个像素在视觉上是否为蓝色),中间层设计为仅含4结点的一层设计好BP神经网络模型后,将车牌的底色投入训练,在网络收敛后可用这时的神经网络可以认为是已具备区分蓝色及非蓝色的能力了(对于训练得到的权值保存到一个文件CharBp.t_t中,以便在恢复网络时直接读取而节省大量的训练时间)然后对任意的一张含车牌的图像每个像素,将它投入网络当中,如果网络认为是蓝色的(结点输出为范围在
0.8;
1.0间的),那么将此像素映射成255;如果网络认为非蓝色的(结点输出范围在0;
0.8间),那么将此像素映射成0o这样我们可以得到除了一张二值图像外,还可以将车牌从复杂的自然图像分离开来(当然这是从十分理想的角度出发的,实际上当车辆颜色也是蓝色的时候是无法分离的)4图4-3左图为自然车辆图像,右图为经BP神经网络后得到的二值图像
4.2基于图像投影技术的车牌分割图像投影技术一般分为水平投影和垂直投影所谓投影就是对图像的某种特征的统计,然后以直方图形式反映其特征强度一般是对二值图像而用的,水平方向的投影就是每行的非零像素值的个数,在这里就是1或者255,垂直投影就是每列图像数据中非零像素值的个数由于车牌字符在车牌上,所以这部分可以认为是对字符的粗定位或车牌的精确定位在设计上算法上可以这样做对二值图像分别作水平和垂直方向的投影,得到其直方图分布,然后分别在波峰的地方作直线,这样水平方向和垂直方向共计四条直线,它们相交形成一矩形,此矩形即为车牌的大概位置图4-4将要进行投影的二值图像
4.
2.1水平投影技术逐行统计白点直方图显示投影统计结果波峰即车牌上下边缘5图4-5车牌水平投影效果图按行累加每个像素点的灰度值做投影,横坐标为灰度累加的和,纵坐标为图像的行数,即可确定车牌区域上下边缘水平分析算法如下1)从下向上逐行扫描图像,记下每行中灰度值为255的像素点的个数;2)找到第一个灰度值为255的像素点的个数大于某个阈值的行(并且紧挨着的若干行都满足个数大于某阈值),记录下行号,即为车辆牌照最下边缘;3)然后继续扫描,找到第一个灰度值为255的像素点的个数小于阈值的行(并且紧挨着的若干行都满足个数大于某阈值),记录下行号,即为车辆牌照的最上边缘;4)这时不再继续扫描,根据记录的两个行号,对原始图像进行裁剪;5)得到裁剪后的图像,即为水平方向定位的牌照图像区域
4.
2.2垂直投影技术图4-6车牌垂直投影个效果图按列累加每个像素点的灰度值做投影,横坐标为灰度累加的和,纵坐标为图像的行数,即可确定车牌区域左右边缘垂直分析算法如下1)从左向右逐列扫描图像,记下每行中灰度值为255的像素点的个数;2)找到第一个灰度值为255的像素点的个数大于某个阈值的列(并且紧挨着的若正列都满足个数数大于某阈值),记录下列号,即为车辆牌照最右边缘;3)然后继续扫描,找到第一个灰度值为255的像素点的个数小于阈值的列(并且逐列统计白点直方图显示投影统计结果波峰即车牌左右边缘6紧挨着的若干列满足个数大于某阈值),记录下列号,即为车辆牌照的最左边缘;4)这时不再继续扫描,根据记录的两个列号,对原始图像进行裁剪;5)得到裁剪后的图像,即为垂直方向定位的牌照图像区域分别投影后效果如图4-7所示图4-7分别投影后效果图值得一提的是并不是所有的自然车辆图像经BP神经网络动作后都那么完美的,这也是为什么在求车牌各个边缘的时候设定一个阈值(并且紧挨着的若干行都满足个数大于某阈值)的原因如图4-8所示图4-8示例图经过对车牌的二值图像的水平和垂直投影后,我们已经得到了车牌的精确位置,也即字符的所在区域至此,我们可以把注意力从原始的二值图像集中到二值图像中的车牌局部区域来(即如何从车牌中分割出每个字符)除了可用比例的方法来进行字符分割外,本文采用一种适应性更好的基于投7影技术来进行分割字符分割处理采用基于投影特征值的方法,对于数字及字符,由于它们都属于连体字,因此只需在字符或数字之间找到一条无边的空白区(窄的区域),即可实现数字及字符之间的分割处理图4-9即将进行字符分割的车牌图像显然要在上图中分割出字符,只需在车牌内(白色矩形)对字符作像素为255的垂直投影,具体方法如下按列累加每个像素点的灰度值做投影,横坐标为灰度累加的和,纵坐标为图像的行数,即可确定车牌区域左右边缘垂直分析算法如下1)从左向右逐列扫描图像,记下每行中灰度值为0的像素点的个数;2)找到第一个灰度值为0的像素点的个数大于某个阈值的列(并且紧挨着的若正列都满足个数数大于某阈值),记录下列号,即为车辆牌照最右边缘;3)然后继续扫描,找到第一个灰度值为0的像素点的个数小于阈值的列(并且紧挨着的若干列满足个数大于某阈值),记录下列号,即为车辆牌照的最左边缘;4)这时不再继续扫描,根据记录的两个列号,对原始图像进行裁剪;5)得到裁剪后的图像,即为垂直方向定位的牌照图像区域;6)保存每个字符的区域坐标效果如图4-10所示图4-10字符分割效果示意图逐列统计黑点直方图显示投影统计结果波峰即字符边缘
84.3基于BP神经网络的车牌字符识别
4.
3.1车牌字符库的建立字符库的建立是为字符的识别作准备的,字符库要求每个字符按一定标准保存,如保存格式一致,大小规格相同,每个字符的数目相同等等在本次车牌识别系统研究中,只对数字及字母作研究,对汉字不作研究,所以共计34个不同各类的字符数字0和字母o,数字1和i为均认为是同一字符,每个字符用程序获取10个不尽相同的字符,字符库的建立是为了训练BP神经网络的样本
4.
3.2图像的缩放技术在计算机图像处理中,图像缩放是指对数字图像的大小进行调整的过程图像缩放是一种非平凡的过程,需要在处理效率以及结果的平滑度和清晰度上做一个权衡当一个图像的大小增加之后,组成图像的像素的可见度将会变得更高,从而使得图像表现得更“软”相反,缩小一个图像将会增强它的平滑度与清晰度本次系统开发中,我采用最邻近插值法将每个字符都归一化到6_12的统一规格中去,所谓的最近邻插值,通俗理解就是将每一个原像素原封不动地复制映射到扩展后对应四个像素中,效果图4-11所示图4-11归一化前的各字符归一化后各字符一次为O
4.
3.3字符的保存首先给字符编号,0-9分别编号为00-09,A-Z分别编号为10-33o在本文中,字符的保存格式为raw原始图像数据文件,命名依次为OOOraw到339raw即不超过340的三位数加格式名raw,前两位数代表这个字符的编号,第三位数n代表这字符是第n张字符,如某字符某名为089raw即意味着这字符代表数字8,它在库中是第9张(从第0张开始计数)又如330raw代表着这字符为字母Z,它是第0张为了使字符库的字符和待识别的字符尽量保持一致性,字符的建立是通过程序的方法获得的具体做法如下1)分割车牌中的每个字符;2)将各个字符逐一归一化到6_12统一标准;3)将归一化的字符按一定的标准命名保存即可最后得到了340张不同的共34种的格式为.raw的文件,用程序显示这些字符库如图4-12所示9图4-12字符库示意图
4.
3.4字符识别建立字符库后,设计识别字符的神经网络首先设计输入层及输出层字符库中每个标本,均是6_12的标准二值图像对字符的特征,我采用像素法,即某个字符的像素是255时,神经结点输入为
0.9,像素值是0时,神经结点输入为
0.1,这样输入层就有6_12共72个结点输出层采用了34结点,如当导师信号为A编号10时,就在第10个结点设为
0.9,其他均为
0.lo至此,用于进行车牌定位的BP神经网络模型有了输入层及输出层即,输入层含72个神经结点(对应字符的每个像素),输出层34个神经结点(对应逻辑关系为属于编号第N个字符)中间层设计为仅含50结点的一层。