结合HOG特征的车牌识别方法

2021-08-06 09:22王汝心马维华
计算机时代 2021年7期
关键词:车牌识别支持向量机形态学

王汝心 马维华

摘  要: 针对路边停车的智能化管理程度较低的问题,以现行标准为依据,对车牌识别面临的问题进行分析。根据所捕获图像的特点,通过高斯滤波、顶帽运算、Otsu算法进行图像预处理,消除噪点,完成背景提取和图像二值化。运用闭运算结合车牌的外形特征完成车牌识别。结合投影法、字符间隔及尺寸的測定和轮廓分析法完成字符分割。最后,提取字符图片的HOG特征,设计了一个基于SVM的字符分类器,实现了一个准确率高、适应性强的车牌识别系统。

关键词: 车牌识别; Otsu; 形态学; 支持向量机

中图分类号:TP36          文献标识码:A 文章编号:1006-8228(2021)07-01-05

License plate recognition method based on HOG features

Wang Ruxin, Ma Weihua

(Nanjing University of Aeronautics and Astronautics, Nanjing, Jiangsu 210016, China)

Abstract: In response to the low level of intelligent management of on-street parking, the problems faced by license plate recognition are analyzed based on the current standards. According to the characteristics of the captured image, image pre-processing is performed by Gaussian filtering, Top Hat operation and Otsu algorithm to eliminate noise, and background extraction and image binarization are completed. The license plate recognition is completed by using the closed operation combined with the shape features of the license plate. The character segmentation is completed by combining the projection method, the determination of character interval and size, and the contour analysis method. Finally, HOG features of character images are extracted and a character classifier based on SVM is designed to realize a license plate recognition system with high accuracy and high adaptability.

Key words: license plate recognition; Otsu; morphology; SVM

0 引言

车牌识别(License Plate Recognition,LPR)在交通执法、停车管理、自动收费站等多种场合起着重要的作用,有助于智能交通系统的发展。车牌识别主要包括三个部分:在捕获的图像中确定车牌位置,在车牌区域分割字符和识别字符。为了减少环境因素对车牌识别的干扰,应先将图像进行预处理,再进行车牌定位。

常用车牌定位算法主要有三类:通过汽车号牌的底色定位车牌位置;基于滤波器过滤图像中边缘密集的区域;提取车牌特征,结合机器学习算法。常用的字符识别方法有模板匹配、投影分析、结构特征法等[1]。当图片背景颜色较为复杂时,基于彩色信息进行车牌定位需要较大的计算量,而且难以对各种图像做统一处理;神经网络通常算法复杂;边缘检测方法需要设计适合字符的边缘检测算子[2],但得到的结果难以突出车牌区域。

本文基于Cortex-A8芯片,通过图片预处理、车牌定位,字符分割和车牌识别,有效的将车牌信息与背景颜色进行区分,提高复杂背景下车牌识别的准确率。

1 系统设计

道路环境复杂,摄像机捕获的图像中除了所需的车牌信息还包括汽车本身和背景图像,在识别车牌的过程中需要考虑许多种情况。

系统设计框图如图1所示。当系统捕获到图像后,需要通过滤波器处理图像从而抑制图像中的噪声,并在此基础上结合车辆牌照的特点,将车牌与背景信息分离,确定车牌在图像中的位置,结合车牌中字符的分布规律进行划分,通过SVM算法进行字符识别。若找不到合适的区域则认为该区域内没有车牌信息,则系统继续处理新的图像。

2 车牌定位

2.1 高斯滤波

高斯滤波器通过高斯函数,对每个像素点本身及其邻域进行加权平均,以实现对整幅图像的卷积处理,模糊图像并去除细节和噪点,完成对图像的线性低通滤波。

在进行分类处理图像时,应使用二维高斯函数,由下式公式⑴给出:

[Gx,y=12πσ2e-x2+y22σ2]  ⑴

由公式⑴可以看出,高斯分布在任何地方都不为零。考虑到在距平均值约3个标准偏差的情况下,分布已非常接近于0,99%的分布在3个标准偏差之内,这意味着可以将内核大小限制为仅包含均值3个标准差以内的值。

高斯核系数取决于σ的值,较大的σ会产生较宽的峰值,从而产生较大的模糊。为了保持高斯过滤器的性质,内核大小必须随着σ的增加而增加,系数随着距内核中心距离的增加而减小,边缘系数必须接近0。选择高斯核大小为3×3,σ=0.8,得到高斯核如图2所示。

2.2 背景提取

考虑到捕获图像通常具有大幅的背景,而汽车号牌的形状比较有规律,为了突出更明亮的区域,分离背景中的较亮斑块,选用顶帽(Top Hat)运算,完成背景提取,即将原图像与开运算结果求差值。

进行开运算时,为了消除微小且无意义的目标,应先进行腐蚀运算,缩小图像的边界,从而消除孤立点和小区域物体;再进行膨胀运算,填补目标区域中空白区域,从而去除目标区域中的小颗粒噪点,平滑物体的轮廓,放大局部低亮度的区域。

腐蚀运算和膨胀运算用公式⑵、公式⑶表示。开运算可以用公式⑷表示。

对于图像中的坐标点[i,j],该点的灰度值表示为[grayi,j],进行开运算后得到的灰度值表示为[openi,j],顶帽运算后该点的灰度值表示为[tophati,j],公式⑸表达了三者的关系,其中,[1≤i≤rows,1≤j≤cols],[rows]表示图片像素点的行数,[cols]表示图片像素点的列数。

[AB=x,y|Bxy?A]  ⑵

[AB=x,y|Bxy∩A≠?]  ⑶

[A?B=ABB]  ⑷

[tophati,j=fi,j-openi,j]  ⑸

以图片3(a)为例,进行开运算处理,得到结果如图3(b)所示;对开运算结果进行顶帽运算,得到结果如图3(c)所示。

2.3 图像二值化

Otsu算法是于1979年由日本学者大津基于最小二乘法提出的[5],基于最小二乘法,通过求取最大类间方差,达到确定二值化阈值的目的,主要用于分离目标和背景图案。

假设图片由前景色和背景色组成,图片的灰度直方图峰值不多于两个,通过统计学方法,计算最大类间方差并选取阈值。对于一张像素点总数为[rows×cols]的图片,假设阈值[T],分割图像获得前景像素点个数为[N0],背景像素点个数为[N1],可以用公式⑹表示前景像素点占整幅图片的比例[ω0],用公式⑺背景像素点占整幅图片的比例[ω1]:

[ω0=N0rows×cols=N0N0+N1=1-ω1]  ⑹

[ω1=N1rows×cols=N1N0+N1=1-ω0]  ⑺

前景的平均像素值为[μ0],背景的平均像素值为[μ1],则整幅图片的平均像素值[μ]可以用公式⑻表示为:

[μ=ω0×μ0+ω1×μ1]  ⑻

可以得到前景平均像素值[μ0]和前景平均像素值[μ1]的方差[g]可以用公式⑼表示为:

[g=ω0×μ0-μ2+ω1×μ1-μ2=ω0ω1μ0-μ12] ⑼

由上述公式可以看出,对于任意一张图像,前景像素点占整幅图片的比例[ω0]和背景像素点占整幅图片的比例[ω1]是固定值,方差[g]与[μ0-μ1]正相关,换言之,方差[g]越大,[μ0-μ1]的值越大,则前景和背景的平均像素值差别越大,表示分割效果越好。

对图3(c)中各个像素点的灰度值列表进行统计,得到灰度直方图。遍历灰度值列表,选择使类间方差[g]取最大值的阈值[T];根据阈值[T],对图片进行二值化处理,得到二值化图片如图4所示。

2.4 车牌定位

经过二值化处理后的图片中存在许多噪点和不规则图案,在进行车牌定位时,需要先将图像中的噪点消除,再将被错误切割的白色色块边缘连接为一个整体。其中,消除噪点需要使用开运算,而数学形态学中的闭运算可以将细微连接的图案封闭在一起。

对图片进行闭运算,首先应对图片进行膨胀运算,填补目标区域,再通过腐蚀运算收缩图像边界,消除目标区域外的噪声。闭运算可以用公式⑽表示。

[A?B=A⊕B?B]  ⑽

对图4做闭运算,得到结果图像如图5所示。可以看出图4被分割为若干白色区域,图5与图4相比,消除了一些无关的小颗粒噪点,并将图4中存在细微连接的白色色块封闭在一起。

根据《中华人民共和国机动车号牌》的规定,汽车号牌的外廓尺寸分为440mm×140mm、440mm×220mm、480mm×140mm三种类型,从而可以得出汽车号牌的长宽比例范围为[2.0,3.5]。

通过检测图片5中的所有白色色块轮廓,保留拐点信息,忽视拐点与拐点之间的直线段上的信息点,将形状不规则的白色色块划分为若干规则色块,计算规则色块的长宽比例,根据汽车号牌的长宽比例范围对规则色块进行筛选分析,从而选择出汽车号牌区域。

根据筛选结果的拐点信息,可以得到在原图像3(a)中汽车号牌的位置,得到如圖6所示的汽车号牌的二值图像,并直接用于后续步骤中的字符分割和字符识别。

3 字符分割及识别

3.1 字符分割

字符分割需要将非字符像素点去除,从本地车牌区域提取字符,并排除字符断裂和粘连等问题。本文通过投影法对汽车号牌进行粗分割,结合了字符间隔及尺寸的测定和轮廓分析法对汽车号牌字符进行完全分割。

投影法分割车牌区域,首先通过水平投影法,结合汽车号牌的形状特征,将汽车号牌边框进行去除,以去除号牌边框的影响,避免对字符识别造成影响。

在实际应用中,将水平方向上每行的各个像素点的灰度值相加,得到水平方向的灰度值队列[0,g0,1,g1,…,m,gm],从而得到水平方向的灰度值折线图7。

由图7可以看出,二维图像的最上方存在大量的白色区间,在白色区间下方紧挨着是一段白色像素较少的区间,之后是存在大量的白色像素点、且白色像素点频繁出现的区域,结合汽车号牌的形状特征,选择最小值[gm_min]为阈值,取跨度最大的波峰以确定车牌的纵向区间,从而将汽车号牌与车牌边框进行分割,得到去除了多余像素的汽车号牌图片,如图8所示。

经过水平投影后得到的图片8中只保留了汽车号牌的编号字符,可以通过垂直投影的方式对图片8进行字符分割。在实际应用中,将垂直方向上的每列的各个像素点的灰度值相加,得到垂直方向的灰度值队列[0,g0,1,g1,…,n,gn],从而得到垂直方向的灰度值折线图。

根据波峰,选择最小值[gn_min]为阈值进行划分字符。划分得到的字符中存在无意义图案和间隔符,根据汽车号牌的形状特征进行二次筛选,以去除汽车号牌两侧可能存在的白色区域和不需要进行识别的间隔符。

根据国家标准GA36-2018《中华人民共和国机动车号牌》的规定,对于单行的汽车号牌,第一个字符的宽度为45mm,高度为90mm,与第二个字符之间的间隔存在12mm、10mm、9mm三种情况。

根据以上条件,汽车号牌中第一个字符的高度height、宽度width、前两个字符之间的间隔distance之间的关系如公式⑾所表示。公式⑾可以作为去除汽车号牌两侧可能存在的无意义白色区域的依据。

[heightwidth=23

在汽车号牌中,字符宽度width与间隔符宽度spacer_width之间应满足公式⑿。公式⑿可以作为去除汽车号牌中间可能存在的间隔符的依据。

[2.8125≤widthspacer_width≤4.5] ⑿

排除掉车牌外框白边造成的干扰和间隔符的结果如图8所示。

3.2 字符识别

为了减少计算复杂度、时间消耗和空间消耗,对分割好的字符图片进行分析,从大量数据中提取中关键信息转换为若干特征。为了减少尺寸、光线、亮度变化对特征提取的影响,突出局部区域内梯度方向直方图分布,选择HOG特征用于描述目标的局部形状特征,对图片进行单一窗口检测,获得梯度强度在方向上的分布向量。

提取HOG特征的第一步,需要将图像分成小的连通区域,即细胞单元cell,细胞单元的大小参数,对特征向量编码会产生影响。

第二步,采集细胞单元中各像素点,选择垂直梯度算子为[-1,0,1T],水平梯度算子为[-1,0,1],在提取像素点d 水平和垂直梯度的同时,不改变相邻像素点对边缘的影响。像素点[x,y]处的梯度计算公式如⒀和⒁所示,其中[Gxx,y]表示[x,y]的水平方向梯度,[Gyx,y]表示[x,y]处的垂直方向梯度,[Hx,y]表示[x,y]处的像素值。

第三步,通过公式⒂和⒃计算x和y方向梯度的合梯度,包括幅值[Gx,y]和方向[θ],由于梯度方向会取绝对值,因此,得到的角度[θ]范围是 [0,180°]。实验证明,将角度分成9份时检测效果最佳。

[Gxx,y=Hx+1,y-Hx-1,y] ⒀

[Gyx,y=Hx,y+1-Hx,y-1] ⒁

[Gx,y=G2xx,y+G2yx,y] ⒂

[θ=arctanGyx,yGxx,y] ⒃

选择了[2×2]和[4×4]两种大小进行实验。考虑到分割后的字符图片本身偏小,故选择细胞单元大小为[2×2]以保证足够多的空间描述编码。

第四步,Block归一化。[2×2]的像素点区域作为一个cell,以[2×2]个细胞单元为一个block。每个细胞单元有9个值,所以一个block则有36个值。通过滑动窗口的方式来得到block,为了保证特征描述符不会受到光照变化的影响,将4个HOG特征拼接为长度36的向量,计算该向量的L2范数,进而完成block的梯度直方图归一化。

设定滑动步长为1个像素,以block为滑动窗口对样本图案扫描,归一化计算得到长度为36的向量,并重复这个过程,即完成了对每个block的计算。

第五步,计算图像的HOG特征向量。假设图像大小为[12×24]像素,当细胞单元尺寸为[2×2]时,整个图像共划分为[6×12]个细胞单元,即横向有6个细胞单元,纵向有12个细胞单元。每个block有[2×2]个细胞单元,滑动步长设定为1个像素,则block的个数为[6-1×12-1=55]个,即横向有7个block,纵向有11个block。将55个block合并就可以构成整个图像的特征描述符,其长度为[55×36=1980]。

通过一对多法构建SVM多分类器时,对于某个类别的样本,训练时将样本集分为该类样本和非该类样本两种类型,将一个SVM多分类器转化为多个SVM二分类器。

样本空间可能在当前维度中线性不可分。高斯核函数的局部性强,可以忽略样本集大小对SVM分类器的影响,需要的参数较少,因此选用高斯核函数进行非线性变换,将输入向量映射为某个维度特征空间,将样本特征映射到高维空间,在高维特征空间中学习线性支持向量机,使样本集在高维空间中变得线性可分。

收集8086例汉字字符样本和13163例英文字符与阿拉伯数字样本,平分样本集,分别作为训练集和测试集,用于SVM分类器的训练和测试。

3.3 实验结果

将相同的、含400张车牌图片的测试集分别通过本系统和普通SVM分类器来识别,统计识别正确率。

由表1可以看出,提取图像的HOG特征,比将图片直接作为SVM分类器输入特征的识别正确率更高。对普通SVM分类器识别错误的车牌图片进行统计,发现当汉字笔画较多(如“蒙”)、形状相似(如“鲁”和“粤”)时,普通SVM分类器难以识别。所以,结合了HOG特征提取的SVM多分类器显著提高了车牌识别系统的性能。

4 结束语

本文基于ARMcortex-A8芯片,通过高斯滤波完成图片预处理,结合顶帽运算和Otsu算法进行车牌定位,有效的分割了车牌信息与背景颜色,通过数学形态学中的开运算和闭运算以及车辆牌照的形状特征进行车牌定位,结合HOG特征和SVM算法进行字符识别,实现了复杂背景下车牌识别的准确率。

参考文献(References):

[1] Song Jiatao.Analysis and extraction of structure features alphabetic and digital characters on vehicle license plate[J].Journal of Image and Graphics,2002.9:945-949

[2] 冯国进,顾国华.车牌自动定位与模糊识别算法[J].光電子(激光), 2003.14(7):749-752

[3] 代文征,杨勇.基于改进高斯—拉普拉斯算子的噪声图像边缘检测方法[J].计算机应用研究,2019.36(8):2544-2547,2555

[4] 许蓉,王直,宗涛.基于改进高斯滤波的医学图像边缘增强[J].信息技术,2020.44(4):75-78

[5] 申铉京,秦俊,吕颖达,王瑞卿,刘翔.完全线性多阈值Otsu快速算法[J].吉林大学学报(工学版),2019.1:268-274

[6] Wenxin Zhu a  b, Yunyan Song c, Yingyuan Xiao a  d.

Support vector machine classifier with huberized pinball loss[J].Engineering Applications of Artificial Intelligence,2020.91:103635

猜你喜欢
车牌识别支持向量机形态学
动态场景中的视觉目标识别方法分析
论提高装备故障预测准确度的方法途径
基于熵技术的公共事业费最优组合预测
基于支持向量机的车牌字符识别方法
车牌识别系统设计与实现
基于支持向量机的金融数据分析研究
基于车牌识别的机器视觉课程研究
基于BP神经网络的车牌识别技术算法分析
医学微观形态学在教学改革中的应用分析
数学形态学滤波器在转子失衡识别中的应用