CN111160316B - 一种基于轻量级神经网络的车牌识别方法 - Google Patents
一种基于轻量级神经网络的车牌识别方法 Download PDFInfo
- Publication number
- CN111160316B CN111160316B CN202010009951.0A CN202010009951A CN111160316B CN 111160316 B CN111160316 B CN 111160316B CN 202010009951 A CN202010009951 A CN 202010009951A CN 111160316 B CN111160316 B CN 111160316B
- Authority
- CN
- China
- Prior art keywords
- feature matrix
- license plate
- neural network
- inputting
- convolutional layer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 17
- 239000011159 matrix material Substances 0.000 claims abstract description 112
- 238000003062 neural network model Methods 0.000 claims abstract description 34
- 238000012549 training Methods 0.000 claims abstract description 31
- 238000010276 construction Methods 0.000 claims abstract description 9
- 239000013598 vector Substances 0.000 claims abstract description 8
- 238000002360 preparation method Methods 0.000 claims abstract description 7
- 238000010606 normalization Methods 0.000 claims description 59
- 230000004913 activation Effects 0.000 claims description 34
- 238000001994 activation Methods 0.000 claims description 34
- 238000011176 pooling Methods 0.000 claims description 29
- 239000000523 sample Substances 0.000 claims description 27
- 230000008569 process Effects 0.000 claims description 19
- 238000012544 monitoring process Methods 0.000 claims description 7
- 230000011218 segmentation Effects 0.000 abstract description 12
- 230000006870 function Effects 0.000 description 21
- 238000004422 calculation algorithm Methods 0.000 description 19
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 12
- 238000005457 optimization Methods 0.000 description 11
- 238000001514 detection method Methods 0.000 description 8
- 238000013527 convolutional neural network Methods 0.000 description 7
- 238000013135 deep learning Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000001914 filtration Methods 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005286 illumination Methods 0.000 description 3
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 2
- 206010035148 Plague Diseases 0.000 description 2
- 241000607479 Yersinia pestis Species 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/52—Surveillance or monitoring of activities, e.g. for recognising suspicious objects
- G06V20/54—Surveillance or monitoring of activities, e.g. for recognising suspicious objects of traffic, e.g. cars on the road, trains or boats
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/02—Affine transformations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/62—Text, e.g. of license plates, overlay texts or captions on TV images
- G06V20/625—License plates
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/10—Internal combustion engine [ICE] based vehicles
- Y02T10/40—Engine management systems
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
- Character Discrimination (AREA)
Abstract
本发明公开了一种基于轻量级神经网络的车牌识别方法,包括数据集的准备、轻量级神经网络模型的构建及车牌的识别,所述轻量级神经网络模型的构建包括下述步骤:1)形成第一特征矩阵x1;2)形成第二特征矩阵x2;3)形成第三特征矩阵x3;4)形成第四特征矩阵x4;5)将第一特征矩阵x1,第二特征矩阵x2,第三特征矩阵x3,第四特征矩阵x4的通道进行融合,而后通过卷积核大小为1×1、步长为1的卷积层得到特征向量;6)基于CTC损失函数完成轻量级神经网络网络模型训练;采用CTC损失函数进行轻量级神经网络模型训练,实现无需分割的端到端训练,有效解决输入和输出不对齐的情况。
Description
技术领域
本发明涉及模式识别技术、交通监控技术等领域,具体的说,是一种基于轻量级神经网络的车牌识别方法。
背景技术
车牌识别是现代智能交通系统中的一个至关重要的环节,是智能交通系统中的核心功能,使用技术手段提取出车辆的车牌号码,从而获得车辆信息。在我国,机动车号牌需要在交通管理部门申请登记,车牌与车辆之间存在一对一的关系,因此可以根据机动车号牌对机动车辆进行信息获取、管理和监控。在这种情形下,需要车牌识别系统,对车牌号码信息高效、精确的进行快速采集。
通过自动车牌识别系统提取车辆的车牌号码,获得交通流量、车辆类型等基础数据,有目的地实现监测、控制、分析、决策、调度和疏导,实现交通资源的最大化,从而能够提升整个智能交通系统的健壮性。
在已有的车牌识别解决方案中,分为基于传统方法与基于深度学习两类,前者使用传统的机器学习方法分割分类字符,后者使用神经网络定位分类字符。
当前主流的车辆识别方法(基于传统方法)根据边缘密度进行背景剔除,通过亮度方差和边缘强度来增强图像的对比度,再设计相应的匹配滤波器结合边缘密度和颜色信息进行车牌的定位,使用基于垂直投影等方法进行字符分割,再使用基于SVM的字符识别算法。该算法通过改进的 Bernsen 算法和高斯滤波进行二值化,再使用 SVM 进行字符的识别以便进行车牌识别。这类方法本质上都是依赖传统方法分割字符,但对光照环境变化鲁棒性差,难以适应天气和光线等条件的变化;在复杂环境中存在易受光照、天气、遮挡、目标尺度和图像质量等因素影响,具有效率低下且泛化能力较差的问题。
随着人工智能的发展,卷积神经网络逐渐替代了以上特征提取方法,可以灵活的在训练数据的驱动下根据不同的需求任务自动地去学习有用的特征来帮助算法完成检测和识别的任务。
基于卷积神经网络的车牌识别算法使用卷积神经网络提取车牌特征,并对车牌进行定位与分类。对车牌的定位分为基于区域的检测算法和基于回归的检测算法。基于区域的检测算法在特征图上选取大量的候选框,再对候选框进行分类与边框回归。基于回归的检测算法直接回归车牌字符的坐标并分类。这种解决方案会由于卷积网络层数过多,导致庞大计算量,因此对设备计算性能有较高的要求,甚至降低识别速度。
公开号为CN201810766184.0的专利公开了“一种基于深度学习的车牌识别方法”,使用的模型包括车牌分割模型、车牌汉字识别模型和车牌字母与数字识别模型。该方法需要实现多个模块,每个模块都有多层卷积神经网络,并非端到端的识别模型,增加了模型复杂度与计算量。
公告号为CN104298976B,专利名称为基于卷积神经网络的车牌检测方法,使用基于Haar特征的Adaboost车牌检测器对待检测车牌图像进行检测获取车牌粗检区域、通过多阈值分割算法获取车牌汉字、字母和数字区域,通过卷积神经网络对分割出来的区域分类,从而完成车牌字符的识别。此方法分为字符区域分割与字符分类两步,非端到端的方法,速度会因此受到影响。且基于车牌字符区域分割基于传统算法,精度和泛化能力有一定局限性。
发明内容
本发明的目的在于提供一种基于轻量级神经网络的车牌识别方法,采用CTC损失函数进行轻量级神经网络模型训练,实现无需分割的端到端训练,有效解决输入和输出不对齐的情况。
本发明通过下述技术方案实现:一种基于轻量级神经网络的车牌识别方法,包括数据集的准备、轻量级神经网络模型的构建及车牌的识别,
所述数据的准备,形成以车牌号码为文件名的车牌图片,具体为:
首先,从道路视频中获取视频截图,形成样本图像,并保存到images文件夹下;优选的,从监控探头下收集若干个行驶车辆的视频,并以每一秒保存一张图片的方式,共收集3余万张图片(样本图像),保存到images文件夹下,其中样本图像皆为带有车牌的车辆样本图像;
其次,对车辆样本图像进行车牌提取,将提取出来的车牌图片保存到plates文件夹下,并以车牌号码作为该车牌图片的文件名。
所述轻量级神经网络模型的构建包括下述步骤:
1)形成第一特征矩阵x1;
2)形成第二特征矩阵x2;
3)形成第三特征矩阵x3;
4)形成第四特征矩阵x4;
5)将第一特征矩阵x1,第二特征矩阵x2,第三特征矩阵x3,第四特征矩阵x4的通道进行融合,而后通过卷积核大小为1×1、步长为1的卷积层得到维度为[32,68,1,13]的特征向量;在车牌的识别中,步骤1)~步骤5)亦为车牌图片经过训练好的轻量级神经网络模型,最终生成目标字符序列的过程。
6)基于CTC损失函数完成轻量级神经网络网络模型训练。
所述车牌的识别具体为:
将一张待识别图片(车牌图片)输入到训练好的轻量级神经网络模型内,训练好的轻量级神经网络网络模型将经过类似步骤1)~5)的过程,生成目标字符序列,并对目标字符序列进行解码操作,即可得到最终的结果-正确的车牌号码。
在进行解码操作时,其解码过程为:
CHARS = ['京', '沪', '津', '渝', '冀', '晋', '蒙', '辽', '吉', '黑','苏', '浙', '皖', '闽', '赣', '鲁', '豫', '鄂', '湘', '粤','桂', '琼', '川', '贵', '云', '藏', '陕', '甘', '青', '宁','新','0', '1', '2', '3', '4', '5', '6', '7', '8', '9','A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K','L', 'M','N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'I', 'O', '-']为所有可能的车牌字符。其中'-'表示不存在字符。网络的输出是68*1*13,相当于为这张图片预测13个字符。每个字符有68种可能,为每种可能预测一个概率。选择概率最大的作为预测结果。最终过滤掉其中的‘-’就是最终的车牌号码。
进一步的为更好地实现本发明,特别采用下述设置方式:所述步骤2)具体为:
2.1)将第一特征矩阵x1输入到池化层得到[32,32,20,90]的特征矩阵;所述步骤2.1)中采用池化区域大小为(1,3,3)、步长为(1,1,1)的池化层;
2.2)将步骤2.1)所得的特征矩阵输入特殊卷积层(命名为small_basic_block),其输出结果经过归一化操作(batch normalization)和非线性激活(relu)后得到维度为[32,128,20,90]的第二特征矩阵x2。
进一步的为更好地实现本发明,特别采用下述设置方式:所述特殊卷积层设置有2个卷积核大小为1×1、步长为1的卷积层,1个卷积核大小为3×1、步长为1的卷积层,1个卷积核大小为1×3、步长为1的卷积层。
进一步的为更好地实现本发明,特别采用下述设置方式:所述步骤3)具体为:
3.1)将第二特征矩阵x2输入到池化区域大小为(1,3,3)、步长为(2,1,2)的池化层得到维度为[32,64,18,44]的特征矩阵;
3.2)将维度为[32,64,18,44]的特征矩阵通过两次特殊卷积层(命名为small_basic_block)、两次归一化操作(batch normalization)和两次非线性激活(relu)得到维度为[32, 256, 18, 44]的第三特征矩阵x3。
进一步的为更好地实现本发明,特别采用下述设置方式:所述步骤3.2)具体为:
3.2.1)维度为[32,64,18,44]的特征矩阵输入到特殊卷积层(命名为small_basic_block),输出的结果分别进行一次归一化操作(batch normalization)和一次非线性激活(relu);
3.2.2)步骤3.2.1的输出结果再次输入到特殊卷积层(命名为small_basic_block),输出结果再次进行一次归一化操作(batch normalization)和一次非线性激活(relu),得到维度为[32, 256, 18, 44]的第三特征矩阵x3;
即将维度为[32,64,18,44]的特征矩阵输入到特殊卷积层(命名为small_basic_block),其输出的结果经过归一化操作(batch normalization)和非线性激活(relu)后输出维度为[32, 256, 18, 44]的特征矩阵;而后再次将输出的维度为[32,256,18,44]的特征矩阵输入到特殊卷积层(命名为small_basic_block),其输出结果经过归一化操作(batch normalization)和非线性激活(relu)后输出维度为[32, 256, 18, 44]的第三特征矩阵x3。
进一步的为更好地实现本发明,特别采用下述设置方式:所述步骤4)具体为:
4.1)将第三特征矩阵x3经过池化操作得到维度为[32,64,16,21]的特征矩阵;所述步骤4.1)中在进行池化操作时,采用池化区域大小为(1,3,3)、步长为(4,1,2)的池化层;
4.2)将维度为[32,64,16,21]的特征矩阵利用第二二维卷积层和第三二维卷积层经过归一化操作(batch normalization)和非线性激活(relu)得到第四特征矩阵x4。
进一步的为更好地实现本发明,特别采用下述设置方式:所述步骤4.2)具体为:
4.2.1)将维度为[32,64,16,21]的特征矩阵输入到第二二维卷积层进行一次归一化操作(batch normalization)和非线性激活(relu)后输出维度为[32,256,16,18]的特征矩阵;
4.2.2)将步骤4.2.1)输出的结果输入到第三二维卷积层再次进行归一化操作(batch normalization)和非线性激活(relu),得到维度为[32,64,4,18]的第四特征矩阵x4。
进一步的为更好地实现本发明,特别采用下述设置方式:所述第二二维卷积层设置有256个大小为1×4且步长为1的卷积核;
所述第三二维卷积层设置有68个大小为13×1且步长为1的卷积核。
进一步的为更好地实现本发明,特别采用下述设置方式:所述步骤6)具体为:
将对应文件的标签(车牌图片对应的车牌名)编码为相同维度的序列,与步骤5)所述输出的特征向量一起送入CTC损失函数,进行轻量级神经网络网络模型训练。
采用CTC损失函数用于无需分割的端到端训练。CTC 损失函数是一种广泛地用于处理输入和输出序列不对齐的方法。而且,CTC损失函数提供了一个从每个时间步的可能性转化为输出序列的可能性的有效方法。对于后期过滤,本申请使用面向任务的语言模型实现一组车牌模板。然后过滤程序通过集束搜索找到前N个最有可能的序列并返回第一个与预定义模板集相匹配的模板。
进一步的为更好地实现本发明,特别采用下述设置方式:所述步骤1)具体为:将维度为[32,3,24,92]的矩阵输入第一二维卷积层经过归一化操作和非线性激活后得到维度为[32,64,22,92]的第一特征矩阵x1;所述第一二维卷积层设置有64个步长为1且大小为3×3的卷积核。
由于优化算法的功能是通过改善训练方式,来最小化(或最大化)损失函数。深度学习常常需要大量的时间和计算资源进行训练,这也是困扰深度学习算法开发的重大原因。虽然可以采用分布式并行训练加速模型的学习,但所需的计算资源并没有丝毫减少。而唯有需要资源更少、令模型收敛更快的最优化算法,才能从根本上加速机器的学习速度和效果。
本申请中选择的优化方法(即对轻量级神经网络模型的训练)是Adam(这个名字来源于 adaptive moment estimation,自适应矩估计)。Adam 最开始是由 OpenAI 的Diederik Kingma 和多伦多大学的 Jimmy Ba 在提交到 2015 年 ICLR 论文(Adam: AMethod for Stochastic Optimization)。
Adam是一种可以替代传统随机梯度下降过程的一阶优化算法,它能基于训练数据迭代地更新神经网络权重,随机梯度下降保持单一的学习率更新所有的权重,学习率在训练过程中并不会改变。而Adam通过计算梯度的一阶矩估计和二阶矩估计而为不同的参数设计独立的自适应性学习率,而且每次迭代参数的学习步长都有一个确定的范围,不会因为很大的梯度导致很大的学习步长,参数的值比较稳定。
在训练过程中,本申请采用了Adam优化器,batch(batch即训练、验证或使用过程中一个批次的参与计算的图片个数)的大小设定为32,初始学习率为0.001。梯度噪音比例为0.001。在训练的时候,本申请在每100k个迭代之后就让学习率下降十倍,并且总共训练250k个迭代。在实验中通过随机仿射变换,旋转,缩放以及平移等操作进行数据增强。
本发明与现有技术相比,具有以下优点及有益效果:
本发明采用CTC损失函数进行轻量级神经网络模型训练,实现无需分割的端到端训练,有效解决输入和输出不对齐的情况。
本发明采用端到端方式,无需实现对车牌字符区域的分割,就能够达到车牌字符识别的目的。
本发明采用轻量级卷积神经网络,使用了1*3和3*1的卷积层替代3*3的卷积层,减少了网络中的参数量,降低了计算量,从而提高了检测速度,并且能够获得更好的特征提取效果。
本发明解决了现有传统方法在复杂环境中易受光照、目标尺度和图像质量等因素影响,效率低下且泛化能力较差的问题。
附图说明
图1为本现有技术神经网络结构图。
图2为本发明所述的轻量级神经网络模型结构图。
图3为本发明所述的轻量级神经网络的构建流程图。
具体实施方式
下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。
为使本发明实施方式的目的、技术方案和优点更加清楚,下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。因此,以下对在附图中提供的本发明的实施方式的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施方式。基于本发明中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
实施例1:
本发明设计出一种基于轻量级神经网络的车牌识别方法,采用CTC损失函数进行轻量级神经网络模型训练,实现无需分割的端到端训练,有效解决输入和输出不对齐的情况,特别采用下述设置方式:包括数据集的准备、轻量级神经网络模型的构建及车牌的识别,
所述数据的准备,形成以车牌号码为文件名的车牌图片,具体为:
首先,从道路视频中获取视频截图,形成样本图像,并保存到images文件夹下;优选的,从监控探头下收集若干个行驶车辆的视频,并以每一秒保存一张图片的方式,共收集3余万张图片(样本图像),保存到images文件夹下,其中样本图像皆为带有车牌的车辆样本图像;
其次,对车辆样本图像进行车牌提取,将提取出来的车牌图片保存到plates文件夹下,并以车牌号码作为该车牌图片的文件名。
所述轻量级神经网络模型的构建包括下述步骤:
1)形成第一特征矩阵x1;
2)形成第二特征矩阵x2;
3)形成第三特征矩阵x3;
4)形成第四特征矩阵x4;
5)将第一特征矩阵x1,第二特征矩阵x2,第三特征矩阵x3,第四特征矩阵x4的通道进行融合,而后通过卷积核大小为1×1、步长为1的卷积层得到维度为[32,68,1,13]的特征向量;此举(即步骤1)~步骤5))在车牌的识别中亦为车牌图片经过训练好的轻量级神经网络模型,最终生成目标字符序列的过程。
6)基于CTC损失函数完成轻量级神经网络网络模型训练。
所述车牌的识别具体为:
将一张待识别图片(车牌图片)输入到训练好的轻量级神经网络模型内,训练好的轻量级神经网络网络模型将经过类似步骤1)~5)的过程,生成目标字符序列,并对目标字符序列进行解码操作,即可得到最终的结果-正确的车牌号码。
在进行解码操作时,其解码过程为:
CHARS = ['京', '沪', '津', '渝', '冀', '晋', '蒙', '辽', '吉', '黑','苏', '浙', '皖', '闽', '赣', '鲁', '豫', '鄂', '湘', '粤','桂', '琼', '川', '贵', '云', '藏', '陕', '甘', '青', '宁','新','0', '1', '2', '3', '4', '5', '6', '7', '8', '9','A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K','L', 'M','N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'I', 'O', '-']为所有可能的车牌字符。其中'-'表示不存在字符。网络的输出是68*1*13,相当于为这张图片预测13个字符。每个字符有68种可能,为每种可能预测一个概率。选择概率最大的作为预测结果。最终过滤掉其中的‘-’就是最终的车牌号码。
实施例2:
本实施例是在上述实施例的基础上进一步优化,与前述技术方案相同部分在此将不再赘述,进一步的为更好地实现本发明,特别采用下述设置方式:所述步骤1)具体为:将维度为[32,3,24,92]的矩阵输入第一二维卷积层经过归一化操作(batch normalization)和非线性激活(relu)后得到维度为[32,64,22,92]的第一特征矩阵x1;所述第一二维卷积层设置有64个步长为1且大小为3×3的卷积核。
实施例3:
本实施例是在上述任一实施例的基础上进一步优化,与前述技术方案相同部分在此将不再赘述,进一步的为更好地实现本发明,特别采用下述设置方式:所述步骤2)具体为:
2.1)将第一特征矩阵x1输入到池化层得到[32,32,20,90]的特征矩阵;所述步骤2.1)中采用池化区域大小为(1,3,3)、步长为(1,1,1)的池化层;
2.2)将步骤2.1)所得的特征矩阵输入特殊卷积层(命名为small_basic_block),其输出结果经过归一化操作(batch normalization)和非线性激活(relu)后得到维度为[32,128,20,90]的第二特征矩阵x2。
实施例4:
本实施例是在上述任一实施例的基础上进一步优化,与前述技术方案相同部分在此将不再赘述,进一步的为更好地实现本发明,特别采用下述设置方式:所述特殊卷积层设置有2个卷积核大小为1×1、步长为1的卷积层,1个卷积核大小为3×1、步长为1的卷积层,1个卷积核大小为1×3、步长为1的卷积层。
实施例5:
本实施例是在上述任一实施例的基础上进一步优化,与前述技术方案相同部分在此将不再赘述,进一步的为更好地实现本发明,特别采用下述设置方式:所述步骤3)具体为:
3.1)将第二特征矩阵x2输入到池化区域大小为(1,3,3)、步长为(2,1,2)的池化层得到维度为[32,64,18,44]的特征矩阵;
3.2)将维度为[32,64,18,44]的特征矩阵通过两次特殊卷积层(命名为small_basic_block)、两次归一化操作(batch normalization)和两次非线性激活(relu)得到维度为[32, 256, 18, 44]的第三特征矩阵x3。
实施例6:
本实施例是在上述任一实施例的基础上进一步优化,与前述技术方案相同部分在此将不再赘述,进一步的为更好地实现本发明,特别采用下述设置方式:所述步骤3.2)具体为:
3.2.1)维度为[32,64,18,44]的特征矩阵输入到特殊卷积层(命名为small_basic_block),输出的结果分别进行一次归一化操作(batch normalization)和一次非线性激活(relu);
3.2.2)步骤3.2.1的输出结果再次输入到特殊卷积层(命名为small_basic_block),输出结果再次进行一次归一化操作(batch normalization)和一次非线性激活(relu),得到维度为[32, 256, 18, 44]的第三特征矩阵x3;
即将维度为[32,64,18,44]的特征矩阵输入到特殊卷积层(命名为small_basic_block),其输出的结果经过归一化操作(batch normalization)和非线性激活(relu)后输出维度为[32, 256, 18, 44]的特征矩阵;而后再次将输出的维度为[32,256,18,44]的特征矩阵输入到特殊卷积层(命名为small_basic_block),其输出结果经过归一化操作(batch normalization)和非线性激活(relu)后输出维度为[32, 256, 18, 44]的第三特征矩阵x3。
实施例7:
本实施例是在上述任一实施例的基础上进一步优化,与前述技术方案相同部分在此将不再赘述,进一步的为更好地实现本发明,特别采用下述设置方式:所述步骤4)具体为:
4.1)将第三特征矩阵x3经过池化操作得到维度为[32,64,16,21]的特征矩阵;所述步骤4.1)中在进行池化操作时,采用池化区域大小为(1,3,3)、步长为(4,1,2)的池化层;
4.2)将维度为[32,64,16,21]的特征矩阵利用第二二维卷积层和第三二维卷积层经过归一化操作(batch normalization)和非线性激活(relu)得到第四特征矩阵x4。
实施例8:
本实施例是在上述任一实施例的基础上进一步优化,与前述技术方案相同部分在此将不再赘述,进一步的为更好地实现本发明,特别采用下述设置方式:所述步骤4.2)具体为:
4.2.1)将维度为[32,64,16,21]的特征矩阵输入到第二二维卷积层进行一次归一化操作(batch normalization)和非线性激活(relu)后输出维度为[32,256,16,18]的特征矩阵;
4.2.2)将步骤4.2.1)输出的结果输入到第三二维卷积层再次进行归一化操作(batch normalization)和非线性激活(relu),得到维度为[32,64,4,18]的第四特征矩阵x4。
实施例9:
本实施例是在上述任一实施例的基础上进一步优化,与前述技术方案相同部分在此将不再赘述,进一步的为更好地实现本发明,特别采用下述设置方式:所述第二二维卷积层设置有256个大小为1×4且步长为1的卷积核;
所述第三二维卷积层设置有68个大小为13×1且步长为1的卷积核。
实施例10:
本实施例是在上述任一实施例的基础上进一步优化,与前述技术方案相同部分在此将不再赘述,进一步的为更好地实现本发明,特别采用下述设置方式:所述步骤6)具体为:
将对应文件的标签(车牌图片对应的车牌名)编码为相同维度的序列,与步骤5)所述输出的特征向量一起送入CTC损失函数,进行轻量级神经网络网络模型训练。
实施例11:
本实施例是在上述任一实施例的基础上进一步优化,一种基于轻量级神经网络的车牌识别方法,如图2、图3所示,包括下述步骤:
(1)准备数据集:首先,从道路视频中获取视频截图,形成样本图像,并保存到images文件夹下;优选的,从监控探头下收集若干个行驶车辆的视频,并以每一秒保存一张图片的方式,共收集3余万张图片(样本图像),保存到images文件夹下,其中样本图像皆为带有车牌的车辆样本图像;
其次,对车辆样本图像进行车牌提取,将提取出来的车牌图片保存到plates文件夹下,并以车牌号码作为该车牌图片的文件名。
(2)构建轻量级神经网络模型:
为了保证网络的轻量性,该实施例中将使用较少的卷积层,如图1所示为现有技术神经网络结构,当输入是一张94*24的RGB图像,通过5个卷积层计算出大量特征的空间分布。本申请对其进一步进行改进,将其中三个常规3*3的卷积层替换为1*1、1*3和3*1的卷积层(即图1中的small basic block),即如图2所示的本申请的轻量级神经网络模型,这样可以在保证网络的性能条件下,极大的减少网络参数和计算量。
最后本申请采用1*13的宽卷积利用本地字符的上下文。轻量级神经网络的输出可以被认为是一个代表对应字符可能性的序列,它的长度刚到等于输入图像的宽度。由于解码器的输出与目标字符序列的长度是不一致的,因此本实施例采用CTC损失函数用于无需分割的端到端训练。CTC 损失函数是一种广泛地用于处理输入和输出序列不对齐的方法。而且,CTC损失函数提供了一个从每个时间步的可能性转化为输出序列的可能性的有效方法。对于后期过滤,本申请使用面向任务的语言模型实现一组车牌模板。然后过滤程序通过集束搜索找到前N个最有可能的序列并返回第一个与预定义模板集相匹配的模板。
(3)优化方法与训练:
由于优化算法的功能是通过改善训练方式,来最小化(或最大化)损失函数。深度学习常常需要大量的时间和计算资源进行训练,这也是困扰深度学习算法开发的重大原因。虽然可以采用分布式并行训练加速模型的学习,但所需的计算资源并没有丝毫减少。而唯有需要资源更少、令模型收敛更快的最优化算法,才能从根本上加速机器的学习速度和效果。
本申请中选择的优化方法(即对轻量级神经网络模型的训练)是Adam(这个名字来源于 adaptive moment estimation,自适应矩估计)。Adam 最开始是由 OpenAI 的Diederik Kingma 和多伦多大学的 Jimmy Ba 在提交到 2015 年 ICLR 论文(Adam: AMethod for Stochastic Optimization)。
Adam是一种可以替代传统随机梯度下降过程的一阶优化算法,它能基于训练数据迭代地更新神经网络权重,随机梯度下降保持单一的学习率更新所有的权重,学习率在训练过程中并不会改变。而Adam通过计算梯度的一阶矩估计和二阶矩估计而为不同的参数设计独立的自适应性学习率,而且每次迭代参数的学习步长都有一个确定的范围,不会因为很大的梯度导致很大的学习步长,参数的值比较稳定。
在训练过程中,本申请采用了Adam优化器,batch(batch即训练、验证或使用过程中一个批次的参与计算的图片个数)的大小设定为32,初始学习率为0.001。梯度噪音比例为0.001。在训练的时候,本申请在每100k个迭代之后就让学习率下降十倍,并且总共训练250k个迭代。在实验中通过随机仿射变换,旋转,缩放以及平移等操作进行数据增强。
具体的,所述车牌识别方法的详细过程为:
A)设置一个批次的图片个数为32,每一个批次输入即为32张RGB图像,以维度为[32,3,24,92]的矩阵的形式输入到轻量级神经网络。
B)将步骤A)中[32,3,24,92]的矩阵输入一个二维卷积层(该二维卷积层设置了64个大小为3×3的卷积核、步长为1),经过归一化操作(batch normalization)和非线性激活(relu)后得到维度为[32,64,22,92]的特征矩阵,记录此结果为x1。
C)将步骤B)中[32,3,22,92]的特征矩阵输入到池化区域大小为(1,3,3)、步长为(1,1,1)的池化层,得到维度为[32,32,20,90]的特征矩阵。
D)将步骤C)中的维度为[32,3,20,90]的特征矩阵输入一个具有特殊结构的卷积层(将其命名为small_basic_block,它由2个卷积核大小为1×1、步长为1的卷积层,1个卷积核大小为3×1、步长为1的卷积层,1个卷积核大小为1×3、步长为1的卷积层构成),其输出结果经过归一化操作(batch normalization)和非线性激活(relu)后得到维度为[32,128,20,90]的特征矩阵,记录此结果为x2。
E)将步骤D)中[32,128,20,90]的特征矩阵输入到池化区域大小为(1,3,3)、步长为(2,1,2)的池化层,得到维度为[32,64,18,44]的特征矩阵。
F)步骤E)中的维度为[32,64,18,44]的特征矩阵输入small_basic_block(步骤D)中的特殊结构的卷积层),其输出结果经过归一化操作(batch normalization)和非线性激活(relu)后得到维度为[32, 256, 18, 44]的特征矩阵。
G)将步骤F)中的输出输入small_basic_block(步骤D)中的特殊结构的卷积层),其输出结果经过归一化操作(batch normalization)和非线性激活(relu)后得到维度为[32, 256, 18, 44]的特征矩阵,记录此结果为x3。
H)步骤G)中的输出经过池化区域大小为(1,3,3)、步长为(4,1,2)的池化层进行池化操作得到维度为[32,64,16,21]的特征矩阵。
I)步骤H)中的结果输入一个二维卷积层(即第二二维卷积层,该二维卷积层设置了256个大小为1×4的卷积核,步长为1)经过归一化操作(batch normalization)和非线性激活(relu)后得到维度为[32,256,16,18]的特征矩阵。
J)步骤I)中的结果输入一个二维卷积层(即第三二维卷积层,该二维卷积层设置了68个大小为13×1的卷积核,步长为1)经过归一化操作(batch normalization)和非线性激活(relu)后得到维度为[32,64,4,18]的特征矩阵,记录此结果为x4。
K)将x1,x2,x3,x4通道融合后,经过卷积层,输入卷积核大小为1×1,步长为1的卷积层,得到维度为[32,68,1,13]的特征向量,此举(即步骤1)~步骤5))在车牌的识别中亦为车牌图片经过训练好的轻量级神经网络模型,最终生成目标字符序列的过程。
L)将对应文件的标签(车牌图片对应的车牌名)编码为相同维度的序列,与步骤K)的输出一起送入损失函数,进行训练;损失函数选择CTC损失函数。
M)使用训练好的轻量级神经网络模型对车牌图片进行识别时,输入一张待识别图片,类似于上述过程(步骤A~步骤K)),训练好的轻量级神经网络模型生成目标字符序列,对目标字符序列进行解码操作,即可得到最终的结果—正确的车牌号码。
以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化,均落入本发明的保护范围之内。
Claims (1)
1.一种基于轻量级神经网络的车牌识别方法,包括数据集的准备、轻量级神经网络模型的构建及车牌的识别;其特征在于:采用端到端方式,无需对车牌字符区域分割,就能够识别车牌字符;
所述数据集的准备,形成以车牌号码为文件名的车牌图片,具体为:
首先,从道路视频中获取视频截图,形成样本图像,并保存到images文件夹下;从监控探头下收集若干个行驶车辆的视频,并以每一秒保存一张图片的方式,保存到images文件夹下,其中样本图像皆为带有车牌的车辆样本图像;
其次,对车辆样本图像进行车牌提取,将提取出来的车牌图片保存到plates文件夹下,并以车牌号码作为该车牌图片的文件名;
所述轻量级神经网络模型的构建包括下述步骤:
1)形成第一特征矩阵x1:将维度为[32,3,24,92]的矩阵输入第一二维卷积层经过归一化操作和非线性激活后得到维度为[32,64,22,92]的第一特征矩阵x1;
2)形成第二特征矩阵x2,具体为:
2.1)将第一特征矩阵x1输入到池化层得到[32,32,20,90]的特征矩阵;
2.2)将步骤2.1)所得的特征矩阵输入特殊卷积层,其输出结果经过归一化操作和非线性激活后得到维度为[32,128,20,90]的第二特征矩阵x2,其中,所述特殊卷积层设置有2个卷积核大小为1×1、步长为1的卷积层,1个卷积核大小为3×1、步长为1的卷积层,1个卷积核大小为1×3、步长为1的卷积层;
3)形成第三特征矩阵x3,具体为:
3.1)将第二特征矩阵x2输入到池化区域大小为(1,3,3)、步长为(2,1,2)的池化层得到维度为[32,64,18,44]的特征矩阵;
3.2)将维度为[32,64,18,44]的特征矩阵通过两次特殊卷积层、两次归一化操作和两次非线性激活得到维度为[32,256,18,44]的第三特征矩阵x3,具体为:
3.2.1)维度为[32,64,18,44]的特征矩阵输入到特殊卷积层,输出的结果分别进行一次归一化操作和一次非线性激活;
3.2.2)步骤3.2.1的输出结果再次输入到特殊卷积层,输出结果再次进行一次归一化操作和一次非线性激活,得到维度为[32,256,18,44]的第三特征矩 阵x3;
4)形成第四特征矩阵x4,具体为:
4.1)将第三特征矩阵x3经过池化操作得到维度为[32,64,16,21]的特征矩阵;
4.2)将维度为[32,64,16,21]的特征矩阵利用第二二维卷积层和第三二维卷积层经过归一化操作和非线性激活得到第四特征矩阵x4,具体为:
4.2.1)将维度为[32,64,16,21]的特征矩阵输入到第二二维卷积层进行一次归一化操作和非线性激活,其中,第二二维卷积层设置有256个大小为1×4且步长为1的卷积核;
4.2.2)将步骤4.2.1)输出的结果输入到第三二维卷积层再次进行归一化操作和非线性激活,得到第四特征矩阵x4,其中,第三二维卷积层设置有68个大小为13×1且步长为1的卷积核;
5)将第一特征矩阵x1,第二特征矩阵x2,第三特征矩阵x3,第四特征矩阵x4的通道进行融合,而后通过卷积核大小为1×1、步长为1的卷积层得到特征向量;
6)将对应文件的标签,即车牌图片对应的车牌名编码为相同维度的序列,与步骤5)输出的特征向量一起送入CTC损失函数,进行轻量级神经网络网络模型训练;
所述车牌的识别,具体为:
将一张待识别车牌图片输入到训练好的轻量级神经网络模型内,训练好的轻量级神经网络网络模型经过步骤1)~5)的过程,生成目标字符序列,并对目标字符序列进行解码操作,即可得到最终的结果-正确的车牌号码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010009951.0A CN111160316B (zh) | 2020-01-06 | 2020-01-06 | 一种基于轻量级神经网络的车牌识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010009951.0A CN111160316B (zh) | 2020-01-06 | 2020-01-06 | 一种基于轻量级神经网络的车牌识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111160316A CN111160316A (zh) | 2020-05-15 |
CN111160316B true CN111160316B (zh) | 2022-07-08 |
Family
ID=70561540
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010009951.0A Active CN111160316B (zh) | 2020-01-06 | 2020-01-06 | 一种基于轻量级神经网络的车牌识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111160316B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105354572A (zh) * | 2015-12-10 | 2016-02-24 | 苏州大学 | 一种基于简化卷积神经网络的车牌自动识别系统 |
CN108388896A (zh) * | 2018-02-09 | 2018-08-10 | 杭州雄迈集成电路技术有限公司 | 一种基于动态时序卷积神经网络的车牌识别方法 |
CN108549892A (zh) * | 2018-06-12 | 2018-09-18 | 东南大学 | 一种基于卷积神经网络的车牌图像清晰化方法 |
KR101970442B1 (ko) * | 2018-12-04 | 2019-04-19 | 주식회사 넥스파시스템 | Fast R-CNN 기반 차량검출을 이용한 불법 주정차 단속 시스템 |
CN109784340A (zh) * | 2018-12-14 | 2019-05-21 | 北京市首都公路发展集团有限公司 | 一种车牌识别方法及装置 |
CN110427937A (zh) * | 2019-07-18 | 2019-11-08 | 浙江大学 | 一种基于深度学习的倾斜车牌矫正和不定长车牌识别方法 |
CN110619327A (zh) * | 2018-06-20 | 2019-12-27 | 湖南省瞬渺通信技术有限公司 | 一种复杂场景下基于深度学习的实时车牌识别方法 |
-
2020
- 2020-01-06 CN CN202010009951.0A patent/CN111160316B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105354572A (zh) * | 2015-12-10 | 2016-02-24 | 苏州大学 | 一种基于简化卷积神经网络的车牌自动识别系统 |
CN108388896A (zh) * | 2018-02-09 | 2018-08-10 | 杭州雄迈集成电路技术有限公司 | 一种基于动态时序卷积神经网络的车牌识别方法 |
CN108549892A (zh) * | 2018-06-12 | 2018-09-18 | 东南大学 | 一种基于卷积神经网络的车牌图像清晰化方法 |
CN110619327A (zh) * | 2018-06-20 | 2019-12-27 | 湖南省瞬渺通信技术有限公司 | 一种复杂场景下基于深度学习的实时车牌识别方法 |
KR101970442B1 (ko) * | 2018-12-04 | 2019-04-19 | 주식회사 넥스파시스템 | Fast R-CNN 기반 차량검출을 이용한 불법 주정차 단속 시스템 |
CN109784340A (zh) * | 2018-12-14 | 2019-05-21 | 北京市首都公路发展集团有限公司 | 一种车牌识别方法及装置 |
CN110427937A (zh) * | 2019-07-18 | 2019-11-08 | 浙江大学 | 一种基于深度学习的倾斜车牌矫正和不定长车牌识别方法 |
Non-Patent Citations (2)
Title |
---|
Toward End-to-End Car License Plate Detection and Recognition With Deep Neural Networks;H. Li 等;《IEEE Transactions on Intelligent Transportation Systems》;20180802;第20卷(第03期);1126-1136 * |
基于卷积神经网络的车牌识别技术;刘建国 等;《物流技术》;20181029;第37卷(第10期);62-66,126 * |
Also Published As
Publication number | Publication date |
---|---|
CN111160316A (zh) | 2020-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Sun et al. | Research on the hand gesture recognition based on deep learning | |
CN109840521B (zh) | 一种基于深度学习的一体化车牌识别方法 | |
CN111104903B (zh) | 一种深度感知交通场景多目标检测方法和系统 | |
CN110163069B (zh) | 用于辅助驾驶的车道线检测方法 | |
CN107016664B (zh) | 一种大圆机的坏针瑕疵检测方法 | |
CN109063723A (zh) | 基于迭代挖掘物体共同特征的弱监督图像语义分割方法 | |
CN110188827B (zh) | 一种基于卷积神经网络和递归自动编码器模型的场景识别方法 | |
CN111639564B (zh) | 一种基于多注意力异构网络的视频行人重识别方法 | |
CN109271991A (zh) | 一种基于深度学习的车牌检测方法 | |
CN108898138A (zh) | 基于深度学习的场景文本识别方法 | |
CN111310766A (zh) | 基于编解码和二维注意力机制的车牌识别方法 | |
CN108230330B (zh) | 一种快速的高速公路路面分割和摄像机定位的方法 | |
CN113657414B (zh) | 一种物体识别方法 | |
CN111008632A (zh) | 一种基于深度学习的车牌字符分割方法 | |
CN106874825A (zh) | 人脸检测的训练方法、检测方法和装置 | |
CN113128620A (zh) | 一种基于层次关系的半监督领域自适应图片分类方法 | |
Dorbe et al. | FCN and LSTM based computer vision system for recognition of vehicle type, license plate number, and registration country | |
CN108416795B (zh) | 基于排序池化融合空间特征的视频动作识别方法 | |
Hamian et al. | Semantic segmentation of autonomous driving images by the combination of deep learning and classical segmentation | |
CN114743109A (zh) | 多模型协同优化高分遥感图像半监督变化检测方法及系统 | |
CN113627477B (zh) | 车辆多属性识别方法及系统 | |
CN110991374A (zh) | 一种基于rcnn的指纹奇异点检测方法 | |
CN114743126A (zh) | 一种基于图注意力机制网络的车道线标志分割方法 | |
CN117854104A (zh) | 一种基于特征对齐的无监督行人重识别方法 | |
Zhang et al. | IQ-STAN: Image quality guided spatio-temporal attention network for license plate recognition |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |