基于萤火虫BP神经网络的车牌识别算法

2020-05-25 13:35赵环宇
关键词:像素点车牌字符

华 荣, 赵环宇

(淮阴工学院自动化学院, 江苏 淮安 223001)

高精度的车牌识别算法对于实现车辆的智能管理尤为重要.提高车牌识别精度主要是对车牌的定位与分割、字符特征的提取及车牌字符的识别等3个部分进行深入探讨.近年来, 关于车牌识别算法的研究成果颇丰.Tian等[1]利用颜色差分模型更好地确定车牌的位置.Wang等[2]利用空间变换网络对倾斜车牌进行调整,更好地完成字符的切割.刘雄飞等[3]将端点、二叉点和三叉点作为字符的特征进行特征提取.Li等[4]将字符串转变为序列, 以序列作为字符的特征进行提取, 而无须字符分割.Tabrizi等[5]利用K近邻算法以及多类支持向量机进行车牌字符的识别, 解决了类似车牌字符易混淆的问题.目前, 基于神经网络进行车牌字符识别因操作简单且易于实现而成为研究热点, 如BP神经网络[6]及深度学习[7-9].反向传播(back propagation, BP)神经网络[6]能够根据输入与输出实现非线性映射且具有学习能力, 相较于其他神经网络算法其结构更简单,算法更易实现.萤火虫算法无须优化函数可导,且能改善神经网络会陷入局部极小值的缺点[10].本文拟利用图像的色相饱和度(hue saturation value, HSV)模式进行车牌的定位与分割, 提取字符像素统计特征及局部二值模式(local binary patterns, LBP)特征, 提出一种基于萤火虫BP神经网络的车牌字符识别算法.

1 本文算法

1.1 车牌定位与切割

将原始图像的灰度模式转化为HSV模式, 设置HSV范围对整幅图像进行二值化处理.通过腐蚀膨胀去除图像中的小对象,得到大致的车牌区域.根据车牌框架的高度和宽度进行精确定位后二值化处理车牌,再根据车牌的像素特征进行字符切割.汽车牌照序号编码一般由7位字符组成,对切割出的7位字符进行归一化(本文归一化为40×20像素),以便后续的特征提取.

1.2 车牌字符特征提取

1) 汉字LBP特征.图1给出了原始LBP特征示意图, 其中A0~A7及A分别表示图像的9个像素点.对像素点A进行LBP转换[11]:

(1)

(2)

式中f(Ai,A)表示周围像素点Ai与A对比后的值, 若Ai≥A则Ai取1, 反之取0.其余像素点都可根据周围像素点进行LBP转换, 若周围不存在像素点则LBP值直接取0.

由于像素点A有8个邻域, LBP取值为0或1,故LBP特征为256维,而维数过多会导致BP神经网络训练速度较缓.针对该问题, 本文对LBP特征进行降维处理.首先将得到的256维LBP特征按位进行循环移动(即将像素点周围的0、1值进行按位旋转), 选取循环移动所得值中的最小值作为最终的LBP值, 将256维LBP特征降为36维LBP特征; 然后将8位二进制中存在01或10跳变且次数大于2的归为一类,次数小于或等于2的每一类都各自为一类, 将36维LBP特征降为28维LBP特征;最后将字符归一化为40×20像素,并将汉字字符分为32个5×5区域,对每个小区域进行LBP特征计算.将28维特征按照LBP值大小分为7个种类,则由每个区域统计的种类数目可得7维特征,于是整个汉字字符可得224维特征,即汉字字符可提取224个LBP特征.

2) 字母/数字像素统计特征.将字母/数字字符归一化为40×20像素后二值化字符.字符的粗网格特征和投影特征分别为32, 60个; 将字符分为8个相同区域, 统计各区域黑色像素的个数以及整个字符黑色像素个数,共9个特征; 统计字符水平及竖直中线和对角线黑色像素个数,共4个特征, 最终可得105个像素统计特征.

1.3 萤火虫BP神经网络算法

BP神经网络易陷入局部极小值且识别精度不高, 故利用萤火虫算法对BP神经网络进行改善, 算法过程如下:

1) 设置萤火虫种群参数.设置萤火虫种群大小N、种群最大迭代次数以及各类参数的值.

2) 初始化萤火虫种群.一个萤火虫个体包含BP神经网络的一种权值与阈值,个体维度

k=ab+b+bc+c,

(3)

式中a为BP神经网络的输入节点数,b为隐含层节点数,c为输出节点数.因为权值与阈值的范围为[-1,1], 所以可对种群中的每个个体进行随机取值形成萤火虫虫群.由BP神经网络的误差计算萤火虫个体的绝对发光强度I0并进行排序, 得到萤火虫个体间相对吸引度[12]

(4)

3) 判断萤火虫个体是否移动.对比萤火虫个体间的绝对发光强度,判断是否进行移动,若须移动,萤火虫个体即根据相对吸引度进行位置更新[10]:

xin=xi+βij(xj-xi)+α(d-0.5),

(5)

式中xin表示位置更新后的萤火虫个体,α为随机步长, 是[0,1]间的常数;d为[0,1]间的随机数.最亮的萤火虫个体进行随机移动:

xib=xi+α(d-0.5),

(6)

式中xib表示位置更新后最亮的萤火虫个体.移动后计算新的绝对发光强度与相对吸引度并进行排序, 将绝对发光强度最小的个体转变为移动前绝对发光强度最大的个体, 从而使整个群体向最优的方向发展.

4) 判断是否停止迭代.判断是否达到种群最大迭代次数, 若达到则终止迭代, 进入下一步骤, 否则返回步骤3).

5) 将最优萤火虫个体代入BP神经网络.对迭代的最终结果进行排序,取绝对亮度最大的萤火虫个体,将萤火虫个体中的权值与阈值代入BP神经网络中进行训练.

2 仿真分析

在操作系统为Windows 10, 8 GB内存, Intel(R) Core(TM) i5 8300H CPU@2.30 GHz的计算机上运用Matlab R2014a软件进行仿真.

本文共收集62个车牌样本作为仿真对象, 现以车牌“苏A02389”为例,对其进行如图2~3所示的车牌定位切割以及车牌区域的倾斜校正与切割.由于车牌中第二个字符与第三个字符之间存在一个小圆点,而该圆点不应算作字符, 故在切割过程中通过判定字符的垂直投影来确定其是否为圆点: 若小于20像素则为圆点, 于是去除该圆点, 不记为字符, 此时继续切割下一字符;否则不作圆点,而记为字符.

由于每个车牌样本都含1个汉字字符与6个字母/数字字符, 故须提取62个汉字字符的224种LBP特征与372个字母/数字字符的105种像素统计特征作为萤火虫BP神经网络的输入数据.BP神经网络的输出数据为识别字符的二进制编码,需要识别的汉字字符共有31个,取5位二进制编码即5个输出;需要识别的字母/数字字符共有34个,取 6位二进制编码即6个输出.将输入输出数据整合为一个MAT文件,为BP神经网络所用.部分汉字字符及字母/数字字符特征提取如表1~2所示.

将实验样本分为训练样本与测试样本, 以测试样本识别的精确度作为神经网络优劣的判定准则,采用萤火虫BP神经网络与原始BP神经网络[3]进行对比识别.萤火虫BP神经网络的输入为105个节点, 输出为6个节点,隐含层的节点数设为25, 采用萤火虫算法迭代所得较优的权值和阈值作为BP神经网络的初始权值和阈值.BP神经网络的激活函数选择S型对数函数与线性函数,为了更好地训练,本文将数据归一化为[0,1].

表1 汉字字符特征提取

表2 字母/数字字符特征提取

选取300个字符样本作为训练样本,72个字符样本作为测试样本,采用BP神经网络与萤火虫BP神经网络进行识别的对比结果如图4所示.由图4可知,对于同一组训练样本与测试样本, 萤火虫BP神经网络中的预测标签与实际标签重合的个数比BP神经网络中的多,萤火虫BP神经网络的识别精度更高.

选取不同的训练样本与测试样本进行多次仿真, 结果如表3所示.由表3可知, 萤火虫BP神经网络的识别精度比原始BP神经网络的识别精度更高,验证了本文算法优化的可行性.

表3 原始BP神经网络与萤火虫BP神经网络在多次仿真下的识别精度

猜你喜欢
像素点车牌字符
图像二值化处理硬件加速引擎的设计
车牌颜色里的秘密
一种优化的手写字符自动分割算法
基于局部相似性的特征匹配筛选算法
论高级用字阶段汉字系统选择字符的几个原则
字符代表几
图片轻松变身ASCⅡ艺术画
一种X射线图像白点噪声去除算法
基于canvas的前端数据加密
第一张车牌