基于卷积神经网络的真实场景下水表读数识别
Automatic Recognition Method of Water Meter Degree in Real Scene Based on Convolutional Neural Network
DOI: 10.12677/CSA.2021.113047, PDF, HTML, XML, 下载: 661  浏览: 1,548  科研立项经费支持
作者: 周小宁, 李嘉星:河南工业大学信息科学与工程学院,河南 郑州;张 成:河南工业大学人工智能与大数据学院,河南 郑州
关键词: 图像处理数字识别卷积神经网络深度学习LeNetImage Processing Digital Recognition Convolutional Neural Network Deep Learning LeNet
摘要: 为实现真实场景下老式机械水表读数的自动识别,提出一种基于卷积神经网络的水表数字识别方法。对原始的水表图像进行预处理,通过坐标定位以及分割,获取单个字符的数据集;使用椒盐噪声、旋转角度的方法扩增数据集;而后再依次经过灰度化、滤波、局部阈值分割等操作,对图像进行细节的处理;在TensorFlow的深度学习框架下搭建LeNet卷积神经网络模型,选取卷积核为3 * 3的卷积层,将处理好的数据放入到改进后的LeNet网络模型中进行训练,最终实现字符的分类识别。实验结果表明:该方法在训练集上的准确率达到99.97%,在测试集上的准确率达到98.36%,为真实场景下水表读数的自动识别提供了可能。
Abstract: In order to realize the automatic recognition of old mechanical water meter reading in real scene, a new method of water meter digital recognition based on convolutional neural network was proposed. The original water meter image was preprocessed, and the data set of a single character was obtained by coordinate positioning and segmentation. The method of salt-and-pepper noise and rotation angle was used to amplify the data set. Then through the grayscale, filtering, local threshold segmentation and other operations, the details of the image are processed. In the deep learning framework of TensorFlow, a LeNet convolutional neural network model was built, the convolutional kernel was selected as a 3 * 3 convolutional layer, the processed data was put into the improved LeNet network model for training, and the character recognition was finally realized. Experimental results show that the accuracy of this method is 99.97% in the training set and 98.36% in the test set, which provides the possibility for the automatic recognition of water meter reading in the real scene.
文章引用:周小宁, 李嘉星, 张成. 基于卷积神经网络的真实场景下水表读数识别[J]. 计算机科学与应用, 2021, 11(3): 467-475. https://doi.org/10.12677/CSA.2021.113047

1. 引言

近年来,随着自动控制技术和信息网络技术的发展,智能水表正在逐渐取代老式的机械水表,远程抄表水表系统的应用也越来越广泛。但在许多地区,由于环境、成本等因素的限制,机械水表无法被替换,仍旧需要人工手动进行抄表。因此,为了实现对老式机械水表的自动识别,进行真实场景下的水表读数自动识别的研究具有重要的理论与实践意义。

卷积神经网络(Convolutional Neural Network, CNN)是一种前馈型的神经网络,是目前深度学习技术领域中非常具有代表性的神经网络之一,其在大型图像处理方面应用广泛,现已经被大范围使用到图像分类、定位等领域中 [1] [2] [3]。LeNet是由Yann LeCun [4] 在1998年提出,用于解决手写数字识别的视觉任务 [5] [6] [7],它是早期卷积神经网络中最具有代表性的实验系统之一,也被称为是现代卷积神经网络的鼻祖。它在许多方面都有所应用 [4] [8] [9],如邹佳丽采用改进的LeNet-5进行面部表情识别 [10];安源等人基于改进的LeNet-5网络研究单通道图像分类问题 [11]。本文将采用这一经典模型,通过改进后,实现水表读数自动识别的功能。但深度学习要以大量数据为基础,数据集过少或单一都将造成过拟合的问题。因此,在使用模型进行训练之前,我们通过对原始图像进行字符定位切割,通过旋转角度、增加椒盐噪声实现数据集的扩增,再进行灰度化、滤波和局部预知分割的操作,对数据进行这些必要的预处理操作 [12],便可以有效地解决这一问题,从而提高准确率。

本文将对数据集进行定位切割、扩增、灰度化、滤波以及局部阈值分割等一系列预处理操作后 [13],使用卷积神经网络进行水表读数识别,通过对LeNet网络中的参数进行微调,提高模型的数字识别精度 [14]。

2. 水表数字识别的实现

本文提出的水表数字自动识别方法包括原始水表图像预处理、卷积神经网络的训练和结果预测,其中数据预处理操作又包括定位、切割单个字符、通过椒盐噪声、旋转扩增数据集、灰度化、滤波以及局部阈值分割等,水表数字识别流程图如图1所示。

Figure 1. Flowchart of water meter digital identification

图1. 水表数字识别流程图

2.1. 定位切割

对于原始的水表图像,如图2所示,首先需要定位分割出读数区域,然后将五位的读数切割为单个的字符,以便后续的预处理。

Figure 2. Original water meter image

图2. 原始水表图像

本文中每一张原始水表图像都有对应的文本标签,文本标签中给出了该张图片中数字矩形区域的四个顶点坐标以及读数,因此可根据所给的坐标定位分割出数字区域。由于真实场景下拍摄方式、角度等因素的影响,图像可能存在倾斜,读数不在一条水平线上的问题,所以在进行分割之前要先对图像进行矫正,使其旋转一定的角度后,读数区域可水平放置。这一过程可通过比较左上角和右上角的横坐标,计算得到所需旋转的角度,再进行定位分割,从而获取水平放置的读数区域。根据读数区域是规则的矩形的特性,对读数区域进行五等分便可以得到单个字符的图像。部分数据集如图3所示。

Figure 3. A partial dataset

图3. 部分数据集

2.2. 数据集扩增

深度学习要以大量数据为基础条件,因所获取的数据大多为清晰规则的,较为单一,使用该数据集训练得到的模型识别较为复杂的图像时准确率会下降,因此扩增数据集,使训练集丰富多样是很有必要的。本文采用增加椒盐噪声以及旋转一定的角度来丰富扩增数据,以提高模型识别模糊或倾斜图像时的准确率。

椒盐噪声(salt-and-paper noise)也称为脉冲噪声,是由图像传感器、传输信道、解码处理等产生的黑白相间的亮暗点噪声,往往是由图像切割引起的。增加椒盐噪声算法伪代码如表1所示,增加前后的效果图如图4所示。

Figure 4. Effect of adding salt and pepper noise

图4. 增加椒盐噪声效果图

Table 1. Add pepper and salt noise algorithm pseudocode

表1. 增加椒盐噪声算法伪代码

2.3. 灰度化

图像灰度化是指图像中的每一像素点的分量都满足R = G = B = V的关系,此时的V称为是灰度值,灰度图像即指含有亮度信息、不含彩色信息的图像。真实场景下所拍摄的图像均为彩色的,处理三个通道的数据比较复杂,因此可先将图像进行灰度化处理,将每个像素点的RGB值统一为同一个值,灰度化后的图像将由三通道变为单通道,单通道的数据处理相比较起来会简单许多。灰度化处理前后效果图如图5所示。

Figure 5. Grayscale effect diagram

图5. 灰度化效果图

2.4. 滤波

中值滤波器是一种非线性滤波器,在输入的图像x(n1, n2)中,以任一像素为中心设置一个确定的领域A,A的边长为2N + 1, ( N = 0 , 1 , 2 , ),将领域内各像素的强度值按照大小顺序进行排列,取中值作为该像素点的输出值,遍历整张图像便可以完成滤波的操作。图像在传输的过程中,主要由于传输信道的干扰而容易受到噪声的污染,本文在加噪过程中使用的是椒盐噪声,同时在图像进行分割时也容易产生椒盐噪声,因椒盐噪声值为255或0,它散布在领域中,不是最大值便是最小值,不可能成为中值,因此选用中值滤波的方法来进行去噪,效果良好。

2.5. 局部阈值分割

通过观察数据集可以发现,在真实场景下拍摄的水表图像,由于存在拍摄角度、光照等的影响,图像的灰度可能是不均匀分布的,本文采用局部阈值分割 [15] 的方法,根据图像不同区域的亮度分布,计算其局部阈值,从而减少了光照不均匀等因素给实验带来的影响。

2.6. LeNet网络模型的搭建

本文采用的方法是基于LeNet网络模型,进行了部分的改进,它是一个相对较小的卷积神经网络,由3个卷积层(convolution, Conv)、2个池化层(Pooling)、1个全连接层(fullconnected, FC)和1个输出层(Output)构成,其网络架构如图6所示。

本文的网络结构在原始的LeNet模型上进行了改进,输入的图片大小为28 * 28,其中卷积层卷积核的大小为3 * 3,卷积步长为1,使获取的图像中原始信号增强,降低噪音;池化层池化核大小为2 * 2,有效降低网络训练参数及模型过拟合程度。

1) 输入图像:卷积神经网络的输入图像为1个大小为28 * 28的图像。

2) 卷积层(Conv):输入图像和1个大小为3 * 3的卷积核进行卷积计算,输出处理之后的特征图。卷积计算公式为:

Figure 6. LeNet network architecture

图6. LeNet网络架构

x i j = f ( w i j × x i 1 + b i j ) (1)

f ( x ) = 1 1 + e x (2)

式中, x i 1 表示上层特征图; x i j 表示卷积核j对应输出的特征图; w i j 表示第j个卷积核的权重参数,即上一层第i个特征图与该层第j个特征图之间进行卷积操作 [16]; b i j 表示偏置值; f ( x ) 表示激活函数。

3) 池化层(Pooling):在卷积层之后引入池化层,对特征图像进行过滤、降维,实现缩减特征图的尺寸 [17],防止数据过于庞大,提高运算效率。使用2 * 2大小的池化核对每个特征图进行处理。池化计算公式如下:

x i j = P o o l i n g ( x i 1 ) (3)

式中, x i 1 表示上层特征图; x i j 表示经池化后对应输出的特征图; P o o l i n g ( x ) 表示池化函数。

4) 全连接层(FC):该层对提取到的特征进行非线性组合,整合所有的局部特征信息,将之前的特征图像相连接。

5) 输出层(Output):输出不同类别的概率值,本文需识别0~9共10个数字,因此设置10个类别,概率值最大的即为图像的分类标签。

LeNet卷积神经网络模型伪代码如表2所示。

Table 2. Pseudocode of LeNet model algorithm

表2. LeNet模型算法伪代码

3. 实验与结果分析

3.1. 实验准备

本文的算法实验环境为:Windows10操作系统、Python语言,系统的硬件环境为Intel(R) Core(TM) i7-10510U处理器、NVIDIA GeForce MX250独立显卡。

在Tensor Flow深度学习框架下,搭建改进后的LeNet卷积神经网络模型,通过一系列预处理得到数据集,按照4:1的比例分为训练集和测试集,在训练过程中,迭代次数为25次。

3.2. 结果分析

本文通过训练过程中的损失函数的收敛性以及训练阶段的识别准确率来评估该模型网络的性能。如图7所示的损失函数值随迭代次数的变化可以看出,迭代15次左右,损失函数值即可收敛至0值附近,并且随迭代次数的增加,损失函数值逐渐稳定趋于0值。同时,每一次迭代训练后都记录一次训练识别准确率。

Figure 7. Digital recognition accuracy and loss function curve

图7. 数字识别准确率和损失函数曲线

记录本文网络模型训练和测试准确率,实验结果如表3所示,部分测试结果如图8所示。

Figure 8. Part of the test results

图8. 部分测试结果

Table 3. Recognition accuracy

表3. 识别准确率

本文首先通过对原始的水表图像进行字符定位分割,使用旋转小角度和增加椒盐噪声的方法初步得到数据集,接着对数据进行多方面的分析,选用灰度化、中值滤波依据局部阈值分割的处理方法对图像数据进行操作,最后使用改进后的LeNet神经网络模型对数据进行训练,从而得到预测结果。从表3图8的实验结果上可以看出,最终达到了较高的水表识别准确率。

4. 结语

本文根据所拍摄获取的水表图像的具体特性,对图像数据进行了各个方面的预处理操作,根据LeNet网络搭建了新的网络模型,提出了一种基于卷积神经网络的真实场景下水表读数识别方法。实验表明:改进的网络模型,经过20次迭代,识别准确率可达到99.97%,识别精度较高,有效提高了真实场景下水表读数自动识别的可靠性,为实现老式机械水表自动识别提供了可能。本文也存在一些不足之处,如随着网络层数的加深,可能会出现过拟合的情况,下一步的研究中将尝试使用残差网络(Residual Network简称ResNet) [18] [19] 来解决这一问题。

基金项目

河南工业大学2019本科教育教学改革研究与实践项目JXYJ-Z201920 (计算机专业硬件课程创新研究与教学实践);河南工业大学2019年度离散数学“线上线下混合教学模式课程”。

参考文献

参考文献

[1] 宋丽芳, 罗兵. 基于Lenet-5的空间结构光编码符号识别研究[J]. 五邑大学学报(自然科学版), 2017, 31(2): 40-45.
[2] 梅妍玭, 廖倩, 邵万灵. 基于LeNet神经网络的手写数字识别技术研究[J]. 新技术新工艺, 2020(6): 51-53.
[3] 吕红. 基于卷积神经网络的手写数字识别系统的设计[J]. 智能计算机与应用, 2019, 9(2): 54-56,62.
[4] Lecun, Y., Bottou, L., Bengio, Y. and Haffner, P. (1998) Gradient-Based Learning Applied to Document Recognition. Proceedings of the IEEE, 86, 2278-2324.
https://doi.org/10.1109/5.726791
[5] 吴阳阳, 彭广德, 吴相飞. 基于LeNet-5改进的卷积神经网络图像识别方法[J].信息与电脑(理论版), 2018(7): 127-130.
[6] 柴伟佳, 王连明. 卷积神经网络的多字体汉字识别[J]. 中国图象图形学报, 2018, 23(3): 410-417.
[7] 范望, 韩俊刚, 苟凡, 李帅. 卷积神经网络识别汉字验证码[J]. 计算机工程与应用, 2018, 54(3): 160-165.
[8] Lawrence, S., Giles, C.L., Tsoi, A.C. and Back, A.D. (1997) Face Recognition: a Convolutional Neural-Network Approach. IEEE Transactions on Neural Networks, 8, 98-113.
https://doi.org/10.1109/72.554195
[9] Tivive, F.H.C. and Bouzerdown, A. (2006) An Eye Feature Detector Based on Convolutional Neural Network. 8th International Symposium on Signal Processing and Its Applications, Sydney, 28-31 August 2005, 90-93.
[10] 邹佳丽. 基于改进LeNet-5的面部表情识别[J]. 信息与电脑(理论版), 2020, 32(23): 65-67.
[11] 安源, 刘春, 蔡朝晖, 马英瑞. 基于改进的LeNet-5网络在单通道图像分类中的研究[J]. 信息技术, 2020, 44(12): 8-10+16.
[12] 杨依霖, 黄浩, 胡永明, 王德志, 李岳彬. 基于LeNet卷积神经网络的路面病害自动检测方法[J]. 物联网技术, 2021, 11(1): 47-50.
[13] 莫玲, 李剑豪, 肖苏华, 张帆, 甘艳. 基于灰度图像的车道线识别系统研究[J]. 轻工科技, 2021, 37(1): 80-83.
[14] 邸亮, 涂俊翔, 禹杰. 基于Lenet-5网络组合特征融合的水表数字识别[J]. 机械制造与自动化, 2020, 49(6): 189-192.
[15] 马保国, 乔玲玲, 贾寅波. 基于局部自适应阈值的细胞图像分割方法[J]. 计算机应用研究, 2009, 26(2): 755-756.
[16] 段萌, 王功鹏, 牛常勇. 基于卷积神经网络的小样本图像识别方法[J]. 计算机工程与设计, 2018, 39(1): 224-229.
[17] 张慧, 肖蒙, 崔宗勇. 基于卷积神经网络的SAR目标多维度特征提取[J]. 机械制造与自动化, 2017, 46(1): 111-115.
[18] 王晓红, 刘芳, 麻祥才. 基于深度残差学习的彩色图像去噪研究[J]. 包装工程, 2019, 40(17): 235-242..
[19] 段祎林, 马儇龙, 贾端. 基于ResNet验证码混淆风格的迁移学习方法[J]. 西安石油大学学报(自然科学版), 2019, 34(6): 121-125.