APP下载

基于MATLAB图像处理的汽车牌照识别研究

2014-08-25王新亮朱雪娇

测绘工程 2014年1期
关键词:字符识别车牌牌照

赵 珊,裴 亮,刘 翠,王 涛,王新亮,朱雪娇

(辽宁工程技术大学 测绘与地理科学学院,辽宁 阜新 123000 )

基于MATLAB图像处理的汽车牌照识别研究

赵 珊,裴 亮,刘 翠,王 涛,王新亮,朱雪娇

(辽宁工程技术大学 测绘与地理科学学院,辽宁 阜新 123000 )

汽车牌照识别是智能交通领域的重要研究课题,整个过程主要分为预处理、车牌定位、字符分割、字符识别4个环节。用MATLAB软件编写代码实现每一个过程,有效地解决恶劣环境下的车牌定位、字符倾斜、字符分割等复杂问题,结果表明MATLAB在彩色汽车牌照的识别中十分有效。

MATLAB;车牌识别;数学形态学;字符识别;图像处理

当今社会经济快速发展、生活水平稳步提升,汽车进入寻常百姓家,汽车保有量飞速增长,给交通管理带来了很大的难题,如高速公路超速、违章占道,城市道路违章停车、闯红灯、肇事逃逸等。为了快速准确地找到违章车辆,智能交通系统的出现显得十分必要,智能交通系统的核心是车牌自动识别技术,本文以数码相机拍摄模拟智能交通系统拍摄违章停车车牌为例,阐述智能交通识别系统识别车牌的一般流程。

一般的汽车牌照识别方法是利用汽车牌照的照片,运用复杂的编程语言,如C、C++、C#编程对图像进行处理,这种方法有一定的局限性,它对编程能力的要求非常高,难度大且不好维护。MATLAB软件是一款很方便的图像处理工具,可对已经编好的函数进行直接调用,降低了图像处理的难度,节省时间。由于车辆在行驶过程中会受到外界环境(如光照强度、汽车行驶速度以及摄影机拍摄角度)的影响,以及中国车牌的特殊性,它们由汉字、字母、数字组成给车牌识别带来了一定难度。这些因素都关系到汽车牌照识别的效果。

1 图像预处理及定位

汽车车牌识别主要步骤有汽车车牌的定位、车牌字符的分割、车牌字符的识别。其识别流程如图1所示。

图1 汽车牌照识别流程

1.1 图像预处理

由于所采集的图像受外界光照强度、车行驶速度、拍摄角度的影响,最终会影响字符识别的效果,故要对所采集的图像进行灰度化、二值化、倾斜校正、滤波等一些预处理,预处理效果的好坏直接影响车牌识别的最终结果。

1.1.1 图像的灰度化和二值化

采集的彩色图像包含很多颜色信息,影响图像处理的速度,车牌的颜色和背景颜色一致,增加车牌定位的难度。图像二值化是将车牌图像用MATLAB语言编辑,将车牌图像划分为前景和背景,将车牌字符像素分为两部分目标像素,其余为背景像素,将车牌图像进行灰度二值化,其公式表达为

式中:T为阈值(图像的二值化的关键就是选择合适的阈值),B(i,j) 表示坐标值为(i,j) 像素点的灰度值。车牌图像的原图、灰度图和二值化图如图2~4所示。

图2 原图

图3 灰度图

图4 二值化图

1.1.2 车牌的边缘增强

边缘主要存在于目标字符与目标字符、目标字符与背景之间,是分割目标、提出纹理的重要特征。通过对图像进行边缘增强,可以突出车牌边缘纹理,使得车牌定位快速、准确。用边缘检测算子对每一个像素点的邻域进行检测,同时量化灰度变化率。其中Sobel、Prewitt、Roberts、Laplacian of a Gaussian(loG)、Zero crossings(零交叉)、Canny 为MATLAB常用的边缘检测器。本文根据拍摄的车牌图像情况经过反复试验得到用Canny边缘检测器进行边缘增强,如图5所示。

图5 边缘增强

1.2 利用形态学方法对图像进行除噪并对车牌进行定位

利用数学形态学收集图像信息,寻求图像各个部分间的相互关系,通过他们之间的关系了解图像结构特征。数学形态学主要运算有腐蚀和膨胀运算,以及由其产生的开、闭运算。

1)膨胀:A!B=∩{A-b:b∈B},使目标前景点缩小,背景增大,消除孤立噪声点。

2)腐蚀:A⊕B=∪{A+b:b∈B},使目标前景点增大,背景缩小,填充目标前景物体中的空洞,形成区域。

3)开运算:A∘B=(A!B)⊕B,这种运算是A被B腐蚀后再用B来膨胀结果,滤去小于结构元素的细小区域。

4)闭运算:A!B=(A⊕B)!A,这种运算是A被B膨胀后再用B来腐蚀结果。

车牌图像多为纵向边缘。首先,对预处理后的车牌图像先进行垂直方向的腐蚀运算,进行滤波处理;然后进行闭运算,用来填充图像细小区域、相邻物体的连接和便捷的平滑,使车牌区域的影像像素得到增强。

接下来对连通区域进行检索,先估计车牌的高度和宽度,选择合适的阈值对图像进行扫描,最终定位出车牌的位置,如图6所示。

图6 定位后车牌

2 车牌字符的切分

2.1 车牌字符的切分

2.1.1 车牌倾斜校正

由于摄像机放置角度等原因,拍出来的车牌有可能不是水平的,倾斜达到一定程度就会对车牌字符的分割带来困难。车牌倾斜后在水平轴方向的投影会变得不清晰,导致无法找到字符中间的空隙,倾斜车牌虽然有时能进行切分,但是切分后的字符上下有很多阴影,在字符识别拉伸的时候会发生扭曲。应用较多的是Hough变换,但是传统的Hough变换要针对每一个像素进行计算,处理的时间比较长。本文通过车牌两端的斜率来调整图像的位置,可以达到预期的目的,减少了计算时间,提高了实时性要求,如图7所示。

图7 校正后的车牌

2.1.2 车牌的分割字符

汽车牌照识别中的字符分割有着非常重要的衔接作用,它以车牌定位之后对字符进行分割,再利用分割后得到的字符进行最后的识别。一幅定位准确的车牌包括由1个汉字和6个字母或者数字组成。想要成功识别出每一个字符是什么,必须把这7个字符独立地分割提取出来。车牌的垂直投影上存在字符与字符之间的空隙和跳变,根据字符样式、尺寸等进行字符的逐个分割。本文采用的分割方法是投影法,上下扫描,可以得到车牌图像高度,后左右扫描,找到第一个字符的重点,后继续左右扫描,一直到车牌全部扫描完毕。采用投影法编程较简单且精度高,易操作。

2.2 车牌的识别

首先要建立字符模板。中国现行车牌规定一共有7个字符,第一个字符一般是汉字代表省、直辖市或是军种警别等有特定含义简称;接下来的为字母和数字。10个阿拉伯数字0~9,26个英文字母A~Z和相关的车牌用汉字,将这些所有的字母、数字、汉字收集到一起组成的字库就是字符模板。

对字符进行归一化处理可以有效地解决图像采集的车牌图像字符大小不一致的现象,经过归一化处理后的字符大小相同。归一化是为了使车牌字符与字符模板中的标准字保持特征上的一致。而前面已经对车牌进行了倾斜矫正,接下来主要是

对字符大小进行归一化,大小归一是指在长度和宽度方向上分别乘以一个比例因子,使其等于标准模块的字符大小。本文运用MATLAB中自带的IMRESIZE函数,进行归一化处理。

最后进行字符识别,其方法主要有神经网络算法和模板匹配法。本文使用模板匹配法,它的优点是操作简单,抗干扰能力强,识别率高。在MATLAB中直接调用NEWLIN和ADAPT函数即可,如图8所示。

图8 车牌最终字符分割结果

3 结束语

本文用MATLAB 7.0软件完整地进行了汽车牌照识别的实验,车牌识别有很多方法,各种方法所表示的优劣有所不同。根据本实验可以得出MATLAB在车牌识别过程中有以下优点:

1)MATLAB函数库丰富;

2)程序简洁易行;对车牌的定位非常有效,正确率较高;

3)与C++语言程序相比大大降低了工作量。

但是也发现了一些缺点:

1)程序有一定的局限性,对于车牌图像内元素较复杂的照片识别的效果不理想;

2)有时还要根据摄像机位置的实际情况对部分阈值进行调整。

[1]谢盛嘉,梁竟敏.车牌识别系统的设计与实现[J].微计算机信息,2010(6):165-167.

[2] 冈萨雷斯.数字图像处理(MATLAB版)[M].北京:电子工业出版社,2007.

[3] 周妮娜,王敏,黄心汉,等.车牌字符识别的预处理算法[J].计算机工程与应用,2003(15):220-221.

[4] 李波,曾致远,周建中,等.车牌识别系统研究与实现[J].计算机技术与发展,2006,16(6):10-11.

[5] 崔屹.图像处理与分析-数学形态学方法及应用[M].北京:科学出版社,2000:1-50.

[6] 严宝民,于万波,魏小鹏.汽车牌照定位研究综述[J].大连大学学报,2002,23(2):6-10.

[7] 马俊莉,莫玉龙,王明祥.一种基于改进模板匹配的车牌字符识别方法[J].小型微型计算机系统,2003,24(9):1670-1672.

[责任编辑:刘文霞]

LicenseplaterecognitionresearchbasedonMATLABimageprocessing

ZHAO Shan ,PEI Liang,LIU Cui,WANG Tao,WANG Xin-liang,ZHU Xue-jiao

(School of Geomatics,Liaoning Technical University,Fuxin 123000,China)

Vehicle license plate recognition plays an important role in the intelligent control of modern traffic, of which the whole process is divided into the image pre-processing,license plate location,character segmentation and character recognition, with each process code written in MATLAB software to solve the harsh environment of the license plate location, character tilt, character segmentation, etc. Results show that MATLAB is very effective in the color car license plate recognition.

MATLAB; license plate recognition; mathematical morphology;character recognition;image processing

2012-12-21

赵 珊(1987-),女,硕士研究生.

P23

:A

:1006-7949(2014)01-0070-03

猜你喜欢

字符识别车牌牌照
数字图像处理技术在车牌识别系统中的应用
红景天 直销牌照何日可待
一种改进深度学习网络结构的英文字符识别
新能源汽车牌照叫停疑云
牌照
第一张车牌
基于MATLAB 的车牌识别系统研究
仪表字符识别中的图像处理算法研究
基于CUDA和深度置信网络的手写字符识别
“他的车牌是……”