1. 引言
随着经济的发展和社会的进步,人民生活水平不断提升,人民对物质生活和精神生活的需求也逐渐高涨,个人拥有机动车辆的数量迅速增加。车辆的逐渐普及对交通设施和相关监管部门提出了更高的要求。传统的依靠人工管理手段和加大建设交通基础设施的方法已经无法解决现有的交通拥挤、堵塞及各类交通事故的频频发生。为实现高效、快速、智能地对路面车辆进行监督和管理,人们利用高科技相继开发和研制出各类交通道路监控系统、管理系统,通过一系列的车辆检测装置和车辆实时监控仪器设备,获取道路交通车辆数据信息,实现交通治理自动化、智能化 [1] 。
智能交通系统ITS是将计算机技术、传感器技术、图像处理技术、通信技术等相关技术结合使用到其交通运输的管理体系,从而,建立起来一种高效、实时、精准的综合运输与管理系统。从90年代的兴起,到近30年后的今天,各个国家都在根据国家的法制特征研究优化适合本国的智能交通系统。我们知道智能交通系统的研究,必然离不开车辆作为其目标对象。谈到车辆,我们要对其作区分,达到管理与辨认的目的,就需要给每辆车一个特定身份标识,这就是车牌。因此,在智能交通系统中,车牌识别技术就显得十分重要 [2] 。
车牌识别系统是以计算机为基础操作平台,应用图像处理和图像识别的技术而设计的针对汽车牌照的智能识别系统。车牌就如同人的身份证一样,独一无二,具有唯一性。根据这一特征来分析和处理汽车牌照的图片,并对其进行预处理、定位计算、分割,最终再一一识别车牌上的每一个字符,然后,得出识别的结果 [3] ,通过查询就能获得该车的相关身份信息。从外界截取的车牌图像多多少少存在着噪声与干扰,因此在对原始图像进行识别之前,需要对其进行预处理,实现一系列增强减噪功能。再分别利用阈值分割法和垂直投影法进行车牌定位与字符分割,最终将得到的多个字符与字符库进行比对,得到最终的车牌信息。
在现实中,存在超各种各样的客观因素影响着车牌信息的可视性,大大增加了车牌识别工作的难度。如何将处在模糊的复杂场景中的车牌识别出来可能是许多现实世界应用中的主要考虑问题。例如,在城市道路上的图像监视系统,在恶劣天气条件下得到的退化图像会对判断车辆信息和监控交通情况造成极大的困难。因此,开发准确而强大的车牌识别至关重要,特别是对于复杂的场景 [4] 。本文针对雾天中车牌信息的难提取性,设计了一种可去雾的车牌识别系统。将处于雾天中的车牌图像进行直方图均衡化,增加图像对比度,以达到去雾的效果,将图像信息在模糊场景中提取出来。
车牌识别技术是车辆检测系统中的一项关键性技术,是实现交通智能化和自动化的前提条件。目前,车牌识别可采用智能IC卡识别或者条形码识别技术,尽管IC卡识别准确度高,运行平稳、可靠,但机器硬件设备较为复杂,且设备成本较高,不适合异地作业。而条形码识别对扫描仪器要求较高。
在车牌识别技术使用的过程中,通过对技术形式的分析,可以将汽车牌照在复杂的环境背景中提取出来,并通过对车牌提取、图像处理、特征分析以及车牌字符识别技术的运用,实现对汽车车牌号的识别。在我国车牌识别技术使用的过程中,其字母以及数字的分辨率可以达到96%,而且,汉字的识别率可以达到95%,因此,车牌识别技术在高速公路管理中得到了十分广泛的运用,在电子收费(ETC)系统中,有效结合了这种技术形式,并在车主做出违章行为时可以快速作出提醒,从而,为车辆出行的安全性提供了有效支持,并且,也降低了交通监管人员的工作强度。也有一些运用于停车场管理中,为车辆的停放提供了良好帮助 [5] 。
2. 图像去雾技术
在雾天环境下实现去雾效果的图像处理算法可以根据不用角度划分为多种方法,例如暗通道先验去雾算法,直方图均衡化算法,Retinex算法。本文采用直方图均衡化算法。
基于直方图均衡化算法
数字图像的灰度直方图是灰度级的函数,是对图像中灰度级分布的统计。能有效的体现像素值的分区情况。经过对直方图的调整,是图像灰度值均衡化,优化图像视觉效果。
一幅对比度较高且色彩多变的图像往往具有一个占有多灰度级同时像素值分布均匀的直方图。直方图与图像清晰性的关系可以总结如下:
1) 灰暗的图像的直方图中主要成分集中在像素值较小的一侧;
2) 明亮的图像的直方图中主要成分倾向于像素值较大的一侧;
3) 对比度低的图像的直方图所占灰度级较少且主要成分集中于中部的灰度级;
4) 对比度高的图像的直方图所占灰度级较多且主要成分分布均匀。
通过对图像直方图的调整,减少个数较多的灰度级,增加个数较少的灰度级,实现直方图均衡化,提升图像整体对比度和色调变化程度,使图像变得清晰。
一幅给定的图像的灰度级通过归一化处理可以认为分布在
的范围内,对[0, 1]区间内的任一灰度级r可以进行如下形式变换:
(1)
根据式(1)的变换,原始图像每一个像素点的灰度值r都有一个变换灰度值s对应,假定式(1)表示的变换函数满足以下两个条件:
1) 在
区间内,
值为单调增加。
2) 对于
,有
。
上述条件1)用于保证原始图像各灰度级在变换后仍保持从黑到白(或从白到黑)的单调排列顺序,条件2)用于在理论上严格保证变换之后,灰度值范围的一致性。根据数学函数关系,从s到r的逆变换用下式表示:
(2)
由于变换关系T满足上述两个条件,根据数学分析,
也满足这两个条件。
由概率论知识可知,如果已知随机变量r的概率密度为
,而随机变量s是r的函数,则s的概率密度
可以由
求出,主要过程如下:
1) 根据分布函数的定义可以求得随机变量s的分布函数
,即
(3)
2) 根据分布函数与概率密度函数之导数关系,可得出
,即
(4)
综上所述,通过直方图均衡化来增强图像可视化的技术基础是通过s与r之间的变换函数T(r)控制图像灰度级的概率密度函数,从而改善图像的灰度分布情况 [6] 。
3. 车牌识别技术
实现车牌识别主要共分为以下五个步骤首先,是从外界获得车牌图像,并将原始图像转化为二值图像,通过各种技术对图像进行增强和减噪;其次,进行车牌定位,缩小目标搜索范围,确定车牌区域;然后,再进行字符分割,将定位好的车牌进行分割,得到分散的单个字符,送入字符识别模块;接着将分割的字符先后与数据库中的字符进行匹配,以识别各个字符;最后,将识别的字符进行打包压缩输出最终车牌号码信息。车牌识别的基本步骤如图1所示。

Figure 1. Basic steps for license plate recognition
图1. 车牌识别的基本步骤
车牌识别的核心就是如何对提取到的车牌图像信息进行加工处理,最终得到车牌号码。主要包含四个部分:一是对原始图像进行加工处理,增强边界和去除噪声;二是车牌定位部分,三是字符分割部分,四是字符识别部分。所以,需要解决的问题就有四个:一是如何对原始图像加工预处理;二是如何将输入的图像进行车牌定位,三是如何知道各字符开始与结束位置进行字符分割,四是如何将分割的字符进行匹配识别。
3.1. 图像预处理
1) 图像的预处理是整个图像识别的前提,因为计算机不能像人眼一样可以很直观的观测到整体的图像,而是通过输入图像的每个像素点的具体值,以及这些像素点之间的排列关系来识别图像。所以在做计算机视觉的过程中,我们需要先对图片进行一系列的预处理过程,好让计算机或者是程序算法更好的理解图片内容的含义 [7] ,依据不同方法实现图像视感品质的提高,尽可能还原较高真实度的信息,并且提高相关信息的可检测性,提高提取及识别的可靠程度,以方便下一步的处理。具体的处理步骤主要有图像灰度图的转化、边缘检测、腐蚀、平滑处理以及移除最小对象等 [8] 。
① 图像灰度图的转化
由于我国车辆的种类较多,车牌的底色和字符的颜色会因为车辆种类的不同而有多种不同的组合,但是其色彩对比度是很大的,这就有利于将图像转化为灰度图像,然后再分割提取出车牌区域。下面是图像灰度值H的计算公式。
(1)
(2)
公式(1)用的是权值加重法,公式(2)用的是均值法。可以用函数rgb2gray()来实现权值法。
② 图像的边缘检测
由于输入系统的由监控拍到的车辆的图片可能会因为车速、噪声、车辆本身导致拍摄到的图片模糊或者受到干扰。因此,必须先进行边缘检测得到清晰的车牌轮廓,才能进一步处理进而进行车牌的定位分割,可以用函数edge()来完成边缘检测。根据阈值0.15,并且在横向纵向上,用Prewitt算子进行边缘检测,具体函数为edge(I,'prewitt',0.15,both)。
③ 灰度图的腐蚀
图像的腐蚀就是将拍摄到的图片做形态学解析处理,目的是去掉多余的轮廓线条,减少噪声的影响。图像腐蚀可以消除边缘检测后图像中小的无意义的点和线,减少这一部分的干扰,可以用函数imerod()来完成灰度图的腐蚀。
④ 平滑处理
车牌图像进行完边缘检测和腐蚀处理操作后,已经能够显示出车牌区域的轮廓了,因为车牌图像还会有噪声和其它因素的影响,因此车牌区域还不能够被计算提取得到,那么就需要在车牌区域计算切割之前对图像做平滑处理,去除一些孤立而无意义的噪点,可以用imclose()函数来实现图像的平滑处理,让图像实现闭运算。
⑤ 移除小对象
图像平滑处理后也许会有许多闭合区域,就像一些噪点和车标,这些不属于车牌部分的要尽量删除掉,可以用函数bwareaopen()将图像中小于设定的面积值的部分删除。
3.2. 车牌定位
对于车牌识别系统来说所需要的仅仅是车牌区域,所以就要把图像中的车牌区域截取切割下来。因此利用边缘检测经过计算x方向和y方向的车牌边界的长度,可以很容易得到图像中的车牌区域。因为三维彩色图像占据空间较大,因此先将图像进行二值化,再利用阈值分割法切割出长方形的车牌区域,因为我国的车牌底色通常是蓝色,并且在RGB彩色模型中(0, 0, 1)表示蓝色,转换数据后1为蓝色,而在二值图中蓝色呈现出白色,所以只需扫描1的点,便能统计出蓝色像素点的数量。之后横向统计蓝色范围内的像素点的数量,根据统计的像素点的数量设置一个合适的阈值,最后就能找出车牌在横向上的合理区域,并进行切割,实现车牌水平定位,根据我国车牌大小,本文设计横向阈值TH = 5;同时,用同样的方法在切割出的横向区域图像的基础上,统计纵向上蓝色像素点的数量,设置一个纵向阈值TH = 3,然后对列方向的合理区域进行切割,实现车牌垂直定位;结合车牌微定位最终就能得到整个车牌的区域,实现车牌定位。
3.3. 字符分割
因为车牌字符间隔比较大,字符与字符不会连接到一起,所以这里使用的方法是寻找有连续文字的块,按照字符的宽度确定出来合适的阈值,如果宽度比这一阈值大,就说明这一块有多个字符组合,就需要对这一部分进行切割,然后保存剩余部分并且覆盖原来的图像继续进行切割,直到切出所有字符。字符分割通常使用的是垂直投影法。在对图像进行垂直投影时,投影图上的曲线波形会有明显的高低变化,由波形的的变化为依据从左到右对投影图上的波形进行扫描,根据波峰和波谷来判断字符的位置。一般分割出来的字符还不能直接使用,还需要进行归一化处理,也就是将切得的字符图像大小统一为字符模板的大小,这样才能与字符库的字符模板比对识别。
3.4. 字符识别
目前使用的车牌字符识别算法OCR (Optical Character Recognition):基于模板匹配的OCR算法和基于人工神经网络的OCR算法。本文选用的字符识别算法是模板匹配算法,模板匹配是指用一个较小的图像(模板)与原始图像进行比较,以确定原始图像中是否存在与该模板相同或相似的区域,也就是将切割并进行归一化处理后的字符块图片与字符模板做比对。归一化处理后的字符图片可以直接与字符库中的模板进行匹配,图片最相近的就默认为匹配的结果。模板匹配常用的一种测度方法为模板与原始图像对应区域的误差平方和。
4. 实验结果及分析

Figure 2. Image before and after defogging
图2. 图像实现去雾前后对比
如图2,雾天中的汽车图像对比度不高,图像模糊不清,此时送入车牌识别系统并不能很好的识别信息,经过直方图均衡化后,图像对比度明显增加,变得更加清晰,更加容易识别,最终达到去雾效果。
雾天中图像直方图分布不均匀,通过均衡化,整体直方图的分布变得均匀,画面变得清晰,如图3。
如图4,去雾后的图像经过灰度图转化,滤波,边缘检测等一系列预处理,车牌区域大致已经确定,准备切割车牌,见图5。
定位好车牌区域,经过垂直投影法分割字符,得到以上七个图片,如图6,最后送入字符识别模块,与字符库进行模板匹配,得到最终的车牌信息。

Figure 3. Histogram comparison after equalization
图3. 均衡化后的直方图对比

Figure 5. Image of the license plate accurately positioned after pre-processing
图5. 经过预处理后准确定位的车牌图像

Figure 6. Accurately segmenting license plate characters
图6. 准确分割车牌字符
5. 结语
复杂环境中的车牌信息很难被提取并且解读的准确度不高,因此需要对车牌图像进行处理。雾天中的图像对比度不高,灰度直方图差别大,分布不均匀,所以可以利用直方图均衡化来实现图像去雾;将去雾的图像进行一系列增强减噪操作得到更加清晰的图像;再利用阈值分割法,将蓝底的车牌截取出来,缩小搜索范围;接着,利用垂直投影法,将连续的字符分割开来,得到单个不连续的字符;最后与字符库中的字符模板进行匹配得到最终的车牌。
参考文献
NOTES
*通讯作者。