基于BP神经网络的车牌识别建模及实现

2021-06-28 08:50高勇
电子测试 2021年1期
关键词:字符识别车牌字符

高勇

(中国航空工业集团公司洛阳电光设备研究所,河南洛阳,471000)

0 引言

智能交通系统(Intelligent Transportation System,ITS)是一个运行十分有序的系统,它把车辆、道路和人有机地连接在一起。该系统的运用不但可以使车辆更加放心、安全地行驶在道路上,还可以有效的缓解交通压力、提高群众出行效率,避免资源浪费[1][2]。在智能交通系统当中车牌识别系统具有非常重要的应用地位,是当今交通领域研究重点关注的焦点之一。其采用的技术包括模式识别技术、信号处理技术以及图像处理技术[1-3]。在进行城市道路以及高速公路路况情况监控时,可以通过图像处理和人工智能技术提取和识别具有违法行为的车辆号牌信息,以便准确做出处罚。

本文研究设计了基于BP神经网络的车牌识别模型,利用数字图像处理技术完成车牌图像处理、车牌定位以及字符分割,通过BP神经网络模型实现字符识别,最后利用MATLAB软件开展仿真实验。

1 车牌识别

车牌识别系统的实现需要应用多种现代化技术,包括模式识别技术以及机器视觉技术等等。在监控范围内,通过应用车牌识别系统可以有效的获取到图像信息,首先预处理图像,然后定位到图像中的车牌部分,分割车牌部分中的字符,最后准确的识别出这些字符。该系统主要应用于以下几个领域[2]:公路的自动化管理、车辆定位、城市路口“电子警察”、社区车辆管理系统和停车场车辆管理系统等。

根据GA36-2018 《中华人民共和国机动车号牌》的规定,我国现行的车牌中,第1位为汉字,第2位为字母,第3至6位为数字或字母,第7位为汉字(警、学)、数字或字母。汉字共有48个,数字共有0~9共10个,字母从A~Z除O和I之外共有24个。车牌的特征包括以下四个方面[4]:

(1)车牌的长、宽及两者比例都有相应的规定要求,几何尺寸差别较小,外形特征较明显;(2)车牌由汉字、字母或数字组成,且有一定的排列组成规律,字符信息特征较明显;(3)车牌号码由汉字、数字以及字母组成,前者较后两者识别难度大,为了识别效果应采取不同手段进行识别;(4)车牌牌照种类较多,且有几种不同的格式,增加了识别的难度。

2 车牌识别系统原理

一般情况下,车牌识别系统主要包括四个部分,分别是车牌预处理、车牌定位、车牌字符分割和车牌字符识别[1-4]:

(1)车牌预处理

车牌预处理主要作用是剔除同车牌无关的干扰项,让车牌的主要特征更为凸显,通常采用的手段包括几何变换、图像增强以及去噪等。

(2)车牌定位

车牌定位的目的是进一步提取图像中的车牌区域,将其他区域排除。

(3)车牌字符分割

车牌字符分割即将整个车牌区域分割成7个单一字符,字符包括汉字、字母和数字。

(4)车牌字符识别

车牌字符识别就是对分割后的7个单一字符进行特征提取,然后识别成相似度最高的字符,是整个系统的核心部分。

2.1 图像预处理

图像预处理是对带有干扰和噪声的图像进行图像复原和信息增强的过程,使得图像的有用信息可以更容易进行后端图像算法处理,包括图像灰度拉伸、图像去噪等[3-4]。

2.2 车牌定位

车牌定位是从给定的图像中找到车牌所在的部分,将其同其他部分进行区分并成功提取出来。能够根据车牌独有的特点,例如字符、颜色、形状以及区域灰度等来进行定位。本文采用Canny算子进行边缘检测,通过开闭运算的数字形态学滤波,然后像素行扫描和列扫描确定车牌上下和左右边界,从而定位车牌的准确区域。并且通过Hough 变换进行倾斜校正,得到正立的车牌区域图像,有利于后续车牌字符的精准分割。

2.3 字符分割

每个车牌号码由7个字符所组成,通过字符分割操作后,它们相互拆分出来,成为7幅独立的字符图像。本文采用垂直投影法进行字符分割,在水平轴上投影车牌定位后获得的车牌图像,可以在垂直方向发现若干个波峰值,每个字符边界都会表现为波谷点,自左向右扫描,发现的首个波峰区域即是第一个字符,依此类推就得到所有7个字符。

3 字符识别

字符识别是对分割后的字符图片(包括汉字、数字和字母)进行辨认,给出对应的字符,是车牌识别的最核心部分。本文采用BP(BackPropagation)神经网络进行字符识别。

BP神经网络由输入层、若干隐含层和输出层等组成,只含有一个隐含层的网络拓扑结构如下图1所示[1-4],包括信号正向传播和误差反向传播。输入信号依次通过输入层、隐含层以及输出层。假使输出值无法满足所期望的数值,那么就会启动误差反向传播,也就是误差由输出层逐层向前传播,将误差分配给各层的所有神经元,并对神经元间的权重值做出相应改变。在正向/反向传播不断迭代过程中,修正了神经元权重值,直至误差满足设计要求时则停止。

图1 BP神经网络拓扑图

根据车牌七个字符的特征和特点,设计三个BP神经网络。第一个BP神经网络用于识别车牌的第一位汉字字符,第二个BP神经网络用于识别车牌的第二位字母字符,第三个BP神经网络用于识别车牌的第3~7位字母或数字字符。

4 仿真实现

使用Matlab软件编程实现车牌识别建模、设计和仿真[1-5],具体识别流程图如图2所示。

图2 车牌识别流程图

采用投影浓度法提取具有20组特征值的汉字、数字和字母字符特征,因此确定三个BP网络输入层神经元数目为20个。对输出字符进行二进制编码,所有48个汉字需要6位编码,因此第一个BP网络输出层神经元数量为6个。所有24个英文字母需要5位编码,因此第二个BP网络输出层神经元数量为5个。所有34个字母和数字需要6位编码,因此第三个BP网络输出层神经元数量为6个。隐含层神经元数量由经验计算,一共需要6个神经元。

BP网络参数设置如下:显示间隔50,学习速率0.01,递增乘因子1.15,递减乘因子0.8,最大循环次数8000,误差目标0.00001。经过Matlab程序建模和仿真实现,车牌定位、字符分割和车牌识别结果如图3所示。随机进行了100张车牌图片进行车牌识别仿真,能够正确识别其中的93张车牌图片,识别过程简洁高效,识别结果可靠有效。

5 结束语

本文介绍了车牌识别系统的原理、组成和实现方法,开展了基于BP神经网络的字符识别建模、仿真和实现。结果表明该方法能够对车牌进行定位、分割和识别,具有一定的工程实用价值。

猜你喜欢
字符识别车牌字符
字符代表几
一种USB接口字符液晶控制器设计
数字图像处理技术在车牌识别系统中的应用
HBM电子称与西门子S7-200系列PLC自由口通讯
消失的殖民村庄和神秘字符
一种改进深度学习网络结构的英文字符识别
第一张车牌
基于MATLAB 的车牌识别系统研究
仪表字符识别中的图像处理算法研究
基于CUDA和深度置信网络的手写字符识别