基于卷积神经网络的车牌识别方法及系统与流程

文档序号:17465855发布日期:2019-04-20 05:30阅读:510来源:国知局
基于卷积神经网络的车牌识别方法及系统与流程

本发明涉及车牌识别方法,具体涉及一种基于卷积神经网络的车牌识别方法及系统。



背景技术:

近年来车牌识别越来越多地运用在高速公路,住宅小区,学校等各种场所,对车牌的准确识别可以有效解决高速公路过路车辆的收费问题,车辆的安全管理,处理违章车辆等问题。传统的车牌识别系统识别精度并不高,提高车牌的识别准确率会帮助人们解决很多因为识别车牌不准造成的问题,减少损失,使整个交通更有秩序。



技术实现要素:

针对上述存在的问题,提供一种提高车牌识别准确率的基于卷积神经网络的车牌识别方法。

为达到上述目的,本发明所采用的技术方案是:

一种基于卷积神经网络的车牌识别方法,包括以下步骤:

s1:获取目标车牌的图像;

s2:采用边缘检测法对目标车牌图像进行车牌域的定位,以获得车牌字符区域,具体包括以下步骤:输入获取的目标车牌图像,将目标车牌的图像转化为灰度图;将转化的灰度图进行高斯平滑处理,再进行中值滤波,sobel算子边缘检测处理以及膨胀腐蚀处理得到腐蚀膨胀后的图像,根据对车牌的先验知识,由腐蚀膨胀后图像的宽高比来定位得到车牌域定位图像;

s3:采用像素法对车牌字符区域内的车牌字符进行分割,具体包括以下步骤:首先对车牌域定位图像进行预处理;设定一字符宽度阈值;将预处理后的图片像素按照每一列来统计;扫描每列的图片像素,每列识别到一个白色像素,则列数加1,识别到的是黑色像素则继续下个像素点的扫描,直到检测到某一列累计白色像素为0,统计连续出现白色像素的列数,判断累计白色像素不为0的连续列的宽度是否达到所述字符宽度阈值,若小于所述字符宽度阈值,则认为所述连续列属于同一字符,不进行切割操作,继续扫描下一列;若大于所述字符宽度阈值,就认为所述连续列不属于同一个字符,则进行切割操作,并保留白色像素的字符区域整体;如此循环往复,直至完成所有车牌字符的切割;

s4:采用卷积神经网络识别切割后的车牌字符。

进一步地,所述车牌识别方法在步骤s4后还包括用matlab做gui调用python对目标车牌的字符识别结果并进行显示的步骤。

进一步地,该车牌识别方法识别的是7位字符的中国国内小车车牌,车牌为蓝底白字。

进一步地,所述步骤s3中,所述对车牌域定位图像进行预处理的步骤包括移除车牌域定位图像中第二个到第三个字符之间的圆点。

进一步地,所述步骤s4具体包括以下步骤:

基于卷积神经网络构建预测模型;

制作字符标签表:采用mnist手写数据集图片作为车牌训练集和测试集的图片样本集,将车牌训练集图片的7个字符分成省份、城市、车牌编号共3部分,对字母、数字和省份进行标签;

训练卷积神经网络:根据训练数据设置好训练批次和迭代次数(训练神经网络的次数),分别对训练集数据集图片中省份所对应的汉字字符、城市简称所对应的英文字符及车牌后5位数字字符进行训练,直到对整个样本集来说,识别误差不超过规定范围;

以测试集对预测模型进行参数的优化与调整,得到最终预测模型,所述最终预测模型根据输入的切割后的车牌字符得到车牌识别结果。

进一步地,所述步骤s3中,在完成对所有车牌字符的切割后,还包括对切割后的车牌字符图像进行图像归一化的步骤。

本发明还提供一种基于卷积神经网络的车牌识别系统,包括:

车牌图像获取模块,用于获取目标车牌的图像;

车牌域定位模块,用于将目标车牌的图像转化为灰度图;将转化的灰度图进行高斯平滑处理,再进行中值滤波,sobel算子边缘检测处理以及膨胀腐蚀处理得到腐蚀膨胀后的图像,根据对车牌的先验知识,由腐蚀膨胀后图像的宽高比来定位得到车牌域定位图像;

车牌字符分割模块,用于对车牌域定位图像进行预处理,并设定一字符宽度阈值,将预处理后的图片像素按照每一列来统计;扫描每列的图片像素,每列识别到一个白色像素,则列数加1,识别到的是黑色像素则继续下个像素点的扫描,直到检测到某一列累计白色像素为0,统计连续出现白色像素的列数,判断累计白色像素不为0的连续列的宽度是否达到所述字符宽度阈值,若小于所述字符宽度阈值,则认为所述连续列属于同一字符,不进行切割操作,继续扫描下一列;若大于所述字符宽度阈值,就认为所述连续列不属于同一个字符,则进行切割操作,并保留白色像素的字符区域整体;如此循环往复,直至完成所有车牌字符的切割;

车牌字符识别模块,其采用卷积神经网络识别切割后的车牌字符。

由于采用上述技术方案,本发明具有以下有益效果:

上述基于卷积神经网络的车牌识别方法及系统,用边缘检测法来实现车牌定位,车牌字符分割采用像素法,用卷积神经网络来实现字符识别,识别准确率比传统方式的车牌识别方法高。上述基于卷积神经网络的车牌识别方法结合深度学习,在不利识别的条件下也能有较高的识别率,极大地提高了车牌识别的鲁棒性。

附图说明

图1为本发明一较佳实施方式中基于卷积神经网络的车牌识别方法的流程图。

图2为本发明一较佳实施方式中基于卷积神经网络的车牌识别系统的模块图。

主要元件符号说明

100-车牌识别系统、10-车牌图像获取模块、20-车牌域定位模块、30-车牌字符分割模块、40-车牌字符识别模块。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,当组件被称为“固定于”另一个组件,它可以直接在另一个组件上或者也可以存在居中的组件。当一个组件被认为是“连接”另一个组件,它可以是直接连接到另一个组件或者可能同时存在居中组件。当一个组件被认为是“设置于”另一个组件,它可以是直接设置在另一个组件上或者可能同时存在居中组件。本文所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述只是为了说明的目的。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。

请参见图1,本发明一较佳实施方式提供一种基于卷积神经网络的车牌识别方法,该车牌识别方法识别的是7位字符的中国国内小车车牌,车牌为蓝底白字,该车牌识别方法包括以下步骤:

s1:获取目标车牌的图像,在本实施方式中,可采用照相机等采集目标车牌的图像。

s2:采用边缘检测法对目标车牌图像进行车牌域的定位,以获得车牌字符区域。

该基于卷积神经网络的采用基于边缘检测的方法进行车牌字符区域的定位。边缘是局部图像最严重的灰度变化,而一般边缘检测是借用了该点。边缘检测的方法目标是识别出图像里亮度变化明显的点。图像的亮度变化明显的点反映了事物本质属性的变化。

其具体包括以下步骤:输入获取的目标车牌图像,将目标车牌的图像转化为灰度图,方便后续对图像进行处理;将转化的灰度图进行高斯平滑处理,再进行中值滤波,sobel算子边缘检测处理以及膨胀腐蚀处理得到腐蚀膨胀后的图像,根据对车牌的先验知识,由腐蚀膨胀后图像的宽高比来定位得到车牌域定位图像。经过高斯平滑处理、中值滤波及sobel算子边缘检测处理后可以突出车牌域,方便对车牌定位;膨胀腐蚀处理的目的是突出车牌轮廓,去掉细节,提高车牌的识别率。其中,所述去掉细节是把图像中像素面积较小的图像去掉,保留车牌位置。

s3:采用像素法对车牌字符区域内的车牌字符进行分割,具体包括以下步骤:

s31,对车牌域定位图像进行预处理,所述对车牌域定位图像进行预处理的步骤包括移除车牌域定位图像中第二个到第三个字符之间的圆点;

s32,设定一字符宽度阈值;

s33,将预处理后的图片像素按照每一列来统计;扫描每列的图片像素,每列识别到一个白色像素,则列数加1,识别到的是黑色像素则继续下个像素点的扫描,直到检测到某一列累计白色像素为0,统计连续出现白色像素的列数,判断累计白色像素不为0的连续列的宽度是否达到所述字符宽度阈值,若小于所述字符宽度阈值,则认为所述连续列属于同一字符,不进行切割操作,继续扫描下一列;若大于所述字符宽度阈值,就认为所述连续列不属于同一个字符,则进行切割操作,并保留白色像素的字符区域整体;如此循环往复,直至完成所有车牌字符的切割。

采用上述像素法对车牌字符区域内的车牌字符进行分割能够适用于各种字符的识别,且在不利识别的条件下也能有较高的识别率,例如以下情形:

对于汉字字符没有左右连接的情况,比如“川”字的分割,首先检测到某一列的累计白色像素不为0,即检测到了白色像素。那么在此后若检测到某一列累计白色像素为0,判断累计白色像素不为0的连续列数是否达到预设的字符宽度阈值,若没有达到,则认为是一个汉字,就不进行切割操作,继续扫描下一列,如此循环往复,直到“川”字的所有列扫描完成,再扫描下一列累计像素为0,判断汉字整个区域大于预设的字符宽度阈值,则进行切割操作,就得到了“川”字的分割字符。对于车牌字符区域部分被遮挡的情况,若是车牌字符区域大于预设的字符宽度阈值,就认为不再属于同一个字符,就进行切割,以减小车牌字符分割造成的失误,避免给后续操作带来更多的困难。

进一步地,所述步骤s3中,在完成对所有车牌字符的切割后,还包括对切割后的车牌字符图像进行图像归一化的步骤。图像归一化的意义是处理特定变换函数引起的灰度变化,以免给识别工作带来困难。归一化归根结底属于无量纲的解决方法,将图像的灰度值限定在0-1之间,其方法是先将图像标准化,再拿去和标准图像对比分析。由分析结果持续修改各个参数,让这些参数达到最优值,方便后续的操作。归一化的优点主要是减少了梯度下降法(sgd)获取最佳方案的时间,图像归一化后得到的图像,其图像的分布更为均匀,容易找到梯度下降最快的方向,找到一条最短路程,节约了算法的时间并且提升了识别精度。

s4:采用卷积神经网络识别切割后的车牌字符,具体包括以下步骤:

s41:基于卷积神经网络构建预测模型;

s42:制作字符标签表:采用mnist手写数据集图片作为车牌训练集和测试集的图片样本集,将车牌训练集图片的7个字符分成省份、城市、车牌编号共3部分,对字母、数字和省份进行标签。数字和字母标签如表格1所示。

表格1数字和字母标签

汉字的分类标签如表格4-2所示。

表格2汉字分类标签

s43:训练卷积神经网络:根据训练数据设置好训练批次和迭代次数(训练神经网络的次数),分别对数据集图片中省份所对应的汉字字符、城市简称所对应的英文字符及车牌后5位数字字符进行训练,直到对整个样本集来说,识别误差不超过规定范围,得到训练后的卷积神经网络。

若要训练参数,那么需要依次获取训练集图片的类,比如城市代号a-z,其中没有字母i,o共计34个类(没有城市代号为i,o)。首先遍历图片,依次索取字母的总数和路径。再次遍历图片,生成相应的图片数据和标签。再将这些图片放入卷积神经网络进行不停地训练迭代。在本实施方式中,省份识别中共训练了1254张图片,城市简称训练了3467张图片,后五位车牌编号识别共训练了4300张图片。图片集越多,迭代的次数也需要更多才能达到较高的准确率。省份训练的图片集最少,所以训练较少的次数可以得到高准确率;相反,后5位车牌编号训练集图片最多,所以训练次数也越多。当训练次数足够多,准确率和损失率将保持稳定,其达到最大识别精度,本实施方式中车牌识别准确率在98%左右。

s44:以测试集对预测模型进行参数的优化与调整,得到最终预测模型,所述最终预测模型根据输入的切割后的车牌字符得到车牌识别结果。

进一步地,所述车牌识别方法在步骤s4后还包括用matlab做gui调用python对目标车牌的字符识别结果并进行显示的步骤。

请参见图2,本发明实施方式还提供一种基于卷积神经网络的车牌识别系统100,包括:

车牌图像获取模块10,用于获取目标车牌的图像;

车牌域定位模块20,用于将目标车牌的图像转化为灰度图,将转化的灰度图进行高斯平滑处理,再进行中值滤波,sobel算子边缘检测处理以及膨胀腐蚀处理得到腐蚀膨胀后的图像,根据对车牌的先验知识,由腐蚀膨胀后图像的宽高比来定位得到车牌域定位图像;

车牌字符分割模30,用于对车牌域定位图像进行预处理,并设定一字符宽度阈值,将预处理后的图片像素按照每一列来统计;扫描每列的图片像素,每列识别到一个白色像素,则列数加1,识别到的是黑色像素则继续下个像素点的扫描,直到检测到某一列累计白色像素为0,统计连续出现白色像素的列数,判断累计白色像素不为0的连续列的宽度是否达到所述字符宽度阈值,若小于所述字符宽度阈值,则认为所述连续列属于同一字符,不进行切割操作,继续扫描下一列;若大于所述字符宽度阈值,就认为所述连续列不属于同一个字符,则进行切割操作,并保留白色像素的字符区域整体;如此循环往复,直至完成所有车牌字符的切割;

车牌字符识别模块40,其采用卷积神经网络识别切割后的车牌字符。

上述说明是针对本发明较佳可行实施例的详细说明,但实施例并非用以限定本发明的专利申请范围,凡本发明所提示的技术精神下所完成的同等变化或修饰变更,均应属于本发明所涵盖专利范围。

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