一种车牌放大号的检测识别方法
文献发布时间:2023-06-19 11:14:36
技术领域
本发明属于智能交通领域,具体涉及车牌放大号的检测识别方法。
背景技术
车牌识别技术是智能交通系统的关键与核心模块,车牌放大号的检测识别技术可以在以下三个方面对现有的车牌识别技术进行技术上的提升:
1、现有的车牌识别技术涉及到的车牌主要为标准机动车号牌,而涉及到车牌放大号(即放大后的车牌号)识别的少之又少,《中华人民共和国道路交通安全法实施条例》第十三条规定:“重型、中型载货汽车及其挂车、拖拉机及其挂车的车身或者车厢后部应当喷涂放大的牌号,字样应当端正并保持清晰”。因此,本发明车牌放大号的检测识别方法可以对现有的车牌识别技术进行补充,提高车牌识别技术功能上的完整性。
2、由于工作环境、行驶路况以及车辆自身号牌悬挂位置的影响,摄像机采集的客货运汽车尾拍图像可能存在车牌的缺失、遮挡、污损、模糊以及过曝等情况,进而影响到车牌识别技术对于客货运汽车尾拍图像中的标准车牌检测识别效果。而车牌放大号相较于标准车牌,其尺寸更大、位置更明显,即使在标准车牌较模糊的情况下也能清楚的抓拍到车牌放大号。
3、现有的车牌识别技术直接应用到车牌放大号的识别上效果较差。主要原因在于:车牌放大号的喷涂位置一般为客货运汽车车厢后部,车牌放大号背景不统一、存在较多干扰;车牌放大号喷涂的字体大小、字体样式以及字符间距不一致。
发明内容
为解决现有技术所存在的技术问题,本发明提供一种车牌放大号的检测识别方法,在通过提高样本标注效率的方式降低训练样本集创建难度的同时,有效提高了车牌字符的识别效率,对训练过程中文本识别部分和超分辨图像重构部分的损失均进行加权计算分析,提升了网络模型对于低质量图像的特征提取效果,从而有效解决了车牌放大号的字符检测受字符大小、样式及间距不一致等影响而效果不佳的技术问题。
本发明采用以下技术方案来实现:一种车牌放大号的检测识别方法,包括以下步骤:
S1、对车牌放大号所在区域进行检测定位,得到原始车牌放大号的样本图像;
S2、基于深度卷积的识别网络对车牌放大号字符进行识别;
步骤S2包括:
S21、在识别网络模型的训练阶段,对原始车牌放大号的样本图像进行扩展,获得训练样本集;
S22、基于扩展后的训练样本集,构建识别网络,运用所构建的识别网络对实际的车牌放大号图像进行特征提取,得到最终的文本识别结果;对识别网络在训练过程中文本识别部分和超分辨图像重构部分产生的损失进行加权计算分析,提升识别网络对低质量图像的特征表达能力,得到识别网络最优化的权重参数。
本发明与现有技术相比,具有如下优点和有益效果:
1、车牌是车辆最具鉴别性的特征,相对于标准机动车号牌,车牌放大号没有固定背景,长宽比变化较大,字符的字体、大小多样化,且字符间距不一致,目前的车牌识别技术难以直接应用到车牌放大号的识别中。
本发明针对车牌放大号的特点,设计了基于深度卷积网络的车牌放大号检测以及识别算法。该算法在网络模型训练过程中通过增加样本图像多样性的方式,对训练过程中文本识别部分和超分辨图像重构部分产生的损失均进行加权计算分析,提升了网络模型对于低质量图像的特征提取效果,能够很好地学习到车牌放大号的特征,具有鲁棒型强、适用性高的特点。
2、现有的主流车牌识别技术的流程主要包括:①车牌检测定位、②车牌字符分割定位、③车牌字符分类识别三个过程,需要分别构建车牌检测、字符分割、字符识别三种模型,耗时耗资源,且模型训练阶段建立训练样本集时需要对完整车牌样本进行单字符位置标注,耗费太多人力。
本发明在车牌放大号识别过程中,简化了车牌识别技术的流程,提出端到端的车牌放大号识别算法替代现有的车牌字符分割定位算法、字符分类识别算法,提高了识别效率;通过数据预处理、数据增强等方式丰富了样本图像的多样性,提高算法的鲁棒性;通过减少标注流程、提高标注效率,降低了训练样本集的创建难度。
附图说明
图1是本发明实施例中的车牌信息检测识别流程示意图;
图2是本发明实施例的车辆尾拍图像中车牌放大号位置标注示例图;
图3是本发明实施例中车牌放大号检测网络结构图;
图4是本发明实施例中训练样本图像扩展流程示意图;
图5是车牌放大号的正样本图像示例图,其中(a)、(b)及(c)三个子图分别示意了正样本图像的一种形式;
图6为本发明实施例中车牌放大号识别网络在训练阶段的结构示意图;
图7为本发明实施例中车牌放大号识别网络的CNN层结构示意图;
图8为本发明实施例中车牌放大号识别网络的RNN层结构示意图;
图9为本发明实施例中车牌放大号识别网络的SR层结构示意图;
图10为SR层的RG模块结构示意图;
图11为SR层的RG模块中RCAB子模块结构示意图;
图12为本发明实施例中车牌放大号识别网络在推理阶段的结构示意图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例
本实施例提出一种基于深度神经网络的车牌放大号的检测识别方法,主要流程如图1所示,主要包括车牌放大号的检测及识别步骤,车牌放大号的位置标签信息如图2所示;详细步骤如下:
步骤S1、车牌放大号所在区域的检测定位,得到原始车牌放大号的样本图像。
本步骤基于深度卷积的检测网络(例如卷积神经网络)进行车牌放大号的检测定位,以轻量级网络架构MobileNet-SSD为例进行详细说明:
S11、首先根据训练样本中的标签样本数据分布,使用卷积神经网络(YOLOv3)的k均值聚类算法(k-means clustering algorithm,k-means)计算各层默认框的生成参数。由于车牌放大号样本图像一般宽高比例比较大,检测网络的输入图像尺寸设置为w*h,(1.5*w<h<2*w)以消除对检测效果的影响。
S12、在训练过程中使用多种数据增强的方法以增加样本图像的多样性,提高检测网络的检测性能,包括水平翻转、裁剪、放大和缩小等。
S13、使用主干卷积网络(MobileNet)提取样本图像的特征,构建6层的特征金字塔网络进行位置回归以及类别分类。
S14、通过非极大值抑制单元对多层特征金字塔网络的输出进行处理,得到车牌放大号所在区域的最终检测定位结果。
检测网络的结构如图3所示,包括主干卷积网络MobileNet、非极大值抑制单元(Non-Maximum Suppression,NMS)和多层特征金字塔网络,主干卷积网络MobileNet与多层特征金字塔网络的输入端连接,每层特征金字塔网络的输出端连接至非极大值抑制单元,由非极大值抑制单元输出最终的检测定位结果。
步骤S2、识别车牌放大号的字符
本步骤基于深度卷积的识别网络(例如卷积神经网络CRNN)进行车牌放大号字符的识别,具体包括以下步骤:
S21、扩展训练样本图像,获得训练样本集。
在识别网络模型的训练阶段,CRNN卷积神经网络使用端到端(end-to-end)的训练方式,需要大量的输入样本图像进行网络优化训练,本发明先对原始车牌放大号的样本图像进行标注,再对标注后的原始车牌放大号的样本图像进行扩展,扩展流程如图4所示,主要包括:
S211、对样本图像进行裁剪,生成不同尺寸的区域图像,如图5的(a)-(c)所示,裁剪后得到的区域图像具体包括以下几类:
①原始车牌放大号样本(7-8字符):此类样本图像为原始车牌放大号的区域图像,如图5的(a)图所示;
②缺损的车牌放大号样本(5-7字符):此类样本图像为丢弃原始车牌省份简称区域后裁剪得到的区域图像,如图5的(b)图所示;
③边界扩展后的样本:此类样本图像为对以上两类车牌放大号区域图像进行随机边界扩展之后得到的区域图像。扩展的公式具体如下:
其中,l,r,u,b分别为车牌放大号区域图像在左、右、上、下四个边界的扩展尺寸,w,h为原始车牌放大号区域图像的宽高,random为随机函数。
④负样本:此类样本为检测网络的误检样本,即非车牌放大号区域。
S212、图像归一化处理、颜色变换:在进行模型训练前,卷积神经网络CRNN需要将步骤S211样本裁剪后得到的四类区域图像进行归一化处理,将尺寸归一化为W*32,W为归一化后的图像宽度,然后进行颜色变换;主要步骤为:
①保持高度h不变对图像进行随机宽度拉伸,提升卷积神经网络CRNN对于较窄字符的识别能力;随机宽度拉伸变换的公式为:
w
其中,w
②判断宽度拉伸后的图像的宽高比w
1)如果w
2)如果w
其中,l、r分别为左右边界的扩展尺寸,random为随机函数。由于本实施例中,卷积神经网络CRNN对图像的宽度没有要求,因而在尺寸归一化处理时,归一化尺寸为W*32,但在宽度拉伸变换和左右边界扩展过程中,设定宽度最大值为280。
3)如果w
其中,u、b分别为上下边界的扩展尺寸,random为随机函数。
③进行随机颜色空间变换,进一步增加样本的多样性,生成最终输入到识别网络中的样本图像。
S213、生成样本标签:将车牌号码的各车牌字符存储在数组中,然后根据车牌字符在存储数组中对应的索引值,生成车牌号码的样本标签。
卷积神经网络CRNN需要设置空格(blank)标签,一般设置为标签列表的第一位(“0”)或最后一位(“n-1”,n为标签列表长度,即字符类数),样本标签长度为8,不足8位的则在标签值后补“0”。
例如,设置blank(空格)标签值为“0”,则车牌号码为“87569”正样本图像的标签值为“9 8 6 7 10 0 0 0”,即车牌字符的标签值为车牌字符在标签列表中对应的索引值加1,无论车牌字符是数字、字母还是汉字,其标签值都是该字符在标签列表中对应的索引值加1;对于负样本图像,其标签值为“0 0 0 0 0 0 0 0”。
S22、基于扩展后的样本图像,构建识别网络,并运用所构建的识别网络对实际的车牌放大号图像进行特征提取。
本实施例通过构建特征提取网络作为识别网络,具体为包括卷积层(CNN)、特征超分辨支路网络(SR层)、循环层(RNN)、转录层(CTC)、损失函数层在内的深度卷积网络,其中卷积层分别与SR层和循环层连接,而转录层与循环层连接,转录层、特征超分辨支路网络分别连接至损失函数层,输入图像大小为W*32,W为图像宽度,32为图像高度。
本发明中,由于SR层与RNN层共享图像的特征序列,不需要额外的特征提取网络,所以SR层的网络层数较少,SR层比现有的超分辨网络结构更简单,在训练过程中占用显卡显存更小、训练耗时更短。
S221、通过卷积层(CNN)从输入图像中提取特征序列。
以密集卷积网络(DenseNet)为例,在构建特征提取网络时,CNN层使用3个DenseNet块进行串联,每个DenseNet块的深度为d,特征图增长速率为r,每两个DenseNet块间使用核大小为k*k的卷积层以及随机失活层(dropout)进行连接,设置随机失活层dropout比例为ratio,最后连接一个核大小为m*n的池化层,输出N*C*H*W维的特征图,N,C,H,W分别为批处理大小、特征图通道数、特征图高度、特征图宽度。
S222、在训练阶段,通过特征超分辨支路网络(SR层)提升CNN层的特征表达能力,重构并输出超分辨图像。
特征超分辨率支路网络的目的在于使用低分辨率图像获得高分辨率的图像特征。由于自身硬件条件、工作环境、行驶路况的影响,摄像机经常会采集到大量低质量的车牌放大号图像,影响识别结果。因此,本发明在训练过程中增加特征超分辨支路网络以提升CNN层的特征表达能力,即使用CNN层得到的特征序列输入到SR层进行超分辨率图像的重建,从而将低分辨率特征恢复成对应的超分辨图像。
由于车牌放大号识别数据集并没有区分高分辨率以及低分辨率图像,因此在训练过程中,本发明使用“高斯模糊处理”和“4倍上下采样”两种图像扩展方式对原始图像进行在线扩展预处理,生成低分辨率图像,以丰富训练数据集中样本图像的多样性;所生成的低分辨率图像经卷积层提取特征序列后,输入到特征超分辨支路网络SR层重建为超分辨率图像。本实施例中,经“高斯模糊处理”和“4倍上下采样”处理后的图像表示为:
其中,I
SR层主要通过2个基于残差网络结构(Resnet)的超分辨基础单元和一个上采样单元(UpSample)来实现,其中超分辨基础单元为残差通道注意力块RG,RCAB是残差通道注意力块RG的子模块,两个RCAB子块组成一个残差注意力模块RG。
SR层使用CNN层输出的特征序列F
F
其中,F
其中,F
S223、通过循环层(RNN)预测从卷积层(CNN)获取的特征序列的标签值分布,即真实值分布。
循环层RNN包括两个双向长短期记忆网络(BiLSTM),卷积层CNN提取的特征经循环层的变换后得到T*N*M维的特征输入到循环层RNN网络中,其中T为循环层RNN的时间序列长度,N为批处理大小,M为输入特征长度,然后经过全连接层得到T*N*n维的标签分布结果,n为标签列表(字符类别数)的长度;循环层RNN可以表示为y=R
S224、通过转录层(CTC)把从循环层RNN获取的标签值分布通过去重整合等操作,转换成最终的识别结果。
在转录层CTC引入blank机制,目的是为了通过去重整合等操作得到最终的预测文本序列。以“-”符号代表blank为例,转录层CTC视“无blank间隔的连续重复字符”为同一字符,对字符序列先删除“无blank间隔的连续重复字符”,然后从路径中删除所有“-”字符,得到最终的预测文本序列。
对于循环层RNN给定的输入x,转录层输出正确车牌的概率为:
其中,π∈B
其中L'为所有路径。在训练过程中,转录层CTC的训练目标,本质上是通过梯度
S225、通过损失函数计算识别网络的总损失。
在训练过程中,损失函数同时包含文本识别部分的损失以及超分辨支路网络部分的损失,从而使CNN层提取到的特征序列同时包含识别部分以及超分辨支路部分的信息,以提升识别网络对于低质量图像的特征表达能力,从而提高其对低质量图像的特征提取效果。
也就是说,本发明中,识别网络的总损失为转录层CTC产生的文本识别损失L
其中,O为原始图像,O
上述步骤S221-S225五个阶段组成了识别网络的训练阶段,具体参见图6-图11。
S226、推理输出阶段
使用训练后得到的识别网络模型进行推理输出,具体参考图12,主要过程包括:将实际的车牌放大号图像直接输入到CNN层,而不经过高斯模糊处理或上下采样等图像预处理,得到相应的特征序列;将CNN层输出的特征序列直接输入到RNN层中,得到每一个时间步长所有字符类别的概率分布;将RNN层输出的字符类别概率分布输入到CTC层中,CTC层取每一个时间步长所有字符类别中最大概率分布的字符作为该时间步长的输出字符,然后将所有时间步长的输出字符进行拼接得到一个序列路径,作为最大概率路径,最后使用CTC层中的blank机制得到最终的文本识别结果。
也就是说,本发明在训练阶段,SR层通过迭代训练不断更新网络权重,以最小化损失函数,得到最优化的权重参数。而在推理阶段,CNN层的输入为实际获取到的车牌放大号图像,并不经高斯模糊处理或上下采样等图像预处理;且识别网络不再使用SR层,直接使用训练好的权重参数,由于SR层的输出结果是超分辨图像,对于识别网络的推理是无用的,所以在推理阶段将SR层丢弃不会对字符识别结果有任何影响。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
- 一种车牌放大号的检测识别方法
- 一种车牌检测和识别方法