车辆牌照识别系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
车辆牌照识别系统
目录
车辆牌照识别系统摘要 (3)
1.车辆牌照识别系统功能综述 (4)
2.车辆牌照定位 (5)
2.1图像预处理 (5)
2.2图像边缘提取 (5)
2.3车牌边界定位 (6)
3.字符分割 (7)
4.字符识别 (7)
4.1字符归一化 (7)
4.2匹配识别字符 (8)
附录 (9)
摘要
随着科学技术的进步,人民生活水平的提高,汽车越来越多的进入千家万户。
为便于车辆的管理,每一辆汽车都配有不同的牌照,这也是一辆汽车独一无二的信息。
因此,对车辆牌照的识别技术可以作为辨识一辆车最为有效的方法。
车辆牌照识别系统是模式识别、计算机视觉以及图像处理在现代智能交通系统中的一项重要的研究课题,是实现智能交通的重要环节。
随着智能交通系统的高速发展,对车牌识别技术的研究也随之发展。
在不影响汽车运行状态的情况下,计算机自动完成车牌的识别,可降低交通管理工作的复杂度。
目前,车辆牌照识别技术已经广泛而成功的应用于高速公路的监测,电子收费,交通违规管理,安全停车管理,偷盗车辆辨识等重要领域。
因此对汽车牌照识别技术的研究有重要的现实应用意义。
其发展对于人民生活、社会经济和城市建设将产生积极而深远的影响。
车辆牌照识别系统主要由三个部分构成。
首先进行车辆牌照的定位研究,先进行图像的预处理,包括:彩色图像的灰度化、图像边缘检测、灰度图的二值化等;车牌定位采用基于水平和垂直投影分布特征的方法。
在车辆牌照定位完成之后进行车辆牌照的字符分割,先对定位后的车牌图像进行预处理,然后按照车牌的先验信息,用区域增长算法来确定候选车牌的字符区域。
最后进行字符识别,也就是对于提取出的单个字符,先进行归一化操作,再与给定的模板做对比,识别出字符,生成车辆牌照。
1.车辆牌照识别系统功能综述
车辆牌照识别系统主要包括一下几个部分:
主要过程说明如下:
车辆牌照识别系统主要通过实时采集的图像信息,对图像信息进行处理得到车辆牌照。
原始图像:由固定彩色摄像机、数码相机或其它扫描装置拍摄到的图像
图像预处理:对动态采集到的图像进行边界增强等处理以克服图像干扰
边缘提取:通过二值化处理,得到图像的边缘
车牌定位:计算边缘图像的投影面积,寻找峰谷点,大致确定车牌位置,再计算此连通域内的宽高比,剔除不在域值范围内的连通域。
最后得到的便为车牌区域。
字符分割:利用区域增长算法进行字符定位分割方法得到单个的字符
字符识别:利用模板匹配的方法与数据库中的字符进行匹配从而确认出字符,得到最后的汽车牌照,包括英文字母和数字。
2.车辆牌照定位
2.1图像预处理
汽车图像样本目前大都是通过摄像机、数码相机等设备拍摄获取的,因而预处理前的图像都是彩色图像。
在一般情况下,由CCD采集到的图像会有不理想的情况,如光线过强,或者偏弱,这些都会对后续的图像处理产生影响。
彩色图像包含着大量的颜色信息,不但在存储上开销很大,而且在处理上也会降低系统的执行速度,因此在对图像进行识别等处理中经常将彩色图像转变为灰度图像,以加快处理速度。
而且车牌位于车身下部,靠近散热片,对比度较差,此时若直接对灰度图像进行定位会有不小的困难,为了获得较好处理的灰度图像,在对CCD采集的原始图像进行灰度化后,要对其灰度转换。
首先对图像灰度拉伸,使灰度级占据0--255整个区域,这样做的目的是为了减少光线过强,或者偏弱时造成的灰度级过少.本文直接采用直方图均衡化,这样处理简单,运算量小,效果也较理想。
2.2图像边缘提取
对图像进行边缘提取,边缘提取的最大好处就是能够突出边缘区域,同时使背景图像中无关的部分暗淡。
实现方法中,采用了水平差分算法,它利用图像后一列像素减去前一列像素,从而得到边缘图像。
再对所得的图像二值化处理。
二值化图像是指整幅图像画面内仅黑、白二值的图像。
在数字图像处理中,二值图像占有非常重要的地位。
在实际的车牌处理系统中,进行图像二值变换的关键是要确定合适的阀值,使得字符与背景能够分割开来,二值变换的结果图像必须要具备良好的保形性,不丢掉有用的形状信息,不会产生额外的空缺等等。
车牌识别系统要求处理的速度高、成本低、信息量大,采用二值图像进行处理,能大大地提高处理效率。
阈值处理的操作过程是先由用户指定或通过算法生成一个阈值,如果图像中某中像素的灰度值小于该阈值,则将该像素的灰度值设置为0或255,否则灰度值设置为255或0。
阈值化的变换函数表达式如下:
⎩
⎨⎧><=T x T x x f ,255,0)( 式中T 为指定的阈值。
比它大就是白,比它小就是黑。
2.3车牌边界定位
由于车牌一般是由字符、背景和边框组成,提取图像的边缘图像后,在字符与背景处就形成了较强的边缘。
再考虑汽车本身的特点,通常车牌位于汽车缓冲器上或附近,靠近整幅图像的下部,在往下便是路面,路面一般是比较光滑,因此可以在边缘提取时就很有效的将这部分杂质滤除掉,而使干扰图像的噪声处于车牌之上,如车灯,或散热片。
由此,采用由下而上的扫描的方法。
首先,对边缘图像的象素沿水平方向累加产生一个投影图。
故此,先进行粗略定位,找寻水平投影图大于三分之二最大值的点,找到改点对应的横坐标的最大值,记录坐标。
该点记为车牌的下边界。
根据车牌的几何特征,考虑到噪声等因素的影响,粗略的将上下边界分别定义为最大值-120,最大值+50。
在上下界粗定位的基础上进行精细定位,即对图像再进行水平投影,找寻大于三分之二最大值的点,记录改点所对应的横坐标的最大值和最小值,那么此两点为车牌的上下边界点。
在定位出上下边界后,再对特征图像进行垂直投影 , 得到投影图后,对投影图进行处理,重复水平定位的理念,找寻大于三分之二最大值的点所对应的横坐标的最大值和最小值,即为车牌的左右边界点,完成定位。
为了之后字符识别的更好处理,在这里,本人根据找寻的边界点,对该灰度增强后图进行定位。
3.字符分割
区域增长的基本思想是将具有相似性质的象素集合起来构成区域。
首先在待分割的每个区域中选择一个种子点作为增长的起始点,然后在种子点的领域中搜索那些与种子点的相似特征度满足指定增长准则的象素,并与种子点所在区域合并。
此时将新合并的象素作为新的种子点,继续以上搜索和合并过程,直到没有可以合并的象素为止。
首先要确定起始的种子点。
字符的像素值最大为255,选定像素值为255的点为起始点。
然后,假定一个像素属于一个区域,则这个像素和这个区域里至少有八个像素点是相连的。
如果一个像素同时又和其他区域相连了,则这些区域合并在一起,从而准确定位字符区域。
按照车牌的先验信息字符的尺寸为45mm* 90mm,字符间隔为12mm,间隔符宽10mm,那么第二个和第三个字符的间隔为34mm,字符到上下左右边界的间隔也为25mm。
假定字符宽度为cw,字符高度为ch。
则字符间隔为(12/45)*cw =0.27*cw,第二个和第三个字符的间隔为(34/45)*cw=0.76*cw,而车牌的左边界和第一个字符的间隔以及车牌右边界和最后一个字符的间隔就为(25/45)*cw=0.56*cw,字符到上下边界的间隔为(25/45)*ch=0.56*ch。
其中cw=(45/440)*a,ch=(90/140)*b ,其中a,b为分割车牌的宽度和高度。
根据以上的信息就可以对车牌的字符进行准确的定位。
4.字符识别
4.1字符归一化
因为扫描得到的图像的字符大小存在较大的差异,统一尺寸有助于字符识别的准确性,提高识别率。
归一化主要包括位置归一化、大小归一化及笔划粗细归一化。
对不同大小的字符进行变换,使之成为同一尺寸大小的字符,这个过程称为字符大小归一化。
通过字符大小归一化,许多特征就可以用于识别不同
字号混排的字符。
具体实现方法,首先对图像二值化处理,这里的阈值根据大津法得到,然后将字符的外边框按比例线性放大或缩小成为规定尺寸的字符。
为了之后模板匹配的处理,在这里需对二值化的图像进行反二值化处理。
4.2匹配识别字符
对分割后的字符采用模板匹配法进行匹配和识别。
由于车辆牌照字符中只有26 个大写英文字母、10 个阿拉伯数字和约50 个汉字,所以字符集合较小,该方法对于有一定变形、污损或笔画缺损的字符图像有较好的识别效果,总体识别率较高,同时也能满足实时性的要求。
将分割出来的字符图像与模板图像相减,差值最小的便是与之匹配的模板,从而识别出字符。
附录:
参考文献:
董长虹,Matlab图像处理与应用.北京:国防工业出版社,2004.
潘中杰,车牌自动识别技术的研究与实现.广东:中山大学,2007
罗希平,田捷等.图象分割方法练述.模式识别与人工智能,1999
贺兴华、周媛媛、王继阳等.MATLAB 图像处理.人民邮电出版社,2006.96~100. 龚声蓉、刘纯平、王强. 数字图象处理与分析. 清华出版社 ,2006.24~29.
部分代码:
%Step1 获取图像装入待处理彩色图像并显示原始图像
Scolor = imread(Filename,'JPG');
%将彩色图像转换为黑白并显示
Sgray = rgb2gray(Scolor);
figure,imshow(Scolor),title('原始彩色图像');
figure,imshow(Sgray),title('原始黑白图像');
%Step2 图像预处理对Sgray 原始黑白图像进行开操作得到图像背景
s=strel('disk',10);
Bgray=imopen(Sgray,s);
figure,imshow(Bgray);title('背景图像');
%用原始图像与背景图像作减法,增强图像
Egray=imsubtract(Sgray,Bgray);
figure,imshow(Egray);title('增强黑白图像');
%Step3 取得最佳阈值,将图像二值化
fmax1=double(max(max(Egray)));
fmin1=double(min(min(Egray)));
level=(fmax1-(fmax1-fmin1)/3)/255;
bw2=im2bw(Egray,level);
figure,imshow(bw2);title('图像二值化');
%Step4 对二值图像进行区域提取,并计算区域特征参数。
进行区域特征参
数比较,提取车牌区域
[L,num] = bwlabel(bg2,8);
Feastats = imfeature(L,'basic');
Area=[Feastats.Area];
BoundingBox=[Feastats.BoundingBox]; %[x y width height]
RGB = label2rgb(L, 'spring', 'k', 'shuffle');
figure,imshow(RGB);title('图像彩色标记');
%Step5 将计算计算获取的字符图像与样本库进行匹配,自动识别出字符代码。
%在进行匹配前需将存入的子图名按以下编码规则更改:
%Sam0 ~Sam9 0~9 数字1~10
%SamA~SamZ A~Z 字母11~36
%Sam粤~Sam沪省别汉字37~45
liccode=char(['0':'9' 'A':'Z' '粤海桂云贵川京津沪']);
%建立自动识别字符代码表。