一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于微控制器和卷积神经网络的水表读数自动识别方法与流程

2022-02-20 04:08:43 来源:中国专利 TAG:


1.本发明涉及基于微控制器上通过深度学习方法识别水表读数的技术领域,尤其是指一种基于微控制器和卷积神经网络的水表读数自动识别方法。


背景技术:

2.近几年水表的自动化、智能化发展速度比较迟缓。机械水表不容易受到干扰、安装维护简单、不需要额外的电力消耗,因此大部分居民住宅所使用的水表还是传统的机械水表。但是我国民用水表都是遵循“一户一表”的制度,这就给水表的抄读工作带来了很大的麻烦。传统的人工抄表方式不仅费时费力,还有可能因为人工的疏忽出现误差。虽然当前部分水务公司有专门的手机端app拍照抄表,并自动识别出读数,同时服务端保存每个表的读数照片方便后期比对,但是让抄表员对着每个水表拍照仍然是一项繁琐的事情,而且工作量变大的情况下,很难保证每张图片都符合识别读数的要求。
3.近几年,国家不断重视物联网的发展,并重点扶持物联网、人工智能领域的发展,物联网智能水表的技术不断革新。目前我国的电子水表主要包括两种:一种在传统机械表上加上机电转换装置,将水表工作时叶轮的旋转量换成脉冲电信号,又或者是将字轮读数位置转换成绝对位置的数字电信号。另外一种是纯电子水表,这种水表的流量传感部分不包含机械运动部件,主要通过电磁感应、超声波等技术计算流量。虽然这两种水表准确性比较高,但是我国现阶段传统机械水表还占有大概70%左右的保有量,如果要全部更换成智能水表,短期内不太可能实现,且需要大量的人力物力消耗。因此,基于现有机械水表上加装基于视觉的读数识别装置,是实现智能化水表一种很好的过渡方案。
4.现有的基于视觉识别水表读数的技术,主要是通过光学字符识别技术将水表码盘的读数识别出来。对于字轮读数的识别方式,主要有两种,一种是模板匹配算法;另外一种是卷积神经网络法。模板匹配算法对于模板的建立有一定的要求,虽然机械水表的字轮是印刷体,可以使用规范的数字字体建立模板,但是有一些使用了比较久的水表,上面会出现污渍导致难以辨别读数,若要建立用于匹配此类样本的模板将会比较麻烦。对于图像读数识别的过程,目前主要的方式是在终端使用微控制器采集到水表的图像后,把图像回传到云端进行进一步识别。但是在水表基数多的背景下,采用传输整个图像的方式将会非常耗费网络带宽资源。
5.为了解决上述不足之处,可以在读数识别端采用边缘计算的方式,将识别的运算过程从云端下沉到边缘端,在微控制器上直接完成读数的识别,最后将识别结果返回给云端进行统计和分析。为了解决对于污损字符表盘识读困难的问题,可以使用卷积神经网络的方式识别这类数字,以提高系统整体的识别准确率。


技术实现要素:

6.本发明的目的在于克服目前在微控制器端识别水表读数的不足,提出了一种基于微控制器和卷积神经网络的水表读数自动识别方法,弥补传统方案需要把图像回传到云
端、在边缘端执行模板匹配不能准确识别污损数字读数等弊端,从而以更低的成本实现传统机械水表的智能化,并对不同环境的表盘有污损的水表实现准确的读数识别,使其能够更好的应用于实际的生产应用当中。
7.为实现上述目的,本发明所提供的技术方案为:基于微控制器和卷积神经网络的水表读数自动识别方法,包括以下步骤:
8.1)获取水表数字码盘数据集;
9.2)对步骤1)获取的水表数字码盘数据集中数据进行预处理操作,包括字符切割和样本均衡;
10.3)构建一个水表读数识别模型,该模型包含轻量级卷积神经网络和softmax分类器,采用步骤2)预处理后的数据集对水表读数识别模型进行训练调参,得到最优模型;其中,利用轻量级卷积神经网络对数据集提取特征,再利用softmax分类器对所得到的特征进行分类和识别;
11.4)针对步骤3)的模型架构,选用tensorflow lite深度学习推理框架在微控制器上部署;
12.5)将步骤3)训练好的模型部署到已集成tensorflow lite框架的微控制器中,使微控制器集成有最优的水表读数识别模型,能够用于水表码盘读数识别任务。
13.进一步,在步骤1)中,获取的水表数字码盘数据集是从开源平台上下载的scut-wmn和xmu-w-m公共数据集。
14.进一步,在步骤2)中,进行以下预处理操作:
15.2.1)编写基于opencv的图像等分切割程序,对整体5位数字码盘图像进行切割得到单个数字码盘图像,并按照数字类别存放在不同文件夹;
16.2.2)针对步骤2.1)等分切割的单个数字码盘图像进行统计,并将结果保存在excel表格中,内容为:数字类别,样本数;
17.2.3)针对步骤2.2)的统计结果,对单个数字码盘图像分类中多数类样本实施随机丢弃,最后得到各单个数字码盘图像分类数量分布均衡的数据集。
18.进一步,在步骤3)中,所述轻量级卷积神经网络包括以下内容:
19.输入层模块:以25*20*1维度的灰度图作为该模块的输入,经过批标准化层防止梯度消失;
20.特征提取模块:包含3个2d卷积层,每个卷积层分别连接了一个最大2d池化层,池大小为2
×
2,卷积层的卷积核大小分别为32
×3×
3、64
×3×
3和64
×3×
3。
21.进一步,在步骤3)中,利用softmax分类器对所得到的特征进行分类和识别,具体如下:
22.首先,对轻量级卷积神经网络所提取的特征进行flatten()操作,然后再添加两个全连接层操作,最后将全连接层后的特征向量作为softmax分类器的输入,输出大小为单个数字码盘图像的类别数。
23.进一步,在步骤4)中,下载tflite-micro用于微控制器上的深度学习推理框架源文件,将其集成到微控制器开发项目中。
24.进一步,在步骤5)中,部署到微控制器中的模型会转换成tflite模型二进制文件,该tflite模型二进制文件将被拷贝到微控制器的外置存储卡,当需要进行水表码盘读数识
别任务时,微控制器具体执行以下操作:
25.5.1)微控制器上运行读取外置存储卡的tflite模型二进制文件到微控制器的缓冲区的程序;
26.5.2)调用函数tflite::getmodel将缓冲区中的模型数据转换成model对象;
27.5.3)创建一个tflite::allopsresolver对象,加载所有支持的算子;
28.5.4)创建一个tflite::microinterpreter解释器对象,封装model对象和allopsresolver对象,管理模型的推理流程;
29.5.5)调用tflite::microinterpreter解释器对象的成员函数allocatetensors()分配内存空间,初始化运行时需要的张量对象;
30.5.6)调用摄像头采集程序采集指定区域的数字码盘图像,进行裁剪和分割,并进行灰度化处理,得到单个处理好的数字码盘图像作为模型输入的张量;
31.5.7)将输入张量拷贝到tflite::microinterpreter解释器对象的成员变量input(0)所指向的内存区域;
32.5.8)调用tflite::microinterpreter解释器对象的成员函数invoke()执行推理;
33.5.9)读取tflite::microinterpreter解释器对象成员变量output(0)中的预测结果,将预测结果发送到网页上展示给用户。
34.本发明与现有技术相比,具有如下优点与有益效果:
35.1、本发明可以在不整体更换传统机械水表的前提下,实现对水表读数的自动识别。
36.2、本发明可以直接在边缘端完成对水表数字读数的识别,无需将图像上传到云端再进行识别,节省了大量的带宽资源。
37.3、本发明对于不同环境下的水表,包括有一定污损的数字码盘图像,可以在微控制器端进行准确的识别,弥补了在微控制器端运行模板匹配方法只能识别清晰数字图像的缺点。
38.4、本发明可以识别过渡状态的数字,水表码盘数字的最后一位有时候会处在两个数字交替出现的过渡状态,使用本发明方法可以识别这种过渡状态所表示的实际读数。
39.5、本发明的实现方式是在硬件资源有限的微控制器端运行深度学习推理框架,将水表读数识别模型运行在边缘微控制器端,大大节省了硬件和网络传输的开销,并使得水表读数识别对比于传统的识别方法更加稳定、容错性更高。
附图说明
40.图1为数据集样本等分切割流程图。
41.图2为轻量级卷积神经网络的结构图。
42.图3为集成了水表读数识别模型的微控制器实物图。
43.图4为集成了水表读数识别模型的微控制器运行流程图。
具体实施方式
44.下面结合说明书附图和本发明的具体实施细节做进一步的描述和说明。
45.本实施例公开了一种基于微控制器和卷积神经网络的水表读数自动识别方法,其
具体情况如下:
46.1)获取水表数字码盘数据集,其中,获取的水表数字码盘数据集是从在开源平台上下载的scut-wmn和xmu-w-m公共数据集。
47.2)对步骤1)获取的水表数字码盘数据集中数据进行预处理操作,具体如下:
48.2.1)编写基于opencv的图像等分切割程序,对整体5位数字码盘图像进行切割得到单个数字码盘图像,并按照数字类别存放在不同文件夹,如图1所示;
49.2.2)针对步骤2.1)等分切割的单个数字码盘图像进行统计,并将结果保存在excel表格中,内容为:数字类别,样本数;
50.2.3)针对步骤2.2)的统计结果,对单个数字码盘图像分类中多数类样本实施随机丢弃,最后得到各单个数字码盘图像分类数量分布均衡的数据集。
51.3)构建一个水表读数识别模型,该模型包含轻量级卷积神经网络和softmax分类器,采用步骤2)预处理后的数据集对水表读数识别模型进行训练调参,得到最优模型;其中,利用轻量级卷积神经网络对数据集提取特征,再利用softmax分类器对所得到的特征进行分类和识别。
52.如图2所示,轻量级卷积神经网络包括以下内容:
53.建立输入层模块:以25*20*1维度的灰度图作为该模块的输入,经过批标准化层防止梯度消失;
54.建立特征提取模块:包含3个2d卷积层,每个卷积层分别连接了一个最大2d池化层,池大小为2
×
2,卷积层的卷积核大小分别为32
×3×
3、64
×3×
3和64
×3×
3。
55.利用softmax分类器对所得到的特征进行分类和识别,具体如下:
56.首先,对轻量级卷积神经网络所提取的特征进行flatten()操作,然后再添加两个全连接层操作,最后将全连接层后的特征向量作为softmax分类器的输入,输出大小为单个数字码盘图像的类别数。
57.4)针对步骤3)的模型架构,选用tensorflow lite深度学习推理框架在微控制器上部署,具体如下:
58.下载tflite-micro用于微控制器上的深度学习推理框架源文件,将其集成到微控制器开发项目中。
59.5)将步骤3)训练好的模型部署到已集成tensorflow lite框架的微控制器中,如图3所示,使微控制器集成有最优的水表读数识别模型,能够用于水表码盘读数识别任务;其中,部署到微控制器中的模型会转换成tflite模型二进制文件,该tflite模型二进制文件将被拷贝到微控制器的外置存储卡,当需要进行水表码盘读数识别任务时,如图4所示,微控制器具体执行以下操作:
60.5.1)微控制器上运行读取外置存储卡的tflite模型二进制文件到微控制器的缓冲区的程序;
61.5.2)调用函数tflite::getmodel将缓冲区中的模型数据转换成model对象;
62.5.3)创建一个tflite::allopsresolver对象,加载所有支持的算子;
63.5.4)创建一个tflite::microinterpreter解释器对象,封装model对象和allopsresolver对象,管理模型的推理流程;
64.5.5)调用tflite::microinterpreter解释器对象的成员函数allocatetensors()
分配内存空间,初始化运行时需要的张量对象;
65.5.6)调用摄像头采集程序采集指定区域的数字码盘图像,进行裁剪和分割,并进行灰度化处理,得到单个处理好的数字码盘图像作为模型输入的张量;
66.5.7)将输入张量拷贝到tflite::microinterpreter解释器对象的成员变量input(0)所指向的内存区域;
67.5.8)调用tflite::microinterpreter解释器对象的成员函数invoke()执行推理;
68.5.9)读取tflite::microinterpreter解释器对象成员变量output(0)中的预测结果,将预测结果发送到网页上展示给用户。
69.综上所述,本发明实现了在微控制器端部署运行用于识别水表读数的水表读数识别模型,并成功实现边缘端的水表读数自动识别。该方法可以应用到智能水表读数识别采集平台相关的应用上,具有广泛的研究和实际应用价值,值得推广。
70.以上所述实施例只为本发明之较佳实施例,并非以此限制本发明的实施范围,故凡依本发明之形状、原理所作的变化,均应涵盖在本发明的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献