张文俊 李小兰
关键词:智能交通;车辆牌照识别技术;MATLAB;图像处理;形态学处理
0引言
随着经济的不断发展,汽车已成为人们交通出行的常用选择。随着车辆数量的增加,交通管理问题变得更加突出,智能化车辆管理成为道路交通管理的重点。在智能化车辆管理中,车辆牌照识别(VehicleLi?censePlateRecognition,VLPR)技术显得尤为重要,可应用于停车场管理、高速公路违法车辆监控识别、小区智慧车辆管理等场景。车牌作为车辆的唯一标识,是车辆的“身份证”,如何进行快速、实时、准确的车辆牌照识别是关键。
要实现车辆牌照的精确识别,有多种方法可选:基于特征提取的方法[1]、基于模板匹配的方法[2]、基于分类器的方法[3]、基于神经网络的方法[4]等。基于特征提取的车牌识别方法对于处理车牌畸变、倾斜或光照不均等复杂背景下的识别效果较好,但需要消耗大量计算资源,当数据量过大时会导致识别速度变慢。基于分类器和基于神经网络的识别方法虽然能够快速处理不同类型的车牌并识别字符,但需要大量训练数据和计算资源,并需要根据评估结果反复调整模型参数。而基于模板匹配的方法快速简单,不需要大量数据作为训练支撑,因此本文选择研究基于模板匹配的车辆识别方法。考虑到车牌图像的角度、大小和字体等问题,本文引入结构相似性度量(SSIM)值来计算字符的匹配程度,从而成功识别出车牌号码。
1相关方法概述
在车牌号码识别的过程中,图像质量的好坏直接影响最终识别结果的准确率。为了改善图像质量,在处理车牌图像时需要进行一系列的预处理操作,以去除背景噪声和干扰信息。经过预处理后,能够增强图像中目标区域特征,有助于后续的车牌定位、分割和识别。
车牌区域的分割是识别过程中的关键步骤之一。文献[5]提到了基于二值图像像素分割的方法,利用阈值将图像转换为黑白形式,并通过标记连通区域来实现分割。另外,文献[6]利用极值区域和Top-Hat变换来分割车牌区域,通过判断关联区域来获取特征,使得分割更准确。随着深度学习技术的发展,卷积神经网络(CNN)、BP神经网络等模型[7]也被广泛应用于车牌字符的分割和识别,能够自动学习和提取图像中的特征,实现高精度的字符分割和识别。
在车牌定位方面,也有多种算法用于精确定位车牌位置。数学形态学方法通过膨胀和腐蚀等操作来提取车牌区域,而基于颜色的分割方法[8]则通过设定特定的颜色范围来定位车牌。另外,基于纹理和特征的方法利用图像中的纹理和边缘信息来识别车牌位置。
对于车牌字符的识别,模板匹配是一种常用的方法,通过将待识别的字符与预定义的标准模板进行匹配来确定字符的类别。Gabor变换也被用于车牌字符的识别,通过提取特定频率和方向的信息来进行识别。当然,基于深度学习的方法也在车牌字符识别中得到广泛应用,能够提高识别的准确性和效率。
2总体设计方案
在本文中,车辆牌照识别系统的总体设计主要包括车辆图像预处理、车辆区域的分割、车牌字符的分割和车牌字符的识别。首先,对采集到的车辆图像进行预处理,去除部分会影响最终结果的噪声和干扰信息。随后,通过行列像素扫描定位车牌位置并粗略分割出车牌图像,利用形态学方法去除车牌图像的边框,精准定位到车牌字符区域。接着,通过垂直方向投影,结合字符的宽高比,选取合适的分割阈值进行车牌字符的分割。然后,建立字符模板库,通过计算分割字符与模板字符的结构相似性度量(SSIM)值来识别车牌号码,最后输出结果。总体流程如图1所示,该过程采用MATLAB2019a软件实现,并在Windows10系统环境下完成。
2.1车辆图像预处理
由于实验数据获取条件有限,采集到的自然图像中包含大量干扰信息,如光照不均匀、空气中的灰尘、非车辆物体噪声等。为了消除图像中噪声对结果的影响,需要对采集到的图像进行预处理。预处理过程包括:图像灰度化、中值滤波、边缘检测和形态学图像处理操作(腐蚀、闭操作、删除小对象)。彩色图像中的每个像素由R、G、B三个分量决定,为了降低计算量,对自然图像进行灰度化处理。本文使用公式(1)所示的加权平均值法进行灰度化,并将灰度化后的图像存储下来便于后续操作。
其中,Gray为图像的灰度值像素,R、G、B分别为图像的红、绿、蓝三个通道对应的像素值。计算出Gray灰度值后,将该灰度值赋给对应位置,从而得到灰度图像,如图2所示。
灰度化处理后,对图像进行滤波操作可以有效减少图像中的噪声。本文运用中值滤波器去除噪声,改善了图像质量,同时保留了图像的边缘信息。中值滤波是一种常见的滤波方法,可以有效抑制椒盐噪声和脉冲噪声等。
在完成图像滤波后,本文采用Roberts算子进行边缘检测,以增强图像中车辆的边缘信息。Roberts算子,也称为罗伯茨算子,是一种利用局部差分算子寻找边缘的算子,通过计算对角线方向相邻像素之差的近似梯度幅值来检测边缘,对垂直边缘的检测效果尤佳。在图像中,车牌区域主要为矩形或类矩形区域,因此采用Roberts算子来增强车牌位置的边缘信息,处理后的结果如图3所示。
经过边缘检测后,对图像进行形态学处理。形态学图像处理操作包括图像腐蚀、膨胀、开运算、闭运算和击中-击不中变换。通过形态学操作,可以从图像中提取有利于描述和使用的区域形状,如边界、骨架和凸壳等图像分量。在本文中,主要使用了腐蚀、闭运算和删除小对象操作。通过腐蚀,可以去除背景中的不连通区域,如树木等。随后采用闭运算平滑边界,通过删除小对象操作即可得到车牌区域,如图3所示。可以看到,通过腐蚀运算,图像中杂乱的背景信息被有效去除;经过闭运算,得到了较大的车牌连通区域以及小的背景干扰区域;最后,通过删除小对象,得到了完整的车牌区域。通过形态学处理,可以有效消除图像中非车牌位置的干扰信息,为后续的车牌定位和分割操作提供便利。
2.2车牌区域定位及分割
在得到仅包含车牌区域的二值图像后,为了准确地对车牌进行定位和分割,本文采用了行列像素扫描法。该方法通过逐行逐列地扫描图像中的像素值,统计行和列上的像素变化情况,从而识别出车牌区域边界。通过这种方式,可以获取车牌区域的边界坐标信息,为后续的车牌定位和识别提供准确的数据基础。
根据多张图像实验结果,本文选择分割的最佳阈值为35,超过该值时判定其为车牌区域。根据行和列的像素扫描结果,结合车牌的宽高比等信息,得出车牌区域的四个待分割边界点坐标。根据边界点坐标可以精准地分割出车牌区域,如图4所示。
2.3车牌字符分割
在获取到车牌区域图像之后,需要对其进行分割以获得单独的车牌字符图像。由于采集角度的问题,车牌可能存在倾斜情况,从而影响字符识别的准确率。
为了解决这个问题,本文采用Radon变换对图像进行倾斜矫正。Radon变换是一种图像处理技术,通过将图像投影到不同方向的线上,计算其投影值,然后整合得到变换后的图像。Radon变换对图像进行旋转和平移等变换操作,实现图像的倾斜矫正。通过Radon变换的应用,我们可以将车牌图像调整到正确的角度,从而提高后续字符识别的准确率,其数学表达式如式(2)所示。
在对车牌图像进行倾斜校正后,进行二值化操作以进一步简化图像并突出车牌字符特征。在车牌图像中,除了车牌字符外,还包含间隔符“·”。为了更好地分割车牌字符,在分割前将间隔符去掉,得到非连通的车牌字符图像,即每个字符在图像中是相互独立的。
接下来,为了更好地识别和定位车牌字符,本文采用水平方向上的垂直投影法。通过对垂直方向进行投影,生成一个垂直投影直方图,如图5所示。这个直方图清晰地展现了每个字符在垂直方向上的分布情况。通过观察这个直方图,可以看到每个字符之间明显存在一定的空隙,这些空隙为我们提供了字符间的位置信息。根据该位置信息结合字符宽度对车牌字符进行分割,分割后的车牌图像如图6所示。
2.4车牌字符识别
得到分割后的车牌字符图像之后,本文通过计算图像的相似性SSIM值来对车牌字符进行识别。在进行此步骤前建立了无干扰信息的车牌字符图片模板库,并将所有图片进行归一化操作,统一它们的像素值范围和尺寸。接下来,将分割后的车牌字符图像与模板库中的图像进行比较从而得到字符识别结果。
SSIM是结构相似性度量指标,可以衡量两种图像之间的相似度。SSIM算法注重图像的结构相似性,对于不同字体的字形,可以更好地检测出其细微差异。通过计算每张车牌字符图像与模板库中字符图像的SSIM值,可以评估它们的相似度。SSIM值越接近1,表示两个图像越相似,即被识别的车牌字符与对应的模板字符图像越匹配。图像SSIM值的计算公式如(3)、(4)所示。
式中,分别代表两张图像,为图像的标准差,为图像的均值,为0.01,为0.03,L为255。
计算车牌字符与模板字符的SSIM值,值越高说明两张图像越相似,匹配度越高,即可获得对应的字符。最终识别得到的结果如图7所示。
3实验结果展示
本文的实验数据部分来源于网络,部分为采集拍摄的真实车辆图像。为了避免造成隐私信息泄露,本文在进行实验前对真实车辆号码进行了处理。由于拍摄设备及环境影响,实验用到的图像数据存在像素模糊、大小不一等问题,从而导致算法分割后的车牌大小也不尽相同。因此,在进行实验之前,先对实验图像通过最近邻插值法进行处理,保证图像数据大小的统一。本文中所展示的数据仅用于此次实验,图8展示了部分实验图片中的车辆原始图像。
通过灰度化处理后,得到的车辆图像如图9所示。
图10展示了通过车牌定位分割,以及进行Ran?don倾斜校正后的车牌图像。可以看到该车牌图像中车牌字符清晰,且角度正常,为后续的车牌字符分割提供了支持。
对图10中的车牌图像,采用垂直投影直方图法对其进行分割,分割后的车牌字符图像如图11所示。
最终识别结果如图12所示。从图中可以看出,本文采用的方法能够准确识别车牌号码。其中,部分图片由于车牌占整个图像比例大,车牌定位更加精准;但也存在部分图片因车辆玻璃反光等干扰信息导致预处理后图像存在噪声,因此定位相对不够精准。然而,在腐蚀闭运算等形态学操作处理下,也能正确定位并识别出车牌字符。最后,通过模板匹配成功识别出车牌号码。
4结论
本文主要对车辆牌照识别整个过程进行了研究,在MATLAB软件中实现了车辆图像预处理、车牌定位与分割、车牌字符分割处理、车牌字符识别。通过对包含车辆的自然图像进行预处理,增强车牌特征信息,然后采用行列像素扫描法分割得到车牌区域;通过垂直投影直方图法对间隙进行分割得到车牌字符图像;随后建立车牌字符模板库,通过计算待识别车牌字符图像与模板库中字符图像的SSIM值来完成识别。最后,通过实验验证了本文使用的方法能够准确快速地识别出车牌号码。
对于车牌的模板匹配,一开始采用的是计算两张图像的绝对差值,值越小则匹配度越高。然而,对于歪曲字符,由于其结构变换或图像角度等问题,导致匹配结果错误。而SSIM对于字形细微差异比较敏感,因此选择了SSIM值来判断。最后的实验结果也表明该方法具有一定的鲁棒性。