姚蕾,路林吉
汽车牌照定位是指在车辆图像中定位牌照所在区域的位置。车牌定位是整个车牌识别系统的第一步,更是最关键的一步。如果不能准确定位就会影响车牌的分割和识别的准确率。
车牌定位算法中要考虑和解决以下两个问题:
a)外界环境的影响。由于车牌识别系统工作在室外,会受到天气和光线的影响。此外,不同的拍照角度,对车牌光照的均匀度影响也很大。
b)车牌的复杂背景及其车身可能受到的污染。由于路面背景复杂,导致拍摄的车牌图像背景复杂。车牌位置不固定,且其常受污点、锈迹、扭曲等噪声的影响。
以上原因会导致采集到得车牌图像质量下降,给车牌提取和定位带来严重干扰,因此要对降质图像进行改善处理。
方法原理图(图1):
图1 方法原理图
将彩色图像转化成为灰度图像的过程,称为图像的灰度化处理。在彩色图像中,每个像素的颜色有R、G、B 这3个分量决定,每个字节为8bit,表示0~255之间的不同的亮度值,这3个字节组合可以而产生1670万种不同的颜色。在灰度图像中,像素灰度级用8bit表示,所以每个像素都是介于黑色和白色之间的256种灰度中的一种。灰度图像的描述与彩色图像一样,仍然反映了整幅图像的整体和局部的色度和亮度等级的分布和特征。
本文采用如下公式(1)对汽车图像进行灰度化。
Y的值为图像的灰度值。灰度化后的结果如图2:
图2 灰度图
灰度化后要对车牌图像进行增强,尤其是要突出车牌所在区域,同时削弱或去除某些不需要的信息,以进行更好的定位。图像增强方法分为两类:空间域方法和频率域方法。“空间域”方法是指对图像的像素直接处理为基础的。“频域”处理技术是以修改图像的傅氏变换为基础的。
本方法采用频率域中的同态滤波方法对图像进行增强,同态滤波是把频率过滤和灰度变换结合起来的一种图像处理方法,它依靠图像的照度/反射率模型作为频域处理的基础,利用压缩亮度范围和增强对比度来改善图像的质量。
同态滤波处理的过程如下,将像元灰度值看作是照度和反射率两个组合的产物即:
其中i(x , y)为照度分量, r(x , y)是反射分量。先对式(2)两边取对数,获得加性分量,再取傅里叶变换转换至频域。再采用高通滤波器去消除照度起伏,增强图像的对比度,再经过逆傅里叶变换到空间域,取指数最后得到图像的输出。原理如下框图所示:
图3 频域增强原理
采用高斯滤波器去除噪声,高斯滤波器是根据高斯函数的形状来选择权值的线性平滑滤波器。对图像来说,常用二维零均值离散高斯函数作平滑滤波器,函数表达式如下:
高斯滤波器的宽度(决定着平滑程度)是由参数 σ表证的,而且σ和平滑程度的关系是非常简单的。σ越大,高斯滤波器的频带就越宽,平滑程度就越好。
图4 高斯滤波后车牌图像
由于汽车图像中汽车的头尾部如保险杠、车灯、散热片的水平纹理很丰富,而车牌区域内的号码呈现的垂直纹理丰富,所以提取整幅图像的垂直纹理,将车牌区域清晰的分割出来,不与背景粘连,同时将字符的骨架清晰的显现出来。利用Sobel水平检测算子,检测图像的垂直边缘,这样即可以滤除水平纹理的干扰,又可以提取车牌区域的丰富纹理。所以本文采用Sobel水平检测算子来检测图像的边缘,得到密度较大的区域。对应的滤波器系数为:计算公式如下
其中w为滤波器中对应的系数。根据图5,我们可以看到水平Sobel变换后的图像,很好地提取了车牌区域的纵向纹理特征,又有效的去除了汽车图像中横向纹理特征的干扰。因此采用水平Sobel变换能够达到提取车牌边缘、抑制噪声的目的。
图5 Sobel边界提取
对图像进行边缘检测后,要将图像进行二值化,本方法采用局部自适应阈值方法对车牌进行二值化,局部自适应二值化食针对灰度图像中的每一像素点进行阙值计算的,以当前点位中心选取一个适当的领域模板,从这个模板中的像素灰度值中获得判据,来决定对当前点是置0还是置1。
图6 自适应阈值
通过对图像进行二值化,可以看到目标与背景成功的分离出来。其中密集的区域主要包含:车牌区域,散热器区域,车灯区域等。这些密集的象素是不利于后续的工作。所以在本文中,主要用数学形态学进行区域融合,使由一系列密集的像素组成的区域变为一个连通的区域,便于后续运算。
数字形态学的基本运算包括腐蚀、膨胀、开运算和闭运算。然而,怎样合理有效地使用这些运算,使得分割出的这些密度较大的区域,能变成一个融合的区域,并且在合并时,不能将周围的区域也融合进来,这些也是要经过大量实验验证的。
本文提出采用3x3的结构元进行膨胀、闭运算、两次腐蚀运算后得到的连通区域最适合后续处理。
最后得到若干连通区域,处理效果如图7所示。
图7 形态学变换
从经过数学形态学运算得到的连通区域的图中可以看出,这些连通区域是不规则的,它们不利于从候选区域中提取车牌区域。所以,要扩大这些候选区域的边缘,使其成为矩形区域。本文使用下述算法,其原理如下:
(1)若图像中某点灰度值为255,且该点上下左右四点所有灰度值都为0,则令该点灰度值为0;
(2)若图像中某点灰度值为0,且该点上下左右四点所有灰度值之和至少大于510,即4个领域中至少存在2点灰度值为255,则令该点灰度值为255
对二值图像重复上述操作125次,当图像的各白区域均为矩形时,上述操作将不再使图像变化。由于车牌区域边缘丰富,其所在的行的白点数较多,为防止产生区域粘连,矩化前先要统计候选区域中每行的白点数,总数小于某一阂值的行将全部被赋为0。本文得到候选区域的具体步骤如图8所示。
图8 定位车牌
最后根据车牌的先验即长宽比和车牌在图像的大致位置,可以定位准确定位出车牌。
方法原理图:
图9 方法二原理
方法2是的灰度化仍采用方法一同样的公式(1)。
方法2采用中值滤波对图像进行平滑处理。中值滤波是常用的一种非线性平滑滤波。
主要原理:首先确定一个以某个像素为中心点的邻域,一般为方形邻域;然后将邻域中的各个像素的灰度值进行排序,取其中间值作为中心点像素灰度的新值,这里的邻域通常被称为窗口;当窗口在图像中上下左右进行移动后,利用中值滤波算法,可以很好地对图像进行平滑处理。中值滤波法是一种非线性平滑技术,它将每一象素点的灰度值设置为该点某邻域窗口内的所有象素点灰度值的中值。
图10 Sobel边缘提取图像
该方法是按图像的灰度特性,将图像分成背景和目标两部分。背景和目标之间的类间方差越大,说明构成图像的两部分的差别越大,当部分目标错分为背景或部分背景错分为目标都会导致两部分差别变小。因此,使类间方差最大的分割意味着错分概率最小。
图11 Otsu二值化
原理如下:
(1)从左至右扫描二值化后的车牌图像,记录每行的黑白点跳变数,若大于某一阙值(本文中取7)将改行行号记录入数组line[]中。
(2)将line[]数组中连续行的第一个行号和最后一个行号取出,分别放入Begin[]和End[]数组中。
(3)将 End[]数组中的值减去 Begin[]数组中的值即得到连续行的宽度,若宽度大于某一阙值则保留。
这样可得到若干分割出的连续行区域
图12 定位连续行区域
(4)将上述得到的若干连续行区域分别做垂直投影,若该列白点数大于某一阙值,将该列像素全部设为255。得到若干小的矩形方块区域。若相邻矩形方块区域之间的距离不超过某一阙值(本文中取40),则将中间的列都设为255。得到若干候选区域
(5)最后采用跨列扫描定位候选的左右边界,即从每个连续行区域左边第一列扫描,隔10列扫描,扫描距离为车牌的长宽比乘以改区域所在连续行的宽度,如果像素值都为255,则可以确定为车牌的左边值,否则舍弃,从下一列扫描,同理确定最右边的第一个点。根据左右边界得出定位车牌区域。
根据车牌左右位置定位出原车牌区域如图13所示。以供后续处理。
图13 最终定位图片
文章采OPENCV和C++编程实现验证两种方法,对拍摄的和网上搜集的300余张图片进行定位,其中方法一对固定场所的车牌定位效果较好,识别率为97.3%,方法二不限背景,定位速度也得到了很大的提高,速度达到119.79ms。但对于过于复杂的背景(如图片中有两辆车)不能进行很好的定位。
实验表明,两种方法都是有效的。尤其对低照度模糊图像两种方法都能实现车牌的准确定位,为后期有效识别车牌提供技术基础。
[1]冈萨雷斯.数字信号处理[M],北京,电子工业出版社,2003.
[2]郭天舒.汽车牌照定位算法研究[D]沈阳工业大学, 2003.
[3]王永茂,刘贺平.强噪声车牌图像中的字符识别[J],计算机仿真,2006年12月.
[4]马腾飞.汽车牌照定位与字符分割算法的研究[J].山东科技大学.2007
[5]张向东,马月涛,杨奇泽.一种基于灰度图像的车牌快速定位算法[J].电子科技,2007.