计算机应用   2017, Vol. 37 Issue (7): 2014-2018  DOI: 10.11772/j.issn.1001-9081.2017.07.2014
0

引用本文 

董峻妃, 郑伯川, 杨泽静. 基于卷积神经网络的车牌字符识别[J]. 计算机应用, 2017, 37(7): 2014-2018.DOI: 10.11772/j.issn.1001-9081.2017.07.2014.
DONG Junfei, ZHENG Bochuan, YANG Zejing. Character recognition of license plate based on convolution neural network[J]. Journal of Computer Applications, 2017, 37(7): 2014-2018. DOI: 10.11772/j.issn.1001-9081.2017.07.2014.

基金项目

国家自然科学基金资助项目(11401480);西华师范大学校级创新团队项目(CXTD2014-4);四川省科技创新苗子培育项目(2016033);四川省大学生创新创业项目(201710638022);西华师范大学大学生创新创业项目(CXCY2016004)

通信作者

郑伯川, E-mail:zhengbochuan@126.com

作者简介

董峻妃(1993-), 女, 四川南充人, 硕士研究生, CCF会员, 主要研究方向:机器学习;
郑伯川(1974-), 男, 四川自贡人, 教授, 博士, CCF会员, 主要研究方向:人工神经网络、深度学习、计算机视觉;
杨泽静(1993-), 女, 四川南充人, 硕士研究生, 主要研究方向:机器学习

文章历史

收稿日期:2017-01-13
修回日期:2017-03-03
基于卷积神经网络的车牌字符识别
董峻妃, 郑伯川, 杨泽静    
西华师范大学 数学与信息学院, 四川 南充 637009
摘要: 车牌字符识别是智能车牌识别系统中的重要组成部分。针对车牌字符类别多、背景复杂影响正确识别率的问题,提出了一种基于卷积神经网络(CNN)的车牌字符识别方法。首先对车牌字符图像进行大小归一化、去噪、二值化、细化、字符区域居中等预处理,去除复杂背景,得到简单的字符形状结构;然后,利用所提出的CNN模型对预处理后的车牌字符集进行训练、识别。实验结果表明,所提方法能够达到99.96%的正确识别率,优于其他三种对比方法。说明所提出的CNN方法对车牌字符具有很好的识别性能,能满足实际应用需求。
关键词: 深度学习    车牌字符识别    卷积神经网络    智能交通    图像预处理    
Character recognition of license plate based on convolution neural network
DONG Junfei, ZHENG Bochuan, YANG Zejing     
College of Mathematics and Information, China West Normal University, Nanchong Sichuan 637009, China
Abstract: Character recognition of license plate is an important component of an intelligent license plate recognition system. Both the number of categories and the complexity of background of license plate character affected the correct recognition rate. A character recognition method of license plate based on Convolution Neural Network (CNN) was proposed for improving the correct recognition rate. Firstly, the simple shape structures of license plate characters were obtained through image preprocessing which included image size normalization, image denoising, image binarization, image thinning, and character centering. Secondly, the preprocessed character images were trained and recognized by the proposed CNN model. The experimental results show that the correct recognition rate of the proposed method can reach 99.96%, which is better than the other three compared methods. It is demonstrated that the proposed CNN method has good recognition performance for the license plate character, and can meet the practical application requirements.
Key words: deep learning    license plate character recognition    Convolutional Neural Network (CNN)    intelligent transportation    image preprocessing    
0 引言

随着我国经济的发展,汽车,特别是小轿车的数量越来越多,智能交通管理系统应运而生。车牌智能自动识别作为智能交通管理系统中的重要组成部分,在智能交通管理中发挥着越来越重要的作用,其应用非常广泛,在高速公路收费管理、超速违章自动拍照、停车场管理、小区进出车辆管理、交通数据采集等许多系统中都需要识别车牌号码。车牌识别系统中主要采用车牌图像进行识别。基于车牌图像的车牌智能自动识别系统主要由3部分组成:车牌定位、字符分割、字符识别,其中字符识别是最后最关键的步骤。车牌字符的正确识别率直接关系到车牌识别系统的性能,车牌字符识别技术已成为完善智能交通管理系统的关键。

1959年Hubel等[1]发现猫的视觉皮层细胞负责检测光信号,受此启发,1980年Fukushima[2]提出了神经感知机(neocognitron),神经感知机被认为是卷积神经网络(Convolutional Neural Network,CNN)的前身。1989年,LeCun等[3]提出了一种名叫LeNet-5的多层神经网络,并成功用于识别10个数字手写字符。LeNet-5网络可以通过反向传播(Back Propagation,BP)算法进行学习,被认为建立起了CNN的现代结构,是CNN的最早基本结构[4]。CNN类似于生物神经网络的权值共享结构,可产生生物视觉中局部感受野效应,不仅降低了网络的模型复杂度、减少了权值数量,且对图像平移、比例缩放、倾斜等具有不变性。虽然CNN有很好的性能,但是由于缺乏大数据,以及硬件性能低,因此早期的CNN不能处理复杂问题。随着大规模图像数据库的出现和硬件技术的发展,CNN成为研究热点,得到了快速发展,许多快速计算方法和新CNN结构被提出。近年比较有名的CNN结构有AlexNet[5]、ZFNet[6]、VGGNet[7]、GoogleNet[8]和ResNet[9]。应用上,CNN在图像分类[5-6]、目标检测[10]、目标跟踪[11]、文本识别[12]、动作识别[13]等方面都取得了巨大成功。由于CNN具有很好的特征提取性能,因此本文拟将采用CNN识别车牌字符。目前研究者提出了许多车牌字符识别方法,如:基于结构特征和灰度特征的方法[14]、基于模板匹配和神经网络的方法[15]、基于深度信念网络的方法[16],但将卷积神经网络用于车牌字符识别的研究鲜见报道。文献[17]中提出一种改进LeNet-5的车牌字符识别方法,通过增加LeNet-5中C5层特征图数量和增加输出层神经元的个数来识别车牌的76个字符(包括汉字、数字和字母字符)。文献[17]没有改变LeNet-5的层数,由于LeNet-5的层数多,训练时间和识别时间较长,同时将汉字、数字和字母一起识别,影响了识别率。文献[18]提出将BP神经网络与CNN相结合的分阶车牌字符识别算法,该方法将汉字、数字和字母分别进行识别,但其主要采用BP神经网络进行识别,对BP不能识别的字符则采用CNN识别;由于增加了CNN层数,因此增加了训练时间和识别时间。本文针对字符图像经预处理后形状结构变简单的特点,提出一种新的基于简单卷积神经网络的车牌字符识别方法,CNN网络只包括2个卷积层和2个采样层,并且每层的特征图少,网络结构简单。实验结果表明,不仅识别时间短,而且正确识别率高。

1 卷积神经网络介绍

CNN是一种多层非全连接的神经网络,主要包括卷积层和采样层,LeNet-5是CNN的经典例子,用于手写体数字字符识别,其网络结构如图 1所示。

图 1 LeNet-5神经网络结构[3] Figure 1 Neural network structure of LeNet-5[3]

LeNet-5卷积神经网络共包含7层(不包括输入层),每一层都包含可训练的参数,网络的输入是大小为32×32的图像。C1层是由6个特征图组成的卷积层,每个神经元与输入图像的一个大小为5×5的邻域连接,因此每个特征图的大小是(32-5+1)×(32-5+1) 即28×28。S2层是由6个大小为(28×1/2)×(28×1/2) 即14×14的特征图组成的采样层,由C1层下采样得到。特征图的每个神经元与C1层的一个大小为2×2的邻域相连接。C3层是由16个大小为(14-5+1)×(14-5+1) 即10×10的特征图组成的卷积层。特征图的每个神经元与S2层的若干个特征图的大小为5×5的邻域相连接。S4层是由16个大小为(10×1/2)×(10×1/2) 即5×5的特征图组成的采样层。特征图的每个神经元与C3层的大小为2×2的邻域连接。C5层是由120个特征图组成的卷积层,每个特征图只有1个神经元,每个神经元与S4层所有特征图的大小为5×5的邻域相连。F6层是隐藏层,包含84个神经元,与C5进行全连接。最后,输出层有10个神经元,是由径向基函数(Radial Basis Function, RBF)单元组成,与F6层进行全连接,每个神经元对应一个数字字符类别。

LeNet-5的训练算法请参阅文献[3]。

2 基于CNN的车牌字符识别 2.1 基于CNN的车牌字符识别流程

本文提出的基于CNN的车牌字符识别方法(方法流程如图 2所示)由两部分构成:第一部分,输入训练图像集训练CNN分类模型;第二部分,将待识别的车牌字符图像输入训练好的模型进行识别。

图 2 基于CNN的车牌字符识别方法流程 Figure 2 Flow chart of license plate character recognition method based on CNN
2.2 车牌字符图像预处理

本文所用汽车图像均来自于某大门汽车门禁监控系统,该系统收集了每天进出大门的汽车正面图像。车牌字符则是通过人工方式从汽车图像中裁剪得到。由于拍摄汽车图像时存在天气、光照等外部环境影响,同时存在拍摄距离和角度不同,车牌污损程度不同,因此裁剪得到的字符图像存在大小不统一、颜色变化大、部分字符不清晰等情况,部分原始字符图像如图 3(a)所示。原始字符图像不能直接用于CNN的训练识别,需要对原始彩色图像作预处理,去除不必要的背景和噪声,得到字符的本质形状结构,使其更容易被识别。字符原始图像预处理流程如下:

步骤1   将字符彩色图像图 3(a)统一转化为灰度图像(图 3(b));

图 3 字符图像预处理各阶段结果 Figure 3 Results of character image preprocessing at each step

步骤2  统一图像大小为36×28的二值图像(图 3(c));

步骤3  去除二值图中的噪声点(图 3(d));

步骤4  对二值图进行水平和垂直投影切分,去除边界部分,保留字符部分区域(图 3(e));

步骤5  由于字符“1”的结构特殊性,所以将“1”的图大小调整为28×4,其他字符图像调整为28×20(图 3(f));

步骤6  添加边界,使字符区域居中, 并细化字符。最后得到有边界且字符居中的大小为36×28细化图(图 3(g))。

2.3 识别车牌字符的CNN模型结构

将LeNet-5用于10个手写数字字符识别具有很好的识别性能。车牌字符中除去汉字字符,共有34(10个数字字符,24个字母字符,不含字母O与I)个字符。相比手写数字字符,经过预处理后的车牌字符虽种类更多,但其字符形状结构更简单,同个字符的不同图像样本间差别小。针对车牌字符图像的特点,可以简化LeNet-5的结构,使其既能满足正确识别率要求,又能减少识别时间,因此本文提出一种改进的CNN模型用于识别车牌字符。改进的CNN模型结构如图 4所示。

图 4 识别车牌字符的卷积神经网络结构 Figure 4 Structure of CNN for license plate character recognition

各层介绍:1) 输入层为字符图像,图像大小为36×28;2) C1层为卷积层,得到4个大小为32×24的特征图,每个卷积核大小为5×5,共用了4个卷积核;3) S2层是采样层,每个C1层的特征图经过下采样变成大小为16×12的特征图,每个采样窗口大小为2×2;4) C3层是卷积层,得到12个大小为12×8的特征图,每个特征图都是S2层4个特征图卷积的累加,每个卷积核大小为5×5,共12×4个卷积核;5) S4层是采样层,分别对C3层的每个特征图进行下采样,得到12个大小为6×4的特征图,每个采样窗口大小为2×2;6) F5层将S4层12个特征图变形转换连接成一个向量,向量包含12×6×4即288个神经元,反向传播计算时又将向量转换成12个特征图;7) 输出层是由34个神经元构成的向量,对应34个字符的输出,F5层和输出层构成一个Softmax分类器。

3 实验

实验环境为:CPU为Intel i5-4570,主频3.2 GHz、四核,4 GB内存;64位Microsoft Windows 10操作系统,Matlab R2014a编程语言。CNN程序采用DeepLearnToolbox-master深度学习算法软件包,没有使用GPU计算。共裁剪收集10200张字符图像,每个字符300张,共34个字符(10类数字字符,24类字母字符,除去字母O和I)。首先将10200张字符图像按照本文2.2节介绍的预处理方法进行预处理,得到10200张大小为36×28的字符图。

3.1 实验步骤

实验步骤如下:

步骤1  将10200张图分成10份字符图像集,每份包含1020张图像,其中每个字符30张。设i=1。

步骤2  取第i份图像集作为测试集(包含1020张),其余9份图像集作为训练集(包含9180张)。用训练集训练CNN模型,用测试集进行识别测试,得到正确识别率和识别时间。

步骤3  i=i+1, 如果i≤10,转到步骤2;否则转步骤4。

步骤4  得到平均正确识别率和单个字符平均识别时间。

3.2 实验结果

实验中epoch设为200,学习率为1,每次迭代学习图像90张。每个epoch需要迭代102次,总迭代次数为20400。总共识别错误4个字符,得平均正确识别率为99.96%,单个字符平均识别时间为0.00041 s, 能满足实际应用需求。识别错误的4个车牌字符如图 5所示,其中,字符“4”“K”“V”和“C”分别被识别成“A”“H”“K”和“O”。

图 5 识别错误的车牌字符 Figure 5 License plate characters of error recognization

实验表明如果epoch太小,学习训练不够,造成模型正确识别率低;如果epoch太大,不仅不能提高正确识别率,而且增加了训练时间;epoch=200使模型能充分学习训练集并收敛,训练时间在无GPU运算情况下约需要8 h。学习速率和每次学习图像数在一定的范围内对识别率没有影响,学习速率太大会降低正确识别率。图 6是当epoch=200,学习速率为1,每次迭代学习图像90张时的损失函数变化情况,训练已得到充分收敛。

图 6 损失函数变化 Figure 6 Change of loss function

同时作者还实验了C1和C3层设置不同数量特征图的CNN,得到对应的正确识别率和识别时间(见表 1)。

表 1 C1和C3层特征图数不同时的正确识别率和识别时间 Table 1 Correct recognition rate and recognition time of different feature image number in C1 and C3 layer

表 1看,C1层和C3层的特征图个数对车牌字符正确识别率有直接影响。特征图个数多时,正确识别率会逐渐提高,识别时间则相应增加。特征图个数增加到一定后,正确识别率不会再继续提高,甚至有时会变低。总的来看,当特征图个数增加到一定后,正确识别率不会低于99.94%。在正确识别率为99.96%的7种网络结构组合中,C1层为4、C3层为12的CNN结构最简单,识别时间最短,因此本文选择C1层为4、C3层为12的CNN结构作为识别模型。

3.3 对比实验

为了比较本文所提的CNN识别车牌字符的性能,本文实验测试了其他几种方法对同样车牌字符集的识别性能,这些方法包括LeNet-5[3]、支持向量机(Support Vector Machine,SVM)[19]、深度信念网络(Deep Belief Network,DBN)[20]、BP神经网络[21],识别结果如表 2所示。实验中同样将10200张预处理后的字符图像分成10份,每次取1份作为测试集,其他9份作为训练集,共进行10次,求得平均正确识别率。

表 2 几种识别方法的识别率对比 % Table 2 Recognition rate comparison of several methods %

表 2可以看到,本文所提的CNN模型适合识别车牌字符,正确识别率能够达到99.96%,超过对比测试的其他4种方法。实验时,对于LeNet-5网络需要将图像大小改为32×32,其他对比方法则直接将预处理后的字符图像作为输入。

3.4 结果分析

本文提出的CNN模型虽然结构简单,却能取得99.96%的正确识别率,这主要得益于CNN良好的特征提取能力;另外也得益于车牌字符本身字体工整清晰。虽然原始字符图像存在大小不统一、颜色变化大、部分字符不清晰等情况,但是经过预处理后的字符图像清晰可辨,字符形状结构简单,没有手写字符的形状结构复杂,因此只需要简单的CNN就能充分提取车牌字符特征,不必采取复杂的CNN结构。实验表明,如果不进行预处理,识别效果差,当采用C1层为4、C3层为12的CNN直接训练识别字符灰度图像时,其正确识别率只有70.58%。

本文收集的车牌图像来自于某大门汽车门禁系统,进出该大门的车辆主要是四川省车辆,因此无法收集齐代表不同省份的车牌汉字字符图像。基于这样的原因本文只提出了识别字母和数字字符的CNN模型。考虑到车牌汉字字符不多,作者提出以下完整车牌字符识别流程:

步骤1  获得分割好的车牌字符;

步骤2  利用本文提出的卷积神经网络(称作A网络)训练并识别字母和数字字符;

步骤3  构建新的卷积神经网络(称作B网络)训练并识别车牌汉字字符;

步骤4  得最终识别结果。

汉字字符是车牌的第一个字符,因此在对一张车牌进行识别时,将车牌的第一个字符交给B网络识别,其余字符交给A网络识别。

4 结语

本文在充分分析车牌字符特征的基础上,针对字母和数字字符提出了一种基于CNN的车牌字符识别方法。实验表明,此方法对字母和数字字符的正确识别率高,识别时间短。由于目前缺乏汉字字符图像,因此无法验证本文提出的CNN模型是否适合汉字字符识别。今后将继续收集车牌汉字字符图像,研究车牌汉字字符的识别。

参考文献(References)
[1] HUBEL D H, WIESEL T N. Receptive fields and functional architecture of monkey striate cortex[J]. Journal of Physiology, 1968, 195(1): 215-243. DOI:10.1113/jphysiol.1968.sp008455
[2] FUKUSHIMA K. Neocognitron:a self-organizing neural network model for a mechanism of pattern recognition unaffected by shift in position[J]. Biological Cybernetics, 1980, 36(4): 193-202. DOI:10.1007/BF00344251
[3] LECUN Y, BOTTOU L, BENGIO Y, et al. Gradient-based learning applied to document recognition[J]. Proceedings of the IEEE, 1998, 86(11): 2278-2324. DOI:10.1109/5.726791
[4] GU J, WANG Z, KUEN J, et al. Recent advances in convolutional neural networks[EB/OL].[2017-01-01]. https://arxiv.org/pdf/1512.07108.pdf.
[5] KRIZHEVSKY A, SUTSKEVER I, HINTON G E. ImageNet classification with deep convolutional neural networks[C]//Proceedings of the 2012 International Conference on Neural Information Processing Systems. Lake Tahoe, Nevada. NIPS Foundation, 2012:1097-1105.
[6] ZEILER M D, FERGUS R. Visualizing and understanding convolutional networks[C]//Proceedings of the 2014 European Conference on Computer Vision. Berlin:Springer, 2014:818-833.
[7] SIMONYAN K, ZISSERMAN A. Very deep convolutional networks for large-scale image recognition[EB/OL]. (2015-04-10)[2016-12-10]. https://arxiv.org/abs/1409.1556.
[8] SZEGEDY C, LIU W, JIA Y, et al. Going deeper with convolutions[EB/OL]. (2014-07-17)[2016-12-10]. https://arxiv.org/abs/1409.4842.
[9] HE K, ZHANG X, REN S, et al. Deep residual learning for image recognition[EB/OL]. (2015-12-10)[2016-12-10]. https://arxiv.org/abs/1512.03385.
[10] GIRSHICK R, DONAHUE J, DARRELL T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation[EB/OL]. (2014-10-22)[2016-12-10]. https://arxiv.org/abs/1311.2524.
[11] LI H, LI Y, PORIKLI F. DeepTrack:learning discriminative feature representations by convolutional neural networks for visual tracking[EB/OL].[2016-12-10]. http://www.bmva.org/bmvc/2014/files/paper028.pdf.
[12] GOODFELLOW I J, IBARZ J, ARNOUD S, et al. Multi-digit number recognition from street view imagery using deep convolutional neural networks[EB/OL]. (2014-04-14)[2016-12-10]. https://arxiv.org/abs/1312.6082.
[13] JI S, XU W, YANG M, et al. 3D convolutional neural networks for human action recognition[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2013, 35(1): 221-31.
[14] 罗辉武, 唐远炎, 王翊, 等. 基于结构特征和灰度特征的车牌字符识别方法[J]. 计算机科学, 2011, 38(11): 267-270. (LUO H W, TANG Y Y, WANG Y, et al. License plate character recognition based on structural features and grayscale pixel features algorithm[J]. Computer Science, 2011, 38(11): 267-270. DOI:10.3969/j.issn.1002-137X.2011.11.062)
[15] 魏武, 黄心汉, 张起森, 等. 基于模板匹配和神经网络的车牌字符识别方法[J]. 模式识别与人工智能, 2001, 12(1): 123-127. (WEI W, HUANG X H, ZHANG Q S, et al. A method of recognizing characters in vehicle license-plates using pattern match and neural networks[J]. Pattern Recognition and Artificial Intelligence, 2001, 12(1): 123-127.)
[16] 朱宏吉. 基于深度信念网络的车牌字符识别算法研究与实现[D]. 杭州: 浙江大学, 2015: 1-77.
ZHU H J. Deep belief nets based LPR algorithm research and development[D]. Hangzhou:Zhejiang University, 2015:1-77.
[17] 赵志宏, 杨绍普, 马增强. 基于卷积神经网络LeNet-5的车牌字符识别研究[J]. 系统仿真学报, 2010, 22(3): 638-641. (ZHAO Z H, YANG S P, MA Z Q. License plate character recognition based on convolutional neural network LeNet-5[J]. Journal of System Simulation, 2010, 22(3): 638-641.)
[18] 李珊珊, 李一民, 郭真真. 基于神经网络的分阶车牌字符识别算法研究[J]. 工业仪表与自动化装置, 2016, 46(2): 7-10. (LI S S, LI Y M, GUO Z Z. Research on the algorithm of license plate character recognition based on neural network[J]. Industrial Instrumentation and Automation, 2016, 46(2): 7-10.)
[19] LI H, QI F, WANG S. A comparison of model selection methods for multi-class support vector machines[C]//Proceedings of the 2005 International Conference on Computational Science and Its Applications. Berlin:Springer, 2005:1140-1148.
[20] HINTON G E. Deep belief networks[J]. Scholarpedia, 2009, 4(5): 5947. DOI:10.4249/scholarpedia.5947
[21] RUMELHART D E, HINTON G E, WILLIAMS R J. Learning representations by back-propagating errors[J]. Nature, 2010, 323(6088): 533-536.