APP下载

基于BP神经网络的车牌识别系统的设计

2016-02-23郑文光王静波高爽翟葆朔

关键词:车牌字符权值

郑文光,王静波,高爽,翟葆朔

(1. 华北理工大学 以升创新教育基地,河北 唐山 063009;2. 华北理工大学 电气工程学院,河北 唐山 063009)

基于BP神经网络的车牌识别系统的设计

郑文光1,王静波2,高爽1,翟葆朔2

(1. 华北理工大学 以升创新教育基地,河北 唐山 063009;2. 华北理工大学 电气工程学院,河北 唐山 063009)

图像处理;模式识别;BP神经网络;车牌识别

设计了一种基于BP神经网络的车牌识别的系统,该系统以MATLAB编程语言为基础,利用图像处理技术提取车牌区域,分割车牌字符,通过建立的BP神经网络模型识别出车牌号码。同时设计了GUI操作界面,方便进行人机交互及车辆信息的调取,具有良好的效果。

车牌识别技术(Vehicle License Plate Recognition,VLPR) 是一种以计算机视觉技术为手段,综合利用数字图像处理、模式识别等方法对所拍摄的车辆图像进行分析,进而得到车牌号码的技术[1]。车牌识别系统在现代智能交通系统中扮演着重要的角色,在公路收费、停车管理、车辆检测等各种场合都有广泛的应用。近年来,车牌识别已经成为模式识别与智能系统领域研究的热点问题。本系统以MATLAB图像处理技术为基础,通过构建BP神经网络实现对车牌号码的识别,并通过了多组实验测试。

1 系统概述

车牌识别系统主要分为图像预处理、车牌图像的定位、分割以及车牌号码识别这4个部分[2]。本系统针对静态图像进行车牌识别,首先对上传至计算机的图像做预处理,去掉原始图像的噪声干扰,再对图像的车牌区域进行定位并将该区域分离出来,之后对车牌的字符进行分割,最后将分割出的字符通过所建立的BP神经网络识别出车牌号码。车牌识别系统流程图如图1所示。

图1 车牌识别系统流程图

2 图像预处理及车牌定位分割

2.1 图像预处理

为了加快计算机处理速度,首先将输入计算机的原始图像转化为灰度图像,再选择适当阈值的Robert算子对图像进行边缘检测,腐蚀操作后,构建合适的结构元素对腐蚀后的图像进行聚类填充来平滑图像轮廓,最后去除图像中聚团灰度值过小的部分,得到滤波后的图像[3-4]。

具体的MATLAB程序如下:

I=imread('car3.jpg')%读取输入的原始图像

I1=rgb2gray(I);%将彩色图像转换为灰度图像

I2=edge(I1,'roberts',0.12,'both');%选择0.12作为阈值,用Robert算子进行边缘检测

se=[1;1;1];

I3=imerode(I2,se);%对图像进行腐蚀操作

se=strel('rectangle',[25,25]);%构建正方形结构元素

I4=imclose(I3,se);%对图像聚类填充

I5=bwareaopen(I4,1 400);%去除聚团灰度值小于1 400的部分

2.2 车牌定位及字符分割

将预处理后的图像通过基于行扫描的水平定位和基于投影法的垂直定位相结合的算法[5]进行定位剪切,得到图2(a),再通过竖直投影法[6]分割车牌的字符,得到单个字符以便于识别,分割出的字符如图2(b)所示。

图2 车牌定位与字符分割

3 基于BP神经网络的字符识别

3.1 BP神经网络技术

人工神经网络是一种以大脑神经网络为背景,由多个神经元模型组成的信息处理系统,BP神经网络就是人工神经网络的一种。BP神经网络是一种具有3层或3层以上的多层神经网络,每一层都由若干个神经元组成。人工神经元的模型如图3(a)所示。BP神经网络按照有导师的学习方式进行训练,训练过程中信息先正向传播,输入信息从输入层传入,经过隐含层的处理传递给输出层,输出层输出数据来响应对应的输入。如果输出层没有得到期望的输出,那么误差信号将按原来的链路逆向传播,依次逐层修正各个隐含层、输入层的权值和阈值。随着这种训练的不断进行,网络对输入响应的正确率也不断提高,直至得到期望的输出[7-8]。3层BP神经网络如图3(b)所示。

图3 神经元模型与3层的BP神经网络模型

对于单个神经元而言(如图3(a)所示),输入矢量X=(x1,x2,…,xn)T,权矢量W=(w1,w2,…,wn)T,θ为该神经元的阈值,f表示神经元输出与输入的关系函数,则神经元的输出O为:

O=f (∑WX-)

(1)

对于1个3层的BP神经网络(如图3(b)所示), 输入向量X=(x1,x2,…,xn)T,输出向量Y=(y1,y2,…,ym)T,期望输出向量O=(o1,o2,…,om)T,隐含层输出向量Z=(z1,z2,…,zq)T,初始输入层到隐含层的连接权值Vj=(vj1,vj2,…,vjt, …,vjn)T(j=1,2,…,q), 初始隐含层到输出层的连接权值Wk=(wk1,wk2,…,wkj, …,wkq)T(k=1,2,…,m),隐含层单元的阈值为θj。激活函数采用S型函数:

(2)

隐含层各神经元的激活值为:

(3)

将激活值带入激活函数为:

(4)

同理得到输出端的的激活值和输出值。

输出层第k个单元的激活值为

(5)

输出层第k个单元的实际输出值为:

yk=f(sk) (t=1,2, …,m)

(6)

利用以上公式可以计算出一个输入模式的正向传播过程。

实际输出值与期望的输出值存在误差,输出层校正误差为:

dk=(ok-yk)yk(1-yk) (k=1,2,…,m)

(7)

隐含层各单元的校正误差为:

(8)

输出层至隐含层的连接权值和阈值的校正量为:

Δwkj=α·dk·zj

(9)

Δθk=α·dk

(10)

式中zj为隐含层j单元的输出,α为学习系数,α>0。

隐含层至输入层的链接权值和阈值的校正量为:

Δvji=β·ej·xi

(11)

Δθj=β·ej

(12)

式中ej为隐含层j单元的校正误差,β为学习系数,0<β<1。

通过反复重复上面的计算过程,进行循环记忆训练,使网络的误差趋于极小值,达到期望的误差要求[9],得到最佳的训练效果,从而构建出最优BP神经网络模型。

3.2 BP神经网络字符识别系统

3.2.1分类器的设计

将存储的数字、字母和汉字的模板(本系统共选用22个字符模板)归一化为40×20大小,然后全部转换为二值图像,再将每一个模板的二值图像转化为具有800个元素的行向量,将全部22个行向量排列在一起构成800×22的矩阵样本,用构造好的样本对BP神经网络进行训练。

为使训练结果更加准确,设计的分类器更加合理,本系统采用4层BP神经网络构建分类器。具体程序及网络参数设计如下:

T=eye(22);%预期输出为维数为22的单位矩阵

net=newff(minmax(P),[800,41,22],({'logsig','logsig','logsig'},'trainrp');%P矩阵为22个模板的行向量经转置后所组成的矩阵,采用弹性梯度下降法调整网络参数

net.inputWeights{1,1}.initFcn ='randnr';%输入层权值向量初始化

net.layerWeights{2,1}.initFcn ='randnr';%网络层第1层到第2层权值向量初始化

net.trainparam.epochs=60;%最大训练次数

net.trainparam.show=50;%每50次训练显示一次训练进程

net.trainparam.lr=0.003;%学习速率

net.trainparam.goal=0.000001;%训练精度

net=init(net);%初始化网络

[net,tr]=train(net,P,T);%进行网络训练

3.2.2 网络训练

根据所设计的分类器进行网络训练。得到的误差曲线如图4所示。经过训练后构建出车牌识别系统的BP神经网络。

图4 误差曲线

3.2.3字符识别

将分割出的字符图像作为输入来调用sim函数,运行所建立的BP神经网络模型,得到对应数值,从而识别出对应的字符。系统识别结果如图5所示。

图5 系统识别结果

4 实验测试

为了便于操作,将系统程序写入GUI界面下[10],在GUI界面上控制系统识别过程,并在原有识别功能的基础上添加了车辆信息调取功能。经过多次实验测试,车牌识别系统具有良好的识别效果。GUI界面及实验测试如图6所示。

图6 GUI界面及系统实验测试

5 结论

本文设计了一种基于BP神经网络的车牌识别系统,经过理论与实验验证,该系统能实现对汽车牌照的识别,准确率高,具有良好的应用前景。

[1] 董镭. 基于车牌识别技术的车辆管理系统的研发[D]. 南宁: 广西大学,2008.

[2] 李红. 基于神经网络的车牌自动识别系统的研究[J]. 黑龙江科技信息,2015,(14):64.

[3] 张立华,任娇,陈鑫. 基于MATLAB图像处理的汽车牌照识别系统[J]. 电子技术,2014,(02):41-44.

[4] 毛群,王少飞. 基于MATLAB的神经网络数字识别系统实现[J]. 中国西部科技,2010, 9(19):22-24.

[5] 申瑾. 基于BP神经网络的车牌识别技术的研究[D]. 天津: 河北工业大学,2013.

[6] 康建新. 基于图像的车牌识别系统的设计和实现[D]. 长春: 吉林大学,2014.

[7] 赵长青,李欧迅,黄书童. BP神经网络数字识别系统的设计方法[J]. 桂林航天工业高等专科学校学报,2010,(03):292-294.

[8] 杨淑莹. 模式识别与智能计算——Matlab技术实现(第2版)[M]. 北京:电子工业出版社,2011.

[9] 蒙峭缘,张远夏. 基于BP神经网络车牌字符识别的研究[J]. 玉林师范学院学报,2008,29(05):129-133.

[10] 张琨,高思超,毕靖. MATLAB2010从入门到精通[M]. 北京:电子工业出版社,2011.

Design of Vehicle License Plate Recognition System Based on BP Neural Network

ZHENG Wen-guang1, WANG Jing-bo2, GAO Shuang1, ZHAI Bao-shuo2

(1. Yisheng College, North China University of Science and Technology, Tangshan Hebei 063009, China; 2.CollegeofElectricalEngineering,NorthChinaUniversityofScienceandTechnology,TangshanHebei063009,China)

image processing; pattern recognition; BP neural network; recognition of vehicle license plate

A system of vehicle license plate recognition based on BP neural network is designed. The system is based on MATLAB programming language, by using image processing technology to extract the license plate area and to segment the characters of license plate. The license plate number is identified by the BP neural network model. At the same time, the design of GUI interface facilitates human-computer interaction and vehicle information retrieval. It has a good effect.

2095-2716(2016)02-0081-06

TP391.413

A

猜你喜欢

车牌字符权值
一种融合时间权值和用户行为序列的电影推荐模型
CONTENTS
字符代表几
一种USB接口字符液晶控制器设计
图片轻松变身ASCⅡ艺术画
数字图像处理技术在车牌识别系统中的应用
HBM电子称与西门子S7-200系列PLC自由口通讯
第一张车牌
基于权值动量的RBM加速学习算法研究
基于MATLAB 的车牌识别系统研究