基于深度学习的数显仪表字符识别

2020-06-16 00:24朱立倩
计算机技术与发展 2020年6期
关键词:字符识别短时记忆字符

朱立倩

(中国石油大学(华东)计算机科学与技术学院,山东 青岛 266580)

0 引 言

数显仪表在许多领域有着广泛的应用,但大多数的数显仪表不具备数据通信的功能,从而无法完成仪表数据的自动获取与存储。在实际应用中,需要大量的人力对仪表数据进行记录以及录入电脑,这不仅耗时耗力,而且多次的转录易导致错误发生,降低了系统的自动化水平。人们希望可以自动识别数显仪表中的数据,以提高工作效率及自动化水平。

机器视觉的不断发展,为数显仪表字符的自动识别提供了可能。传统字符识别方法[1-3]的一般步骤为对获取的原始图像进行预处理,字符定位,字符分割,字符识别,传统方法一般需要图片有较纯净的背景,略复杂的图片会导致识别失败,这表明传统方法适应性差,容错性低。近年来,随着深度学习技术[4-6]的不断发展,文本检测和识别算法[7-10]的准确度都大大提升,这为数显仪表字符识别提供了新的解决思路。

为了解决传统方法适应性差,容错性低的问题,采用深度学习技术,提出了一种基于深度学习的数显仪表字符识别方法,记为DDICRNet(digital display instrument character recognition net),该方法对图片内容有较大的容错性,可以应用于不同的数显仪表,只需要重新训练模型,同时可以保证识别的准确度。该方法以变压器直流电阻测试仪为具体应用对象,实验结果显示,该方法可以实现95%的准确率。

1 提出的方法

此部分详细介绍了提出的数显仪表字符识别方法。整体设计思路为字符区域定位网络获得图片中的字符区域位置信息,利用位置信息裁剪字符区域,将裁剪后的字符区域送入字符识别网络得到识别结果。整个方法由两部分构成,分别为字符区域定位网络CRLNet(character region location net)和字符识别网络CRNet(character recognition net)。

1.1 字符区域定位网络

定位的准确性直接影响识别的准确性,所以字符区域定位的准确性至关重要。为了提高字符区域定位网络的准确性,在Faster R-CCN[5]的基础上,从两方面对其进行改进:(1)使用更加高效的特征提取网络,以保证分类的准确性;(2)使用精确感兴趣区域池化(precise RoI-Pooling)[11]代替RoI-Pooling,提高定位的准确性。通过这两个方面的提高,保证检测结果的准确性。

CRLNet由ResneXt-101[12],区域提案网络[5],分类和回归网络以及后处理算法[5]构成。网络结构如图1所示。ResneXt-101由五个卷积组构成,每个卷积组由卷积层、池化层、激活层构成。卷积组2-5借鉴了GoogLeNeT[13]的split-transform-merge思想,在大卷积核层两侧加入1×1的卷积,控制核个数的同时减少参数个数。与Resnet[14]相比,参数更少,效果更好,训练速度更快。由于以变压器直流电阻测试仪为具体应用对象,所以考虑到需要定位区域的大小和形状,将RPN中的候选框的大小设置为64×64,128×128。纵横比设置为1∶4。将ResneXt-101最后一层产生的特征图送入RPN网络中,得到区域提案。选取256个区域提案作为样本,正负样本比为3∶1,通过精确的感兴趣区域池化操作对区域提案的特征图统一尺寸,通过三个全连接得到分类和边框回归的预测结果。

图1 字符区域定位网络结构

对特征图上的感兴趣区域进行RoI-Pooling会导致定位不准确,这是因为RoI-Pooling进行的两次量化取整操作会带来精度损失。另外,RoI区域中的像素是离散化的,没有梯度更新也就无法调节训练。精确的感兴趣区域池化相比RoI-Pooling,没有任何坐标量化过程,整个区域的像素值通过积分计算得到,所有的像素值都有梯度的传递。所以能在特征图上对感兴趣区域提取更精准的特征。给定精确的感兴趣区域池化操作前的特征图F,设wij是该特征图上一个离散位置(i,j)处的特征,使用双线性插值,这个离散的特征图可以看作在任意连续的坐标(x,y)处都连续:

(1)

IC(x,y,i,j)=max(0,1-|x-i|)×max(0,1-|y-j|)是插值系数。然后将RoI的一个bin表示为:

bin={(x1,y1),(x2,y2)}

(2)

其中,(x1,y1),(x2,y2)是左上角和右下角的连续坐标。给定bin和特征图F,通过计算一个二阶积分来执行池化:

(3)

1.2 字符识别网络

受文献[15]方法的启发,构建字符识别网络。网络可以视为编解码器结构,编码器由特征提取网络ResneXt-50[12]和双向长短时记忆网络(BiLSTM)[16]构成,解码器由加入注意力机制[17]的长短时记忆网络(LSTM)构成。网络结构如图2所示。

图2 字符识别网络结构

由于BiLSTM的输入是向量,所以特征提取网络的输出高度应为1像素。而ResneXt-50共有五个池化层,在高度上的步长均为2,所以输入图片的高度应固定为32像素,为了不改变输入图像的纵横比,宽度为(W×32)/H。其中W,H为裁剪的字符区域的宽度和高度。使用修改后的ResneXt-50作为特征提取网络。所做修改如下:将ResneXt-50最后三组卷积中的池化层步长由2×2改为2×1。这是因为字符是长条形的,即高度大于宽度,使用2×1的步长池化后得到的特征序列中一个像素点的感受野是长方形的,符合字符瘦高的特性。

编码器为双向长短时记忆网络,具有长期记忆功能,可以同时利用前向和后向的信息。解码器由加入注意力机制的长短时记忆网络构成。长短时记忆网络的长期记忆功能有限,当序列信息特别长时,通过多层后最初的信息会丢失,而注意力机制为特征序列的每一列分配权重,重新计算得到当前时刻的特征,此时的特征具有全文信息,有助于字符识别。

加入注意力机制的长短时记忆网络解码过程如图2所示,在时刻t,由特征序列和长短时记忆网络在时刻t-1的状态St-1计算得到在时刻t特征序列的每一列hi的权重α,计算公式为:

et,i=wTtanh(Wst-1+Vhi+b)

(4)

(5)

其中,w,V,W是训练得到的。通过式(5)得到时刻t输入的特征向量:

(6)

t时刻的输出为:(St,ht)=rnn(St-1,(gt,ht-1))。(gt,ht-1)是指将两个向量拼接在一起。ht用于预测t时刻的字符概率:p(yt)=softmax(Wht+b),W和b是训练得到的。

最终LSTM的输出为1×w×c大小的概率矩阵,w为特征图的宽度,c为字典中字符的个数。在概率矩阵中使用贪心搜索得到最后的字符序列。

2 实验分析

2.1 实验配置

处理器:Intel®CoreTMi7-5930K CPU @ 3.50 GHz×12,内存16 G,显卡TITAN X(Pascal)。

2.2 数据集

Synth80是人工合成的图片,可用于文字检测和识别。利用文本识别数据生成器合成类似于真实数据集的图片,共十万张。真实数据集为采集的数显仪表图片,训练集共500张,测试集共50张。

2.3 训 练

训练字符区域定位模型:随机选取synth80中的十万张图片,制作成Coco格式的数据集,用于字符区域定位模型训练,得到预训练模型。在此模型基础上用真实数据集进行微调,得到最终的模型。

训练字符识别模型:使用合成的十万张图片进行预训练,使用真实的数据集进行微调,得到最终的字符识别模型。

2.4 实验结果与分析

由于图片较大,截取了图片中检测以及识别的部分用于展示结果。

图3 字符区域定位结果对比

FasterR-CNN的部分检测结果如图3(a)所示,会出现漏检,定位不准确现象。改进后的算法CRLNet的部分检测结果如图3(b)所示,漏检现象减少且定位更加准确;表1中字符区域定位网络CRLNet的准确率达到96%,比Faster R-CNN提高了5个百分点,进一步证明改进后的算法有效减少漏检现象。由实验结果发现模糊以及反光的图片易造成漏检和定位不准确现象,改进后的算法有效缓解了上述现象,但并不能完全消除。在采集图片时保证图片的清晰可以从根源上解决上述现象。

表1 网络准确率

由表1可知,单纯的字符识别网络CRNet可以达到98%的准确率。将字符区域定位和识别模型集成在一起构成DDICRNet,得到最终的识别准确度为95%。部分识别结果如图4所示。实验结果显示,字符区域定位的准确性直接影响字符识别的效果,在保证定位准确清晰的情况下,基本可以识别正确。在实际应用中,最好的措施是在采集图片时注意遮挡,避免抖动,尽量保证图片的清晰,以提高字符区域定位算法的准确性,进而保证识别的准确性。

图4 字符识别效果图

3 结束语

提出利用深度学习技术解决数显仪表字符识别的问题,取得了良好的效果,但由于网络结构较复杂,图片尺寸大(1 440×1 080),检测和识别一张图片需要0.2秒左右,无法满足实时性要求,下一步的工作将研究提高网络的识别速度。

猜你喜欢
字符识别短时记忆字符
基于长短时记忆神经网络的动力电池剩余容量预测方法
Python实现图片转字符画
正则表达式快速入门
图片轻松变身ASCⅡ艺术画
吉林大学考古与艺术博物馆观众短时记忆调查报告
英语听力理解与短时记忆
融合字符及字符排列特征的铭牌识别方法
一种基于OpenCV的车牌识别方法
基于MATLAB的图片中字符的分割与识别
初中生认知能力对学业成就的影响