技术背景
随着计算机应用技术和人工智能学科研究的迅速发展,使得许多领域迫切需要应用图像处理技术,数字图像处理技术的应用领域越来越多,其中在智能交通系统中获得较好应用,而车牌识别系统是智能交通系统中的一个关键技术。车牌作为车辆的唯一标识,正确识别车牌有着许多现实意义。车牌字符分割技术则是整个车牌识别系统关键环节,该环节将定位后的车牌中的字符分割为单一字符,只有将车牌正确分割,才能为下一步的字符识别奠定基础,如果字符分割效果不佳,将对车牌的识别带来很大的问题,所以一个良好的字符分割方法对车牌识别系统有着重要的意义。当前对于车牌字符分割技术主要有以下方法:
1)基于垂直投影的车牌字符分割方法。此方法对于一些质量较差的车牌照片还是可能发生字符粘连或者对字符的误分割,对于复杂场景下不适宜。详见:迟晓君,孟庆春基于投影特征值的车牌字符分割算法,计算机应用研究,2006,1753-1755。
2)基于模板匹配的字符分割方法。该方法利用车牌字符串模板,通过模板匹配确定字符位置,对于图像质量较低匹配模版的构建是难题。详见:王兴玲最大类间方差车牌字符分割的模板匹配算法计算机工程,2006,32(19):193-195。
3)基于连通域标记的车牌字符分割方法。该算法对车牌字符进行断裂的情况进行合并处理,对车牌字符区域实施区域标记的思想实现分割,该方法对背景噪声的干扰影响很大。详见:Feng Yang,Zheng Ma,Mei Xie.A novel approach for license plate charactersegmentation.20061st IEEE Conference on Industrial Electronics and Applications,2006.
4)基于颜色信息的车牌字符分割方法。该算法根据车牌背景和前景字符颜色的差异,进行颜色不连续性分析,实现字符的分割。该方法对车牌区域的颜色信息要求较高,当环境复杂或距离远时,车牌字符分割效果很差且运算效率较慢。详见:刘奕,陈学佺,蒋治华.一种利用颜色信息的车牌字符分割新算法.计算机应用与软件.2005,8(22):98-100.
发明内容
本发明所要解决的技术方案是,提供一种能在复杂场景下的自适应车牌字符分割方法。
本发明为解决上述技术问题采用的技术方案是,一种复杂场景下的自适应车牌字符分割方法,包括以下步骤:
1)车牌倾斜矫正步骤:对车牌检测获得的图像进行车牌倾斜矫正处理;
2)2、3字符间隔位置预定位步骤:对倾斜矫正后的图像在垂直方向上进行像素值投影求和形成向量I_col;
选择向量I_col的处于中段位置的元素,通过求中段位置元素的均值与标准差得到阈值T_thr:T_thr=T_mean+W×T_svr,其中,T_mean为中段位置元素的均值,T_svr为中段位置元素的标准差,W为权重系数;
将向量I_col中低于阈值T_thr的元素置0;记录向量I_col中每一连续0元素段的起始位置与终止位置形成零序列集;
在向量I_col从左至右搜索第一个满足所有间隔区域判定准则的连续0元素段为2、3字符间隔,该连续0元素段的起始位置与终止位置对应了车牌中2、3字符间隔宽度的起始位置与终止位置;所述间隔区域判定准则为:该连续0元素段往前跳两个先验的字符宽度或向后跳5个先验的字符宽度后的位置还在车牌范围;该连续0元素段的宽度不低于先验的窄间隔,且不高于先验的字符宽度;所述窄间隔为除2、3字符间隔之外的其它字符间隔;
3)车牌字符分割步骤:通过2、3字符间隔位置预定位位置,再利用零序列集搜索符合准则的连续0元素段自适应调整分割参数来实现车牌字符分割;所述分割参数包括字符宽度、窄间隔及2、3字符间隔。
本发明首先提出一种新的2、3字符间隔位置定位方法,该方法利用投影纹理特征并且结合车牌高宽比,设置多准则判定,以便简单快速地搜索2、3字符间隔位置,为字符分割的下一步骤提供了稳定可靠的初始位置判定信息。
具体的,为了使得2、3字符间隔位置定位更加准确,还引入了车牌颜色等先验信息作为判定准则,所述间隔区域判定准则还包括:该连续0元素段对应的车牌区域中属于车牌背景像素的比例大于颜色阀值T_color。
进一步的,为了使得字符分割更加精确,利用搜索符合准则的0元素段更新分割参数字符宽度及字符间隔宽度,并根据搜索中间字符位置,再次更新字符宽度参数,有效克服单个字符分割不稳定的缺点。
本发明的有益效果是,通过快速地准确地搜索2、3字符间隔位置,自适应调整分割参数,使得车牌字符分割稳定可靠,在复杂的环境中鲁棒性强。
具体实施方式
为方便描述本发明内容,这里首先对一些现有术语进行定义:
定义1Prewitt算子。Prewitt算子是应用边缘检测的一阶微分算子,根据像素点的上下、左右邻点灰度差,在图像空间上利用水平和垂直方向模版与图像进行邻域卷积,从而完成去掉部分伪边缘。
定义2错切变换。图像的错切实际上是平面物体在投影平面上的非垂直投影,错切变换是使图形产生一个扭变,分为x和y方向的错切变换。
定义3零序列集。对图像投影求和形成向量,设定阀值,低于阀值的向量区域置零产生零序列集,如附图3所示。
定义40元素段。零序列集中包含连续零值的一段区域。
定义5HSV空间。HSV这个模型中颜色的参数分别是:色彩(H),纯度(S),明度(V)。H参数表示色彩信息,即所处的光谱颜色的位置,该参数用一角度量来表示,红、绿、蓝分别相隔120度。互补色分别相差180度。纯度S为一比例值,范围从0到1,它表示成所选颜色的纯度和该颜色最大的纯度之间的比率。S=0时,只有灰度。V表示色彩的明亮程度,范围从0到1。
如图1所示,实施例包括以下步骤:
步骤1车牌倾斜矫正步骤:
1.1)水平方向矫正。根据车牌检测获得的彩色图像I,将图像高度尺寸上下各增大0.5倍得到I_re1,通过水平的prewitt算子检测I_re1的灰度图的水平边缘得到图像I_edge1,设置角度步长α,以当前位置做基准,从-θ到θ根据步长将车牌水平边缘图I_edge1在各个角度上进行旋转,计算各个角度下水平投影值的平方,对应于最大投影值平方的角度即为水平倾斜角度θx,根据水平倾斜角度θx,对I_re1进行水平旋转得到水平矫正后的图像I_hor。
1.2)垂直错切矫正。根据上步骤得到的I_hor,将其宽度尺寸左右各增大0.25倍得到图像I_re2,利用垂直的prewitt算子对图像I_re2的灰度图进行边缘检测得到图像I_edge2,以当前位置做基准,从-θ到θ以步长α在图像I_edge2上进行垂直方向的错切变换,分别统计其非零列的数量,并根据错切导致的多余零列计算出各个方向上零列数量之和,对应于最大零列之和的角度即为垂直错切角度θy,根据垂直错切角度θy对图像I_hor进行垂直矫正得到图像I_plate。
该步骤中提出一种基于旋转寻优与错切变换的倾斜矫正方法。该方法有效解决了车牌在复杂场景中检测不准确的难题,采用相对稳定的因素使得车牌信息更适用于后续处理(车牌字符分割、字符识别)。
步骤1中各子步骤均为成熟的现有技术,本实施例仅给出一个较优的,具体的实施组合,本领域技术人员可以根据现有其他的实施手段来实现车牌倾斜校正。
步骤22、3字符间隔位置预定位:
2.1)投影特征分析。根据上步骤获得精确车牌图像I_plate,对其进行垂直方向上像素值求和投影,把图像矩阵按列相加成一向量I_col,如图2所示;选向量长度1/3到2/3之间元素求得均值T_mean和标准差T_sva,并选择权重W以公式T_thr=T_mean+W×T_svr求得阀值T_thr,根据阀值对I_col进行处理,将低于阀值的区域置零。选择向量长度1/3到2/3的像素值为了确保所选择的区域为车牌图像的中段,这样能确保选择的图像中准确地包含了背景与字符部分,使得阀值T_thr更可靠。
步骤2.2)寻找I_col中的零序列集。设置零序列集起始位置向量head,终止位置向量rear,对上步骤得到阀值后的I_col进行零序列判断,若I_col中当前元素值为零,且前一元素值大于零,则将当前元素位置放入head中,若I_col中当前元素值为零,且后一元素值大于零,则将当前元素位置放入rear中。向量head与rear中相同位置处的元素值分别为阀值后的I_col中的一个零序列(连续0元素段)的起始位置和终止位置,形成零序列集,如图3所示。记录向量I_col中每一连续0元素段的起始位置与终止位置形成零序列集。
2.3)在向量I_col从左至右搜索第一个满足所有间隔区域判定准则的连续0元素段为2、3字符间隔,该连续0元素段的起始位置与终止位置对应了车牌中2、3字符间隔宽度的起始位置与终止位置。
所述间隔区域判定准则为:该连续0元素段往前跳两个先验的字符宽度或向后跳5个先验的字符宽度后的位置还在车牌范围;该连续0元素段的宽度不低于先验的窄间隔,且不高于先验的字符宽度;所述窄间隔为除2、3字符间隔之前的其它字符间隔;该连续0元素段对应的车牌区域中属于车牌背景像素的比例大于颜色阀值T_color。
根据车牌图像I_plate的高度H和车牌宽高的先验知识,可计算出字符宽度C_width、字符间宽间隔L_space,窄间隔S_space(宽间隔为2,3字符间隔,其余字符间隔为窄间隔)。将车牌图像I_plate转换为HSV空间,各像素的HSV分量,设置对应车牌背景HSV空间参数及颜色阀值T_color。I_plate中,凡满足车牌背景HSV空间参数的像素属于车牌背景。
实施例利用投影纹理特征并且结合车牌高宽比和车牌颜色等先验信息,设置多准则判定,为字符分割的下一步骤提供了稳定可靠的初始位置判定信息。适用于不同距离车牌的2、3字符间隔位置定位。对于间隔区域判定准则的约束,可以根据实际环境增加或减少。
步骤3车牌字符分割步骤。
3.1)1,2字符间隔位置中心初定位:根据预定位2、3字符间隔宽度起始位置Sec_end及先验的字符宽度C_width,设置搜索起始位置Sec_end+C_width,终止位置为Sec_end+C_width*a1,a1为取值介于1至2的系数;在该范围内搜索向量I_col中包含连续零值最多的位置,并将该连续0元素段的中心作为1、2字符间隔中心,记为mid12;
3.2)预设分割参数:根据预定位2、3字符间隔宽度,先验车牌尺寸得到窄间隔sdis1,宽间隔sdis2,字符宽度C_width;所述宽间隔为2、3字符间隔;
3.3)搜索1,2字符间隔位置,再次更新分割参数:
求得第一字符左边界:根据得到的1、2字符间隔中心位置mid12,以位置mid12为中心左右搜索当前零序列集中包含连续零值最多的位置左边界为loc1,右边界为loc2。根据步骤2中求出的2,3字符间隔位置初定位,以loc2为起点,loc2+C_dis/4为终点搜索当前零序列集中包含连续零值最多的位置左边界为loc3,右边界为loc4,根据位置loc3、loc4更新字符宽度为C_width=loc3-loc2,由求得的位置loc2和loc3可定位第2字符位置;
3.4)定位出3,4,5,6字符位置:根据更新后的字符宽度以位置loc4+C_width-a2×sdis1为起点,loc4+C_width+a3×sdis1为终点,搜索当前零序列集中包含连续零值最多的位置可得到第3个字符位置右边界loc5,第4个字符的右边界loc5。用同样的方法,定位出4,5,6字符位置。
3.5)第1、7字符的确定:根据定位出来的中间字符位置,计算其平均字符宽度C_avg1,以第6个字符的末位置移动sdis1+1设置为loc12,继续向右平移C_avg1,得到第7个字符的终位置为loc13。在得到以上车牌后6个字符位置后,求得上述6个字符的平均宽度C_avg2,以步骤3.3)中定位出来第1、2字符的间隔位置loc1,平移C_avg2+1单位,得到第1个字符的起始位置loc0。
实践发现1、7字符较易被错误分割,因此直接定位,不同于中间字符的处理。本领域人员完成可以按照通过2、3字符间隔位置预定位位置,再利用通过零序列集中连续0元素段进行调整后的分割参数来实现车牌字符分割的思路,在通过2、3字符间隔位置预定位确定的情况下,用其它方式实现字符分割。
在硬件平台Intel i32120+2G DDR RAM,软件平台C/C++上实施本实施例方法,采用2000张实地拍摄图片,包括雨天、雾天、晴天等不同天气和车牌水平、车牌倾斜、车辆运动、车辆静止等不同状态下的彩色车辆图像作为源实验数据,经实验验证,本实施例中字符分割正确率达到98.5%。与传统的算法相比较,本发明的方法在应用复杂的环境中鲁棒性好,通用性强。