嵌入式端实时高效的车牌识别方法、设备及介质与流程

文档序号:29575517发布日期:2022-04-09 06:24阅读:254来源:国知局
嵌入式端实时高效的车牌识别方法、设备及介质与流程

1.本发明涉及车牌识别技术领域,具体的说,涉及了一种嵌入式端实时高效的车牌识别方法、设备及介质。


背景技术:

2.车牌作为汽车外在显著身份信息之一,可以通过车牌获得车辆的行驶路径、类型、司机等信息。车牌识别应用范围较广,在智慧停车、高速公路车辆监测、城市限号等方面广泛使用。
3.目前,所采用的传统车牌识别算法对车牌图片质量要求较高,而影响车牌图片质量的因素较多,如光线、车牌与图像采集设备的距离和角度等,因此传统车牌识别算法不能满足复杂光线、多颜色车牌、高识别率、速度快的识别要求。
4.可以理解,传统车牌识别算法需要先将车牌区域中的字符分隔开,分割算法有基于模板的字符分割算法、聚类算法字符分割等,此类方法受光照影响严重,分割不准确时直接导致后续识别出错,识别车牌的准确率较低;再使用机器学习算法svm、knn等算法对分割后的字符进行识别,字符识别作为车牌识别中最重要的环节,其准确率直接影响车牌的准确识别;然而使用机器学习算法识别字符,识别率还有很大的提升空间。
5.随着深度学习的出现,出现了端到端的识别方法,例如crnn(全称:an end-to-end trainable neural network for image-based sequence recognition and its application to scene text recognition)、lprnet(license plate recognition via deep neural networks)等,虽然基于深度学习的车牌识别准确率有了很大提高,但是模型计算复杂度较大,且在嵌入式端上移植时出现部分层的算子不支持的现象,例如处理器rk3399上的深度学习推理框架rknn均不支持crnn中的lstm((long short-term memory)层和lprnet中的3d池化层,用代码实现这些层难度大并且实时性难以保证,导致准确率较高的深度学习算法无法适配到嵌入式端,导致应用于复杂光线、多颜色车牌识别时的嵌入式算法准确率和实时性都很低。
6.虽然申请号为cn201810736742.9的中国专利,公开了一种基于精简resnet残差网络的车牌识别方法,但是该专利在resnet18的结构上并没有变化,且最后一层的全连接层输出为7(蓝牌七个字符),7个神经元分别对应蓝牌车牌中的每个字符,模型一旦训练好后只能识别蓝牌或者黄牌(7个字符),即使用来识别绿牌(8个字符)得到的结果依然是7个字符,因此这种车牌识别方法只能识别固定字符的车牌,不能同时识别蓝牌、黄牌和绿牌,更不能识别8个字符的绿牌。
7.因此,嵌入式端车牌识别准确率和实时性仍需进一步提高,研究适合嵌入式端车牌识别的深度学习模型很有必要。
8.为了解决以上存在的问题,人们一直在寻求一种理想的技术解决方案。


技术实现要素:

9.本发明的目的是针对现有技术的不足,从而提供一种嵌入式端实时高效的车牌识别方法、设备及介质。
10.为了实现上述目的,本发明所采用的技术方案是:本发明第一方面提供一种嵌入式端实时高效的车牌识别方法,所述方法包括以下步骤:读取待识别车牌图像,将所述待识别车牌图像传输至车牌识别网络模型逐层计算后输出车牌识别结果;其中,所述车牌识别网络模型依次包括第一残差块、第二残差块、第三残差块、第四残差块、第五残差块、第六残差块、第七残差块、第八残差块和输出层;所述第一残差块用于对所述待识别车牌图像进行初次卷积计算,获得第一浅层车牌特征;所述第二残差块用于对所述第一浅层车牌特征进行卷积计算,获得第二浅层车牌特征;所述第三残差块用于对所述第二浅层车牌特征进行卷积计算,获得第三浅层车牌特征;所述第四残差块用于对所述第三浅层车牌特征进行卷积计算,获得第四浅层车牌特征;所述第五残差块用于对所述第四浅层车牌特征进行卷积计算,获得第五浅层车牌特征;所述第六残差块用于对所述第五浅层车牌特征进行卷积计算,获得第一深层车牌特征;所述第七残差块用于对所述第一深层车牌特征进行卷积计算,获得第二深层车牌特征;所述第八残差块用于对所述第二深层车牌特征进行卷积计算,获得第三深层车牌特征;所述输出层用于对所述第三深层车牌特征进行卷积计算,获得车牌识别结果;所述第一残差块、所述第二残差块、所述第三残差块、所述第四残差块和所述第五残差块均包括卷积神经网络conv2d层、batchnorm2d层、激活函数relu层和basicblock层,所述第一残差块、所述第二残差块、所述第三残差块、所述第四残差块和所述第五残差块的通道个数依次为64、64、128、256和512,所述第一残差块、所述第二残差块、所述第三残差块、所述第四残差块和所述第五残差块输出特征图像的宽度参数依次为88、43、43、22和22;所述第六残差块和所述第七残差块均包括卷积神经网络conv2d层、batchnorm2d层、激活函数relu层和dropout层,所述第六残差块和所述第七残差块的通道个数依次为256和128,所述第六残差块和所述第七残差块输出特征图像的宽度参数依次为20和18;所述第八残差块包括卷积神经网络conv2d层、batchnorm2d层、激活函数relu层,所述第八残差块的通道个数为66,所述第八残差块输出特征图像的宽度参数为18;所述输出层包括卷积神经网络conv2d层,所述输出层的通道个数为66,所述输出层输出序列的步长为18。
11.本发明第二方面提供一种嵌入式端实时高效的车牌识别设备,包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的嵌入式端实时高效的车牌识别程序,所述嵌入式端实时高效的车牌识别程序被所述处理器执行时,实现如上述的嵌入式端实时高效的车牌识别方法的步骤。
12.本发明第三方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的嵌入式端实时高效的车牌识别方法的步骤。
13.本发明的有益效果为:1)本发明提出的车牌识别网络模型训练识别车牌,具有可行性,并且识别效果有
了很大提高,实时性高并且不易受光照的影响,多种字符个数的车牌均可识别,经过验证可以无缝适配到嵌入式端,在业界进一步提高了嵌入式端车牌识别的准确率和实时性,具有较高的商用价值;2)本发明通过第六残差块、第七残差块、第八残差块、输出层以及ctc解码,使得所述车牌识别网络模型能够同时识别不同字符个数的车牌。
附图说明
14.图1和2是本发明的车牌识别网络模型的结构示意图;图3是本发明的一种具体实施例的检测流程图;图4是本发明的车牌识别网络模型训练过程中损失曲线示意图;图5是本发明的测试集上部分图片车牌识别效果图;图6是本发明的车牌识别网络模型推理速度测试结果示意图;图7是将本发明的车牌识别方法移植到嵌入式系统中识别效果图。
具体实施方式
15.下面通过具体实施方式,对本发明的技术方案做进一步的详细描述。
16.实施例1如附图1至3所示,一种嵌入式端实时高效的车牌识别方法,所述方法包括以下步骤:读取待识别车牌图像,将所述待识别车牌图像传输至车牌识别网络模型逐层计算后输出车牌识别结果;其中,所述车牌识别网络模型依次包括第一残差块、第二残差块、第三残差块、第四残差块、第五残差块、第六残差块、第七残差块、第八残差块和输出层;所述第一残差块用于对所述待识别车牌图像进行初次卷积计算,获得第一浅层车牌特征;所述第二残差块用于对所述第一浅层车牌特征进行卷积计算,获得第二浅层车牌特征;所述第三残差块用于对所述第二浅层车牌特征进行卷积计算,获得第三浅层车牌特征;所述第四残差块用于对所述第三浅层车牌特征进行卷积计算,获得第四浅层车牌特征;所述第五残差块用于对所述第四浅层车牌特征进行卷积计算,获得第五浅层车牌特征;所述第六残差块用于对所述第五浅层车牌特征进行卷积计算,获得第一深层车牌特征;所述第七残差块用于对所述第一深层车牌特征进行卷积计算,获得第二深层车牌特征;所述第八残差块用于对所述第二深层车牌特征进行卷积计算,获得第三深层车牌特征;所述输出层用于对所述第三深层车牌特征进行卷积计算,获得车牌识别结果;所述第一残差块、所述第二残差块、所述第三残差块、所述第四残差块和所述第五残差块均包括卷积神经网络conv2d层、batchnorm2d层、激活函数relu层和basicblock层,所述第一残差块、所述第二残差块、所述第三残差块、所述第四残差块和所述第五残差块的通道个数依次为64、64、128、256和512,所述第一残差块、所述第二残差块、所述第三残差块、所述第四残差块和所述第五残差块输出特征图像的宽度参数依次为88、43、43、22和22;所述第六残差块和所述第七残差块均包括卷积神经网络conv2d层、batchnorm2d层、激活函数relu层和dropout层,所述第六残差块和所述第七残差块的通道个数依次为
256和128,所述第六残差块和所述第七残差块输出特征图像的宽度参数依次为20和18;所述第八残差块包括卷积神经网络conv2d层、batchnorm2d层、激活函数relu层,所述第八残差块的通道个数为66,所述第八残差块输出特征图像的宽度参数为18;所述输出层包括卷积神经网络conv2d层,所述输出层的通道个数为66,所述输出层输出序列的步长为18。
17.具体的,待识别车牌图像大小被配置为24
×
94
×
3,以适应车牌图片的输入训练和推理;其中,24表示待识别车牌图像高度,94表示待识别车牌图像宽度,3表示图片通道数(bgr),如附图1所示,待识别车牌图像经过所述第一残差块后,图片通道数(bgr)被剥离,以提高检测速度。所述车牌识别网络模型的输出被配置为18
×
66维度,其中,18表示输出序列的步长,66表示车牌省份、英文字母(不包括i和o)和数字的个数总和。
18.如附图2所示,从所述第五残差块、所述第六残差块、所述第七残差块、所述第八残差块和所述输出层,每个残差块的特征图的高度维度依次从4、2降低到1,每个残差块的特征图的宽度维度依次22、20降到18,从而使得所述输出层输出18*66维度数据,为同时识别不同字符个数的车牌打下基础。
19.进一步的,所述输出层输出18*66维度数据,每个66维数据经过softmax后,记录最大值的位置;将所有66维数据中的最大值依次存储至同一个一维数组中,获得一个长度为18的第一目标数组;对所述第一目标数组中相邻并且相同的数字进行去重处理,并去掉第一目标数组中的负样本数字,得到第二目标数组;读取预置的车牌信息对比表,所述车牌信息对比表为{京:0,沪:1,津:2,渝:3,冀:4,晋:5,蒙:6,辽:7,吉:8,黑:9,苏:10,浙:11,皖:12,闽:13,赣:14,鲁:15,豫:16,鄂:17,湘:18,粤:19,桂:20,琼:21,川:22,贵:23,云:24,藏:25,陕:26,甘:27,青:28,宁:29,新:30,0:31,1:32,2:33,3:34,4:35,5:36,6:37,7:38,8:39,9:40,a:41,b:42,c:43,d:44,e:45,f:46,g:47,h:48,j:49,k:50,l:51,m:52,n:53,p:54,q:55,r:56,s:57,t:58,u:59,v:60,w:61,x:62,y:63,z:64,-:65},其中,所述负样本数字65对应的标识为-;根据所述第二目标数组和所述车牌信息对比表之间的映射关系,得到所述待识别车牌图像对应的车牌号码。
20.可以理解,所述输出层(卷积神经网络conv2d层)输出18*66维度数据,也就是有18个66,测试推理阶段每个66维都经过softmax,并把最大值的位置记录下来,也就是有18个最大值的位置,得到一个长度为18的数组;例如,第一目标数组为[65,22,22,65,41,65,44,65,31,65,31,65,39,65,38,65,32,65];将相邻并且相同的数字只保留一个,得到[65,22,65,41,65,44,65,31,65,31,65,39,65,38,65,32,65],再将负样本数字65删除,得到第二目标数组[22,41,44,31,31,39,38,32],在所述车牌信息对比表中找到对应的位置;[22,41,44,31,31,39,38,32]中22对应的是"川",41对应的是"a",44对应的是"d",31对应的是"0",31对应的是"0",39对应的是"8",38对应的是"7",32对应的是"1",最终得到车牌号码:川ad00871;需要说明的是,所述第二目标数组[22,41,44,31,31,39,38,32]存在相邻并且相同的数字是允许的。
[0021]
需要说明的是,经过大量的训练测试实验,证明用本发明提出的车牌识别网络模
型训练识别车牌,具有可行性,并且识别效果有了很大提高,实时性高并且不易受光照的影响,多颜色车牌都可以识别,模型中使用的全部是常规算子操作,因此经过验证可以无缝适配到嵌入式端,在业界进一步提高了嵌入式端车牌识别的准确率和实时性,具有较高的商用价值。
[0022]
进一步的,所述第五残差块的卷积神经网络conv2d层的卷积核大小为3
×
3,卷积步长为1
×
1;所述第六残差块的卷积神经网络conv2d层的卷积核大小为3
×
3,卷积步长为1
×
1;所述七残差块的卷积神经网络conv2d层的卷积核大小为2
×
3,卷积步长为1
×
1;所述第八残差块的卷积神经网络conv2d层的卷积核大小为1
×
1,卷积步长为1
×
1;所述输出层的卷积神经网络conv2d层的卷积核大小为1
×
1,卷积步长为1
×
1。
[0023]
可以理解,本发明还对所述第六残差块、所述第七残差块和所述第八残差块包括卷积神经网络conv2d层的卷积核大小进行了特殊设计,通过改变卷积核大小(理论上卷积核越大步长越大)使得对应残差块输出的特征图适应最后的维度,从而能够同时识别7个字符或者8个字符的车牌;因此,本发明用第六残差块、第七残差块、第八残差块和输出层替换resnet18模型网络结构中的自适应均值池化层及其之后的所有层,使得所述车牌识别网络模型能够同时识别不同字符个数的车牌。
[0024]
需要说明的是,本发明提出的车牌识别网络模型的第六残差块、第七残差块、第八残差块的通道数依次减半,减少高层语义特征的维度灾难,最终维度降到66,在此维度上无缝衔接预测每个时序步长上的车牌字符。
[0025]
进一步的,所述输出层使用的损失函数为ctc损失函数,公式如下:其中,d表示整个训练集,xi表示训练集合中的第i个训练样本图片,ii表示表示训练集合中的第i个训练样本图片对应的真实标签,p(iiǀ
yi)表示输入为第i个训练样本图片xi时网络输出为yi,yi通过ctc解码后为真实标签ii的概率。
[0026]
需要说明的是,本发明在自建的图片数据集上进行训练,总计110000张图片,包含蓝牌车牌、绿牌车牌和黄牌车牌。其中随机划分100000张图片用来训练,10000张图片用来评估和测试,模型训练训练过程中损失曲线如图4所示;通过loss曲线可以看出本发明提出的车牌识别网络模型训练车牌识别时收敛速度很快,迭代20次后趋于平稳。测试集中部分图片(从左到右依次是蓝牌、绿牌和黄牌)车牌识别效果如图5所示,在待识别车牌图像高宽为24
×
94时,检测识别一张车牌所用时间约为3毫秒,fps约为333,网络模型的推理速度测试结果如附图6所示。从结果results中可以看出,无论是七个字符的蓝牌和黄牌,还是8个字符的绿牌,本发明提出的车牌识别网络模型均能快速且准确地识别出来。
[0027]
通过大量实验,可以证明本发明提出的车牌识别网络模型识别车牌测试效果较好,测试集上的准确率为99.35%;推理速度也远超实时,具有很高的商业应用价值,特别适合嵌入式端移植使用,特别是监控场景车牌识别准确率有了很大提升。
[0028]
将本发明提出的嵌入式端实时高效的车牌识别方法移植到嵌入式系统中识别效果,如附图7所示。由此可见,通过测试本发明提出的嵌入式端实时高效的车牌识别方法具有较强的鲁棒性,不受光照以及恶劣天气的影响,并且可以识别多种字符个数的车牌。
[0029]
实施例2
本实施例给出了一种嵌入式端实时高效的车牌识别设备,所述嵌入式端实时高效的车牌识别设备包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的嵌入式端实时高效的车牌识别程序,所述嵌入式端实时高效的车牌识别程序被所述处理器执行时实现如实施例1中的嵌入式端实时高效的车牌识别方法的步骤。
[0030]
本实施例还给出了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如实施例1中的嵌入式端实时高效的车牌识别的步骤。
[0031]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0032]
在本技术所提供的实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,上述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
[0033]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0034]
上述集成的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。
[0035]
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1