自动识别采集内容( 1.本发明涉及基于微控制器上通过深度学习方法识别水表的技术领域)
优采云 发布时间: 2022-01-20 04:10自动识别采集内容(
1.本发明涉及基于微控制器上通过深度学习方法识别水表的技术领域)
1.本发明涉及微控制器上基于深度学习方法的水表抄表识别技术领域,尤其涉及一种基于微控制器和卷积神经网络的水表抄表自动识别方法。
背景技术:
2.近年来,水表自动化、智能化的发展比较缓慢。机械式水表不易受到干扰,易于安装和维护,不需要额外的电力消耗。因此,大多数住宅水表仍然是传统的机械水表。但是,我国的家用水表都遵循“一户一表”的制度,给水表的抄表工作带来了很大的麻烦。传统的人工抄表方式不仅费时费力,还可能因人工疏忽而导致错误。虽然目前一些水务公司有专门的手机APP拍照抄表,自动识别读数,并且服务器保存了每个电表的抄表照片以供以后比较,让抄表员对每个电表拍照仍然是一个问题。这是一件繁琐的事情,当工作量变大时,很难保证每张图片都满足识别阅读的要求。
3.近年来,国家高度重视物联网发展,重点支持物联网和人工智能发展。物联网智能水表技术不断创新。目前我国的电子水表主要有两种:一种是在传统机械表的基础上增加机电转换装置,在水表工作时将叶轮的转动转换成脉冲电信号,或者另一种是将字轮的阅读位置转换为绝对位置。数字电信号。另一种是纯电子水表。该水表的流量传感部分不含机械运动部件。主要通过电磁感应、超声波等技术计算流量。虽然这两种水表的精度都比较高,但现阶段我国传统机械水表仍占总量的70%左右。如果要把水表全部换成智能水表,短期内不太可能实现,而且需要大量的人力物力。因此,在现有的机械水表中加入基于视觉的读数识别装置是实现智能水表的一个很好的过渡方案。我国现阶段传统机械水表仍占总量的70%左右。如果要把水表全部换成智能水表,短期内不太可能实现,而且需要大量的人力物力。因此,在现有的机械水表中加入基于视觉的读数识别装置是实现智能水表的一个很好的过渡方案。我国现阶段传统机械水表仍占总量的70%左右。如果要把水表全部换成智能水表,短期内不太可能实现,而且需要大量的人力物力。因此,在现有的机械水表中加入基于视觉的读数识别装置是实现智能水表的一个很好的过渡方案。
4.现有的基于视觉识别水表读数的技术主要是通过光学字符识别技术来识别水表码盘的读数。识别字轮读数的方法主要有两种,一种是模板匹配算法;另一种是卷积神经网络方法。模板匹配算法对模板的建立有一定的要求。机械水表的字轮虽然是印刷体,但可以使用标准的数字字体创建模板。但是,有些水表使用时间长了,上面会有污渍,难以分辨读数。构建模板来匹配这些样本会很麻烦。对于图像阅读识别的过程,目前主要的方法是终端使用微控制器采集访问水表图像后,将图像传回云端进行进一步识别。但是在水表数量众多的情况下,传输整幅图像的方式会消耗大量的网络带宽资源。
5.为了解决上述不足,可以在读取识别端采用边缘计算的方式,将识别操作过程从云端下沉到边缘端,读取识别直接在单片机上完成,最后将识别结果返回云端进行统计分析。为解决脏字盘读取困难的问题,可采用卷积神经网络对此类数字进行识别,提高系统整体识别准确率。
技术实施要素:
6.本发明的目的是克服目前微控制器侧水表读数识别的不足,提出一种基于微控制器和卷积神经网络的水表读数自动识别方法。到云端
最后在边缘端进行模板匹配无法准确识别脏数字读数的弊端,从而以较低的成本实现传统机械水表的智能化,实现不同表盘脏表盘水表的准确读数识别环境,使其能够更好地应用于实际生产应用中。
7.为了实现上述目的,本发明提供的技术方案是:一种基于单片机和卷积神经网络的水表抄表自动识别方法,包括以下步骤:
8.1)获取水表数字码盘数据集;
9.2) 对步骤1)得到的水表数字码盘数据集中的数据进行预处理操作,包括字符切割和样本均衡;
10.3)构建水表抄表识别模型,包括轻量级卷积神经网络和softmax分类器,利用步骤2)中预处理的数据集进行水表抄表识别对模型进行训练和调整,得到最优模型;其中,使用轻量级卷积神经网络从数据集中提取特征,然后使用softmax分类器对得到的特征进行分类识别;
11.4)对于step3)的模型架构,选择tensorflow lite深度学习推理框架部署在微控制器上;
12.5)将步骤3)训练好的模型部署到已经集成tensorflow lite框架的微控制器中,使微控制器集成最优水表抄表识别模型,可用于水表码盘读取识别任务。
13.进一步,在步骤1)中,得到的水表数字码盘数据集为从开源平台下载的scut-wmn和xmu-wm的公共数据集。
14.进一步,在步骤2)中,进行如下预处理操作:
15.2.1)编写一个基于opencv的图像等分切割程序,对整体5位数字码盘图像进行切割得到单个数字码盘图像,并将其存储在不同的文件夹;
16.2.2)按照2.1)的步骤,对单个数字码盘切割的图像进行等分统计,并保存结果在 Excel 工作表中。是:数量类别,样本数量;
17.2.3)根据步骤2.2)的统计结果,随机丢弃单个数字码的图像分类中的多数类样本盘,最后得到单个数字码盘的图像分类数量均衡分布的每个A数据集。
18.进一步,在步骤3)中,轻量级卷积神经网络包括以下内容:
19.输入层模块:以25*20*1维度的灰度图作为该模块的输入,通过batch normalization层防止梯度消失;
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模型二进制,在需要读水的时候复制到微控制器的外部存储卡中仪表码盘
在执行其他任务时,单片机具体执行以下动作:
25.5.1)将外部存储卡的tflite模型二进制文件读取到单片机缓冲区的程序在单片机上运行;
26.5.2)调用函数tflite::getmodel将缓冲区中的模型数据转换为模型对象;
27.5.3)创建一个tflite::allopsresolver对象并加载所有支持的算子;
28.5.4)创建tflite::microinterpreter解释器对象,封装模型对象和allopsresolver对象,管理模型的推理过程;
29.5.5)调用tflite::microinterpreter解释器对象的成员函数allocatetensors()分配内存空间,初始化运行时需要的张量对象;
30.5.6)调用相机采集program采集指定区域的数字码盘图像,裁剪分割,进行灰度处理得到单个处理后的数字码盘图像作为模型输入的张量;
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-wm公共数据集.
47.2)对步骤1)得到的水表数字码盘数据集中的数据进行预处理,如下:
48.2.1)编写一个基于opencv的图像等分切割程序,对整体5位数字码盘图像进行切割得到单个数字码盘图像,并将其存储在不同的文件夹,如图1所示;
49.2.2)按照2.1)的步骤,对单个数字码盘切割的图像进行等分统计,并保存结果在 Excel 工作表中。是:数量类别,样本数量;
50.2.3)根据步骤2.2)的统计结果,随机丢弃单个数字码的图像分类中的多数类样本盘,最后得到单个数字码盘的图像分类数量均衡分布的每个A数据集。
51.3)构建水表抄表识别模型,包括轻量级卷积神经网络和softmax分类器,利用步骤2)中预处理的数据集进行水表抄表识别对模型进行训练和调整,得到最优模型;其中,使用轻量级卷积神经网络从数据集中提取特征,然后使用softmax分类器对得到的特征进行分类识别。
52.如图2所示,轻量级卷积神经网络包括以下内容:
53.建立一个输入层模块:使用25*20*1维度的灰度图作为这个模块的输入,通过batch normalization layer防止梯度消失;
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将缓冲区中的模型数据转化为模型对象;
62.5.3)创建一个tflite::allopsresolver对象并加载所有支持的算子;
63.5.4)创建tflite::microinterpreter解释器对象,封装模型对象和allopsresolver对象,管理模型的推理过程;
64.5.5)调用tflite::microinterpreter解释器对象的成员函数allocatetensors()
分配内存空间并初始化运行时所需的张量对象;
65.5.6)调用相机采集program采集指定区域的数字码盘图像,裁剪分割,进行灰度处理得到单个处理后的数字码盘图像作为模型输入的张量;
66.5.7)将输入张量复制到tflite::microinterpreter解释器对象的成员变量input(0)所指向的内存区域;
67.5.8)调用tflite::microinterpreter解释器对象的成员函数invoke()进行推理;
68.5.9)读取tflite::microinterpreter解释器对象的成员变量output(0)中的预测结果,并将预测结果发送到网页供显示给用户。
69.综上所述,本发明在微控制器侧实现了水表抄表识别模型的部署和运行,成功实现了边缘水表抄表的自动识别边。该方法可应用于智能水表抄表识别采集平台相关应用,具有广泛的研究和实际应用价值,值得推广。
70.上述实施例仅为本发明的较佳实施例而已,并不用于限制本发明的实施范围。因此,凡根据本发明的形式和原理所作的任何改动,均应收录在本发明之内。保护范围内。