一种基于概率极值搜索的车牌字符识别方法
技术领域
本发明属于计算机视觉技术领域,涉及字符识别技术。
背景技术
近年来,随着我国机动车保有量的大幅增长,智能交通系统受到了社会的广泛关注。智能交通系统综合运用电子信息,通信以及计算机技术,实现机动车的违章自动记录,高速公路与城市交通的车流的智能疏导与调度等功能。相比传统交通管理方式,智能交通系统提高了运输效率,增进了行车安全,节约了人力成本,具有极大的经济价值。详见文献:Badawy W.Automatic License Plate Recognition(ALPR):A State of the Art Review[J].Circuits and Systems for Video Technology,IEEE Transactions on,IEEE.2013,2(23):311-325.
机动车车牌识别是智能交通系统中的重要组成部分,主要包含以下三个步骤:图像中车牌区域的定位;车牌倾斜校正;车牌字符识别。其中,车牌字符识别算法是机动车车牌识别子系统的核心环节,常见的车牌字符识别算法有以下三种:
1.基于模板匹配的车牌字符识别算法;保存一组包含汉字,数字和英文字母的标准车牌字符的模板图片,并计算每个输入字符图片与模板图片的相关性,最后将相关性最大的那一类模板图片的字符类别作为最后的识别结果。该方法实现简单,在图像清晰度高的条件下表现较好,但其性能受天气和光照影响较大。详见文献:魏武,张起森,王明俊.一种基于模板匹配的车牌识别方法[J].中国公路学报,2001,14(1):104-106.
2.基于人工神经网络的车牌字符识别算法;将包含各类车牌字符的输入图片转换为特征向量,采用反向传播算法,产生出一组包含大量互联的非线性激励函数的网络结构,即人工神经网络。通过这种非线性函数的互联,人工神经网络模拟了生物神经网络的部分功能,能对输入的车牌字符图片进行精确的分类。该方法的识别精度较高且具有自我学习能力,但模型的参数较多,训练过程繁琐。详见文献:F,F.A New License PlateRecognition System Based on Probabilistic Neural Networks[J].ProcediaTechnology,2012,1:124-128.
3.基于支撑向量机的车牌字符识别算法。支撑向量机模型通过最大化高维空间中数据点与类别分界面的距离,实现对车牌字符的分类。该算法的运算效率高,识别精度较好,是当前字符识别的主流算法,但对恶劣天气和光照变化适应性差。详见文献:Parasuraman K,Subin P S.SVM Based License Plate Recognition System[C]//2010IEEE International Conference on Computational Intelligence and ComputingResearch.2010:28-29.
已有字符识别算法主要存在以下三个方面的问题:
1.对各种天气及光照环境的适应性不高;例如模板匹配算法,由于其采用了固定的标准模板图片,一旦图片质量下降,算法中相关性匹配的结果将大受影响。支持向量机算法中常采用线性模型,对于亮度和光照方向变化过大的字符数据,线性模型的性能将明显下降。
2.对字符分割算法依赖性强;当前的车牌识别算法往往通过字符分割算法将每个字符的图片提取出来,再分别对这些字符图片进行识别。一旦字符分割出现错误,识别算法的准确性将受到严重影响。
3.对车牌污渍及遮挡的处理能力弱。污渍及遮挡会让车牌字符变得难以识别,甚至令一类字符变得更像另一类字符。例如字符“0”的中部的污渍往往令基于模板匹配的算法将其识别为“8”或“B”。
发明内容
本发明所要解决的技术问题是,提供一种不依赖字符分割结果的车牌字符识别方法。
本发明为解决上述技术问题所采样的技术方案是,一种基于概率极值搜索的车牌字符识别方法,包括以下步骤:
步骤1)构造样本字典:将所有车牌字符样本图片进行尺寸统一缩放,并将车牌字符样本图片像素向量化后再进行归一化处理,最后按照字符类别顺序将归一化后的向量保存在样本字典D中,
vij(i=1,2...M,j=1,2,...Ni),vij表示第i类字符的第j个样本图片向量化并归一化后的结果,M为字符类别总数,N表示所有车牌字符样本图片总数,,样本字典D的行数为W×H,列数为N,W、H分别为尺寸统一缩放后图片的宽度、高度;
步骤2)对输入的车牌图片进行横向扫描,计算扫描窗口中子图块的类别概率值:
2-1)将输入车牌图片的高度统一为H,输入车牌图片的宽高比不变;
2-2)设置一个高度为H宽度为W2的扫描窗口,扫描窗口初值位置置于输入车牌图片的最左边,W2为先验的字符宽度;
2-3)将当前扫描窗口中的子图块进行向量化得到向量ux,再使用正交匹配追踪算法对向量ux在样本字典D上的稀疏表达进行近似得到稀疏编码αx;x为扫描窗口左上角坐标,初始值为0;
2-4)将稀疏编码αx中的系数值按照各自类别累加,得到累加系数hx:hx=[hx1 hx2 ... hxM];αxik是稀疏编码αx中对应第i类中第k个字符样本的系数值;
2-5)将累加系数hx转换为类别概率Px:Px=[Px1 Px2 ... PxM],
2-6)取类别概率Px中的最大元素值作为位置x处的扫描窗口中子图块的类别概率值,并提取最大元素值px所对应的字符类别编号作为当前扫描窗口的字符类别编号cx,1≤cx≤M;
2-7)判断是否完成整个输入车牌图片的扫描,如是,进入步骤3),否则,令x=x+1,向右移动1像素扫描窗口,返回步骤2-3);
步骤3)找出整个输入车牌图片中所有满足极大值判定条件的类别概率值px,并记录该类别概率值px对应的扫描窗口位置为极大值点的位置,所述极大值判定条件为:位置x处的扫描窗口中子图块的类别概率值大于等于其左移1像素后以及右移1像素后的扫描窗口中子图块的类别概率值;
步骤4)搜索出类别概率值总和最大的K个极大值点的位置,K个字符相互之间的距离至少为W2;K为已知的输入车牌图片中字符个数;
步骤5)依据K个极大值点各自对应的字符类别cx输出车牌字符识别结果。
本发明首先利用字符样本图片构造一个样本字典;接着对车牌图片进行横向扫描,在每个扫描窗口位置计算子图块在样本字典上的稀疏编码;再将稀疏编码在各个字符类别的系数之和转换为概率;最后将概率极值与字符空间信息相结合,找到最有可能的车牌字符组合。
其中,采用稀疏表达提取出样本字典中最能代表输入图片的基本向量,利用稀疏表达对噪声的鲁棒性,提高算法在雨雪天气或车牌污损的情况下对车牌字符的识别能力;本发明将稀疏编码转换为概率值所采样的算法,在各种光照条件下都有较高的准确率;
相比同领域其它方法,本发明避免了字符分割算法的对识别结果的影响,将车牌字符分割与识别有机地结合在一起,既让车牌字符的空间结构对识别结果产生约束,又用车牌字符识别的结果提高了分割的准确性,能在复杂环境下对车牌字符进行准确识别。
本发明的有益效果是,能适应各种复杂的光照以及气候条件,识别精度高,速度较快。
附图说明
图1为实施例流程图。
具体实施方式
为方便描述本发明内容,首先对一些现有术语进行说明。
定义1:机动车车牌;指的是我国公安部颁布的《中华人民共和国机动车号牌》(GA36-2007)标准中规定的车牌,车牌可分为单行车牌和双行车牌,单行车牌中7个字符位于同一行,双行车牌中1个汉字和1个英文字母位于第一行,剩余5个汉字位于第二行。
定义2:车牌字符样本图片;指的是一组已知字符类别的车牌字符图片。其中,字符类别包括:数字“0”到“9”,除“O”和“I”以外的大写英文字母,以及各省的汉字简写,每个类别都必须包含一定量的字符图片。
定义3:向量化;指的是将以二维矩阵形式存储的图像数据拷贝至一维向量的过程,该过程可以逐行或逐列地进行。假设图像的宽度为W像素,高度为H像素,向量化操作将生成一个长度为W×H的列向量。
定义4:稀疏表达;指的是一种通过字典中的若干基本向量的线性组合,还原出输入向量y的全部或大部分信息的技术。字典是指某一个事先给定的向量集合,记作矩阵形式D=[v1 v2 ... vN],其中vi是基本向量。基本向量的线性组合可用矩阵-向量乘法的形式表示为y=Dα,线性组合系数α称为稀疏编码,α的每个元素值对应着线性组合中每个基本向量的系数。
定义5:归一化;指的是将一个向量v除以模值归一化后向量的模值为1。
定义6:正交匹配追踪;指的是一种稀疏表达的快速近似算法。给定字典D,输入向量y,和循环次数T,初始化残差r=y,输出基本向量集Φ为空;在每轮循环中,将字典D中与r内积最大的原子加入Φ,利用最小二乘法,求出利用Φ中的基本向量的线性组合来近似r时的残差r′,并更新r=r′。
定义7:softmax函数;指的是一种模拟生物神经元信号传输的函数,将输入向量的每一个元素值转换到0到1的范围,并保证转换后的所有元素值之和为1,使其满足概率分布的性质。
定义8:回溯法;指的是一种穷举搜索方法,采用试错的思想,将问题分成多步解决,若在某个步骤中发现无法构造出正确答案,则取消上一步甚至多步的计算,并尝试其它可能解法,最终找到问题的所有可能的解。
如图1,实施例包括以下步骤:
步骤1:利用N幅车牌字符样本图片构造样本字典D;将每类车牌字符的Ni(i=1,2,...M)幅样本图片统一缩放到宽度W高度H像素并向量化,接着将这些向量归一化,之后按类别顺序逐列放置到样本字典D中:
其中车牌字符样本总数vij(i=1,2...M,j=1,2,...Ni)为第i类字符的第j个样本图片向量化并归一化后的结果,样本字典的行数为W×H,列数为N。
步骤2:对输入的双行车牌图片进行上下层切分;若输入车牌图片是双行的,将图片向垂直方向投影,从而可切分为上下两层,上层包含2个字符,下层包含5个字符,将下层车牌图片按照0.85的比例水平压缩,上层车牌图片按照0.375的比例水平压缩,使图片中的字符比例与单行车牌中的一致。
步骤3:对输入的车牌图片进行横向扫描,具体包括以下步骤:
步骤3-1:将车牌图片进行缩放,使缩放后的图片高度为H,且宽高比与原图一致。
步骤3-2:使用一个高度为H宽度为W2的扫描窗口在车牌上从左向右逐像素移动,设扫描窗口左上角的初始横坐标x为0。
步骤3-3:将当前扫描窗口包含子图块向量化,得到向量ux,设定迭代次数T。使用正交匹配追踪算法,对ux在D上的稀疏表达进行近似,得到稀疏编码αx。稀疏表达能够从D中提取出最能表达ux的T个基本向量,即使在ux受到较大噪声干扰的情况下也能很好地捕捉到ux携带的有效信息,这使算法在车牌污损及雨雪天气的情况下也能保持较好的准确性。
步骤3-4:将稀疏编码αx中的系数值按照各自类别累加,得到累加系数hx:
hx=[hx1 hx2 ... hxM]
其中αxik是稀疏编码αx中对应第i类中第k个字符样本的系数值。若x处的扫描窗口正好包含一个车牌字符,则稀疏编码αx在对应字符类别上的系数值将大于在其它字符类别上的系数值,假设该字符属于第t类,hxt将大于其它的hxi(i=1,2,…,t-1,t+1,…,M)。
步骤3-5:用softmax函数将累加系数hx转换为各类的概率Px:
Px=[Px1 Px2 ... PxM]
softmax函数将hx中的元素值映射到[0,1]的范围,并能在保持元素值相对大小关系的前提下,抑制过大的元素值。由于光照和对算法的影响主要体现在hx中元素的值上,所以softmax函数使算法能很好地适应强光,弱光,以及非均匀光照环境。
步骤3-6:取Px中的最大值作为位置x处的概率值,并将px在Px中的下标cx(1≤cx≤M)作为它的类别编号,接着令x=x+1,重复步骤3-3至步骤3-6直至整个车牌扫描完毕,即判断是否满足x≥输入图片宽度-W2,如是则扫描完毕,否则继续扫描。
步骤4:找出px中所有满足极大值判定条件pr-1≤pr且pr+1≤pr的位置r。在扫描窗口从左到右滑过一个字符的过程中,pr的值将先增大,后减小,并在字符位于扫描窗口中央时取极大值,因此满足极大值判定条件的所有位置中必然包含正确的字符位置,而且在正确字符位置上概率值pr较大。
步骤5:使用回溯法搜索概率值总和最大的K个极大值点的位置;K为车牌图片包含的字符个数,对于单行车牌图片K=7;对于双行车牌,上层图片K=2,下层图片K=5。在回溯法搜索的过程中,要保证搜索到的K个字符相互之间的距离至少为W2。
步骤6:用K个极大值点各自对应的字符类别作为字符识别的输出结果。若是双行车牌,则需将上层和下层车牌图片的识别结果组合在一起输出。
为了验证本发明的效果,采用C++语言,硬件平台:Intel Core i5 2450M+4G DDRRAM,软件平台:Visual Studio 2010,准备一组车牌字符样本图片并将其转换为灰度图像,对于黄色和白色车牌,将灰度图像进行反色,使字符部分的灰度大于背景的灰度。每类字符(数字,除O和I外的英文字母,以及各省汉字简称)各需要50幅字符样本,字符样本的宽度W为20,高度H为40,利用这些字符样本,构造出一个800行,3250列的字典D。在利用D进行车牌字符识别,正交匹配追踪算法的迭代次数T选为60。采用C++编写程序,在车牌图片数据库上进行测试,该数据库包含白天以及夜晚(闪光灯照射)的各种天气环境下的车牌图片,算法识别的正确率达到97.1%,每幅车牌的处理时间为15ms。