一种基于轻量级神经网络的车牌识别方法与流程

文档序号:20755534发布日期:2020-05-15 17:23阅读:295来源:国知局
一种基于轻量级神经网络的车牌识别方法与流程

本发明涉及模式识别技术、交通监控技术等领域,具体的说,是一种基于轻量级神经网络的车牌识别方法。



背景技术:

车牌识别是现代智能交通系统中的一个至关重要的环节,是智能交通系统中的核心功能,使用技术手段提取出车辆的车牌号码,从而获得车辆信息。在我国,机动车号牌需要在交通管理部门申请登记,车牌与车辆之间存在一对一的关系,因此可以根据机动车号牌对机动车辆进行信息获取、管理和监控。在这种情形下,需要车牌识别系统,对车牌号码信息高效、精确的进行快速采集。

通过自动车牌识别系统提取车辆的车牌号码,获得交通流量、车辆类型等基础数据,有目的地实现监测、控制、分析、决策、调度和疏导,实现交通资源的最大化,从而能够提升整个智能交通系统的健壮性。

在已有的车牌识别解决方案中,分为基于传统方法与基于深度学习两类,前者使用传统的机器学习方法分割分类字符,后者使用神经网络定位分类字符。

当前主流的车辆识别方法(基于传统方法)根据边缘密度进行背景剔除,通过亮度方差和边缘强度来增强图像的对比度,再设计相应的匹配滤波器结合边缘密度和颜色信息进行车牌的定位,使用基于垂直投影等方法进行字符分割,再使用基于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),其输出结果经过归一化操作(batchnormalization)和非线性激活(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)、两次归一化操作(batchnormalization)和两次非线性激活(relu)得到维度为[32,256,18,44]的第三特征矩阵x3。

进一步的为更好地实现本发明,特别采用下述设置方式:所述步骤3.2)具体为:

3.2.1)维度为[32,64,18,44]的特征矩阵输入到特殊卷积层(命名为small_basic_block),输出的结果分别进行一次归一化操作(batchnormalization)和一次非线性激活(relu);

3.2.2)步骤3.2.1的输出结果再次输入到特殊卷积层(命名为small_basic_block),输出结果再次进行一次归一化操作(batchnormalization)和一次非线性激活(relu),得到维度为[32,256,18,44]的第三特征矩阵x3;

即将维度为[32,64,18,44]的特征矩阵输入到特殊卷积层(命名为small_basic_block),其输出的结果经过归一化操作(batchnormalization)和非线性激活(relu)后输出维度为[32,256,18,44]的特征矩阵;而后再次将输出的维度为[32,256,18,44]的特征矩阵输入到特殊卷积层(命名为small_basic_block),其输出结果经过归一化操作(batchnormalization)和非线性激活(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]的特征矩阵利用第二二维卷积层和第三二维卷积层经过归一化操作(batchnormalization)和非线性激活(relu)得到第四特征矩阵x4。

进一步的为更好地实现本发明,特别采用下述设置方式:所述步骤4.2)具体为:

4.2.1)将维度为[32,64,16,21]的特征矩阵输入到第二二维卷积层进行一次归一化操作(batchnormalization)和非线性激活(relu)后输出维度为[32,256,16,18]的特征矩阵;

4.2.2)将步骤4.2.1)输出的结果输入到第三二维卷积层再次进行归一化操作(batchnormalization)和非线性激活(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(这个名字来源于adaptivemomentestimation,自适应矩估计)。adam最开始是由openai的diederikkingma和多伦多大学的jimmyba在提交到2015年iclr论文(adam:amethodforstochasticoptimization)。

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]的矩阵输入第一二维卷积层经过归一化操作(batchnormalization)和非线性激活(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),其输出结果经过归一化操作(batchnormalization)和非线性激活(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)、两次归一化操作(batchnormalization)和两次非线性激活(relu)得到维度为[32,256,18,44]的第三特征矩阵x3。

实施例6:

本实施例是在上述任一实施例的基础上进一步优化,与前述技术方案相同部分在此将不再赘述,进一步的为更好地实现本发明,特别采用下述设置方式:所述步骤3.2)具体为:

3.2.1)维度为[32,64,18,44]的特征矩阵输入到特殊卷积层(命名为small_basic_block),输出的结果分别进行一次归一化操作(batchnormalization)和一次非线性激活(relu);

3.2.2)步骤3.2.1的输出结果再次输入到特殊卷积层(命名为small_basic_block),输出结果再次进行一次归一化操作(batchnormalization)和一次非线性激活(relu),得到维度为[32,256,18,44]的第三特征矩阵x3;

即将维度为[32,64,18,44]的特征矩阵输入到特殊卷积层(命名为small_basic_block),其输出的结果经过归一化操作(batchnormalization)和非线性激活(relu)后输出维度为[32,256,18,44]的特征矩阵;而后再次将输出的维度为[32,256,18,44]的特征矩阵输入到特殊卷积层(命名为small_basic_block),其输出结果经过归一化操作(batchnormalization)和非线性激活(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]的特征矩阵利用第二二维卷积层和第三二维卷积层经过归一化操作(batchnormalization)和非线性激活(relu)得到第四特征矩阵x4。

实施例8:

本实施例是在上述任一实施例的基础上进一步优化,与前述技术方案相同部分在此将不再赘述,进一步的为更好地实现本发明,特别采用下述设置方式:所述步骤4.2)具体为:

4.2.1)将维度为[32,64,16,21]的特征矩阵输入到第二二维卷积层进行一次归一化操作(batchnormalization)和非线性激活(relu)后输出维度为[32,256,16,18]的特征矩阵;

4.2.2)将步骤4.2.1)输出的结果输入到第三二维卷积层再次进行归一化操作(batchnormalization)和非线性激活(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中的smallbasicblock),即如图2所示的本申请的轻量级神经网络模型,这样可以在保证网络的性能条件下,极大的减少网络参数和计算量。

最后本申请采用1*13的宽卷积利用本地字符的上下文。轻量级神经网络的输出可以被认为是一个代表对应字符可能性的序列,它的长度刚到等于输入图像的宽度。由于解码器的输出与目标字符序列的长度是不一致的,因此本实施例采用ctc损失函数用于无需分割的端到端训练。ctc损失函数是一种广泛地用于处理输入和输出序列不对齐的方法。而且,ctc损失函数提供了一个从每个时间步的可能性转化为输出序列的可能性的有效方法。对于后期过滤,本申请使用面向任务的语言模型实现一组车牌模板。然后过滤程序通过集束搜索找到前n个最有可能的序列并返回第一个与预定义模板集相匹配的模板。

(3)优化方法与训练:

由于优化算法的功能是通过改善训练方式,来最小化(或最大化)损失函数。深度学习常常需要大量的时间和计算资源进行训练,这也是困扰深度学习算法开发的重大原因。虽然可以采用分布式并行训练加速模型的学习,但所需的计算资源并没有丝毫减少。而唯有需要资源更少、令模型收敛更快的最优化算法,才能从根本上加速机器的学习速度和效果。

本申请中选择的优化方法(即对轻量级神经网络模型的训练)是adam(这个名字来源于adaptivemomentestimation,自适应矩估计)。adam最开始是由openai的diederikkingma和多伦多大学的jimmyba在提交到2015年iclr论文(adam:amethodforstochasticoptimization)。

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),经过归一化操作(batchnormalization)和非线性激活(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的卷积层构成),其输出结果经过归一化操作(batchnormalization)和非线性激活(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)中的特殊结构的卷积层),其输出结果经过归一化操作(batchnormalization)和非线性激活(relu)后得到维度为[32,256,18,44]的特征矩阵。

g)将步骤f)中的输出输入small_basic_block(步骤d)中的特殊结构的卷积层),其输出结果经过归一化操作(batchnormalization)和非线性激活(relu)后得到维度为[32,256,18,44]的特征矩阵,记录此结果为x3。

h)步骤g)中的输出经过池化区域大小为(1,3,3)、步长为(4,1,2)的池化层进行池化操作得到维度为[32,64,16,21]的特征矩阵。

i)步骤h)中的结果输入一个二维卷积层(即第二二维卷积层,该二维卷积层设置了256个大小为1×4的卷积核,步长为1)经过归一化操作(batchnormalization)和非线性激活(relu)后得到维度为[32,256,16,18]的特征矩阵。

j)步骤i)中的结果输入一个二维卷积层(即第三二维卷积层,该二维卷积层设置了68个大小为13×1的卷积核,步长为1)经过归一化操作(batchnormalization)和非线性激活(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)),训练好的轻量级神经网络模型生成目标字符序列,对目标字符序列进行解码操作,即可得到最终的结果—正确的车牌号码。

以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化,均落入本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1