一种车牌识别算法
文献发布时间:2023-06-19 11:45:49
技术领域
本发明涉及车牌识别技术领域,具体为一种车牌识别算法。
背景技术
车牌识别是现代智能交通系统中的重要组成部分之一,应用十分广泛,它以数字图像处理、模式识别、计算机视觉等技术为基础,对摄像机所拍摄的车辆图像或者视频序列进行分析,得到每一辆汽车唯一的车牌号码,从而完成识别过程,通过一些后续处理手段可以实现停车场收费管理,交通流量控制指标测量,车辆定位,汽车防盗,高速公路超速自动化监管等等功能,对于维护交通安全和城市治安,防止交通堵塞,实现交通自动化管理有着现实的意义。
现有的车牌识别算法对较小车牌进行检测时不够精细,锚点框的选择不够准确,因此需要一种车牌识别算法对上述问题做出改善。
发明内容
本发明的目的在于提供一种车牌识别算法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
一种车牌识别算法,包括以下步骤:
S1,车牌定位包括1)利用改进的YOLOV3检测网络对车牌做定位,以此来获取车牌的角点坐标;2)对车牌进行裁剪,并将裁剪结果送入到识别网络。
S2,车牌识别包括1)序列特征生成:将牌照边界框转换成一系列特征向量;2)序列标注:使用Adam和BP算法训练具有GRU的RNN模型以标记序列特征;3)序列译码:将CTC应用于RNN的输出层,分析RNN的标记结果并生成最终识别结果。
作为本发明优选的方案,所述步骤S1,车牌定位的具体步骤如下:YOLOV3网络的改进方法为,将ancor引入到YOLOV2中,同时使用K-means方法,对ancor数量进行讨论,在精度和速度之间做出折中;修改网络结构,去掉YOLOV2中的全连接层并改成全卷积结构,将检测深度扩展为四个尺度,其中concat连接两个尺度一样的张量,即将52×52尺度与104×104尺度通过(2,2)上采样进行拼接,扩展为网络的第4个尺度,进而扩充张量的维度,引入边界框思想,为每种下采样尺度设定三种先验框,总共聚类出9种尺寸的先验框,针对COCO数据集和VOC数据集都采用了三个尺度的进行目标检测,尺度小的物体用大的先验框,反之,尺度大的物体则用小的先验框,从而形成YOLOV3。
作为本发明优选的方案,所述步骤S2中序列特征生成的具体步骤如下:卷积神经网络具有从图像中学习信息表示的强大能力,应用预训练的七层卷积神经网络模型从裁剪的车牌图像中提取顺序特征表示。
作为本发明优选的方案,所述步骤S2,中序列标注中RNN较为特殊的具体步骤如下:本网络具有对过去的上下文信息进行预测的能力,且相比对每个特征进行单独的处理,该机制使得序列识别操作更加的稳定,考虑到RNN在训练期间容易产生梯度爆炸的可能,采用了LSTM的变体GRU,它包含一个存储器单元和更新,重置两个乘法门,比LSTM少一个门函数,在参数规模上也比LSTM少1/4。
作为本发明优选的方案,所述步骤S2中序列译码的具体步骤如下:将概率估计P的序列转换为字符串,其中,CTC专门设计用于序列标记任务,解决输入特征和输出标签之间对齐关系不确定的时间序列问题,也无需数据预分割,它直接将预读序列解码为输出标签,故而,选择具有反向传播的梯度下降算法Adam算法来训练网络,将它直接连接到GRU的输出,CTC的输入恰好是GRU的输出激活,另外,采取序列译码的策略,利用GRU的输出序列进一步获取具有最大概率的近似路径的最优解。
与现有技术相比,本发明的有益效果是:
本发明中,通过设置的YOLOV3检测网络的检测深度为四个尺度,进而扩充张量的维度,增加检测的细粒度,使得本算法对较小车牌等小物体的检测更为精细,锚点框的选取更为准确,同时,也使得网络本身更好地利用低层和高层的不同级别的细粒度特征实现多尺度检测。
附图说明
图1为本发明车牌识别流程图;
图2为本发明算法网络结构图;
图3为本发明网络改进流程图。
具体实施方式
下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述,给出了本发明的若干实施例,但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例,相反地,提供这些实施例的目的是使对本发明的公开内容更加透彻全面。
需要说明的是,当元件被称为“固设于”另一个元件,它可以直接在另一个元件上或者也可以存在居中的元件,当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件,本文所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述只是为了说明的目的。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同,本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明,本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
本发明提供一种技术方案:
请参阅图1-3,本发明提供一种车牌识别算法,包括以下步骤:
S1,车牌定位包括1)将ancor引入到YOLOV2中,同时使用K-means方法,对ancor数量进行讨论,在精度和速度之间做出折中;修改网络结构,去掉YOLOV2中的全连接层并改成全卷积结构,将检测深度扩展为四个尺度,其中concat连接两个尺度一样的张量,即将52×52尺度与104×104尺度通过(2,2)上采样进行拼接,扩展为网络的第4个尺度,进而扩充张量的维度,引入边界框思想,为每种下采样尺度设定三种先验框,总共聚类出9种尺寸的先验框,针对COCO数据集和VOC数据集都采用了三个尺度的进行目标检测,尺度小的物体用大的先验框,反之,尺度大的物体则用小的先验框,从而形成改进的YOLOV3检测网络,利用改进的YOLOV3检测网络对车牌做定位,以此来获取车牌的角点坐标;2)对车牌进行裁剪,并将裁剪结果送入到识别网络。
S2,车牌识别包括1)序列特征生成:将牌照边界框转换成一系列特征向量,卷积神经网络具有从图像中学习信息表示的强大能力,应用预训练的七层卷积神经网络模型从裁剪的车牌图像中提取顺序特征表示;2)序列标注:使用Adam和BP算法训练具有GRU的RNN模型以标记序列特征,本网络具有对过去的上下文信息进行预测的能力,且相比对每个特征进行单独的处理,该机制使得序列识别操作更加的稳定,考虑到RNN在训练期间容易产生梯度爆炸的可能,采用了LSTM的变体GRU,它包含一个存储器单元和更新,重置两个乘法门,比LSTM少一个门函数,在参数规模上也比LSTM少1/4;3)序列译码:将CTC应用于RNN的输出层,分析RNN的标记结果并生成最终识别结果,将概率估计P的序列转换为字符串,其中,CTC专门设计用于序列标记任务,解决输入特征和输出标签之间对齐关系不确定的时间序列问题,也无需数据预分割,它直接将预读序列解码为输出标签,故而,选择具有反向传播的梯度下降算法Adam算法来训练网络,将它直接连接到GRU的输出,CTC的输入恰好是GRU的输出激活,另外,采取序列译码的策略,利用GRU的输出序列进一步获取具有最大概率的近似路径的最优解。
本发明工作流程:首先利用改进的YOLOV3检测网络对车牌做定位,获取车牌的角点坐标后,进行裁剪,并送入识别网络,再对车牌做特征提取,采用BGRU进行序列标注和译码的操作,最后利用CTC优化目标函数在各个数据点的损失函数值,从而输出识别的车牌结果,YOLOV3检测网络的检测深度为四个尺度,进而扩充张量的维度,增加检测的细粒度,使得本算法对较小车牌等小物体的检测更为精细,锚点框的选取更为准确,同时,也使得网络本身更好地利用低层和高层的不同级别的细粒度特征实现多尺度检测。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
- 一种基于机器视觉的汽车车牌字符分割识别算法
- 一种基于高位视频的车牌识别算法