基于机器视觉的车牌识别系统设计*

2018-12-03 08:25麦康机
机电工程技术 2018年11期
关键词:字符识别边框车牌

莫 玲,麦康机

(广东技术师范学院机电学院,广东广州 510665)

0 引言

车辆车牌号码识别(LPR)技术由美国道路交通管理协会在20世纪80年代初期率先向外界发布,LPR技术在90年代初被广泛使用并推上市场。随着计算机技术和模式识别技术不断发展,LPR技术日趋成熟,大量运用于城市道路智能交通管理系统中[1-2]。

车辆车牌号码识别的关键技术在于机器识别和数字图像处理技术,这也是机器视觉在车牌字符识别领域的重要应用之一。本文作者针对我国中小型汽车牌照进行车牌字符识别研究,研究内容主要包括6个主体,分别为:车辆牌照图像的采集、图像预处理、车牌及外框区域粗定位及提取、车牌和字符歪斜角度计算及纠正、车牌号码、字符分割和车牌号码字符识别。

1 系统总体框架设计

该车牌识别系统用到的软件为MATLAB,系统的基本组成包括以下几个部分:

(1)采集车牌图像;

(2)车牌图像的预处理;

(3)车牌区域粗定位;

(4)车牌精确定位;

(5)字符分割;

(6)字符识别。

车牌字符识别系统的主要流程图如图1所示。

2 GUI人机交互界面设计

图1 车牌字符识别系统流程图

GUI(Graphical User Interfaces)人机界面是MATLAB软件中用于构建面向用户的人机交互界面,由软件内部携带的图形用户界面设置编程实现[3-4]。用户通过设置GUI界面,利用GUI界面操作与其相连的程序(即.m文件),具有操作便捷、观察方便的特点,可直观查看程序各步骤的演示效果,为用户带来极大便利。

系统所建立的GUI人机交互界面如图2所示。窗口的右边为图像处理模块按钮;左边为图像显示模块。右边按钮包含5个基本的图像处理操作,分别为:读入车牌原始图片、数字图像处理、车牌区域分割与提取、车牌号码、字符串提取和字符串识别结果输出。为更好地显示各部分处理细节,各部分都设置了对应按钮用于执行图像处理相应算法。

图2 GUI人机界面操作界面

车牌图像的处理结果最终以图片形式显示在GUI左边子窗口中。左边子窗口共计12个,从上至下分1层,第1层分别显示输入的车牌原图像、预处理阶段各处理结果和车牌定位处理结果;第2层从左到右依次显示:字符分割、字符归一化的车牌字符图片;第3层用于显示LPR程序识别车牌号码结果。在GUI人机界面点击输入图像按钮后,将图像导入程序,逐次点击各处理步骤按钮,程序执行相应功能命令。

3 车牌图像预处理

车牌图像的预处理阶段,将直接获取的彩色图像根据图像灰度转化公式,将彩色图像变换为灰度图及二值图。灰度化是指将有颜色的三维图像中像素点按转换公式,转化为像素值介于0~255的灰色图像[3]。这里选取了几种情况的车牌图像,对彩色车牌原始图像灰度化处理后,处理结果如图3所示。

图3 灰度化处理后车牌图像

由于车牌图像会受到不均匀光照和物体表面光线反射、天气因素、成像设备、图像传输过程中像素变化等影响,会对图像处理产生噪声影响,这些噪声主要表现为一些亮度较大的细小孤立像素点和像素块,在图像中通常为像素极值[5]。噪声的存在会在图像中形成亮、暗跳变点,影响图像原始信息,极大地影响图像分割提取、特征提取、内容识别等处理,因此,需要将噪声滤除。首先,采用巴特沃斯低通滤波器过滤噪声。而不均匀光照产生的局部灰度值改变也易影响后续基于阈值变换的图像二值化结果,导致车牌区域可能丢失,二值化效果不理想,因此需要消除不均匀光照影响。然后,论文选用顶帽变换方法处理图片,即:将滤波后图像与提取到的背景图矩阵作减法得到新图像。经处理后,车牌亮度相对低一些的背景图像被去除,图像中代表车牌区域的前景部分基本清晰提取,图像二值化后车牌区域的信息不易丢失。最后,采用Ostu法进行车牌图像二值化处理,根据车牌图像中目标车牌区域和背景灰度差别最大的特点,图像根据各个灰度值依次分为两部分,当求得两部分的灰度值差别最大,这两部分对应目标车牌区域和背景部分,此方法能随不同图片灰度值变化自适应选取最佳阈值,且计算简单。应用Ostu自适应阈值法对图像进行二值化处理后效果如图4所示。

4 车牌定位与字符识别

图4 Ostu阈值法二值化图

从实际采集到的车牌图像分析,选取基于水平、垂直投影和车牌区域灰度纹理特征方法进行车牌粗定位,再结合粗定位后车牌字符区域的灰度纹理特征,检测比较跳跃点数的方法去除铆钉和边框,实现车牌精确定位[6]。对预处理后的二值图进行水平、垂直投影扫描,绘制其水平、垂直投影直方图。通过统计水平直方图上灰度点数变化曲线最高点对应的行数,在依次向两边逐行追溯,统计各行的灰度点数,设定合理阈值,当计算的灰度点数小于或等于设置阈值时,停止计算并记录下此时的行数PY1或者PY2作为车牌的上、下边界。由于车牌上、下边框存在,车牌上、下边界的灰度点数一般较大,但考虑到车牌可能会发生一定倾斜,经过多次测试得出将阈值设定为50较为合理,即使车牌发生倾斜使得上、下边角被忽略也不会丢失字符信息,不影响后续车牌精定位,车牌定位结果如图5所示。

图5 车牌定位

由于车牌一般用铆钉固定,此固定方式牢固性较差,在长期使用过程中受震动影响易产生脱落,产生倾斜;另外不同的拍摄角度会使图像中车牌发生不同程度倾斜,对后续车牌字符分割和字符识别都带来困难,该系统采用的车牌分割方法是基于字符水平、垂直投影直方图,寻找车牌中字符区域和非字符区域间无像素点的区域作为分割线,倾斜较大的字符在水平上的投影为连续的,使得这些无像素点区域消失;另外,切斜的字符会使得基于端正字符的识别方法错误率提高。因此有必要对车牌进行倾斜纠正。本文作者采用Hough变换法对倾斜车牌进行旋转矫正,处理结果如图6所示。

图6 车牌倾斜矫正结果

最后,车牌区域定位后,进行车牌字符分割,对车牌各字符进行分离,用于字符识别。经过多次试验,在比较水平方向车牌区域灰度跳变点数法的基础上,采用改进的结合形态学处理和水平垂直投影的方法,同时去除水平和垂直边框,达到提取字符串的目的,具体步骤如下:

(1)根据车牌外边框长宽比为3,计算各车牌区域长宽比t,设定合理阈值b=2.5,当t<b时,车牌区域上下边框向内缩减10行,减少车牌边框外的部分。

(2)对图像形态学处理,去除细小点和小区域干扰,接着图像水平、垂直投影,分别提取图像水平方向1/7~6/7区域的投影和图像垂直方向1/15~14/15区域的投影,这两个区域包含绝大部分字符和铆钉且不包含边框,绘制出其投影直方图,文中给出第一张车牌图的水平投影直方图,如图7(a)所示,垂直投影直方图如图7(b)所示。

图7 水平、垂直投影直方图

(3)计算提取到的水平、垂直投影各自的平均值mean和最小值min,这两个值之间区域为带边字符区域。设定判断条件,分别从左、右和上、下逐行统计水平、垂直方向的投影值,当投影值在此区域外,继续追溯;否者,停止追溯并记下此时行、列坐标,以此坐标切割出车牌字符区域,获得初步去除外边框和部分铆钉的车牌图像,此图以符号A表示。

(4)对去除外框后的车牌进行形态学处理,尽可能去除不必要部分,同时保留字符串部分,运用基于比较水平方向车牌区域灰度跳变点数的方法,改进阈值为10,可以较为精确提取字符串上、下坐标,以此坐标从图像A中提取精确上、下边界车牌字符串图,此图标记为B,精确提取出上、下边界的车牌图像。

(5)提取字符左边界,运用矩形算子对图像进行形态学闭运算处理,将每个字符笔画形成连通域,消去连通域面积小于400的残余边框和较小干扰的区域。左边框的干扰信息完全去除后,可以通过列扫描来精确定位出车牌字符左边界坐标,以此坐标在B中切割出字符串。

采用基于垂直投影直方图的字符分割方法,将每个车牌字符分割后得到7个字符,分割算法流程图如图8所示。

图8 车牌图像分割算法流程图

由于实际分割出的字符长、宽和标准字符的大小不一,所以,需要将车牌图像分割出的字符大小和占比归一化处理。最近邻插值法的计算方法是将像素点P附近最近的像素点灰度值作为像素点P灰度值。

最后,采用基于比较欧几里得度量(Euclidean distance)的模板匹配算法,以字符间的欧几里得度量作为判断依据,欧几里得度量距离值最小的两个字符图片被判断是同一个字符[7-9]。模板匹配法字符识别具体步骤如下:

(1)字符识别前,通过训练已知样本字符,创建字符图像模板,每张模板字符图片采用图片中对应字符命名,例如:含有字符“粤”的图片,用“粤”字命名该字符图片,含有字母“A”图片,采用“A”字母命名该字符图片,构建标准模板需要包含10个数字(0~9),26个英文字母(A~Z)、23个省份、4个直辖市和5个自治区简称合计32个中文字符。车牌字符图像模板如图9所示。

图9 字符图像模板

(2)设置模板库和待识别字符所在文件的搜索路径,按顺序将模板库中的图片和待识别字符图片全部读入MATLAB软件,逐个识别每张待识别字符图片。首先,求它与每个字符模板图片的欧几里得度量,得到一个含有像素1的结果图像,统计结果图像中像素为1的个数,求出每个模板字符图像与待识别字符图像欧几里得度量;然后,对比每个计算结果,取最小欧几里得度量对应的模板字符图片,该图片名字即字符识别结果,将其存入字符数组str中,当所有字符识别完成,将字符数组str中的文符串输出,得到识别的车牌号码,识别结果如图10所示。

图10 车牌字符识别结果

文中用于车牌识别系统的计算机CPU为I5-4200U,主频率1.6 GHz,运行内存4 GB,车牌字符识别程序单张图片字符识别运行时间平均为43 s。目前,车牌字符识别正确率为45.7%,有待进一步改进和优化识别程序。

5 结论

主要研究基于MATLAB的车牌图像预处理、车牌定位、车牌分割和车牌字符识别。实验结果表明,所用方法能够较为准确地自动识别车牌图像中的汉字、英文字母和阿拉伯数字。

猜你喜欢
字符识别边框车牌
数字图像处理技术在车牌识别系统中的应用
用Lightroom添加宝丽来边框
给照片制作专业级的边框
第一张车牌
基于MATLAB 的车牌识别系统研究
融合字符及字符排列特征的铭牌识别方法
一种基于OpenCV的车牌识别方法
基于MATLAB的图片中字符的分割与识别
外出玩
摆脱边框的束缚优派