东北大学秦皇岛分校毕业设计(论文) 第 31 页
a=imclearborder(goal,4); %去除车牌边框
figure,imshow(a),title('去除边框');
图4.1 去除边框后的车牌图像
去除边框后可看到图中仍存在许多早点,这对于后续的字符切割和字符识别都是影响很大的,在这里需进行一步去除噪点的处理。调用matlab中的bwareaopen指令,参数设定为200。处理后如图4.2所示。
图4.2 去除噪点后的车牌图像
可以看到,图像中除了我们希望看到的字符信息外,几乎不存在其他影响的因素,只剩下字符。这时,需要进一步车牌定位,将字符外部多余的空余部分除掉。方法:由于在经过初步定位处理后,车牌上下边界往往没有干扰信息,而且车牌的上下边框由于是水平的,在边缘提取的时候已经被除去。因此,在查找上下边缘时可以从上到下搜索,找到第一个不为零的点,然后从下往上搜索,找到第一个不为零的点,这两点之间即为车牌的上下边界。车牌的左右定位同理。处理后如图4.3所示
东北大学秦皇岛分校毕业设计(论文) 第 32 页
图4.3 车牌的精确定位图像
4.3.2 字符分割算法
为了准确识别牌照上的汉字、英文字母及数字,必须把单个字符从牌照中提取分离出来。在实际处理中,通常由于存在较大的干扰噪声,使得牌照图像中产生字符之间粘连或字符断裂,字符的笔画变粗、字符的轮廓模糊不清的现象。经牌照定位而分割出的牌照区域不完全精确到牌照的字符区域,在牌照边框附近会出现误差几个像素。目前车牌字符分割算法主要有三种[19]:连通区域法、静态边界法和垂直投影法。
连通区域法:利用字符或字符的一部分构成连通域的特性,把这些连通域切分出来,也就切分出车牌字符。通常情况:车牌上的字符除汉字外,其它的都是字母或数字,它们在理想状态下是全连通,但在实际情况中,车牌区域内存在很多噪声区域,这些区域与车牌中的字符线条粘连在一起,使字符的连通域特性不规范,甚至车牌中的字符与车牌上下边框粘连成一个很大的连通区域。如果仍然使用连通区域法进行字符分割将很难得到满意的结果。所以连通区域法适用于分割清晰的车牌图像,即对图像质量要求很高。
静态边界法不受噪声影响,但依赖车牌图像的正确提取。静态边界法认为定位阶段提取的车牌区域是车牌的精确位置,即车牌边界已经准确定位。利用车牌本身存在的模板特征分割车牌,对车牌定位阶段要求过高。如果在此基础上加动态边界匹配规则,分割准确率会大大提高。
本文中,综合对于车牌信息的先知了解,再结合垂直投影发,对字符进行切割。 根据前文中提到的有关我国车牌统一规格的知识,如果平均分配每个字符在牌照中占据的宽度,那么每个字符宽度为:width/7(width 为车牌图像的宽度)。但是,实际上,第二个第三个字符之间存在一个黑点,牌照左右两边与图像边缘也都有一定的
东北大学秦皇岛分校毕业设计(论文) 第 33 页
宽度,所以每个字符的宽度应该小于width/7。考虑所有的情况,一般情况下最小的宽度为width/9。因此,字符的宽度可以从width/9 到width/7 之间渐进的变化得到。
垂直投影法: 其思想是根据车牌字符的特点,将车牌图像进行垂直方向的投影,因为字符区域的黑色像素点比较多,比较集中,同时每个车牌字符之间有一定的空隙间隔隔开。这样投影下来得到的投影图应该有多个相对集中的投影峰值群,只要根据峰值群的特点进行分割,就可以得到车牌的字符。利用字符块在垂直方向上的投影必然在正确分割位置上取得局部最小值,且这个位置要满足车牌字符规则和字符尺寸限制。对车牌区域作垂直方向的投影,首先在水平方向从左至右检测各坐标的垂直投影数值,当找到第一个局部最小值点时,认为这个点是最左面字符的边界;然后在水平方向上从右至左检测坐标的垂直投影数值,当找到第一个局部最小值点时,认为这个点是最右面字符的边界。得到两边字符的边界之后,用同样的方法找到每个字符的边界。
车牌字符切分的具体算法为:
(1)对车牌图像进行垂直投影,计算出字符的宽度后,确定字符的中间位置,并计算相邻两个字符之间的间距,即中间距离的差值。取其最大值定为第二个字符和第三个字符之间的距离。以此为分界线,分别向前、后两个方向进行切分,从而定位出每个字符的左右边界,并保存在数组里。由于MATLAB 的数组可以存放不同大小的数据,为字符边界信息的存储提供了极大的便利。
(2)对每个切分出的字符进行水平投影,确定字符的具体的上下边界,保存到数组里。
(3)由于用于最后识别的字库中字符模板为40× 20像素,所以这里对切分出来的字符进行归一化处理,统一为40× 20像素。
(4)将归一化后的字符的信息保存在数组里,做为参数输入字符识别模块与模板比较进行字符识别。
分割后的字符如图4.4所示
东北大学秦皇岛分校毕业设计(论文) 第 34 页
12345图4.4 分割后的字符
67
东北大学秦皇岛分校毕业设计(论文) 第 35 页
5. 基于神经网络的车牌字符识别
5.1 常用的车牌字符识别方法
传统的字符识别算法一般可分为模板匹配法、支持向量机和神经网络的识别方法三
种[20]。其中模板匹配法应用的较为广泛,其识别的准确率相对较高。
(1)模板匹配法 模板匹配是图像识别中最常用的方法。首先,对待识别字符进行二值化处理,并规范其大小为字符数据库中模板的大小,然后与所有模板进行匹配,选择相似度最大的匹配模板作为输出结果。它的判别方法是用最小距离法判定所属类。模板匹配通常使用二值化同尺寸模板建立标准模版库,用归一化准则匹配车牌字符图像和标准模板。该类算法的优点是识别率高。缺点是对字符图像质量要求较高,计算速度慢。
(2)支持向量机 支持向量机的字符识别算法也是图像识别算法中的一种,针对我们需要识别的字符,先要分析这些字符的特征。然后将这些字符模型化,主要是对这些字符模型进行训练,类似于人学习的过程。然后利用这些字符模型相应的去和待识别的字符进行匹配。因为字符的识别过程是一个多类的问题,所以支持向量机的方法一般不单独使用。
(3)神经网络识别方法 神经识别网络识别方法一般分为学习阶段和识别阶段。首先,在学习阶段,先要设定学习的样本,也就是定义这个样本的特征。设一个阈值,利用传输函数对每一个神经元进行计算。具体的过程是从低端逐步向上方进行的。最后神经元的每一层的输出就可以作为一个输出值。然后进行识别的阶段,将每一层的输出值和理想的输出值做一个差值。然后根据这个差值对阈值进行修改,修改的过程是从最高层到最低层的。学习阶段和识别阶段两个过程重复进行,最后直到神经网络收敛为止。由此可见,神经网络的识别方法比较复杂,运算量也很高。
本文将结合模板匹配和神经网络两种方法,重点介绍BP神经网络,综合各自的有点,对车牌进行识别。 5.2 基于神经网络的字符识别
字符特征提取后,需要采用有效的分类器来对其进行分类。分类器主要有两类:基于