基于M-HSI和像素偏移法的车牌定位
2018-11-17张振威苏燕辰
张振威,苏燕辰
(西南交通大学 机械工程学院,四川 成都 610031)
0 引 言
在智能车牌识别过程中,车牌定位是车牌图像处理的第一个过程,是车牌识别后续步骤的前提。国内外学者对于车牌定位的研究取得了大量的成果。目前,车牌定位的研究方法可大致分为两类,第一类是先将车牌彩色图像转化为灰度图像,然后利用图像形态学方法、边缘分析法、神经网络等[3-5]来实现车牌的定位,再利用霍夫变换、Radon变换[6,7]来实现车牌的倾斜校正。第二类方法是利用车牌图像的色彩信息和色彩分布特征来实现车牌的定位,由于在车牌定位中考虑了色彩因素,使得车牌定位准确率得到提高[8]。在利用色彩信息对车牌进行定位时,HSI色彩模型对色彩的分割具有很好的优越性[9],因此得到广泛的应用,但这种模型对光照强度比较敏感,对光照强度的鲁棒性差[10]。基于以上原因,本文旨在提出一种随光照强度改变的HSI模型,即M-HSI模型,并结合字符区域的特征,以实现对车牌更加快速、精确的定位和倾斜校正。
1 M-HIS模型
1.1 HIS模型
在车牌识别系统中拍摄的图像通常采用RGB格式描述,但是RGB颜色模型是线性表示系统,虽然简单、直观,但其空间中两点的欧式距离与实际颜色的距离不是线性的关系,在对颜色进行划分时,易产生误划分现象,而且它与颜色概念如色调、饱和度和亮度等没有直接的联系,而基于色调、饱和度和亮度的HSI颜色模型才反映了人观察色彩的方式。在该色彩系统中,各参数H、I和S的定义参见文献[11]。
将RGB空间转换为HSI空间后,会使信息结构更加紧凑,各个分量的独立性增强,更易于分割和识别目标。RGB模型转换为HSI模型的变换公式如下[12]
其中,图像的红绿蓝分量分别用R、G和B表示,而图像的色度、饱和度和亮度分量用H、S和I来表示。
用Matlab编制程序,绘制HSI色彩模型的散点图如图1所示。
图1 HSI色彩模型(a)和该模型色彩度分辨率与亮度的关系(b)
由图1(a)可以看出,HSI模型在不同光照强度下对色彩的分辨率是不同的,为求得HSI模型在不同亮度下对颜色的分辨率,定义分辨率求法规则如下:
(1)先将亮度区间分为100个小区间,然后利用Matlab编程求得各个小区间分布的散点个数。
(2)用各个区间中散点个数最多的点数对结果进行归一化处理,最终绘制曲线如图1(b)所示。
从图1(b)中可以看出,HSI模型色彩度的分辨率随着亮度的增加呈现先上升后下降的趋势,类似于开口向下的抛物线,且在亮度为0.5时,对色彩度的分辨率最高,在亮度接近0或者1时,分辨率较低。
1.2 改进的HSI模型
从1.1中转换公式可以看出,HSI模型各个分量的值相互独立,因此对于同一波长、同一饱和度的颜色,无论亮度大小怎样改变,该颜色的波长和饱和度应该是固定不变的。但从下面的实验可以得知,反射光亮度的改变会使
得反射光的波长发生改变。
实验过程如下:
(1)从拍摄的300幅车牌图像中随机抽取100幅图像。
(2)在每一幅车牌图像中截取一小块车牌蓝色区域作为样本图像Si。
(3)对样本图像Si的每个像素的色度、饱和度和亮度进行统计并求出其平均值以消除噪声点的影响,设图像尺寸为Pi1×Pi2,每个像素的色度、饱和度和亮度分别为Hij、Sij、Iij,则样本图像平均色度、饱和度和亮度为
(4)获得100幅样本图像的饱和度、色度和亮度均值后,绘制饱和度、色度和亮度的折线图,最终结果如图2所示。
图2 色度值与亮度的折线图(a)和饱和度值与亮度的折线图(b)
从实验结果可以得出以下结论:
(1)由图2(a)可以看出,色度值与亮度值成线性关系,随着亮度值的减小,色度值变大,用最小二乘法准则可以求出其回归线为:H=-0.9362*I+4.0975,色度值在回归线上下浮动,这是因为各个车牌由于使用的年限不同,导致其色度存在一定的差异。
(2)由图2(b)可以看出,在饱和度值大于0.2时,饱和度的值不随亮度值的改变而改变,对光照强度的鲁棒性比较好,但在饱和度小于0.2时,随着亮度值的改变,饱和度出现随机分布的情况,此时利用饱和度信息对车牌定位会产生一定的影响。
(3)综合两图,可以看出在整个亮度范围内,色度与亮度都有着确定的线性关系,因此可以在传统色度值的基础上加上亮度修正项,提高色度对光照强度的鲁棒性。而饱和度在亮度小于0.2时出现随机分布的情况,因此在用HSI模型将彩色图像转换为二值图像时,以色度值判断为主,饱和度值判断为辅。
由1.1节可知,对于HSI模型,在亮度为0.5时,该模型对颜色的分辨率最高,因此以亮度为0.5时的色度值为标准,对色度值进行修正,修正后的转换公式为
2 彩色图像的二值化
基于M-HSI模型对彩色图像二值化的过程如下:
(1)为提高车牌定位准确率,取100组修正后色度值的最值为Hmax、Hmin,车牌矫正时,若像素色度值在[HmaxHmin]范围内,则将像素标记。
(2)当亮度值大于0.2,多数样本的饱和度值都大于0.8,而亮度小于0.2时,统计图2(b)中饱和度的值,90%以上的饱和度值都大于0.6。为保证最大程度的标记目标像素,用试值的方法对像素标记,即从初始饱和度值Sst=0.6开始,以梯度值为d=-0.1,对目标像素进行标记。当两步中都被标记的像素数站整个图像像素数的比值大于0.0025时,停止试值。
二值化流程如图3所示。
图3 二值化流程
车牌采用矫正法前后转换成的二值图像对比如图4所示。
图4 HSI模型矫正前后二值图像对比
由上面的两幅图像可以看出,使用M-HSI模型处理后的车牌的蓝色区域标记面积增加,非车牌区域的标记面积减少,验证了M-HSI模型的有效性。
3 车牌字符区域的确定
对于二值化后的图像,如果直接利用连通域寻找车牌区域,往往会因为车牌中的字符区域的存在而使得二值图像中的车牌图像出现断裂,从而使得定位结果只是车牌的一部分,出现定位错误。如图5所示,在第二个字符A和第六个字符0两处出现断裂,使用连通域标记法定位车牌时,会出现定位范围只是车牌图像的一部分的情况,此时虽然可以用大的膨胀算子对图像进行处理使得车牌断裂的部分合并在一起,但这种方法也容易让车牌与非车牌区域连接在一块,影响车牌的最终定位。
图5 彩色车牌转成二值图像后的图像
因此在得到上述二值图像以后,需要继续求出包含字符区域的图像,然后将这两个图像合成一幅图像,经过形态学处理,再通过各个连通域的特征值信息最终确定车牌区域。
由于车牌字符区域为纯白色,其饱和度S的值很小,可以利用饱和度信息确定车牌的字符区域,实验表明数字区域的饱和度都在0.2以下(实验与1.1节相同)。为求得包含字符的区域,需要对第二节中二值化后的图像进行形态学处理,并与原彩色图像求交集。由于实际情况比较复杂,由原图像转化的二值图像中会有一些噪声点,因此应先对二值图像进行图像的去噪处理。常见的图像的去噪方法包括邻域平均法、加权平均法、中值滤波法和通过形态学的开闭运算去噪等方法[13]。由于本文采用的方法将彩色图像转化为二值图像时所产生的噪声点多为孤立的噪声点,因此采用形态学的开闭运算来实现图片的降噪处理。全1结构算子用符号Bn表示,其大小为n×n,图像膨胀和腐蚀运算用符号⊕和⊗表示,选用算子B2对图像实现开运算去噪。
运算法则
A∘B=(A⊗B)⊕B
然后再对图像进行先膨胀后腐蚀的处理和连通域填洞处理使得其白色像素区域包含字符区域。根据对图片处理的实验结果取膨胀算子B10,运算法则为
A·B=(A⊕B)⊗B
然后对各个连通域进行填洞处理,最终得出二值图像如图6(b)所示,然后将得出的二值图像图6(b)与原图像图6(a)进行求交集,使得原图像中背景区域为黑色,车牌候选区域为彩色如图6(d)所示,用最终的彩色图像并利用饱和度信息将其转化为包含字符区域的二值图像如图6(e)所示。
图6 车牌图像二值化过程
4 定位车牌区域
在得到包含字符区域的二值图像后,将包含车牌蓝色区域的二值图像与包含字符区域的二值图像合并成一幅图像如图6(f),然后进行形态学处理。在这里取运算因子B1对二值图像进行开运算以去除车牌中的背景噪声,取B5进行闭合运算,以融合车牌中的孔洞,运算法则
这就使得车牌候选区域成为若干个连通域如图7所示。然后对各个连通域进行标记,本文采用的连通域标记方法为8连通域方法,用此方法进行连通域标记,并将结果保存为T。设共有N个独立连通域,则
图7 经过形态学处理后的二值图像
对于处理后的图像,为了减少车牌定位时的运算量并排除干扰,应首先去除很小的连通域(连通域像素数小于车牌图像总像素数的1/2000)。
图片经过以上处理后,车牌区域已经成为一个连通域,因此可以通过连通域寻找方法并结合车牌区域的一些特征进行车牌区域定位。由于车身类型和背景比较复杂,因此必须结合多个特征来实现车牌的定位[14]。
本文所使用的特征值共5个:
(1)连通域的长宽比,车牌的长宽比是一个显著的特征,因此将标记连通域的长宽比作为一个特征值t1。
(2)蓝色区域像素数占标记连通域像素数的比值t2,即图8(a)亮点个数和图8(c)亮点个数之比。
(3)字符区域像素数占标记连通域像素数的比值t3,即图8(b)亮点个数和图8(c)亮点个数之比。
(4)标记连通域像素数占包含连通域的最小矩形区域像素数的比值t4,即图8(c)亮点个数和图片包含总像素数之比。
(5)标记连通域像素数占所有车牌候选区域总像素数的比值t5,即图8(d)中车牌连通域亮点个数和所有连通域的亮点个数之比。
图8 用于定义特征值的图像
通过对100幅样本图像的车牌区域特征值进行统计,结果见表1。
针对某一个连通域Ti,这5个特征值分别记为Ti1-Ti5,然后分别对其进行等值赋权处理。即
表1 特征值均值
然后根据各连通域的特征值T来最终选定车牌区域,车牌区域即T为最小值的标记区域。
最终定位的车牌区域如图8(c)所示。
通过对200幅图像的定位,不同定位方法的准确率和耗时见表2,其中运行软件Matlab 7.10(R2010a),笔记本电脑,CPU:Intel(R)Core(TM)i5-4200U,1.6 GHz,内存:4 G。运行结果表明,在计算耗时基本不变的情况下,车牌定位准确率提高了很多。
表2 不同定位方法定位准确率和耗时对比
5 车牌的倾斜矫正和精确定位
在车牌区域定位以后,由于一些图像中车牌区域是倾斜的,因此需要对车牌区域进行倾斜矫正。文献[15]中使用改进的Harris算法并结合惯性主轴算法对倾斜车牌进行矫正,虽然精度相对传统Harris有所提高,但这种方法运算复杂,运算时间长。文献[16]用Hough变换和快速投影法对车牌进行矫正,在确定车牌倾斜角度时,使用的图片是车牌彩色图像灰度化后的边缘检测二值图,这类图片容易出现边缘不明显,特别是车牌短边边缘不清晰,因此容易导致倾斜校正失败。
基于以上问题,本文采用运算量小,精度高的像素偏移法。由第4节中得到的定位后的车牌区域(图8(c))可以看出利用HSI模型定位后的车牌区域边界比较明显,因此可以选用索贝尔算子来确定车牌的边缘线,然后用霍夫变换求出车牌的水平倾斜角和垂直倾斜角,并找出车牌长边的一条直线和短边的一条直线,求出其交点,并以交点为参考点对图片的倾斜进行矫正。
首先对车牌区域进行填洞处理,然后用对边缘检测效果比较好的索贝尔算子进行边缘检测,索贝尔卷积因子G1和G2[17,18],其中G1为横向梯度因子,G2为纵向梯度因子,将两个因子分别与二值图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值
Gx=G1*P
Gy=G2*P
G2=Gx2+Gy2
取阀值为梯度矩阵G中所有非零元素的均值,根据G内元素的值是否大于阀值来判断该点是否为边缘点。对图9(a)使用Sobel算子检测图像边缘结果如图9(b)所示。
图9 车牌二值图像(a)和边缘检测结果(b)
利用索贝尔算子检测出边缘以后,采用霍夫变换检测出最长的一条直线并标记,如图10(a)和图10(b)中长的粗直线所示。由图10中可知这条直线为车牌的一条长边直线L1,其与图像下边缘的倾斜角记为α,然后在直线倾斜角为α的邻域内采用霍夫变换标记出短边直线L2。车牌短边不发生倾斜时,其与长边夹角为α+90°,记其与图像下边缘的倾斜角为β,考虑到车牌短边直线和长边直线相互之间的变形量一般不超45°,因此取邻域为[α+45°α+135°]。在该区间内进行霍夫变换,求出的最长直线即为车牌短边直线L2。通过霍夫变换求得上述中的长边直线倾斜角α和短边直线倾斜角β后,可以求得长边直线和短边直线的交点(X,Y)。
然后采用像素偏移法对图片进行拉伸矫正处理,此方法运算简单,对字符特征影响小。
为方便介绍图片矫正方法,先对车牌倾斜类型区分如下。以图像下边缘线为参考线,若车牌长边右侧与参考线垂直距离大于长边左侧与参考线的距离,则定义α为正值,否则定义α为负值。
从以上α值的定义中可以知道,车牌的倾斜情况只有两种,如图10(a)和图10(b)所示,两图分别对应于α>0和α<0。
为方便对倾斜矫正方法解释,以示意图的形式进行说明。如图10(a)所示,为α>0的情况。在对车牌边缘二值图像运用Hough变换后,求得两条直线,一条为车牌的长边边线,另一条为短边边线,则Hough变换后,共可能出现4种情况,如图10中α>0的4种情况。
在图10(a)中,粗线段代表Hough变换求出的两条线段。由于α角已经求出,因此,可以求得长边线的斜率K1,因此可以求出以上情况中以交点(X,Y)为参考点的任意像素(x,y)的矫正偏移量
图10 车牌倾斜的几种情况
公式中round是对计算数值四舍五入。
如图10(b)所示,为α<0的情况。与α>0类似,在Hough变换后,共可能出现4种情况,如图10(b)中α<0的4种情况。
与α>0类似,可以求出以上情况中以交点(X,Y)为参考点的任意像素(x,y)的矫正偏移量
可以将上述两种倾斜类型的矫正偏移量合并为一个
根据以上矫正偏移量可对车牌图像进行长边线倾斜矫正。
根据矫正前后的几何关系,可以求得矫正后的短边倾斜角β1的值如下
β1=β+arcsin((sin(α)*sin(90-β))/(sin(90-α)))
长边倾斜矫正后,可能的结果如图10(c)(分别对应于β1>0和β1<0):
与长边偏移量求法相似,可以求出以上情况中以交点(X,Y)为参考点的任意像素(x,y)的矫正偏移量
由于本文在将车牌彩色图像转化为二值图像时,边缘清晰,因此用Hough变换寻找长边和短边时,具有很高的准确率。而以上提出的车牌矫正方法对Hough变换定位出的任意一条长边和短边都是适用的,因此在车牌定位准确的情况下,车牌矫正准确率很高。
对已经准确定位的100幅倾斜车牌进行矫正,其准确率为99%,每幅图的矫正时间为0.36 s/幅。
部分测试结果如图11所示。
图11 部分车牌测试图像
不同倾斜矫正方法的准确率和耗时见表3。
表3 倾斜矫正方法准确率和耗时
从以上实验结果可以看出,本文提出的车牌矫正方法对各种类型的车牌长边倾斜和短边倾斜都有比较好的矫正效果,且矫正并精确定位后的车牌边缘区域去除率高,为之后的车牌最终识别奠定了基础。
6 结束语
针对车牌定位这一问题,本文提出了改进的M-HSI模型和基于像素偏移法的矫正方法,从而实现了对车牌的精确定位。
(1)本文提出的方法能以比较高的准确率对车牌定位并矫正倾斜图像。
(2)与基于车牌边缘检测的定位方法相比,其准确率较高,且两种方法耗时基本一样。
实验中也发现,本文所用算法定位失败的情况主要有是车牌褪色或者污损严重,因此要继续提高车牌定位准确率时,需要结合其它车牌定位方法如边缘分析法和纹理分析法,这是下一个阶段需要做的工作。