1.一种基于深度神经网络的车牌识别和定位方法,包含以下步骤:
步骤一、针对车牌识别的特定任务,通过多种方式采集数据,建立尽可能全面的车牌图片数据集,确保训练模型的泛化性和鲁棒性,对收集的图片进行过滤、清洗和筛选得到原始数据集;利用LabelImg软件对原始数据集进行人工标注,标出目标所在的中心位置坐标(x,y)及目标的宽度w和高度h,最后对该车牌数据集通过旋转、平移、加入噪声等进行数据增强操作,进一步增加数据量;
步骤二、以步骤一中建立的数据集为基础,采用K均值聚类方法生成锚框,利用K均值聚类算法对车牌数据集中所有目标的边界框进行聚类,进而发现数据集中边界框的统计规律,最后根据这些统计规律去生成锚框;
步骤三、建立特征提取网络,然后在该特征提取网络三个不同尺度的特征图输出线路之前分别添加加权网络模块,最后通过三个特征交互网络实现特征图之间的局部特征交互,从而建立一个车牌检测深度卷积神经网络结构;
步骤四、利用已建立的车牌数据集对该网络模型进行训练;
步骤五、采用IOU=0.8时的检测准确率作为算法性能的度量指标,对已训练好的模型进行测试分析。
2.根据权利要求1所述的一种基于深度神经网络的车牌识别和定位方法,步骤一建立符合车牌识别特定任务训练要求的数据集,数据来源具体如下:第一,手持摄像机实地拍摄,这部分车牌图像包括了白天、黑夜、阴天、雨天、倾斜等多种场景;第二,从网页爬取图片;第三,整合一些从互联网搜索到的小规模车牌数据集;收集图片完成后再经过清洗和筛选,过滤掉无法使用的低质量图片,然后利用labelImg软件对原始数据集进行人工标注;标注完成后,对该车牌数据集通过旋转、平移、加入噪声等进行数据增强操作以保证数据量的充足。
3.根据权利要求1所述的一种基于深度神经网络的车牌识别和定位方法,步骤二中以步骤一中建立的数据集为基础,采用K均值聚类方法生成锚框,利用K均值聚类算法对车牌数据集中所有目标的边界框进行聚类,进而发现数据集中边界框的统计规律,最后根据这些统计规律去生成锚框;具体如下:在这种方法中,聚类中心个数k等于数据集对应的锚框数;也就是说如果我们要为车牌数据集设定k个锚框,那么K均值聚类算法的聚类中心个数也等于k;另外在这个聚类任务中,如果使用传统的欧式距离进行聚类,会导致大尺度锚框的位置误差远大于小尺度锚框的位置误差;而我们最终希望的是通过聚类得到的锚框和车牌数据集中的目标锚框有尽可能大的IOU值,故而采用以下的距离d度量:d(box,centroid)=1‑IOU(box,centroid)
其中,box表示数据集中的边界框,centroid表示聚类中心对应的边界框,IOU(box,centroid)表示聚类中心对应的边界框和数据集中的边界框的交并比;
取k=9对车牌数据集进行聚类,最终得到9个新的更符合数据集的锚框,锚框分为3个不同尺度,每个尺度各有3个,分别给出锚框的宽度pw和高度ph,并使用这些锚框去训练模型。
4.根据权利要求1所述的一种基于深度神经网络的车牌识别和定位方法,步骤三中建立特征提取网络,然后在该特征提取网络三个不同尺度的特征图输出线路之前分别添加加权网络模块,最后通过三个特征交互网络实现特征图之间的局部特征交互,从而建立一个车牌检测深度卷积神经网络结构;
主体网络结构由52个卷积层组成,其中分为三个阶段,即三个不同尺度的输出;1~26层卷积为阶段1,27~43层卷积为阶段2,44~52层卷积为阶段3,阶段1的输出也就是第26个卷积层的输出感受野小,负责检测小目标,阶段2的输出也就是第43个卷积层的输出感受野居中,负责检测中等大小的目标,阶段3的输出也就是第52个卷积层的输出感受野大,容易检测出大目标;具体如下:输入像素为416×416×3的图片,通过第1层卷积层,卷积核尺寸为3×3,步长为1,个数为32,得到416×416×32的特征图输出;进入第2层卷积层,卷积核尺寸为3×3,步长为2,个数为64,得到208×208×64的特征图输出;进入第1个残差模块,该模块包含2个卷积层和1个快捷链路,重复1次,即第3~4层卷积,卷积核的尺寸分别为1×1和3×3,步长均为1,个数分别为32和64,得到208×208×64的特征图输出;进入第5层卷积层,卷积核尺寸为3×3,步长为2,个数为128,得到104×104×128的特征图输出;进入第2个残差模块,该模块包含2个卷积层和1个快捷链路,重复2次,即第6~9层卷积,卷积核的尺寸分别为1×1和3×3,步长均为1,个数分别为64和128,得到104×104×128的特征图输出;进入第10层卷积层,卷积核尺寸为3×3,步长为2,个数为256,得到52×52×256的特征图输出;进入第3个残差模块,该模块包含2个卷积层和1个快捷链路,重复8次,即第11~26层卷积,卷积核的尺寸分别为1×
1和3×3,步长均为1,个数分别为128和256,得到52×52×256的特征图输出;进入第27层卷积层,卷积核尺寸为3×3,步长为2,个数为512,得到26×26×512的特征图输出;进入第4个残差模块,该模块包含2个卷积层和1个快捷链路,重复8次,即第28~43层卷积,卷积核的尺寸分别为1×1和3×3,步长均为1,个数分别为256和512,得到26×26×512的特征图输出;
进入第44层卷积层,卷积核尺寸为3×3,步长为2,个数为1024,得到13×13×1024的特征图输出;进入第5个残差模块,该模块包含2个卷积层和1个快捷链路,重复4次,即第45~52层卷积,卷积核的尺寸分别为1×1和3×3,步长均为1,个数分别为512和1024,得到13×13×
1024的特征图输出;
阶段1,即第1~26层卷积,得到52×52×256的特征图输出之后进入加权模块作为输入,该模块具体为:对该输入做全局平均池化生成1×1×256的实数序列,经过卷积操作将其降维得到1×1×32的输出,再经过ReLu激活函数层激活,然后经过卷积操作将其升维为原来的维度得到1×1×256的输出,利用Sigmoid函数层将该实数序列归一化得到权重,与原52×52×256的特征图加权融合后输出,后续做矩阵拼接操作;
阶段2,即第27~43层卷积,得到26×26×512的特征图输出之后进入加权模块作为输入,该模块具体为:对该输入做全局平均池化生成1×1×512的实数序列,经过卷积操作将其降维得到1×1×64的输出,再经过ReLu激活函数层激活,然后经过卷积操作将其升维为原来的维度得到1×1×512的输出,利用Sigmoid函数层将该实数序列归一化得到权重,与原26×26×512的特征图加权融合后输出,后续做矩阵拼接操作;
阶段3,即第44~52层卷积,得到13×13×1024的特征图输出之后进入加权模块作为输入,该模块具体为:对该输入做全局平均池化生成1×1×1024的实数序列,经过卷积操作将其降维得到1×1×128的输出,再经过ReLu激活函数层激活,然后经过卷积操作将其升维为原来的维度得到1×1×1024的输出,利用Sigmoid函数层将该实数序列归一化得到权重,与原13×13×1024的特征图加权融合后进入特征交互层3;
特征交互层3是一个卷积模块,包含5步卷积操作,卷积核尺寸及个数依次为1×1×
512,、3×3×1024、1×1×512、3×3×1024和1×1×512,步长均为1,得到13×13×512的特征图;然后分成两条线路继续进行,第一条线路是2步卷积操作,卷积核的尺寸及个数依次为3×3×1024和1×1×18,得到13×13×18的特征图1;第二条线路是先进行1步卷积操作,卷积核的尺寸及个数为1×1×256,得到13×13×256的特征图之后进行上采样操作放大特征图为原来的两倍,即得到26×26×256的特征图,与阶段2得到的26×26×512的特征图做矩阵拼接,得到26×26×768的特征图,进入特征交互层2;
特征交互层2也是一个卷积模块,包含5步卷积操作,卷积核尺寸及个数依次为1×1×
256,、3×3×512、1×1×256、3×3×512和1×1×256,步长均为1,得到26×26×256的特征图;然后再分成两条线路继续进行,第一条线路是2步卷积操作,卷积核的尺寸及个数依次为3×3×512和1×1×18,得到26×26×18的特征图2;第二条线路仍是上采样操作,放大特征图为原来的两倍,得到52×52×128的特征图,与阶段1得到的52×52×256的特征图做矩阵拼接,得到52×52×384的特征图,进入特征交互层1;
特征交互层1是一个卷积模块,包含5步卷积操作,卷积核尺寸及个数依次为1×1×
128,、3×3×256、1×1×128、3×3×256和1×1×128,步长均为1,得到52×52×128的特征图;然后是2步卷积操作,卷积核的尺寸及个数依次为3×3×256和1×1×18,得到52×52×
18的特征图3;
卷积层:包含三步操作,一是卷积操作,此处的卷积方式是same卷积;卷积核的尺寸决定局部感受野的大小,卷积核的个数决定卷积之后的通道数;二是批量归一化操作,将图片进行卷积之后得到的输出结果通过该层归一化到[0,1]范围内,使其均值为0,方差为1;三是激活操作,将归一化后的结果通过该层激活函数的处理引入非线性元素,增强网络的能力;
52×52×18的特征图3代表52×52个网格,每个网格输出向量的维度为18,其中包含了
3个预测框的信息,每一个预测框对应6个参数,这6个参数分别为预测框4个坐标值信息txi,tyi,twi,thi和置信度 以及1个类别信息 其中(txi,tyi)表示第i个预测框中心点的坐标参数值,(twi,thi)表示第i个预测框的宽和高的参数值,预测置信度 表示第i个预测框包含目标的概率,类别概率 为多维向量,表示第i个预测框的目标是某一类别的概率;需要注意的是,txi,tyi,twi,thi这四个参数是相对坐标位置,需要转换为最终在原始图片中的实际坐标;转换公式如下:其中,txi,tyi,twi,thi是预测框的相对坐标值,σ(·)表示Sigmoid函数,pw、ph表示预测框对应锚框的宽度以及高度,cx、cy表示预测框相对图片左上角位置坐标的偏移量, 表示预测框中心点的实际坐标, 表示预测框的实际宽度以及高度。
5.根据权利要求1所述的一种基于深度神经网络的车牌识别和定位方法,步骤四中利用已建立的车牌数据集对该网络模型进行训练;具体如下:(1)网络随机初始化权值,使初始化的值服从高斯正态分布;
(2)输入数据经过步骤二中的网络结构向前传播得到输出值为特征图1、特征图2、特征图3,并利用特征图信息得到预测边框的信息(3)将数据集中标注出的真实框与聚类得到的锚框进行匹配:计算出真实框所在的中心点,筛选出此中心点对应的锚框(共九个),选取与真实框有最大IOU值的锚框作为目标框,并将该真实框的坐标值信息赋给目标框,即得到目标框的坐标值(xi,yi,wi,hi),并将目标框的类别值pi设置为1,置信度值Ci设置为1,其余未标记的锚框的参数值均设置为0;
(4)利用提出的损失函数求网络预测边框的输出值与真实边界框的目标值之间的误差损失,该损失函数包含位置损失、置信度损失和类别损失,具体如下:位置损失
中心损失center_loss包含x_loss和y_loss,x_loss和y_loss使用的函数为二值交叉熵函数,尺度损失size_loss使用的函数为平方函数;
cen ter_loss=x_loss+y_loss
其中,N表示网络预测的边界框的总数, 表示第i个预测的边界框中是否存在目标,(xi,yi)表示目标所在第i个边界框的中心位置, 表示网络预测的第i个边界框的中心位置,wi、hi目标所在的第i个边界框的宽度和高度, 表示网络预测的第i个边界框的宽度和高度,α用于调整尺度损失在所有损失中所占据的比例;
置信度损失
置信度损失使用的函数为二值交叉熵函数:
confiden ce_loss=o bj_loss+n o o bj_loss其中,Ci表示目标所在第i个边界框的置信度, 表示网络预测的第i个边界框的置信度;
类别损失
其中,pi表示目标所在第i个边界框中车牌的概率, 表示网络预测的第i个边界框中车牌的概率;
最终的损失函数loss为:
loss=center_loss+size_loss+confidence_loss+cls_loss(5)当迭代次数
6.根据权利要求1所述的一种基于深度神经网络的车牌识别和定位方法,步骤五中采用IOU=0.8时的检测准确率作为算法性能的度量指标,对已训练好的模型进行评估测试;
具体如下:采用HyperLPR算法和数学形态法作为对比算法,设定该算法对输入图片检测成功与否的判定依据是该算法对输入图片的预测矩形框和该图片的真实矩形框间的交并比是否大于0.8;测试过程中场景的变化因素主要包括光照、车牌区域污染以及天气干扰等;
前述步骤中,N表示预测框总数,i=1,2,3,…N表示预测框标号。