基于卷积神经网络的水表字符识别方法研究
2020-04-05潘帅成韩磊陶毅刘清雨郑胜男
潘帅成 韩磊 陶毅 刘清雨 郑胜男
摘 要: 为了提高水表字轮字符图像识别的准确率,提出一种基于深度卷积神经网络的字符识别方法。传统识别方法需要构建大量模板,工作量大且容易受到外界的光线和杂物的干扰,识别准确率较低。基于深度卷积神经网络的字符识别方法,改进了经典的CNN网络结构,构造一个同时能识别字符和表盘的卷积神经网络模型。在自建的训练集和测试集上训练测试,结果表明,该方法有效地提高了水表字轮图像识别率。
关键词: 卷积神经网络; 智能识表; 图像识别; 字符识别; 半字识别
中图分类号:TP389.1 文献标识码:A 文章编号:1006-8228(2020)02-25-04
Research on character recognition technology for watermeter based on deep
convolution neural network
Pan Shuaicheng, Han Lei, Tao Yi, Liu Yuqing, Zheng Shengnan
(Nanjing Institute of Technology, Nanjing, Jiangsu 211167, China)
Abstract: In order to improve the accuracy of watermeter character recognition, this paper proposes a character recognition method based on deep convolutional neural network. Traditional identification methods need to build a large number of templates, which requires a lot of work, and are easy to be interfered by external light and sundries, so the identification accuracy is low. The character recognition method based on deep convolutional neural network improves the classical CNN network structure and constructs a convolutional neural network model that can recognize both the character and the character wheel. Training and testing on self built data sets, the results show that the method can effectively improve the character recognition rate of watermeter character wheel image.
Key words: convolutional neural network; intelligent watermeter recognition; image recognition; character recognition; half-word recognition
0 引言
智能识表投资和运维费用低、速度快、效率高,其应用前景广泛。摄像抄表主要包括字符定位、字符的分割、字符识别,其中水表字轮字符图像识别是智能识表的难点。基于区域聚合的方法[2]运行速度较快,但是容易受到图像分辨率低和噪声的影响;目标识别法通过改进的特征匹配算法匹配特征向量,提升了准确率但识别速度有所下降;以欧拉数为基础的模板匹配将模板图像分组,把目标图像与具有相同欧拉数的模板去匹配,但对半字识别问题解决的不好。同时上述方法易受环境因素影响,鲁棒性不强。
本文提出一种基于深度卷积神经网络的智能识表方法,结合经典的网络结构的特点,构建了新型的适用于水表图像识别的卷积神经网络M_CNN(Modified_CNN),它既能识别水表的字轮图形,又能识别数字图像。且不易受环境因素等影响。
1 经典的卷积神经网络
基于CNN的经典神经网络有LeNet5、AlexNet、GoogLeNet等。LeNet5作为诞生较早的CNN,采用了ReLU激活函数,加入了Dropout层,并且扩充了训练的数据量。但是AlexNet只有八层,前五层为卷积层,后三层为全连接层,网络深度不够,且丢弃池化层易发生过拟合的问题。
GoogLeNet给CNN注入模块化思想,使用1×1的卷积来进行升降维,其稀疏连接结构提高了网络对各种复杂图像的适应性,但应用于字符识别计算时间偏长。
本文提出的M_CNN前四层可以看作一个模块,后续保持模块的結构不变,只改变部分的卷积核等参数。M_CNN是针对水表字符专门构建的卷积神经网络,对经典CNN的特点和思想加以借鉴,更加契合摄像抄表的使用场景。
2 改进的卷积神经网络
2.1 改进基础
M_CNN是在CNN_ON_MNIST[1,6]和NN_ON_ CIFAR[3]的基础上加以改进,构建出既可以识别数字又能识别小轮盘的模型。CNN_ON_CIFAR可以有效识别CIFAR-105数据集中的图像,CIFAR-10数据集针对自然中10类常见物品建立的数据集。此网络可以用于识别水表的字轮图像。CNN_ON_MNIST可以有效识别手写数字,此网络可以有效识别水表的字符图像。
将两者模型相结合,构建了新的神经网络M_CNN,同时可以识别水表的字轮图像和字符图像,利用自建的水表训练集和测试集,进行训练、测证,泛化能力更佳。
2.2 网络结构
网络输入:30x60单通道灰度图像,输出:0-9分类标签。
如图1所示,M_CNN借鉴了模块化的设计思想,将两个卷积层,一个最大池化层一个dropout作为一个模块,网络中一共使用了三个这样的模块,第一个模块卷积核个数是32个,第二个模块有64个卷积核,第三个模块有128个卷积核,模块中的卷积核大小是3x3,池化核是2x2,drouput比例是0.25,最后经过一次展平全连接,再次正则化操作抑制上一层的神经元激活,防止过拟合,最后的全连接层会输出一个 128维的向量,softmax 层将这一向量作为输入,然后计算测试图片分别属于这10个类的概率分布,softmax使用交叉熵损失函数(cross-entro-py)来计算每一次预测的loss值大小(公式见式1),常用的loss值计算的函数还有hinge loss[4],但是hinge loss计算的值是无标定的,很难对所有类进行判定。而cross-en-tropy所得的值可以对所有类都进行判定,会给出对每一个类的预测概率,最终输出预测结果。
[loss=-i=1nyi1logyi1+yi2logyi2+...+yimlogyim] ⑴
3 实验过程
此实验平台是英特尔I7-8700处理器,16G内存,GTX1080显卡,显存4G的戴尔工作站,我们使用以Tensorflow为后端的Keras平台搭建出了M_CNN,并在数据集上训练验证。
3.1 构建数据集
字符采集通过树莓派配合微距摄像头完成,字符样本如图2所示。采用USB高清微距摄像头,像素800万,最大分辨率640x480,字轮样本如图3所示。图像分割采用OpenCV进行处理,将5个转轮码盘和四个小数表盘裁剪开。
将采集的数字和指针样本分为0到9共十类。训练集和测试集按照4:1的划分,且相互独立无交集。训练时在训练集上加入重缩放因子,弥补人工采集样本不足的问题,加入随机旋转度,保证后期摄像头随机旋转面对表盘依然有较高准确率。
针对数字字符的半字问题,如图3所示,则读为上半部分的示数为0,即按照字轮的滚动方向读为最近完整显示过的数字,具体读数则结合指针表盘的读数读出。针对轮盘半字问题,依据经验读表方法,提前将它归类为上一次指过的数字一类,再根据后面的X0.1,X0.01和X0.001的表盘读出更加精确的示数。对每一个表盘都依此处理。最后一个表盘因为是最小的单位示数,所以几乎都是指针指向整数。
3.2 训练参数设置
M_CNN模型参数包括激活函数、池化方法、池化核大小、丢弃比例、分类器、损失函数、优化器等参数。重缩放因子,随机旋转角度是样本参数,保证样本多样性。具体参数见表2。
3.3 神经网络中间输出的可视化
图片经过网络的不同层,生成对应的特征图,如图4,图5,从半字识别中特征提取的过程可以看出,在卷积层中已经提取出了有效特征信息,在池化层中进一步提取了有效特征。
在一开始的卷积过程中,几乎保留了原始图像的所有特征信息,随着层数加深,激活越来越抽象关于图像视觉的内容信息变少,关于类别的信息变多,激活的稀疏度随着层数的加深而增大,越来越多的卷积核是空白的,实际这是神经网络的普遍特征随着层数的增加,层所提取的特征越来越抽象。
3.4 训练过程
准确率曲线逐步逼近1.0说明拟合较好,损失值总体上稳步下降并趋于平稳,证明了识别的有效性。
3.5 实验结果
基于自建的数据集和训练集,分别使用传统的神经网络和M_CNN训练测试,结果见表3、表4。使用CNN_ON_MNIST训练的损失变化和准确率变化如图7所示,在测试集中损失值变大了,说明网络基本没有拟合,不能有效识别。使用CNN_ON_CIFAR时变化如图8所示,在测试集上的损失浮动较大,说明训练得到的网络不能较好拟合。综合看损失值、准确率,M_CNN都有更佳的表现。
4 结束语
本文在经典的CNN_ ON_ MNIST和CNN_ON_
CIFAR基础上提出了可以识别水表的MC_CNN,主要是基于树莓派平台,通过外部硬件和软件来读取识别,不需要对水表内部进行改造,相比传统的磁感应式读取可以有效避免磁力消失的问题,相比模式匹配又能减少图像预处理的复杂操作,以及手动选择参数误差较大的问题,提高了可用性,如发展成熟还可以进一步推广到电表,供热表的识别上。
参考文献(References):
[1] 靳涛,张永爱.TensorFlow平台下基于深度学习[J].信息技术与网络安全,2018.37(4):74-78
[2] 郁松,彭志文.基于卷积神经网络的自然背景字符识别[J].计算机应用与软件,2017.34(12):228-234
[3] 段萌,王功鵬,牛常勇.基于卷积神经网络的小样本图像识别方法[J].计算机工程与设计,2018.39(1):224-229
[4] 徐江河,张飞舟,张立福,邓楚博,孙雪剑.一种综合利用图像和光谱信息的物体真假模式识别方法[J].武汉大学学报(信息科学版),2019.44(8):1174-1181
[5] 庞丝丝,黄呈铖.基于卷积神经网络的图像分类研究[J].现代计算机,2019.23:40-44
[6] 郭梦洁,杨梦卓,马京九.基于Keras的MNIST数据集识别模型[J].现代信息科技,2019.3(14):18-19,23