Matlab车牌识别系统
本文是作者车牌识别系列之一,车牌识别的方法有许多,本文主要介绍其中之一——模板匹配法及其实现。
目录
应用背景车牌识别技术是智能交通系统中的核心关键技术之一,其主要过程是利用模式识别、数字图像处理、计算机视觉等相关技术,从采集的车牌图像中提取车牌信息并实现车辆身份的认证。车牌识别系统广泛应用于交通管理、收费站、城市交叉口、港口和机场、机动车检测、停车场管理等不同的场所,并成为图像处理和模式识别技术研究领域中的热点问题。
完整的车牌识别系统包括图像采集、车牌定位、车牌字符分割、车牌字符识别。其中车牌定位算法包括靠人工设计的特征:基于形态学特征的定位法,基于色彩图像的定位法,基于神经网络的定位法,基于纹理特征的定位方法等;字符分割算法有投影法、连通性法和字符的先验知识法;字符识别别作为车牌识别中最重要的环节,其准确率直接影响车牌的准确识别,目前常见的车牌字符识别方法主要有模板匹配法、神经网络法和特征提取法。模板匹配法原理简单,比较直观,计算方便,本文将使用模板匹配法进行车牌字符识别。
03 车牌识别系统设计
本文对车牌识别的流程如下:
①灰度化车牌图像以红绿蓝三通道分量来储存图片,图像灰度化的过程是将彩色图像的3个通道转换为只有1个灰度通道的图片。常用的图像灰度化法有平均值法、最大值法、加权平均值法等。在现实生活中,人眼对绿色(G)敏感度最高,对红色(R)敏感度次之,对蓝色(B)敏感度最低,因此为了选择合适的权值输出合理的灰度图像,权值系数应该满足G>R>B。实验和理论证明,当R、G、B的权值系数分别选择0.299、0.587和 0.114时,能够得到最适合人眼观察的灰度图像。
②边缘检测边缘是指图像局部亮度变化最显著的部分,主要存在于目标与目标、目标与背景、区域与区域、颜色与颜色之间,是图像分割、纹理特征提取和形状特征提取等图像分析的重要步骤之一。在车牌识别系统中,边缘提取对于车牌位置的检测有很重要的作用,由于sobel边缘检测算法具有低错误率、高定位性、最小响应的特性,因此采用sobel算子进行边缘检测。
③形态学处理经过边缘检测后的图像还存在许多干扰区域,若直接进行车牌定位,很容易出现误定位或增加了车牌定位的计算量,因此可以利用图像形态学算子,简化图像数据,保持图像的基本形状特征,去除不相干的结构。数学形态学图像处理的基本运算有4个:膨胀(或扩张)、腐蚀(或侵蚀)、开启和闭合。膨胀操作会使物体的边界向外扩张,此时如果在物体内部存在小空洞,则经过膨胀操作,这些洞将被补上,不再是边界。如果再次进行腐蚀操作,外部的边界则将变回原来的样子,内部的这些空洞则已经消失。腐蚀操作会去掉物体的边缘点,如果物体足够细小,则其所有的点都会被认为是边缘点,进而被整体消除,仅保留大物体。进行膨胀操作时,留下来的大物体会变回原来的大小,被消除的小物体消失。在一般情况下,由于受到噪声的影响,车牌图像在阈值化后所得到的边界往往是不平滑的,在目标区域内部也有一些噪声孔洞,在背景区域上会散布一些小的噪声干扰。通过连续的开运算和闭运算可以有效地改善这种情况,有时甚至需要经过多次腐蚀之后再加上相同次数的膨胀,才可以产生比较好的效果。
针对于蓝底白字的车牌,车牌区域具有明显的特点,因此可以对车牌图像中像素进行行扫描和列扫描,并统计各行列的像素值之和。将各行的像素值之和存储到一个矩阵中,对矩阵中的像素累加值逐一进行比较,将像素值累加和最大点的位置(即像素点在车牌中所在的位置)提取出来。经过多次试验,设置一个初始的参数,车牌位置的像素值累加和不应小于50(如果小于50,就有理由认为该行不是车牌所在的位置),车牌位置像素点的位置不应小于1(即至少应该在提供的车辆图片中),这样设定一个边界值做循环扫描,便可得到车牌行的像素值最大的位置。然后再做循环,如果最大值点前一个像素值为1,就认为该点和最大点是连通的,即这个点也是车牌中的点,可以得到行的上边界。如果最大值点后一个像素值为1,也可以认为它也是车牌中的点,也可以近似得到行的下边界。在确定行的上下边界后,进一步确定列的左右边界。通过循环求出在上述求得的行的左右边界区域的列的像素值的累加和,将这些像素值的和存放在一个零矩阵中,经过多次试验设定一个初始的循环阈值,列的像素值之和应不小于3,(如果小于3有理由认为该列不是车牌所在的位置)且边界位置应在车辆的图像内,由此设定边界通过循环近似的得到车牌的列的左右边界位置。
车牌矫正是车牌定位和字符分割的一个重要处理过程。经过车牌定位后所获取的车牌图像不可避免地存在某种程度的倾斜,这种倾斜不仅会给下一步字符分割带来困难,最终也将对车牌的识别的正确率造成直接的影响。Radon变换是1917年由奥地利数学家Radon提出的,它描述一个二维图像函数f(x,y)的沿着某一方向的投影函数g (R)可以看成是R和θ构成的极坐标系统,(R, θ)空间又被称为Radon 空间,该空间中任意一点(R, θ)代表二维图像函数f(x,y)所在xoy平面内的线积分.Radon变换的实质是求任意方向θ上图像矩阵的投影,它可以实现Hough变换的功能,可以用来检测图像中的直线方向,计算不同的g(R),找出 Radon变换数值最大的值,它所对应的θ值代表了图像中最长直线的方向。基于Radon变换的车牌图像倾斜校正算法的基本原理,将车牌图像朝各个方向投影,进而通过分析各方向的投影特性确定车牌的倾斜角度,其具体的实现步骤:
- 图像预处理。读取图像,转换成灰度图,去除离散噪声点;
- 利用边缘检测,对图像中水平线进行强化处理;
- 计算图像的Radon变换,获取倾斜角度;
- 根据倾斜角度,对车牌图像进行倾斜校正。在该算法中,如何找到Radon变换后数值的最大值是最关键的步骤。目前求极大值的方法有两种,一种是把 Radon变换后最大峰值点对应的角度作为车牌长边的倾斜角,另一种是将Radon变换的一阶导数累加和的最大值对应的角度是车牌的倾斜角度,其中MATLAB的rando()函数是第一种方法,因此本文选用第一种方法。
车牌定位以后的图像还是一个整体,包括文字和文字之间的空白。对于已提取出来的车牌中的字符,需要进行字符切分。把单个字符从车牌字符串中分离出来,往往面临着字符断裂和粘连等困难。
3.4.1 字符分割原理
大部分字符分割的算法以垂直投影、字符间隔及尺寸的测定、轮廓分析或分割识别组合技术为基础。垂直投影积分法是常用的车牌字符分割方法。其基本方法是利用字与字之间的空白间隔在图像行垂直投影上形成空白间隙将单个字符的图像切割出来的。因为车牌的七个字符之间有明确的间隔,因此,其垂直投影有很明显的特征,本文采用垂直投影法进行字符分割,垂直投影法的基本思想是,从左到右依次检测垂直投影中为 0 的部分,根据先验知识来确定字符的边界。由于噪声的存在,这里我们将垂直投影中0的检测放宽至一定的范围,该范围与图像质量有关,需要根据实际图像做微调。
3.4.2 字符图像归一化
在车牌字符分割后往往会出现大小不一致的情况,因此可采用基于图像放缩的归一化处理方式将字符图像进行大小放缩,以得到统一大小的字符图像,便于后续的字符识别。
本文采用模板匹配法进行字符识别,该方法是数字图像处理中最常用的识别方法之一,具有较强的容错能力,适用于有较强干扰的场合,通过建立已知的模式库,再将其应用到输入模式中寻找与之最佳匹配模式的处理步骤,得到对应的识别结果,具有很高的运行效率。在实际实验中充分考虑了我国普通小汽车牌照的特点,即第1位字符是汉字,分别对应各个省的简称,第2位是A~Z的字母;后5位则是数字和字母的混合搭配。因此为了提高对比的效率和准确性,分别对第1位、第2位和后5位字符进行识别。模板匹配是图像识别方法中最具有代表性的基本方法之一,该方法首先根据已知条件建立模板库T(i,j),然后从待识别的图像或图像区域i.j)中提取若干特征量与T(i, j)相应的特征量进行对比,分别按如下公式计算它们之间归一化的互相关量Ck,其中Ck最大的即为对应类别。编辑切换为居中添加图片注释,不超过 140 字(可选)其中,f(i,j)为待识别车牌,f平为待识别的车牌的平均灰度,下标k表示数据为模板,此处的M=20,N=40。04 MATLAB程序实现本文采用Matlab的guide作为工具
如图,功能键有帮助、导入图片、运行、车牌库识别率、面板截图、退出。
05 展望
尽管模板匹配法实现的原理简单,但不能适应于各种字符变化、角度变化,鲁棒性较差,由于忽略了大量的字符细节信息,使得模板匹配法在识别相似字符时易出现误识别,神经网络法是先对待识别字符进行特征提取,然后用所获得的特征向量来训练神经网络分类器,通过训练好的分类器将字符识别出来,神经网络法在面对低质量的车牌图像时具有更强的鲁棒性及自适应性,识别效率较高,因此作者将在下一篇文章对神经网络的字符识别方法进行详解。
- 韦耿,夏领梯,张煜东.模板匹配和神经网络法用于车牌识别的比较研究[J].微型电脑应用,2022,29(09):6-8.
[2]胡伟平,王日凤. 基于阈值分割与区域生长的车牌识别方法[C]//广西计算机学会.广西计算机学会2015年学术年会论文集.广西计算机学会2019年学术年会论文集,2021:19-25.