车牌字符识别(matlab)

2017年5月3日

《数字图像处理与识别》孙正 机械工业出版社2014年10月第一版

车辆检测与车牌识别

车辆检测可以采用埋地线圈检测、红外检测、雷达检测技术、视频检测等多种方式。采用视频检测可以避免破坏路面、不必附加外部检测设备、不需矫正触发位置、节省开支,而且更适合移动式、便携式应用的要求。
系统进行视频车辆检测,需要具备很高的处理速度并采用优秀的算法,在基本不丢帧的情况下实现图像采集、处理。若处理速度慢,则导致丢帧,使系统无法检测到行驶速度较快的车辆,同时也难以保证在有利于识别的位置开始识别处理,影响系统识别率。因此,将视频车辆检测与牌照自动识别相结合具备一定的技术难度。

车牌字符识别

本文将介绍一种汽车牌照图像处理和自动识别的方法,该方法由获取图像、图像预处理、分割图像、识别字符等几部分组成,目的是正确获取图像中车牌所在的区域,并把车牌号码识别出来,即对车牌进行必要的预处理,包括彩色图像转灰度图像、图像增强、二值化、数学形态学处理、牌照区域的定位等之后,采用模式识别技术识别出车牌的字符,并输出结果。

1、车辆图像的预处理

1.1 图像的读取与灰度化

由彩色图像转化为灰度图像的计算公式如下:

Y = 0.2989R+0.5870G+0.1141B

式中,B,G,B分别是彩色图像中像素的红、绿、蓝分量;Y是该像素在灰度图像中的灰度值,转换后的汽车图像灰度值的范围为0~255。

clear;
close all;
iColor = imread('test.jpg');
iGray = rgb2gray(iColor);
figure,imshow(iColor),title('color image.');
figure,imshow(iGray),title('gray image');

1.2 图像增强

为了提高识别率,首先对灰度图像进行开操作得到背景图像,然后将原始灰度图像与“背景图像”做相减,对图像进行增强处理。

%将灰度图像增强
s = strel('disk',13);
bgray = imopen(iGray,s);
figure,imshow(bgray),title('background image');
egray = imsubtract(iGray,bgray);
figure,imshow(egray),title('em image');

1.3 图像的二值化

车牌定位和字符分割都是基于车牌区域的二值化结果进行的,二值化的效果直接影响到车牌定位以及字符分割的准确度,这里采用Otsu全局动态阈值法。

1.3.1 Otsu全局动态阈值法的基本原理

取一个阈值T,将图像像素按灰度大小分为大于等于T和小于T两类,然后求出平均方差(类间方差):

x2^2

和两个类各自的均方差(类内方差):

x1^2

找出使两个方差比最大的阈值,作为最佳阈值对图像进行二值化。

1.3.2 算法的具体步骤

  1. 求出图像的最大态度值max_gray;
  2. 令k=0;
  3. 求出大于和小于k的两类像素总数和像素灰度平均值;
  4. 计算类间方差和类内方差;
  5. k=k+1,循环步骤3~5,直到k>max_gray;
  6. 找到最大的k值,得到阈值。

1.3.3 Otsu全局动态阈值法的优点

实现简单,基于图像的整体特性而非局部特性;可推广到多阈值的分割方法中;适应性强,不论图像的直方图有无明显的双峰,都能得到较为满意的结果。

1.3.4 代码实现

matlabe中的graythresh()函数就是用的Otsu全局动态阈值法。

%将图像进行二值化转化(Otsu全局动态阈值法)
level = graythresh(egray);
bw22 = im2bw(egray,level);
figure,imshow(bw22),title('binary image');

2、车牌定位

2.1 数学形态学处理

对二值图像进行数学形态学分析很容易识别出图像的结构特征,这里对前方得到的二值图像分别进行开运算和闭运算,因为车牌的宽长比约等于5:19,所以选用的是strel(‘rectangle’,[5,19])。

%对二值图像进行开运算和闭运算
bg1 = imclose(bw2,strel('rectangle',[5,19]));
bg3 = imopen(bg1,strel('rectangle',[5,19]));
bg2 = imopen(bg3,strel('rectangle',[19,1]));
figure,imshow(bg1),title('bg1 image');
figure,imshow(bg3),title('bg3 image');
figure,imshow(bg2),title('bg2 image');

2.2 常用的车牌定位方法

1) 基于车牌图像色彩信息定位法[12]。

我国车牌主要由四种类型组成:蓝底白字、黄底黑字、白底红字和黑底白字。根据车牌底色信息可以准确地定位出车牌的边界。该方法识别滤高、适应性强,但易受光照条件和背景干扰且运算量一般较大,不适合用于实时性要求高的环境中。

2) 基于边缘检测的定位法[13]。

车牌字符区域灰度频率变化是车牌区域最稳定的特征,可以利用它的变化来进行车牌定位。首先对车辆图像进行增强,然后再进行边缘提取,最后利用水平扫描线等方法进行车牌区域的检测。该类方法的定位准确率较高,反映时间快,能有效去掉噪声,适合于背景较复杂的车辆图像。但是对车牌严重褪色的情况,由于检测不到字符笔画的边缘会导致定位失败。

3) 基于车牌几何特征车定位法[14]。

我国车牌标准外轮廓尺寸为440*140且为矩形,整个车牌的宽高比近似为3:1。利用这种固有特征进行车牌边框提取车牌。这类方法只在车牌位置基本保持水平,同时边框清晰明显时才有效,但若车牌本身的边框是断裂,残缺的或采集到的图像偏离水平角度较大,都会影响定位的准确性,故使用范围较窄。

4) 基于频谱分析的车牌定位法[15]。

该类方法将图像从空间域变换到频率域进行分析,如DFT变换法和采用小波变换法等。小波分析可以在不同的分辨率层次上对图像进行分割,在低分辨率层次上进行粗分割,这样节约时间同时为细分割缩小检测范围。而在高分辨率层次上实现车牌区域的准确定位。但当车辆图像中存在燥声时,会对准确识别车牌区域带来很大的干扰,影响车牌定位的准确性。

你可能感兴趣的:(原创)