基于改进的YOLOv3网络的车牌检测模型及构建方法与流程

文档序号:20920330发布日期:2020-05-29 14:03阅读:403来源:国知局
基于改进的YOLOv3网络的车牌检测模型及构建方法与流程

本发明属于计算机视觉领域,特别是涉及到一种基于改进的yolov3网络的车牌检测模型及构建方法。



背景技术:

随着经济社会的迅猛发展,人们生活水平的提高,机动车辆的数量急剧增加。为了提高车辆的管理效率,缓解公路上的交通压力,我们必须找到一种解决方案。而车牌作为能够唯一确定汽车身份的凭证,解决在道路交通中对于车牌的检测,则可以极大地提高汽车的安全管理水平及管理效率。

在传统的车牌检测是通过图形分割和图像识别理论,对含有车牌号的图像进行分析处理,从而确定牌照在图像中的位置。但是基于图像图形学的定位方法,容易受到外界干扰信息的干扰而造成定位失败。比如基于颜色分析的定为方法中,如果车牌背景颜色与车牌颜色相近,则很难从背景中提取车牌。外界的干扰信息也会欺骗定位算法,使得定位算法生成过多的非车牌候选区域,增大了系统负荷,使得字符识别不准确。

卷积神经网络的出现,相较于几何结构和子空间布局特征,极大地改善了物体检测与识别的效果。目前主流的深度学习检测算法有fasterrcnn(fasterregionwithcnnfeatures)、ssd(singleshotmultiboxdetector)和yolo(youonlylookonce)。最新的yolov3网络相对于其他算法和网络具有最快的检测速度和高检测识别率。但是现有技术将yolov3网络应用到车牌检测中,由于yolov3网络实现的检测种类繁多,单个目标的检测既复杂又冗余,参数过多会导致训练过于复杂,影响数据量和训练速度的需求。



技术实现要素:

本发明的目的在于解决上述现有技术存在的以上技术问题,提供一种基于改进的yolov3网络的车牌检测模型及构建方法。

为了实现上述技术目的,本发明的技术方案为:

一方面,本发明提供了一种改进的yolov3网络的车牌检测模型,其特征在于,包括:改进的yolov3网络、concat模块、编码器解码器模块、特征聚合模和车牌检测模型训练模块;

所述改进的yolov3网络用于输入车牌图像并提取三个不同尺度的特征图;所述改进的yolov3网络结构的第一层和最后一层是标准卷积,其他网络均由下采样层和网络单元块构成;

所述concat模块用于对得到的三个不同尺度的特征图进行上采样后将深度特征缩放到相同比例,将输出传递到编码器解码器模块;

所述编码器解码器模块用于对其输入的特征图进行向下采样,通过构建的卷积层进行解码生成增强特征后的特征图;

所述特征聚合模块,用于将生成的增强特征后的三个不同尺度的特征图和来自yolov3特征提取网络提取的三个不同尺度的特征图进行特征聚合,生成特征金字塔,获得基于改进的yolov3网络的车牌检测模型;

所述车牌检测模型训练模块用于利用测试集对所述基于改进的yolov3网络的车牌检测模型进行训练,调整yolov3网络的权重参数,直至判断输出日志中的loss函数收敛则确定网络训练完毕,获得训练完成的基于改进的yolov3网络的车牌检测模型。

第二方面,本发明提供了一种基于改进的yolov3网络的车牌检测模型的构建方法,其特征在于,包括以下步骤:

采用改进的yolov3网络作为特征提取网络,提取三个不同尺度的特征图,对所述不同尺度的特征图进行上采样后将深度特征缩放到相同比例后再进行向下采样,通过构建的卷积层进行解码生成增强特征后的特征图;

将生成的增强特征后的三个不同尺度特征图和来自yolov3特征提取网络提取的三个不同尺度的特征图进行特征聚合,生成特征金字塔,获得改进的yolov3网络的车牌检测模型;

利用测试集对所述改进的yolov3网络的车牌检测模型进行训练,调整yolov3网络的权重参数,直至判断输出日志中的loss函数收敛则确定网络训练完毕,获得训练完成的基于改进的yolov3网络的车牌检测模型;

所述改进的yolov3网络结构的第一层和最后一层是标准卷积,其他网络均采用包括下采样层和网络单元块的深度可分离卷积结构。

进一步地,所述下采样层包括3*3的深度分离卷积层,经过批量规范化层,通过relu激活函数连接1*1卷积层作用是在不影响输入输出维数的情况下,对输入进行线性形变,然后通过relu激活函数进行非线性处理。

进一步地,使用shortcut连接的方式建立网络单元块,在网络单元格中,每个残差表示里面使用三个堆栈,这三层分别是1×1、3×3和1×1的卷积层。

进一步地,网络单元块中采用通道随机混合操作对通道进行重新排序。

进一步地,将生成的增强特征后的三个不同尺度特征图和来自yolov3特征提取网络提取的特征图进行特征聚合的具体方法如下:

将特征增强后的不同尺度特征图和来自yolov3特征提取网络提取的三个不同尺度的特征沿通道尺度的等效比例连接起来;

引进一个基于通道的se模块依次进行挤压操作、激励操作和重标定操作,从而完成聚合特征的操作;

所述挤压操作将每个二维的特征通道变成一个实数,并且输出的维度和输入的特征通道数相匹配,所述激励操作通过参数来为每个特征通道生成权重;所述重标定操作将经过激励操作后输出的权重通过乘法逐通道加权到先前的特征上,完成在通道维度上的对原始特征的重标定。

进一步地,对所述改进的yolov3网络的车牌检测模型进行训练的方法如下:

步骤301:输入全局信息,采用全局池化池对融合后的特征块进行处理,将全局空间信息压缩成一个通道描述符z,z的第c个元素由下式计算:

其中的fsq(uc)指的是对空间尺寸大小为uc的图像进行挤压操作后输出的局部描述符的集合,w×h表示的是被压缩后的空间尺寸,uc则是被压缩前的空间尺寸;

然后利用压缩操作中汇总的信息,进行下一步的激励操作,通过参数w来为每个特征通道生成权重,其中参数w被学习用来显式地建模特征通道间的相关性,用于捕获通道相关性,由下式计算得出:

s=fex(z,w)=relu(w2×sigmod(w1z))(5)

式中,w1、w2为两个全连接层,其中其中r为缩放参数,w1的维度是w2的维度是c表示channel数目,r为降维参数。这个s是用来刻画featuremap的权重。而且这个权重是通过前面这些全连接层和非线性层学习得到的,因此可以end-to-end训练。这两个全连接层的作用就是融合各通道的featuremap信息。

步骤302:通过激活转换输出u的缩放来获得se模块的最终输出:

这里的x就是模块的最终输出,所指代的就是多尺度特征金字塔,每个特征都是通过se模块来增强或者减弱的,是一个二维矩阵,sc是模型训练得出的权重。

步骤303:判断输出日志中的loss函数是否收敛来确定网络是否训练完毕,如果loss函数没有收敛,则继续训练,直至loss函数收敛,yolov3网络模型训练完毕。

一种存储一个或多个程序的可读存储介质,其特征在于:所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行以上技术方案提供的方法。

有益技术效果:

为了检测场景中的车牌,本发明以yolov3的多尺度检测部分为参考,提出了一种改进的检测模型,采用深度可分离卷积可以做到在保持准确率的同时达到减少计算和模型大小的效果;

本发明提供的改进的车牌检测模型中包括下采样层,实现在保留有效信息的基础上,生成对应图像的缩略图,减少训练参数的数量,降低卷积层输出的特征向量的维度,减少过拟合现象;

本发明将下采样层和网络单元块替代原网络模型中的卷积结构,改进后的yolov3网络在检测速度方面会大幅提高,网络模型的改进也导致了检测精度的缺失,从而引进了金字塔多尺度特征网络用于增强骨干网的特征并生成更有效的多尺度特征金字塔,从输入图像中提取特征,然后基于学习到的特征生成预测边界框,然后使用非最大抑制量(nms)生成结果;

用深度可分离卷积来替代标准卷积层,使用残差表示法和shortcut连接的方式建立网络单元块;同时加入channelshuffle操作来对进行通道重新排序,然后采用resnet跨层跳跃连接的思想,将得到的三个尺度的输出特征图传入多尺度特征金字塔网络,以达到来减少训练难度并提高模型速度的目的。

附图说明

图1为本发明具体实施例的系统流程图;

图2为本发明具体实施例的模型训练过程示意图;

图3为本发明具体实施例的下采样层结构图;

图4为本发明实施例的网络单元块;

图5为本发明实施例的系统框架图。

具体实施方法

下面结合附图和具体实施对本发明作进一步说明。如图1所示,本发明的实施例公开的一种基于yolov3的车辆车牌目标检测方法,包括以下步骤:

步骤1:建立voc格式的车辆车牌数据集

本实施例包括:建立存放voc格式的车辆车牌数据集文件夹plates,文件夹下包括三个子文件,分别为annotation、imagesets和jpegimages。将准备好的训练图片放入jpegimages文件夹中根据voc官方格式以000001.jpg开始的命名顺序进行存放。对放入的图片使用labelimg工具进行标注,根据图片中的目标的类别以及位置信息生成与图片同名的xml文件放入annotation文件夹中。在imagesets文件夹中建立子文件夹,命名为main,对已有的交通标志图片数据按比例生成训练样本集和测试样本集,训练样本集命名为train.txt,测试样本集命名为test.txt,里面存放的都是jpegimages中的图片的绝对路径,将这两个.txt文件放入main文件夹中。使用yolo框架中自带的代码将voc格式文件转换成yolo自定义格式的文件。

步骤2:建立改进的yolov3网络的车牌检测模型,所述改进的yolov3网络的车牌检测模型,用于实现特征的提取和特征增强。具体方法包括:

特征提取网络采用改进的yolov3网络。

改进后的yolov3网络结构如表1所示,除了网络的第一层和最后一层是标准卷积外,其他网络将标准卷积更改为深度可分离卷积,所述深度可分离卷积均由图3的下采样层和图4的网络单元块构成。

表1改进后的yolov3网络结构

本发明采用下采样层对图像进行下采样处理,下采样结构如图3所示,主要目的是为了在保留有效信息的基础上,生成对应图像的缩略图,减少训练参数的数量,降低卷积层输出的特征向量的维度,减少过拟合现象。

图3示出了数据通过3*3的深度分离卷积层,主要目的是用来减少参数数量,用于降低网络模型的计算量,然后经过bn(batchnormalization批量规范化)层,可以使用较大的学习率从而提升训练速度,提高网络的泛化能力和收敛能力,然后,通过relu激活函数造成了网络的稀疏性,防止模型过拟合的情况发生,1*1卷积层作用是在不影响输入输出维数的情况下,对输入进行线性形变,然后通过relu激活函数进行非线性处理,增加网络的非线性表达能力。

网络单元块的结构见图4,具体地,使用shortcut(直连)连接的方式建立网络单元块,在网络单元格中,每个残差表示里面使用三个堆栈,这三层分别是1×1、3×3和1×1的卷积层,其中1×1卷积层主要负责的是先增加输入通道图像尺寸,再减小还原到原先的图像尺寸。而3×3卷积层主要用来提取特征。

为了降低1×1卷积带来的计算复杂度,同时在网络模型中引入了通道随机混合操作(channelshuffleoperation)的主要作用是对通道进行重新排序,随机操作的主要目的是为了使组卷积层可以获得不同组卷积层中的输入数据,将输入特征和输出特征能够很好地关联起来,从而创建更加强有力的网络结构。

由于网络层过深会导致深度网络中梯度发散,难以训练,在这里我们引用shortcut连接方式,来缓解深度网络中梯度发散的问题.gconv为分组卷积层,输入按通道划分为g组,每小组独立分别卷积,结果联合到一起作为输出.首先我们需要通过通道随机混合操作(channelshuffle),目的使gconv输出的特征可以考虑到更多的通道,提高输出特征代表性。这里的两个1*1卷积层起到先把维度升高,然后将维度复原的作用。将3*3卷积层可以看作一个更大的输入输出维度的倒置瓶颈(bottleneck),主要用于特征降维,减少特征图的层数。

本发明中通过将标准卷积更改为深度可分离卷积,即将标准卷积分解为两层,第一层是深度卷积,将标准卷积中大小为n×n×n的单个过滤器分解成n个过滤器,每个过滤器的大小为n×n×1,深度卷积将单个滤波器应用到每一个输入通道上。第二层是1×1卷积,称为逐点卷积,逐点卷积应用1×1卷积以组合深度卷积输出,其主要作用是用来扩展深度。在这里,我们定义输入特征图大小为f×f×m,输出特征图的大小为f×f×n,卷积核大小为h×h,特征图大小为f×f。

标准卷积的计算成本为

cost1=h×h×m×n×f×f(1)

深度可分离卷积的计算成本为:

cost2=h×h×m×f×f+m×n×f×f(2)

深度可分离卷积与标准卷积所需的计算成本比为:

由上述公式可以看出采用深度可分离卷积可以做到在保持准确率的同时达到减少计算和模型大小的效果。

特征增强网络对特征进行增强的方法包括以下步骤:

步骤201、将骨干网络(即改进的yolov3网络模型)中生成的三个不同尺度的输出特征图放入concat模块和特征聚合模块。concat模块的输入是来自骨干网络的三个不同尺度的输出特征图,对它们进行上采样后将深度特征缩放到相同比例后再进行连接,其模块的主要目的是对输出特征图进行特征融合。

步骤202、将concat模块的输出结果传入编码器解码器模块,主要目的是为了生成三个比例的特征图。编码器解码器模块使用一个步长为2的一系列3×3卷积层对输入特征图进行向下采样。再通过一系列步长为1的3×3卷积层进行解码,最后,使用1×1卷积层在增强特征的同时也保持了特征的平滑度。

步骤203、将编码器和解码器模块生成的三个不同尺度特征图和来自yolov3骨干网络的三个不同尺度的特征f1,f2,f3进行特征聚合,在特征聚合模块中生成一个特征金字塔。

特征聚合的具体方法包括:

步骤203a:将编码器和解码器模块生成的多尺度特征图和f1,f2,f3生成的多尺度特征沿通道尺度的等效比例连接起来。将它表示为u=[u1u2......ui],然后引进了一个基于通道的se模块,首先进行挤压(squeeze)操作,顺着空间维度来进行特征压缩,将每个二维的特征通道变成一个实数,这个实数具有全局的感受野,并且输出的维度和输入的特征通道数相匹配;

步骤203b:进行激励(excitation)操作,通过参数来为每个特征通道生成权重,显式地建模特征通道间的相关性;最后进行重标定(reweight)的操作,将经过激励操作后输出的权重看作是经过特征选择后的每个特征通道的优先级,然后通过乘法逐通道加权到先前的特征上,完成在通道维度上的对原始特征的重标定,从而完成聚合特征的操作。

该步骤提供的改进的yolov3网络的车牌检测模型将原yolov3网络中的除了第一层和最后一层卷积层不变,其余的卷积层改为深度可分离卷积层,将图3和图4所构成的下采样层和网络单元块替代原网络模型中的卷积结构,改进后的yolov3网络在检测速度方面会大幅提高,网络模型的改进也导致了检测精度的缺失,从而引进了金字塔多尺度特征网络用于增强骨干网的特征并生成更有效的多尺度特征金字塔,从输入图像中提取特征,然后基于学习到的特征生成预测边界框,然后使用非最大抑制量(nms)生成结果。

步骤3:用生成的数据集训练改进后的yolov3网络

将制作好的车牌数据放入重新设计好的的yolov3网络进行训练,将骨干网络中生成的3个不同尺度的特征图作为输入传入多尺度特征金字塔网络进行增强特征操作,系统框架图如图5所示。训练过程中直至模型输出日志中的loss变量收敛,则训练结束。

具体训练方法包括如下:

步骤301:输入全局信息,采用全局池化池对融合后的特征块进行处理,将全局空间信息压缩成一个通道描述符z。z的第c个元素可以由下式计算:

其中的fsq(uc)指的是对空间尺寸大小为uc的图像进行挤压操作后输出的局部描述符的集合,这些局部描述符的信息描述了整个图像,w×h表示的是被压缩后的空间尺寸,uc则是被压缩前的空间尺寸。然后利用压缩操作中汇总的信息,进行下一步的激励操作,通过参数w来为每个特征通道生成权重,其中参数w被学习用来显式地建模特征通道间的相关性。用于捕获通道相关性,由下式计算得出:

s=fex(z,w)=relu(w2×sigmod(w1z))(5)

式中,w1、w2为两个全连接层,其中其中r为缩放参数,主要用于网络的计算复杂度和参数量。

relu函数的数学表达式如下:

式中的x表示输入的值,当x≤0时,输出为0,梯度也为0,当x>0时,输出为x。

sigmoid函数的数学表达式如下:

sigmoid函数的作用是将一个实数映射到(0,1)的区间,用来做二分类。

步骤302:通过激活转换输出u的缩放来获得se模块的最终输出:

这里的x就是模块的最终输出,所指代的就是多尺度特征金字塔,每个特征都是通过se模块来增强或者减弱的,是一个二维矩阵,sc是模型训练得出的权重。

步骤303:我们通过判断输出日志中的loss函数是否收敛来确定网络是否训练完毕,如果loss函数没有收敛,则会重复步骤三继续训练,直至loss函数收敛,yolov3网络模型训练完毕。训练过程可参见图2,loss函数的表达式如下:

式中,第一项是边界框的坐标损失;

第二项是边界框的高度和宽度的损失;

第三项是对现有对象边界框的置信度损失;

第四项是不存在的对象的边界框置信度损失。

第五行是所在的对象单元格的分类损失。s2是单元格的数量,b是每个网格预测的边界框的数量,c是类别的数量,pi则是类别为i的预测概率。其中表示对象中心是否落在单元格i中,当一个单元格中检测到对象时,则取值为1否则取值为0,而表示单元格i中的第j个边界框预测变量是否负责这个对象,即该边界框预测变量最符合该对象的检测特征时,则取值为1,否则取值为0。λnoobj和λcoord是控制训练稳定性的参数。

步骤4:对训练好的yolov3网络进行检测

将含有车辆车牌的图片或者视频输入训练好的yolov3模型,就可以直接检测出图片或视屏中车牌所在的位置信息,并将其标注出来。

经过测试发现本发明提高了车辆车牌的检测速度,同时也保持了较高的检测准确率,改善了车牌检测效果不好的问题。

一种改进的yolov3网络的车牌检测模型,其特征在于,包括:改进的yolov3网络、concat模块、编码器解码器模块、特征聚合模和车牌检测模型训练模块;

所述改进的yolov3网络用于输入车牌图像并提取三个不同尺度的特征图;所述改进的yolov3网络结构的第一层和最后一层是标准卷积,其他网络均由下采样层和网络单元块构成;

所述concat模块用于对得到的三个不同尺度的特征图进行上采样后将深度特征缩放到相同比例,将输出传递到编码器解码器模块;

所述编码器解码器模块用于对其输入的特征图进行向下采样,通过构建的卷积层进行解码生成增强特征后的特征图;

所述特征聚合模块,用于将生成的增强特征后的三个不同尺度的特征图和来自yolov3特征提取网络提取的三个不同尺度的特征图进行特征聚合,生成特征金字塔,获得基于改进的yolov3网络的车牌检测模型;

所述车牌检测模型训练模块用于利用测试集对所述改进的yolov3网络的车牌检测模型进行训练,调整yolov3网络的权重参数,直至判断输出日志中的loss函数收敛则确定网络训练完毕,获得训练完成的车牌检测模型。

一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行基于改进的yolov3网络的车牌检测模型的构建方法。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

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