周 欣,蒋欣荣,潘 薇
ZHOU Xin,JIANG Xinrong,PAN Wei
四川大学 计算机学院,成都 610064
College of Computer,Sichuan University,Chengdu 610064,China
车牌定位算法是车辆号牌自动识别系统的关键算法,目前已有多种成熟的定位算法。而提高定位率与提高实时性一直是该算法研究的重点内容。
目前比较常见的方法有以下两种:第一种方法包括水平线搜索[1]、边缘检测[2]、投影分割、车牌纹理检测等等。这类方法利用车牌区域边缘丰富、灰度变化规律等特性来检测车牌,运算简单,速度较快,但抗干扰的能力相对较弱。现在对这类方法又有各种改进算法,并取得一定的效果[3-5]。第二种方法着重于车牌区域的色彩信息。包括根据颜色相似度进行聚类牌照区域[6]和运用彩色边缘检测[7-8]等等。这类方法对车牌大小不敏感,精度较高,但缺点是对图像品质要求高,对牌照偏色、牌照污损及背景色干扰等情况无能为力。
另外还有一些基于小波分析的方法[9-11]、基于神经网络的方法[12-13]、基于AdaBoost的学习方法[14-15]等等。
在目前的智能交通系统中,越来越多的采用了高清数字摄像机。常用的数字摄像机可以覆盖2~5个车道,这对车牌定位算法提出了新的要求。除了搜索空间增大使得算法实时性降低以外,出现了一个场景中同时存在多个车牌的情况。本文以提高车牌定位实时性和同时搜索多个车牌为目的,研究并提出一种基于分块投影和语义约束的快速车牌定位算法,为基于数字摄像机的实时车牌识别系统提供算法基础。
本文引入2个车牌区域语义特征。第一语义特征:车牌区域具有连续、规则的多个字符块。第二语义特征:车牌字符灰度信息一致、笔画宽度一致,与背景形成规则的灰度跳变。算法步骤是:首先通过分块的边缘投影得到候选车牌字符块;然后根据第一语义特征对字符块进行聚类和筛选,最后根据第二语义特征过滤伪车牌得到定位结果。
考虑到车牌字符的笔画宽度和车牌可能出现的倾斜,选择式(1)和式(2)的梯度算子对灰度图像I进行处理,得到V(x,y)和 H(x,y)。
传统方法多采用整行投影确定车牌区域的上下界,但针对视场中包含多个车道的情况其适应性降低。因为视场的扩大使得车牌区域在图像中所占比重下降,车牌倾斜的程度也大大增加,其他目标和噪声对行投影的影响增大。因此,本文采用局部分块投影来搜索候选字符块。
设图像x与y方向的搜索步长均为step,对W×H大小的图像块在水平方向对V(x,y)投影,投影的一维数据进行9×1的均值滤波。其中:
局部车牌边缘投影在概率意义上近似正态分布,如图1所示。因此,可以按正态分布曲线进行参数估计,并根据其能量分布理论(99%的能量集中在μ±2.58σ以内)确定字符块的上下边界。
图1 曲线拟合示例
设投影曲线为 y*=h(x),字符块上下界区间为[m,n],m、n为所求值。则边缘投影在x方向分布的概率密度函数为:
取曲线 f(x)上 4个点 (x1,y1)、(x2,y2)、(x3,y3)和(x4,y4),满足如下关系:
由式(3)、式(4)可以得到:
将式(6)代入式(5)可以求得 σ:
因此只需要从投影曲线上取4个特征点,根据式(8)计算出 a1、a2,再代入式(6)、式(7)即可计算出正态分布参数。
分块区域车牌字符上下界的计算步骤如下,坐标定义如图1所示。
(1)设定:step=24;车牌最大高度 plateH=2×step。
(2)在W×H 的图像块中对V(x,y)投影,并进行9×1的均值滤波,获取投影曲线。
(3)求取投影曲线局部极大值点(x0,y0)。
(4)以(x0,y0)为中心,沿x轴向下在 plateH 区间内搜索与;沿x轴向上在 plateH区间内搜索与。
(5)如果不能同时找到该4点,则该分块区域不是车牌字符块;如果 |x1-x0|>|x2-x0|或者 |x3-x0|>|x4-x0|,则该分块区域不是车牌字符块。
(6)按公式(6)~(8)计算正态分布参数。
(7)求取μ±2.58σ作为该车牌字符块的上下边界。计算字符块高度记为H*。
(8)如果H*<15,则该区域不是车牌字符块。15为最小车牌高度。
对已经确定上下边界的区域W×H*,按下面步骤再对左右边界进行粗定位。
(1)设定:w=12(车牌为100像素时单个字符平均宽度);th=100×H*。
(2)H(x,y)+V(x,y)在垂直方向投影,形成 W×1维数据。
(3)从左向右步长为1,按窗口w×1对投影数据求和;第一个大于阈值th的块为左边界。
(4)从右向左,同理求解右边界。
(5)如果不能同时找到左右边界,则该区域不是字符块。
根据车牌字符块的第一语义特征,定义约束条件,去除孤立候选字符块以及排列不规则的字符块。并对保留的车牌字符块聚类构成候选车牌区域。我国规定车牌悬挂正负倾斜不能超过15°。根据该规定可以对相邻字符块中心点的高度差进行约束。因此对倾斜角度符合规定的车牌可以取得较好的聚类效果。
这里用特征向量[z1,z2,z3]表示一个字符块,z1为块中心 x轴坐标,z2为块左边界 y轴坐标,z3为块高度。设定搜索到的第一个候选字符块为,选择以下2个约束条件确定候选车牌区域。
对字符块 A1,如果能够找到2~6个候选块满足规则,则认为这些候选块可以构成一个候选车牌区域P;否则搜索下一个候选块。
(2)计算 Ai+1与 Ai关联系数 Di:
并计算整体关联系数D(n为按规则1搜索到的候选字符块个数):
设定阈值T,如果D<T则认为该区域是车牌候选区域;否则该区域不是车牌区域。实验中,根据大量样本测试效果,按经验值,T=0.5。
(3)对满足整体关联系数的字符块求取最大外截矩形,获取候选车牌区域。
前面的步骤用较快的处理速度获取较高的检测率,因此判决条件宽松,漏检机率较小。但是检测结果会出现误检和左右边界不准确的情况。因此需要对聚类得到的候选区域进行过滤和左右边界修正。
车牌区域的另一显著特征是字符灰度和背景灰度之间对比较大,对5~7个字符而言,可以找到连续的至少10次灰度跳变。图2左图显示了车牌区域某一行的水平灰度分布曲线,图2右图显示了误检区域中某一行的水平灰度分布曲线。垂直的白线为标记的跳变位置。
按第二语义过滤伪车牌并修正左右边界的步骤如下。
(1)对候选车牌区域求取整体灰度均值G。
(2)求取区域中灰度大于G的像素点的灰度均值G2;小于G的像素点灰度均值G1;获取区域对比度C=G2-G1。
图2 图像一行的灰度分布图
(3)除上下边界外,对区域逐行扫描,相邻两点灰度差值大于C,记录一次跳变。
(4)统计跳变次数不小于10次的行数,如果总行数小于区域高度的一半,则该区域为伪车牌区域。
(5)对大于10次跳变的行,记录最左边与最右边的跳变位置,作为车牌的左右边界。
(6)最后根据系统设定的车牌大小、长宽比判定是否为车牌区域。
实验的图片共3000张,来自全国各地,光照、天气情况不一。包含768×576、1360×1024以及1600×1200等3种分辨率的图像,车牌宽度从90像素到160像素不等。本文算法使用C++在P42.4 GHz/768 MB机器上实现。图3给出了本文算法的处理过程。图4给出了不同情况下的部分实验结果。
图3 算法描述
表1是实验结果统计,从实验结果来看,本文方法对绝大多数的图像都能够正确定位,适应性较强。特别针对部分车牌有轻微污损、牌照光照不均匀的情况效果较好。
对漏检的结果进行分析,主要原因如下:车牌污损严重;车牌区域对比度较低;车牌外围区域纹理丰富,投影的方法无法将车牌与外围区域分开。
图4 实验结果
表1 实验定位结果统计
对误检结果分析发现:车身上的字符串容易被误认为车牌,其他水平排列的具有丰富边缘信息的块状纹理也可能被误判。如货车的字母车标、公交车编号等等,如图5所示。如果考虑后续的字符切分,并辅助车牌字符位置比例,可以解决定位误检的问题。
图5 误检结果
表2是算法运行时间比较。从表2可以看出,本文的定位算法处理速度较快,图像定位时间能够达到实时处理的要求。
表3是本文算法与参考文献中几种主要车牌定位算法定位准确率与运行时间的比较。可以看到,本文算法在较大提高处理速度的同时,保证了定位的准确率,并能够进行多车牌同时定位。
表2 算法执行时间比较表ms
表3 几种算法比较表
本文算法的主要时间消耗集中在预处理和搜索字符块两个步骤。对三种不同分辨率图像的实验数据也反映了这一点。其原因是由于前两个步骤是基于像素级的运算,而后续步骤是基于语义分析的运算。聚类和筛选的输入数据与图像的分辨率不再有直接关系,而是与图像中疑似车牌的区域数目相关。从提高车牌定位率的角度来看,聚类和筛选还可以选择更为复杂的约束规则来提高准确率而不会对算法的实时性产生较大影响。
本文以提高车牌定位实时性和同时搜索多个车牌为目的,研究并提出一种基于分块投影和语义约束聚类的实时多车牌定位算法,从实验结果来看,本文算法对背景复杂、车牌轻微污损、光照不均及角度倾斜等情况均能有效处理。与以往的算法相比,本文算法在保证较高的定位率的同时,获得了较快的处理速度。以本文算法为核心的车牌识别系统在成都市的智能交通管理系统中已经得到了应用。
[1]Barroso J,Dagless E L,Rafael A,et al.Number plate reading using computer vision[C]//Proceedings of the IEEE International Symposium on Industrial Electronics,1997:761-766.
[2]Soh Y S,Chen B T.Design of real time vehicle identification system[C]//Proceedings of the IEEE,International Conference on Systems,Man and Cybernetics,1994:2147-2152.
[3]吴舟舟,李树广.基于分级边缘间距的实时车牌检测[J].中国图象图形学报,2007,12(2):315-321.
[4]冯国进,顾国华,郑瑞红.基于自适应投影方法的快速车牌定位[J].红外与激光工程,2003,32(3):285-287.
[5]张变莲,唐慧君,闫旻奇.一种复杂车辆图像中的多车牌定位方法[J].光子学报,2007,36(1):184-187.
[6]王义兴,黄凤岗,韩金玉,等.基于颜色搭配与纹理特征的车牌定位方法[J].中国图象图形学报,2009,14(2):303-308.
[7]李文举,梁德群.基于边缘颜色对的车牌定位新方法[J].计算机学报,2004,27(2):204-208.
[8]刘万军,姜庆林玲,张闯.基于CNN彩色图像边缘检测的车牌定位方法[J].自动化学报,2009,35(12):1503-1512.
[9]朱晓红,张永来,刘冬林.非正交haar小波变换的车牌定位技术研究[J].计算机工程与应用,2009,45(13):175-178.
[10]张国才,王召巴.小波变换在车牌定位中的应用[J].机械管理开发,2010,25(1):199-200.
[11]侯培国,赵静,刘明.基于小波变换和行扫描的车牌定位方法[J].系统仿真学报,2006,18(2):811-813.
[12]邱刚,王养利.基于边缘特征和神经网络的汽车牌照定位算法[J].微机发展,2005,15(4):30-32.
[13]王晓芳,赵勇,方宗德.基于纹理特征和神经网络牌照定位方法[J].现代电子技术,2010(4):49-53.
[14]刘彬,严京旗,施鹏飞.高斯差分的AdaBoost车牌定位方法[J].智能系统学报,2010,5(6):471-475.
[15]盛曦,吴炜,杨晓敏,等.一种基于AdaBoost车牌定位算法[J].四川大学学报:自然科学版,2007,44(3):535-539.