掌桥专利:专业的专利平台
掌桥专利
首页

一种仪表识别读数的异常检测与矫正的方法和系统

文献发布时间:2023-06-19 19:20:08


一种仪表识别读数的异常检测与矫正的方法和系统

技术领域

本发明涉及仪表读数识别技术领域,尤其涉及一种仪表识别读数的异常检测与矫正的方法和系统。

背景技术

仪表具有悠久的发展历史,具记载最早在春秋战国时期就有了仪表的概念,随着现代工业化进程的不断加速,仪表作为数据监控和数据收集的主要手段,水电气热各类仪表更是遍布到生活和生产的每个角落,因此表型繁杂且数量巨大,而且其中大部分仪表都需要人工定时巡检抄表,但是采用人工的方式不仅费时费力,误差率也因人而异难以保证。现有提供了一种便捷的解决方案,采用相机定时定点拍照,然后读数自动识别上传的方式,而其中仪表自动识别又是重中之重。而现有的仪表识别算法均会因图像质量差和基表磨损等种种客观因素导致了识别准确率无法持续稳定,识别读数可靠性低的问题。

如中国专利CN114549981A公开了一种基于深度学习的智能巡检指针式仪表识别及读数方法;通过对获取的原始图像数据进行预处理后划分为训练集和测试集;构建仪表识别模型,并通过训练集和测试集对其进行训练,得到训练后的仪表识别模型;将采集到的待检测图像输入训练后的仪表识别模型进行目标检测,得到含有仪表的图像;对含有仪表的图像进行预处理和校畸;对校畸后的图像进行处理并进行异常判断;虽然也实现了异常检测和校畸,但是需要对于原始图像数据进行处理才可以实现后续的一系列步骤,会因为原始图像数据的采集质量而影响异常检测和校畸的准确性。

为了能够有效利用上下文信息,可采用双向长短期记忆网络(BiLSTM),BiLSTM可以在一定程度上缓解长距离依赖的问题,但是其识别准确率不够高;自注意机制是把注意力放在所关注的点上,忽略其他不相关的因素;因此采用结合自注意机制的BiLSTM的模型可以缓解长距离依赖的问题同时提高准确率;但是现在并未有将结合自注意机制和BiLSTM的技术应用于仪表数据识别处理的技术。

发明内容

为解决现有技术中存在的技术问题,本发明提供了一种仪表识别读数的异常检测与矫正方法和系统,利用基于自注意BiLSTM的序列异常检测算法识别仪表识别值序列中的异常识别值;利用基于机器学习算法的序列异常矫正算法将异常识别值矫正。本发明采用异常检测与矫正相结合的方式显著提升自动化仪表读数识别的整体准确率,弥补仪表通常的识别方法不能从考虑到历史识别值的短处,能够提高仪表识别稳定性,增加识别读数可靠性。

本发明提供了一种仪表识别读数异常检测与矫正方法,包括以下步骤:

步骤1:利用基于自注意BiLSTM的序列异常检测算法模型识别仪表识别值序列中的异常识别值;其中,基于自注意BiLSTM的序列异常检测算法模型具体包括:一个特征提取层、四个自注意BiLSTM层和一个输出层;特征提取层包括两个卷积层,自注意BiLSTM层包括一个BiLSTM层和一个自注意力序列层;输出层包括一个BiLSTM层和一个全连接层;

步骤2:利用基于机器学习算法的序列异常矫正算法进行异常识别值的矫正。

优选地,步骤1具体包括:

步骤1.1:读取仪表识别值序列的样本标注信息,随机选取数据扩充方法对仪表识别值序列进行样本扩充,然后随机采样获得训练样本;

步骤1.2:对时间序列做归一化处理,构建基于自注意BiLSTM的序列异常检测算法模型;

步骤1.3:将训练样本输入所述基于自注意BiLSTM的序列异常检测算法模型中进行训练;

步骤1.4:利用训练好的基于自注意BiLSTM的序列异常检测算法模型,识别仪表识别值序列中的异常识别值。

优选地,数据扩充方法包括:随机打乱仪表识别值序列中的若干异常识别值、随机丢弃仪表识别值序列中的若干异常识别值、随机增加若干个随机数到仪表识别值序列中、随机截取仪表识别值序列中的若干异常识别值的一部分,以及将仪表识别值序列中的若干异常识别值替换为识别时容易出错的数字。

优选地,基于自注意BiLSTM的序列异常检测算法模型进行训练时,采用二值交叉熵损失函数。

优选地,基于自注意BiLSTM的序列异常检测算法模型进行训练时,采用随机梯度下降法的优化器。

优选地,基于自注意BiLSTM的序列异常检测算法模型进行训练时,采用逐步减小的动态学习率。

优选地,时间序列包括:对仪表识别值序列中的仪表识别值进行读取时的时间。

优选地,步骤2具体包括:

步骤2.1:对仪表识别值序列做数字化处理;

步骤2.2:采用机器学习算法对数字化处理后的仪表识别值序列进行拟合,计算异常识别值的预测值;

步骤2.3:为异常识别值生成若干矫正候选值,过滤和/或剔除部分矫正候选值,获得剩余矫正候选值;

步骤2.4:考虑步骤2.2计算的所述异常识别值的预测值,计算剩余矫正候选值的加权得分,取得分最高的一个剩余矫正候选值作为矫正值,利用矫正值进行所述异常识别值的矫正。

优选地,针对不同类型仪表采用不同机器学习算法;机器学习算法具体为:N次多项式拟合算法、局部线型回归算法、线型回归树算法、梯度提升树算法、支持线量回归算法、线性插值算法和循环神经网络算法中的一种。

优选地,步骤2.3具体包括:

步骤2.3.1:确定每个异常识别值的矫正候选值上下边界;

步骤2.3.2:根据候选值上下边界等间距生成多个矫正候选值;

步骤2.3.3:获取多个矫正候选值的剩余矫正候选值

优选地,步骤2.3.3具体包括:

步骤2.3.3.1:过滤不符合仪表识别值位数的矫正候选值;

步骤2.3.3.2:计算每个矫正候选值的编辑距离,剔除大于编辑距离阈值的矫正候选值;

步骤2.3.3.3:根据过滤后的矫正候选值和/或剔除后的矫正候选值,获得剩余矫正候选值。

优选地,仪表识别值位数为固定数值。

优选地,计算剩余矫正候选值的加权得分具体为:计算各个剩余矫正候选值的编辑得分、趋势得分、预测得分和有效位数匹配得分,然后对编辑得分、趋势得分、预测得分和有效位数匹配得分赋予不同的权重,进行加权计算获得所述加权得分。

优选地,计算各个剩余矫正候选值的编辑得分,具体为:

计算各个剩余矫正候选值与仪表识别值序列的归一化莱文斯坦距离,用1减去各个归一化莱文斯坦距离作为对应的各个剩余矫正候选值的编辑得分。

优选地,计算各个剩余矫正候选值的趋势得分,具体为:

计算仪表识别值序列的拟合直线斜率;将异常识别值替换为各个剩余矫正候选值后获得多个矫正识别值序列,然后计算各个矫正识别值序列的拟合直线的斜率;若仪表识别值序列的拟合直线斜率与各个矫正识别值序列的拟合直线的斜率符号相同,则趋势得分为1,否则,趋势得分为0。

优选地,计算各个剩余矫正候选值的预测得分,具体为:

计算各个剩余矫正候选值与所述预测值的距离,并使用sigmoid函数将距离压缩到0到1之间作为预测得分。

优选地,计算各个剩余矫正候选值的有效位数匹配得分,具体为:

计算各个剩余矫正候选值与仪表识别值序列有效位数的差值,并使用sigmoid函数将所述差值压缩到0到1之间作为有效位数匹配得分。

本发明提供了一种仪表识别读数的异常检测与矫正系统,使用如前任一项所述的仪表识别读数异常检测与矫正方法进行仪表读数的异常检测与矫正,仪表识别系统、数据标注模块、预处理器、异常检测模型模块和异常矫正方法模块;

仪表识别系统发送未标注的仪表识别值序列样本至数据标注模块进行数据标注,获得标注的仪表识别值序列样本数据;

将标注的仪表识别值序列样本数据发送至预处理器获得训练样本;

将训练样本发送至异常检测模型模块,利用基于自注意BiLSTM的序列异常检测算法模型,识别仪表识别值序列中的异常识别值;

将异常识别值发送至异常矫正方法模块,利用基于机器学习算法的序列异常矫正算法进行异常识别值的矫正,获得矫正值;

将矫正值发送至仪表识别系统。

与现有技术相对比,本发明的有益效果如下:

1.本发明的一种仪表识别读数异常检测与矫正方法,利用基于自注意BiLSTM的序列异常检测算法模型识别仪表识别值序列中的异常识别值;利用基于机器学习算法的序列异常矫正算法进行异常识别值的矫正;采用异常检测与矫正相结合的方式,显著提升自动化仪表读数识别的整体准确率,弥补仪表通常的识别方法不能从考虑到历史识别值的短处。

2.本发明的一种仪表识别读数异常检测与矫正方法,针对不同类型仪表采用不同机器学习算法;机器学习算法具体为:N次多项式拟合算法、局部线型回归算法、线型回归树算法、梯度提升树算法、支持线量回归算法、线性插值算法和循环神经网络算法中的一种;可做到因表而异和因表制宜,更好的契合每种表型的识别值序列特性。

3.本发明的一种仪表识别读数异常检测与矫正方法,对编辑得分、趋势得分、预测得分和有效位数匹配得分赋予不同的权重,进行加权计算获得加权得分;采用生成大量候选矫正值并多得分加权的方式,计算最终矫正值,对困难识别异常序列也具有较强的鲁棒性。

附图说明

图1是本发明的一种仪表识别读数的异常检测与矫正方法的一个实施例的流程图;

图2是本发明的一种仪表识别读数的异常检测与矫正系统的一个实施例的流程图;

图3是本发明的一种仪表识别读数的异常检测与矫正方法的示意例的一个实施例的示意图;

图4是本发明的一种仪表识别读数的异常检测与矫正方法对简单识别值异常序列的矫正效果的多个实施例的示意图,其中,a、b、c和d分别为不同对简单识别值异常序列的矫正效果的一个实施例的示意图;

图5是本发明的一种仪表识别读数的异常检测与矫正方法对困难识别值异常序列的矫正效果的多个实施例的示意图,其中,a、b、c和d分别为不同的对困难识别值异常序列的矫正效果的一个实施例的示意图。

具体实施方式

下面结合附图1-5,对本发明的一种仪表识别读数的异常检测与矫正方法和系统的具体实施方式进行详细的说明。

实施例1

参照图1所示,根据本发明的一个具体实施方案,下面对本发明的一种仪表识别读数的异常检测与矫正方法进行详细说明。

本发明提供了一种仪表识别读数异常检测与矫正方法,包括:

利用基于自注意BiLSTM的序列异常检测算法模型识别仪表识别值序列中的异常识别值;其中,基于自注意BiLSTM的序列异常检测算法模型具体包括:一个特征提取层、四个自注意BiLSTM层和一个输出层;特征提取层包括两个卷积层,自注意BiLSTM层包括一个BiLSTM层和一个自注意力序列层;输出层包括一个BiLSTM层和一个全连接层;

利用基于机器学习算法的序列异常矫正算法进行异常识别值的矫正。

采用异常检测与矫正相结合的方式,提升自动化仪表读数识别的整体准确率。

实施例2

参照图1所示,根据本发明的一个具体实施方案,下面对本发明的一种仪表识别读数的异常检测与矫正方法进行详细说明。

本发明提供了一种仪表识别读数异常检测与矫正方法,包括:

读取仪表识别值序列的样本标注信息,随机选取数据扩充方法对仪表识别值序列进行样本扩充,然后随机采样获得训练样本;

对时间序列做归一化处理,构建基于自注意BiLSTM的序列异常检测算法模型;

将训练样本输入基于自注意BiLSTM的序列异常检测算法模型中进行训练;

利用训练好的基于自注意BiLSTM的序列异常检测算法模型识别仪表识别值序列的异常识别值;

利用基于机器学习算法的序列异常矫正算法进行异常识别值的矫正。

其中,基于自注意BiLSTM的序列异常检测算法模型具体包括:一个特征提取层、四个自注意BiLSTM层和一个输出层;特征提取层包括两个卷积层,自注意BiLSTM层包括一个BiLSTM层和一个自注意力序列层;输出层包括一个BiLSTM层和一个全连接层。

数据扩充方法包括:随机打乱仪表识别值序列中的若干异常识别值、随机丢弃仪表识别值序列中的若干异常识别值、随机增加若干个随机数到仪表识别值序列中、随机截取仪表识别值序列中的若干异常识别值的一部分,以及将仪表识别值序列中的若干异常识别值替换为识别时容易出错的数字。

基于自注意BiLSTM的序列异常检测算法模型进行训练时,采用二值交叉熵损失函数、随机梯度下降法的优化器和逐步减小的动态学习率。

实施例3

参照图1所示,根据本发明的一个具体实施方案,下面对本发明的一种仪表识别读数的异常检测与矫正方法进行详细说明。

本发明提供了一种仪表识别读数异常检测与矫正方法,包括:利用基于自注意BiLSTM的序列异常检测算法模型识别仪表识别值序列中的异常识别值;其中,基于自注意BiLSTM的序列异常检测算法模型具体包括:一个特征提取层、四个自注意BiLSTM层和一个输出层;特征提取层包括两个卷积层,自注意BiLSTM层包括一个BiLSTM层和一个自注意力序列层;输出层包括一个BiLSTM层和一个全连接层;

对仪表识别值序列做数字化处理;

采用机器学习算法对数字化处理后的仪表识别值序列进行拟合,计算异常识别值的预测值;其中,针对不同类型仪表采用不同机器学习算法;机器学习算法具体为:N次多项式拟合算法、局部线型回归算法、线型回归树算法、梯度提升树算法、支持线量回归算法、线性插值算法和循环神经网络算法中的一种;

确定每个异常识别值的矫正候选值上下边界,等间距生成5000个矫正候选值;

过滤不符合仪表识别值位数(例如5位)的矫正候选值;

计算每个矫正候选值的编辑距离,剔除大于编辑距离阈值的矫正候选值;

根据过滤后的矫正候选值和/或剔除后的矫正候选值,获得剩余矫正候选值;

计算各个剩余矫正候选值与仪表识别值序列的归一化莱文斯坦距离,用1减去各个归一化莱文斯坦距离作为对应的各个剩余矫正候选值的编辑得分;

计算仪表识别值序列的拟合直线斜率;将异常识别值替换为各个剩余矫正候选值后获得多个矫正识别值序列,然后计算各个矫正识别值序列的拟合直线的斜率;若仪表识别值序列的拟合直线斜率与各个矫正识别值序列的拟合直线的斜率符号相同,则趋势得分为1,否则,趋势得分为0;

计算各个剩余矫正候选值与异常识别值的预测值的距离,并使用sigmoid函数将距离压缩到0到1之间作为预测得分;

计算各个剩余矫正候选值与仪表识别值序列有效位数的差值,并使用sigmoid函数将差值压缩到0到1之间作为有效位数匹配得分;

然后对编辑得分、趋势得分、预测得分和有效位数匹配得分赋予不同的权重,进行加权计算获得加权得分。

实施例4

参照图2-3所示,根据本发明的一个具体实施方案,下面对本发明的一种仪表识别读数的异常检测与矫正系统进行详细说明。

如图2所示,本发明提供了一种仪表识别读数的异常检测与矫正系统,包括:仪表识别系统、数据标注模块、预处理器、异常检测模块和异常矫正模块;

仪表识别系统发送未标注的仪表识别值序列样本至数据标注模块进行数据标注,获得标注的仪表识别值序列样本数据;

将标注的仪表识别值序列样本数据发送至预处理器获得训练样本,如图3所示,[012.2、012.3、015.3...012.3、012.3、012.3、042.3];

将训练样本发送至异常检测模块,利用基于自注意BiLSTM的序列异常检测算法模型,识别仪表识别值序列中的异常识别值,如图3所示,0表示正常识别值,1表示异常识别值;

将所述异常识别值发送至异常矫正模块,利用基于机器学习算法的序列异常矫正算法进行异常识别值的矫正,获得矫正值,如图3所示,获得仪表识别值序列中的015.3和042.3的矫正值为012.3和012.3。

将矫正值发送至仪表识别系统。

实施例5

参照图4-5所示,根据本发明的一个具体实施方案,下面对本发明的一种仪表识别读数的异常检测与矫正方法进行详细说明。

本发明提供了一种仪表识别读数异常检测与矫正方法:包括:

利用基于自注意BiLSTM的序列异常检测算法模型识别仪表识别值序列中的异常识别值;其中,基于自注意BiLSTM的序列异常检测算法模型具体包括:一个特征提取层、四个自注意BiLSTM层和一个输出层;特征提取层包括两个卷积层,自注意BiLSTM层包括一个BiLSTM层和一个自注意力序列层;输出层包括一个BiLSTM层和一个全连接层;

利用基于机器学习算法的序列异常矫正算法进行异常识别值的矫正。

图4为仪表识别值序列较为稳定,异常识别值个数比较少时的仪表识别值序列示意图,图4a和4b为原始的仪表识别值序列,4c和4d为矫正后的仪表识别值序列和原始的仪表识别值序列的比较图,可知对简单识别值异常序列,本发明能稳定并准确检测出异常识别值,具有良好的鲁棒性和较高的准确率。

图5为仪表识别值序列波动较大,异常识别值个数比较多时的仪表识别值序列示意图,图5a和5b为原始的仪表识别值序列,5c和5d为矫正后的仪表识别值序列和原始的仪表识别值序列的比较图,可知对困难识别值异常序列,本发明能稳定并准确检测出异常识别值,具有良好的鲁棒性和较高的准确率。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均包含在本发明的保护范围之内。

技术分类

06120115870185