·技术与应用·基于CRNN-CTC模型研究的汽车车牌识别系统
■赵文艳    徐杰    李梦雪
郑州信息工程职业学院    河南郑州    450000
摘  要:为了更好的识别汽车车牌,以CRNN-CTC模型和RNN序列为基础,从识别汽车车牌角度出来,对OCR技术进行了介绍。通过分析发现,利用CRNN-CTC模型和RNN序列研发车牌识别系统,可以有效地提高交通管理、交通道路监视管理系统。
关键词:CRNN-CTC,OCR;图像识别;文字识别;车牌识别系统
引言
随着我国汽车数量日益增加,城市交通状况越来越成为相关部门所关注地焦点问题,如何高效维护交通安全和城市治安,防止交通堵塞,实现交通自动化管理,就需要运用图像处理和识别技术,研发相应的交通道路监视管理系统、车牌识别系统,可以有效地提高交通管理。
1.车牌识别技术介绍
1.1车牌识别技术
车牌识别技术在道路监控管理、智能停车场应用越来越广泛,车牌识别技术是通过从复杂的背景中识别汽车牌照并自动提取车牌内容。国际交通技术对识别率的指标论述,要求24小时车牌识别的正确识别率85%-95%。
识别速度是决定了一个车牌识别系统是否能够满足实时实际应用的要求。如果需要几秒钟,甚至几分钟才能识别出结果,那么这个系统就会因为满足不了实际应用中的实时要求而毫无实用意义。
1.2.车牌识别技术分类
目前车牌硬件识别分为两种,带有单独的车牌识别仪和前端硬件识别。前端硬件识别一体式摄像机是将传统单独的车牌识别仪嵌入至摄像机中,实现前端硬件与摄像机一体化,完现图像抓拍、视频流传输、字符识别、道闸抬杆等一系列的工作。
软件识别是在电脑上安装一个配套的车牌识别软件,对抓拍的图片进行识别处理。它的工作方式是通过摄像机连续抓拍多张照片,选择其中较为清晰的一张,然后通过电脑软件进行字符处理,实现车牌识别的。
车牌识别技术(Vehicle License Plate Recognition, VLPR) ,它以计算机技术、图像处理技术、模糊识别为基础,通过建立车辆的特征模型,来识别车辆的特征,如汽车的车牌、车的型号、车的颜等。
1.3 CRNN-CTC模型来实现OCR文字识别
我们重点要介绍的是使用CRNN-CTC模型来实现OCR文字识别。CRNN-CTC算法不但对固定长度的文字有良好的识别效果,而且对变长的文字也有不错的识别效果。
2. OCR技术介绍
2.1 OCR技术概述
OCR,英文上是Optical Character Recognition,简称光学字符识别,它可以把图像中的文字进行识别,并以文本的形式返回,比如身份证识别、数码相机或扫描仪,或者检查纸上打印的字符。
2.2OCR技术路线
通常,OCR分为图像预处理和文字识别两个步骤。一个典型的OCR的流程是从获得图像信息,对图像信息预处理,再进行文字识别,最后输出图像。
随着人工智能的发展,这一阶段衍生出许多深度学习网络结构。在汽车车牌的文字识别中,通过深度学习做文字识别,所涉及到网络不管是CNN、VGG、RESNET,越深的网络训练最终的模型效果越好,但考虑到训练的难度和后期线上部署时预测的速度,第一步需要搭建网络和计算图,文字识别是一个多分
类任务,比如豫A4H215的车版文字识别就是A4H215个类别的分类任务。第二步进行模型训练,在数据输入的场景中,从硬盘中读取输入,放到内存中,速度较慢。如果在训练神经网络的场景中,训练网络与读取数据异步,主线程训练网络,其他线程读取硬盘数据存入内存。在汽车车牌图像文字识别中,利用CNN网络对固定长度的文字进行识别,比如对于简单验证码进行识别,识别率非常高。
它的缺点是利用CNN网络的图像文字识别技术大多通过识别每个单字符以实现全文的识别,这一过程很容易导致上下文信息的丢失,虽然对于单个字符有较高的识别正确率,但对于整体语句的识别,其正确率却难以保证。
对于序列问题的处理,RNN是强项,它衍生出了新的一类算法,分别是CNN+RNN+CTC和CNN+RNN+Attention。这两大方法主要区别在于最后的输出层即翻译层,如何将网络学习到的序列特征信息转化为最终的识别结果。
2.3 CRNN-CTC算法
CRNN-CTC的网络结构从下到上包括三部分:卷积层使用CNN 是从输入图像中提取特征序列,循环层使用RNN或lstm预测从卷积层获取的特征序列的标签分布,转录层使用CTC把从循环层获取的标签分布通过去重整合等操作转换成最终的识别结果。
2.4 CRNN部分
在CRNN模型中,去除了全连接层,采用标准CNN模,来从输入图像中提取序列特征。在进入网络之前,所有的图像需要缩放到相同的高度。然后从卷积后产生的特征图中提取特征向量序列,这些特征向量序列作为循环层的输入。具体来说,特征序列的每一个特征向量在特征图上按列从左到右生成。这意味着第i个特征向量是所有特征图第i列的连接。在我们的设置中每列的宽度固定为单个像素。
在卷积层,最大池化层和激活函数是在局部区域上执行的,因此它们是平移不变的。因此,特征图的每列对应于原始图像的一个矩形区域(称为感受野),并且这些矩形区域与特征图上从左到右的相应列具有相同的顺序。特征序列中的每个向量关联一个矩形区域(感受野),并且可以被认为是该区域的图像描述符。
2.5 RNN部分
卷积层的顶部是一个深度双向循环神经网络,我们把它称为循环层。作为循环层,它的优点有:第一RNN模型具有很强的捕获序列内上下文信息的能力。第二个优点是RNN模型可以将误差值反向传播到上一步的卷积层,从而允许我们在统一的网络中共同训练循环层和卷积层。第三个优点是RNN模型能够从头到尾对任意长度的序列进行操作。
2.6转录层
转录层:转录层是将RNN所做的每帧预测转换成标签序列的过程。从数学上分析,转录是根据每帧预测到具有最高概率的标签序列。在实际操作中,词典是一组标签序列,预测受拼写检查字典约束,它存在两种转录模式,即无词典转录和基于词典的转录。在无词典模式中,预测时没有任何词典。在基于词典的模式中,通过选择具有最高概率的标签序列进行预测。
(下转第253页)
·学术论坛·
(2)强化修养与构建气氛,适应归属需求和尊重需求。在增强纪检监察人员自身修养的问题上,牢固宗旨思想,更新自身观念,凸显纪检监察必要性。积极履职尽责,将“要我抓”转变为“我要抓”,自主担当与作为,切合实际的将监督记在心头。并且组建高素质的纪检监察团队,基于企业现有规模和人员数量安排对应的纪检工作者,在数量上增强纪检监察实力,注重人才科学选拔,围绕标准聘用人才,坚持以德为先,把政治理论能力强且业务水平高的人才进行选拔,完成人才与岗位之间的相互匹配。针对廉洁气氛的塑造上,充分适应纪检监察工作者的尊重层面需求,增强其对工作思想认知,领导者强调纪检监察工作进展,整理纪检监察工作以及企业生产管理的关联,把影响到企业前进发展的因素扼杀在摇篮中,巩固纪检监察单位所处的地位。纪检监察工作者的职能履行,首要关键点是思想认知,围绕“三基建设”理念组织党员干部进行研讨活动,加入到党内外廉洁教育工作中,形成企业内廉洁的文化气氛。
(3)训练工作技能,强化自我价值凸显。在企业纪检监察履职过程中,应该强化其理论知识和业务水平掌握,深层次观察党章与党规的学习,了解必备业务与法律知识,促使纪检队伍人员技能水平得以全方位增强。并且组织纪检监察人员进行知识转换和应用,通过创新方式研究全新的发展倾向,做好业务水平的“宣传者”与“裁判者”,锤炼工作作风,严格要求纪检监察人员工作标准,在日常工作中依法执纪,不可以徇私情。
4.结束语
综上所述,强化学习筑牢信念增强纪检监察人员履职能力研究课题的开展十分必要,纪检监察人员作为党组织政策方针落实的坚实力量,企业要充分的重视纪检监察人员履行能力发挥,引进新颖的队伍培养计划与方案,从纪检监察人员内心出发,和其深入的沟通交流,在不间断的学习与引导之下,筑牢监察人员工作信念,由此推动企业更好的前进和发展。
参考文献
[1]梁琦敏. 浅析基层烟草行业建设忠诚干净担当的纪检监察干部队伍存在问题及对策[J]. 山西青年, 2018(22).
[2]张宝林, 杨钧. 新时代高校纪检监察工作高质量发展的思考——学习贯彻十九届中央纪委三次全会精神[J]. 河南教育:高教, 2019, 169(05):21-24.
[3]高翔. 筑牢安全防线,守护幸福童年[C]// 成都市陶行知研究会第七期“教育问题时习会”论文集. 2019.
[4]聂斌. 新时代党建工作应加强理想信念教育筑牢思想根基[J]. 课程教育研究:学法教法研究, 2018(23):65-65.
[5]李长江. 强化监督,筑牢防线——浅谈纪检监察工作对企业健康发展的保障作用[J]. 青春岁月, 2018(19).
[6]胡启明. 浅谈如何提高员工履职能力——以企业纪检监察人员为例[J]. 人力资源, 2019, 000(008):12-13.
[7]普戡倪. 提升高校纪检监察干部履职能力的路径%Improving Per-formance Capacity of Discipline Inspection and Supervision Cadres in Colleges and Universities[J]. 华北水利水电学院学报(社科版), 2018, 034(004):55-57.
[8]楚歌, 杜红燕. 淬火充电提升履职能力--南方医科大学对全校纪检监察干部进行全员培训[J]. 党风, 2019(8):31-31.
(上接第251 页)
3.汽车车牌识别系统设计
3.1 CTC的计算方法
CTC的工作原理是什么呢?CTC是一种Loss计算方法,用CTC 代替Softmax Loss,我们对训练样本不需要将它对齐。CTC通过引入blank字符,解决了有些位置没有字符的问题;同时,CTC通过递推,可以快速计算梯度。用ctc loss时会出现这种情况,如果(输入框)input的长度远远大于(标签)label的长度,那么训练的时候,一开始的收敛会比较慢。在其中有一段时间精度几乎不变。此刻一定要有耐心,最终一定会收敛的。在ocr识别的这个例子上最终可以收敛到99%的精度。
3.2导入库
首先,介绍项目中需要用到的python库和深度学习框架。汽车上牌照
(1)numpy as np:一个python的基本库,用于科学计算。
(2)time as python:一个python的time模块,time.time返回当前时间的时间戳。
(3)utility文件里面定义了一些添加参数、打印参数的函数。
(4)functools模块用于高阶函数。
(5)argparse是python用于解析命令行参数和选项的标准模块
3.3 CRNN-CTC网络的搭建
首先需要定义几个函数:
(1)conv_car_pool()函数:函数含有卷积核池化操作。
(2) ocr_convs()函数:这个函数有conv_car_pool()函数构成,里面含有设定的权重值和偏置项,并进行了初始化。
(3)car_train_net()函数:ctc的训练网络,里面含有CTC-loss,优化器的配置。
参数创建后,下一步定义一个优化器,用于改善模型的训练效果以及速度。
3.4定义函数和设置参数
定义一个 car_train() 函数,把以上内容放在里面,后面可以通过双层循环来实现模型的训练直接调用这个函数。
对于参数的传递,在命令行里面执行:python --carxxx --carxxx。
3.5启动训练
可以执行car_train()方法,启动训练。
4.识别结果与项目意义
根据车牌识别的CRNN-CTC模型,经过道路上车牌测试后,在模型评估上top1的正确率达到99.8%,在一些比较理想的环境下文字识别的效果准确率高,但对于复杂的场景或干扰较大的文字图像,识别需要进一步做优化。该研究后期可以扩展到汽车闸算法、停车场收费系统,不但对固定长度的文字有良好的识别效果,而且对变长的文字也有不错的识别效果。
参考文献
[1]张飞鸽,MATLAB在数字图像处理中的应用[J],计算机技术与发展,2019-06-26
[2]刘洪亮, 摄像头车牌识别分析及改进研究[J]. 科技经济导刊, 2019-07-05
[3]影像边缘检测Prewitt算子的改进算法[J]. 杨道普,马秋禾,石磊. 影像技术. 2009(02)