基于模板匹配车牌识别技术的研究——王宜政1、研究背景汽车牌照自动识别模块是现代社会智能系统的重要组成部分,是图像处理和模式识别技术研究的热点,具有非常广泛的应用[1]。车牌识别主要包括以下三个步骤:车牌区域定位、车牌字符分割、车牌字符识别。本论文通过对采集的车牌图像进行灰度变换、边缘检测、腐蚀、平滑等过程来进行车牌图像预处理,并由此得到一种基于车牌颜色纹理特征的车牌定位方法,最终实现了车牌区域定位。车牌字符分割是为了方便后续对车牌字符进行匹配,从而对车牌进行识别。本论文采用了模板匹配的方法,对输出的字符图像和模板库里的模板进行匹配,以得到对应于车牌字符的具体信息。本论文还基于MATLAB进行了设计仿真实验,实验表明,该方案整体有效可行。基于模板匹配的车牌识别技术在其识别正确率、速度等方面具有独特的优势及广阔的应用前景。2、理论基础车牌定位与字符识别技术是以计算机数字图像处理、模式识别等技术为基础,通过对原图像进行预处理及边缘检测等过程来实现对车牌区域的定位,然后对车牌区域进行图像裁剪、归一化、字符分割及保存,最后将分割得到的字符图像与模板库里的模板进行匹配识别,从而输出匹配结果。该流程如下图所示:——采集图像——图像预处理——定位车牌区域——车牌图像处理——字符分割——字符识别——输出结果(⇒车辆牌照识别系统)车牌识别首先要正确地分割车牌区域,为此已经提出了很多方法:使用霍夫变换检测直线来定位车牌边界,进而获取车牌区域;使用灰度阈值分割、区域生长等方法进行区域分割;使用纹理特征分析技术检测车牌区域等。然而霍夫变换对图像噪声比较敏感,因此在检测车牌边界直线时,容易受到车牌变形或噪声等因素的影响,具有较大的误检测几率。灰度阈值分割、区域增长等方法则比霍夫直线检测方法稳定,但当图像中包含某些与车牌灰度非常相似的区域时,便不再适用了。同理,纹理特征分析方法在遇到与车牌纹理特征相近的区域或其他干扰时,车牌定位的正确率也会受到影响。因此仅采用单一的方法,难以达到实际应用的要求。如果进行车牌字符的定位和裁剪,则需要首先对输入的车牌图像进行预处理,以得到精确的车牌字符图像;然后将处理后的车牌看作由连续的字符块组成,并设定一个灰度阈值,如果超过该阈值,则认为有多个字符相连,需要对其进行切割,进而实现对车牌字符的分割;最后把分割的字符图片进行标准化并与模板库进行比对,选出最相似的字符结果并输出,即为车牌信息。2.1、车牌图像处理2.1.1、图像灰度化车牌图像的采集一般是通过数码相机或摄像机来进行,得到的图片一般都是RGB图像,即真彩图像。根据三基色原理,每一种颜色都可以由红、绿、蓝三种基色按不同的比例构成,所以车牌图像的每个像素都由三个数值来指定红、绿、蓝的颜色分量。灰度图像实际上是一个数据矩阵I,该矩阵每个元素的数值代表一定范围内的亮度值,矩阵I可以是整型、双精度型,通常0代表黑色,255代表白色。在MATLAB中,一副RGB图像可以用uint8、uint16或者双精度等类型的m×n×3矩阵来描述,其中m和n分别表示图像的宽度和高度,此处的RGB图像不同于索引图,所以不使用调色板。在RGB模型中,如果R=G=B,则表示一种灰度颜色。其中,R=G=B的值叫做灰度值,由彩色转为灰度的过程叫做图像灰度化处理。因此,灰度图像是指只有强度信息而没有颜色信息的图像。一般而言,可采用加权平均值法对原始RGB图像进行灰度化处理,该方法的主要思想是从原图像中取R、G、B各层像素值,经过加权求和得到灰度图的亮度值。在现实生活中,人眼对绿色敏感度最高,对红色敏感度次之,对蓝色敏感度最低,因此为了选择合适的权值对象,使之能够输出合理的灰度图像,权值系数应满足GRB。实验和理论表明,当R、G、B的权值系数分别选择0.299、0.587、0.114时,能够得到最适合人眼观察的灰度图像。2.1.2、图像二值化灰度图像二值化在图像处理过程中有着很重要的作用,图像二值化处理不仅能使数据量大幅减少,还能突出图像的目标轮廓,便于进行后续的图像处理与分析。对车牌灰度图像而言,所谓的二值化处理就是将其像素点的灰度值设置为0或255,从而让整幅图片呈现黑白效果。因此,对灰度图像进行适当的阈值选取,可以在图像二值化的过程中保留某些关键的图像特征。在车牌图像二值化的过程中,灰度大于或等于阈值的像素点被判定为目标区域,其灰度值用255表示;否则这些像素点被判定为背景或噪声而排除在目标区域之外,其灰度值用0表示。图像二值化是指在整幅图像中仅保留黑、白二值的数值矩阵,每个像素取两个离散数值0或1,其中0代表黑色,1代表白色。在车牌图像处理系统中,进行图像二值化过程的关键是选择合适的阈值,使得车牌字符与背景能够得到有效分割。不同的阈值设定方法对车牌图像进行处理也会产生不同的二值化处理结果:阈值设置得过小,则容易误分割,产生噪声,影响二值变换的准确度;阈值设置得过大,则容易过分割,降低分辨率,使非噪声信号被视为噪声而被过滤,造成二值变换的目标损失。2.1.3、图像边缘检测边缘是指图像局部亮度变化最显著的部分,主要存在于目标与目标、目标与背景、区域与区域、颜色与颜色之间,是图像分割、纹理特征提取和形状特征提取等图像分析的重要步骤之一。车牌识别系统中边缘提取对于车牌位置的检测有很重要的作用,常用的边缘检测算子有很多,如Roberts、Sobel、Prewitt、Laplacian、Log、Canny等。根据实验分析,Canny算子对弱边缘的检测相对精确,能更多地保留车牌区域的特征信息,所以本论文采用Canny算子来进行边缘检测。Canny算子在边缘检测中有以下明显的判别指标。(1)信噪比信噪比越大,提取的边缘质量越高。信噪比SNR定义为:。式中,G(x)代表边缘函数,h(x)代表宽度为W的滤波器的脉冲响应,σ代表高斯噪声的均方差。(2)定位精度边缘定位精度L定义如下:。式中G'(x)、h'(x)分别是G(x)和h(x)的导数。L越大,表明定位精度越高。(3)单边缘响应为了保证单边缘只有一个响应,检测算子的脉冲响应导数的零交叉点平均距离D(f')应满足:,式中,h″(x)是h(x)的二阶导数。以上述指标和准则作为基础,利用Canny算子的边缘检测算法步骤如下:①预处理。采用高斯滤波器进行图像平滑。②梯度计算。采用一阶偏导的有限差分来计算梯度,获取其幅值和方向。③梯度处理。采用非极大值抑制方法对梯度幅值进行处理。④边缘提取。采用双阈值算法检测和连接边缘。2.1.4、图像形态学运算数学形态学图像处理的基本运算有四个:膨胀(或扩张)、腐蚀(或侵蚀)、开启、闭合。二值形态学中的运算对象是集合,通常给出一个图像集合和一个结构元素集合,利用结构元素对图像集合进行形态学操作。膨胀运算的符号为⊕,图像集合A用结构元素B来膨胀,记做A⊕B,定义为:。式中,表示B的映像,即与B关于原点对称的集合。因此,用B对A进行膨胀的运算过程如下:先做B关于原点的映射得到映像,再将其平移x,当A与B映像的交集不为空时,B的原点就是膨胀集合的像素。腐蚀运算的符号是Θ,图像集合A用结构元素B来腐蚀,记做AΘB,定义为:|()xABxBA。因此,A用B腐蚀的结果是所有满足将B平移后,B仍旧全部包含在A中的X的集合,也就是结构元素B经过平移后全部包含在集合A中的原点所组成的集合。膨胀操作会使物体的边界向外扩张,此时如果物体内部存在小空洞,则经过膨胀操作,这些洞将被补上,不再是边界。如果再次进行腐蚀操作,外部边界则将变成原来的样子,而这些内部空洞则已经消失。腐蚀操作会去掉物体的边缘点,如果物体足够细小,则其所有的点都会被认为是边缘点,进而被整体消除,仅保留大物体。如果在进行膨胀操作时,留下来的大物体会变回原来的大小,则被消除的小物体已经消失。在一般情况下,由于受到噪声的影响,车牌图像在阈值化后所得到的边界,往往是不平滑的,目标区域内部也具有一些噪声空洞,在背景区域上也会散布着一些小的噪声干扰。通过连续的开、闭运算,可以有效地改善这种情况,有时甚至需要经过多次腐蚀之后,再加上相同次数的膨胀,才可以产生较好的效果。2.1.5、图像滤波处理图像滤波能够在尽量保留图像细节特征的条件下对噪声进行抑制,是图像预处理中常用的操作之一,其处理效果的好坏将直接影响后续图像分割、图像识别的有效性和稳定性。均值滤波也称为线性滤波,是图像滤波最常用的方法之一,其采用的主要方法是领域平均法。该方法对滤波像素的位置(x,y)选择一个模板,该模板由其近邻的若干像素组成,求出模板中所包含像素的均值,再把该均值赋予当前像素点(x,y),将其作为处理后的图像在该点上的灰度值g(x,y),即,其中M为该模板中包含当前像素在内的像素总个数。采集车牌图像的过程往往会受到多种噪声的污染,进而会在将要处理的车牌图像上呈现一些较为明显的孤立像素点或像素块。一般情况下,在研究目标车牌时所出现的图像噪声都是无用的信息,而且还会对目标车牌的检测和识别造成干扰,极大地降低了图像质量,影响图像增强、图像分割、特征提取、图像识别等后续工作的进行。因此,在程序实现中,为了能有效地进行图像去噪,并且能有效地保存目标车牌地形状、大小及特定的几何和拓扑结构特征,本论文采用均值滤波来对车牌图像进行去噪处理。2.2、车牌定位原理车牌区域具有明显的特点,因此根据车牌底色、字色等有关知识,可采用彩色像素点统计的方法分割出合理的车牌区域。本论文以蓝底白字的普通车牌为例,说明彩色像素点统计的分割方法。假设经过数码相机或CCD摄像头,拍摄采集到了包含车牌的RGB彩色图像,水平方向记为y,垂直方向记为x,则:首先,确定车牌底色RGB各分量分别对应的颜色范围;其次,在y方向统计此颜色范围内的像素点数量,设定合理的阈值,确定车牌在y方向的合理区域;然后,在分割出的y方向区域内统计x方向此颜色范围内的像素点数量,设定合理的阈值进行定位;最后,根据x、y方向的范围来确定车牌区域,从而实现定位。2.3、车牌字符处理2.3.1、阈值分割原理阈值分割算法是图像分割中应用场景最多的算法之一。简单地说,对灰度图像进行阈值分割,就是先确定一个处于图像灰度取值范围内的阈值,然后将图像中各个像素的灰度值与这个阈值进行比较,并根据比较的结果将对应的像素划分成两类:像素灰度值大于阈值的一类和像素灰度值小于阈值的另一类,灰度值等于阈值的像素可以归入这两类之一。分割后的两类像素一般分属图像的两个不同区域,所以对像素根据阈值分类法达到了区域分割的目的。由此可见,阈值分割算法主要有以下两个步骤:(1)确定需要进行分割的阈值。(2)将阈值与像素点的灰度值进行比较,以分割图像的像素。在以上步骤中,确定阈值是分割的关键,如果能确定一个合适的阈值,就可以准确地将图像分割开来。阈值确定后,将阈值与像素点的灰度值比较和分割,可对各像素点并行处理,通过分割的结果将直接得到目标图像区域。在选择阈值方法来分割灰度图像时,一般会对图像的灰度直方图分布进行某些分析,或者建立一定的图像灰度模型来进行处理。最常用的图像双峰灰度模型的条件可描述如下:假设图像目标和背景直方图具有单峰分布的特征,且处于目标和背景内部相邻像素间的灰度是高度相关的,但处于目标和背景交界处两边的像素在灰度值上有很大的差别。如果一幅图像满足这些条件,则它的灰度直方图基本上可以看作由分别对应于目标和背景的两个单峰组成。如果这两个单峰部分的大小接近且均值相距足够远,两部分的均方差也足够小,则直方图整体上呈现较明显的双峰现象。同理,如果在图像中有多个呈现单峰灰度分布的目标,则直方图整体上可能呈现较明显的多峰现象。因此,对这类图像可用取多级阈值的方法来得到较好的分割效果。如果要将图像中不同灰度的像素分成两类,则需要选择一个阈值。如果要将图像中不同灰度的像素分成多类,则需要选择一系列的阈值,从而将像素分到合适的类别中。如果只用一个阈值分割,则可称之为单阈值分割方法;如果用多个阈值分割,则可称之为多阈值分割方法。因此,单阈值分割可看做是多阈值分割的特例,许多单阈值分割算法可推广到多阈值分割