基于MATLAB的车牌识别系统研究*
*基金项目: 校企合作横向项目(YG2020090201);2021年盐城工学院大学生创新创业训练计划项目(项目编号:368)
本文引用地址:http://www.amcfsurvey.com/article/202112/430525.htm第一作者简介:尹恒杰(2001—),男,本科在读,研究方向:电子科学与技术。
通讯作者简介:曹妍(1981—),女,讲师,主要研究方向:图像处理。
0 引言
随着国民经济不断增长,人们生活水平不断提高,汽车逐步走进了普通家庭。越来越多的家庭选择汽车作为代步工具,促进了智能交通系统的快速发展。而车牌识别系统作为智能交通系统的重要组成部分,能够自动识别出车牌,节省了人力,简化了工作流程,提高了识别速度的同时也避免了人工管理可能带来的错误。
而MATLAB 软件具有功能强大的图像处理工具箱,利用其中的函数可以大大节约底层代码编写的时间。利用MATLAB 软件对采集到的汽车车牌图像实现预处理、车牌定位与分割、字符识别等过程,完成汽车车牌的自动识别。
1 系统整体设计
目前雾霾天气越来越多,还有其他一些环境因素的影响,比如雨天、环境照度等等,使得采集到的汽车牌照图像不清晰,因此需要对图像进行预处理,提高图像的辨识度。常用的图像预处理方法有平滑、锐化、数学形态学处理等[1]。车牌定位是在图像中找出可能的车牌区域,由于中国的汽车车牌大多是蓝底白字,因此车牌定位方法可以根据颜色特征,以彩色像素统计的方法定位出合理的车牌区域。将汽车牌照定位出来以后,需要将牌照上的7 个字符分割成7 个独立的图像。然后利用模板匹配法将每个图像跟模板中的字符进行比对,最终输出识别的汽车车牌。本系统主要由图像预处理、车牌定位及分割、字符识别等模块组成。
2 图像预处理
图像预处理是车牌识别系统中非常重要的一个步骤。由于外界因素的影响,包括雨雾、光线强弱、行驶速度等,采集到的车牌图像质量不是很高,会影响车牌的识别,为了提高车牌的识别效率,需要对采集到的图像进行预处理,主要包括彩色图像灰度化、边缘检测、数学形态学处理等步骤[2]。
2.1 图像的灰度化
图像的灰度化处理是将彩色图像转化为灰度图像的过程。对彩色图像直接进行预处理会浪费很多的系统资源,加重计算机运行,导致运算缓慢。图片灰度化就是使像素点满足R = G = B,此时这个值叫做灰度值[3]。因为灰度图像只需对亮度信息进行处理,计算量较彩色图像少很多,基于此优点,在数字图像处理中将图像转变成灰度图像是非常有必要的。
图像灰度化的算法主要有以下3 种:
1)最大值法:取R、G、B 三色分量中的最大值。
R = G = B = max (R、G、B)
2)平均值法:取R、G、B 三色分量的平均值。
R = G = B = (R +G + B)3
3)加权平均值法:按权取R、G、B 的平均值。
R = G = B = rR + gG + bB
系数r、g、b 是红绿蓝的权值,MATLAB 中提供了专门的彩色图像转换成灰度图像的函数rgb2gray( ),默认的权值是0.30、0.59、0.11,选择合适的权值能够较好地突出图像的亮度,获得适合人眼观察的灰度图像。本系统采用MATLAB 提供的rgb2gray( ) 函数完成图像的灰度化。
2.2 边缘检测
通过边缘检测,可以得到车牌的轮廓,为后面的车牌定位和车牌识别做好准备。在实际处理过程中,通过模板与待处理的图像进行卷积来完成,选择的模板算子不同,最终检测的结果也不同[4]。常用于边缘检测的算子有Roberts 算子、Sobel 算子、Laplace 算子、Canny 算子等。Canny 算子不易受噪声干扰,通过采用不同的算子进行实验对比,Canny 算子检测效果最好,本系统采用Canny 算子进行边缘检测。MATLAB 中利用edge( )函数完成边缘检测的功能。图1 为边缘检测的结果。
图1 边缘检测
3 车牌定位及分割
3.1 车牌定位
本系统车牌定位采用数学形态学进行图像处理。形态学技术利用邻域的空间信息来分割图像,本系统将得到的边缘图像利用腐蚀和闭运算使车牌区域连通,利用MATLAB 的bwareaopen() 函数对连通区域进行筛选、移除小对象后,其他的图像已经完全滤除掉,图像中最后只存在牌照区域。
3.2 车牌分割
经过上述步骤的图像处理后,车牌区域的部分已经很明显了。在图像中表现为白色的横向近似长方形的区域。颜色特征在车牌分割的过程中起了很大的作用,车牌区域的颜色具有显著的特征。通过统计车牌图像的彩色像素点可以分割出车牌区域。车牌区域会受到类似车牌图案的其他图案的干扰,而车牌区域一般比这些图案位置要低,因此可采用从下而上的扫描方式减少这些干扰。有时得到的车牌区域可能不止一个,要根据车牌的长宽比和蓝白色的比例来确定车牌区域。在车牌分割的过程中,先进行行扫描,统计每行的蓝色像素点的数量,根据设置的阈值,向上追溯,直到车牌区域的上边界,向下追溯,直到车牌区域的下边界,从而确定水平方向的车牌区域。然后,进行列扫描,用同样的方法确定车牌在竖直方向的区域。对车牌区域修正后,最终确定完整的车牌区域。
3.3 字符分割
通过统计车牌图像的彩色像素点分割出车牌区域以后,再将字符分割出来进行归一化处理。字符分割的方法有很多,本系统采用垂直投影法进行字符分割[5]。我国车牌的大小是相等的,字符的间距以及字符大小比例关系也是确定不变的。通过水平投影分割每一行,以获取每一行的二值图;对每一行进行垂直方向投影,以获取每一行字符的位置;根据位置坐标画出矩形框。通过矩形框在车牌区域滑动匹配可以完成车牌字符分割。这样就可以确定出字符边框,便于之后的分割。这里要注意第二个字符和第三个字符之间的间隔比其他字符略大。
将车牌的7 个字符依次单独分割出来后,进行归一化处理[6]。由于字符库中的字符是竖直的且大小固定,归一化后可以将分割得到的可能歪斜的字符的位置转变成与字符库中字符相同的位置,并将分割得到的字符转变成与字符库中的字符具有相同的尺寸。归一化处理十分有必要,是为了使分割得到的车牌字符与字符库中标准字符具有相同的尺寸和位置,以便于车牌匹配。良好的归一化处理可以有效提高车牌匹配识别的准确率。图2 为车牌定位以及字符分割的结果。
图2 车牌定位及分割
4 车牌匹配识别
目前用于车牌字符识别的算法主要有两种:模板匹配算法和基于神经网络的字符识别算法[7]。基于神经网络的字符识别算法需要通过神经网络学习大量的字符样本,识别的准确率取决于数据库的大小以及内容的丰富程度。和模板匹配算法相比,基于神经网络的算法容错性高,但是需要大量的样本,复杂性高,训练过程需要耗费较长时间,在实时系统中很难应用。本系统采用模板匹配算法,将归一化后的车牌图片与模板库中的字符直接相减或者进行相关性计算,选取最小值或者相关性最大值,认为是相似性最大的字符作为识别结果。由于采集图像的复杂性,往往直接进行比对会出错。为了增加识别的准确性,改进了传统的字符模板库,根据车牌字符的特点,将车牌字符中的汉字与字母、数字分别放到单独的模板库中,缩小了匹配的范围,使识别速度加快。由于模板匹配以字符整体为基础,建立在标准模板库的基础之上,不要求字符结构的完整性,算法比较简单,识别率相对较高。图3 为车牌识别结果。
图3 车牌识别结果
5 结束语
本文通过MATLAB 平台对车牌图像进行处理,利用数学形态学方法进行车牌定位,采用统计彩色像素点的方法分割出车牌区域,用垂直投影法进行字符分割。在车牌匹配识别中,改进传统的模板字符库,将汉字与字母、数字分别放到单独的模板库中,能够准确高效地识别出车牌号码。
参考文献:
[1] 胡学龙.数字图像处理[M].3版.北京:电子工业出版社,2014.
[2] 邵毅,郑大波,温艳,等.基于模板匹配的车牌识别及图形用户交界面设计[J].宿州学院学报,2018,33(12):121-124.
[3] 张俊峰,尚振宏,刘辉.基于颜色特征与模板匹配的车牌识别系统设计与实现[J].软件导刊,2018,17(1):212-215,220.
[4] 曹妍,陈伟,徐森.图像去噪方法研究与仿真[J].软件,2015,36(4):33-36.
[5] 黄岳锐,黄楷佳.基于图像处理的车牌识别与字符分割及MATALB实现[J].内蒙古科技与经济,2019(10):64-66.
[6] 李强,张娟.一种改进的基于模板匹配的污损车牌识别方法[J].智能计算机与应用,2019,9(3):113-117.
[7] 徐继弘,刘号.雾霾天气下的车牌识别方法探讨[J].电子科学技术,2017,4(2):93-94,112.
(本文来源于《电子产品世界》杂志2021年12月期)
评论