项 璟 李海鑫 张汝峰* 褚俊英 郭宝军 乔东旭,2
(1.北京交通大学海滨学院,河北 沧州 061199;2.长城汽车股份有限公司徐水分公司,河北 保定 071000)
在采集车辆图像时大部被都处于室外,由于天气变化、光照、阴影等影响,会导致收集到的图像通常都含有一定的噪声,造成图像的画质降低。图像预处理主要是对图像进行去噪,提高车牌检测与字符识别的可靠性和有效性。首先对图像进行双边滤波,设原图像为f(x,y),滤波后图像为:
其中Ωx,y为(x,y)的邻域,I(x,y)为邻域内的中心像素值,ws(i,j)为空间距离相似度因子,wr(i,j)为灰度相似度因子。双边滤波是一种保持边缘去噪的滤波器,同时考虑了像素位置的空间邻近度(空间距离)和像素值的相似度,在图像梯度较强的地方,可以保持梯度防止边缘模糊。由式(1)~(3)可知双边滤波是在高斯滤波的基础上增加了像素值相似度影响,像素值相似度较小的地方(例如边缘),权重函数值会减小,最后产生滤波效应会减小。在像素值较为连续的区域,双边滤波有类似于高斯滤波的效果,而在图像边缘梯度较强的地方,可以保持梯度,防止边缘模糊,从而实现车牌图像的去噪。
车牌图像经过预处理后,需要对车牌区域进行分割,首先进行边缘检测,提取出变化区域较大的位置。车牌的安装位置都是固定的,在正常采集的照片中,所采集到的车牌基本都处于水平状态,另外车牌当中有较多数字和字符,梯度有着很明显的变化,通过这些特征,实现车牌检测。边缘算子主要有Roberts、Sobel、Prewitt、Laplacian、Canny等,本算法采用Roberts算子实现边缘检测,Roberts算子对具有陡峭低噪声的图像有较好的效果,边缘定位准确性较高,但对于噪声较敏感,同时并不对这些噪声产生影响。梯度算子定义为:
图1 Roberts边缘算子模型
近似为:
g(x,y)=|xf(x,y)|+|yf(x,y)| (5)
其中f(x,y)、f(x-1,y-1)、f(x-1,y)、f(x,y-1)分别为4个领域的坐标,离散化后xf(x,y)=f(x,y)-f(x-1,y-1),xf(x,y)=f(x-1,y)-f(x,y-1),图1为2×2的Roberts算子的模型。
对边缘检测的图像进行形态学处理,可以去除噪声的同时,还能够提取一些图像的特征区域。形态学操作主要有腐蚀、膨胀、开运算、闭运算等。对边缘检测后的图像,先进行腐蚀后进行膨胀的操作即开运算。开运算使图像上的一些小孔几乎全部消失了,且图像的边缘部分被连接到一起,边界变得很平滑,但物体的大小基本没有变化。利用形态处理后,再根据车牌纵横比和大小,去除非车牌区域,从而获得车牌区域。
分割出车牌区域后,为更好实现字符分割,对车牌区域进行进一步处理,主要有灰度化、直方图均值化、中值滤波等。把车牌区域进行灰度化,然后直方图均衡化处理,使车牌区域光照均匀。直方图均衡化就是在一个图像统计角度上进行非线性的拉伸,使像素进行重新分布。以峰值部分的对比度基准,在原始直方图的中心处增强,两侧的较低分的对比度降低。通过改变原始图像的直方图,让它在所有的灰度级中以平均分布的形式表示,使图像灰度级的动态范围变大,同时也提高了图像的对比性。
对获得的图像进行二值化,然后进行中值滤波,填补空洞,去除椒盐噪声。中值滤波为将图像的每个像素用邻域像素的中值代替,是一种常用的非线性滤波方法。中值滤波为:
其中median{}为取中间值运算,f(x,y)为待滤波图像,g(x,y)为滤波后图像,S为滤波模板中的点的集合,滤波模板中的点数为奇数个。中值滤波的主要步骤为:①确定滤波模板(一维或二维);②模板在图像上滑动,取模板中的像素值;③对模板中的像素值进行排序;④取排序序列的中间值,代替图像上滤波窗口中的中间点。中值滤波复杂度低、算法简单,对于去除椒盐噪声效果明显。
获得车牌区域后,基于先前的车牌位置利用横向投影图像和纵向投影图像进行字符分割,并根据字符纵横比切割出字符,然后根据分割结果利用模板匹配进行字符识别。
字符分割就是把图像中的7个字符按照顺序,在不影响它们大小形状的基础上完整的提取出来。首选对车牌字符区域进行横向投影后,可以把字符的上下边界给确定出来,然后在进行纵向投影,根据字符纵横比把每个字符分割出来。
图像的相应方向的投影,是在该方向上取直线计算图像上的像素的连续数目,从而确定图像的剪切位置(坐标),并且在坐标处剪切原始图像可以获得目标图像。
把分割出的字符进行归一化处理,使字符图像大小统一,然后利用模板匹配进行字符识别。模板匹配是从一个建好的图形库中,通过对比他们的相似度来进行识别。车牌字符的外观特征非常相似,通过建立数据库,把车牌上的汉字、英文字母、数字制作模板,然后与待识别字符进行模板匹配,可以精确的识别出字符内容。
本文首先采用双边滤波实现图像去噪,然后利用边缘检测和形态学处理,实现车牌区域的定位与分割。对获得的车牌区域进行灰度化、直方图均值化、中值滤波等处理,突出关键信息。最后利用横纵投影,有效地分割出字符,并采用模板匹配实现字符识别。本算法可以准确检测车牌和识别出字符内容。