基于图像分割的仪表读数识别方法及系统与流程

文档序号:33190447发布日期:2023-02-04 08:12阅读:211来源:国知局
基于图像分割的仪表读数识别方法及系统与流程

1.本发明涉及仪表读数识别技术领域,尤其涉及一种基于图像分割的仪表读数识别方法及系统。


背景技术:

2.本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
3.在供暖或水流运输等场景中,压力与温度等是非常需要关注的安全指标,考虑到实行性与精度因素,指针式仪表通常是这些场景下的首选。但由于指针式仪表缺乏对应的数据输出端口,往往需要耗费人力资源去进行仪表读数的监控,而且由于工作的繁琐与主观疲劳等因素,可能出现漏检或者错检的情况发生。
4.近年来,机器视觉技术得到了广泛的应用,由于机器视觉算法的客观性与高准确性,使得工业场景下的自动化水平得到了重大突破。
5.现有技术公开了利用机器视觉进行仪表读数识别的方法,在现场光线不佳或者仪表存在倾斜或翻转等不良情况时,仍然能够实现对仪表读数的准确识别;但是,当仪表存在遮挡,或者,仪表类型不同时,现有技术的方法往往存在泛化能力不足的问题,从而导致无法准确识别出仪表读数。


技术实现要素:

6.为了解决上述问题,本发明提出了一种基于图像分割的仪表读数识别方法及系统,仪表数据标注方式,训练出的语义分割模型,能很好的应对仪表存在遮挡的情况,且在不同类型的仪表上具有良好的泛化性。
7.在一些实施方式中,采用如下技术方案:
8.一种基于图像分割的仪表读数识别方法,包括:
9.获取待识别的仪表图像,利用训练好的语义分割模型分别提取出仪表图像中的指针区域、表盘中心区域以及设定三角区域的掩码信息;其中,所述设定的三角区域为表盘首尾刻度值之间与表盘中心区域构成的三角区域;
10.基于各区域的掩码信息将指针区域、表盘中心区域与设定三角区域分离成三个独立通道,对仪表图像中的仪表位置进行旋转校正;
11.对设定三角区域进行三角形拟合,在表盘中心区域、指针区域和拟合后的设定三角区域分别选取关键点,基于关键点计算仪表的读数。
12.作为进一步地方案,对语义分割模型的训练过程具体为:
13.构建训练样本库,所述训练样本库中仪表图像的指针区域、表盘中心区域和设定的三角区域分别进行标注;
14.基于标注后的样本数据对全卷积神经网络进行训练,得到训练好的语义分割模型。
15.作为进一步地方案,对仪表图像中的仪表位置进行旋转校正,具体过程包括:
16.保留每一个独立通道中面积最大的连通域;
17.在保留的连通域中,分别计算表盘中心区域的重心点c和设定三角区域的重心点t;
18.设定正方向,以点c为旋转中心,将mask从向量所指向的方向旋转至正方向。
19.作为进一步地方案,计算表盘中心区域的重心点c或计算设定三角区域的重心点t的方法为:
[0020][0021]
其中,ω表示表盘中心区域或者设定三角区域,(xi,yi)表示相应区域内第i个点的坐标;n表示在区域内选取的点的数量,n≥3;(x,y)是相应区域的重心点坐标。
[0022]
作为进一步地方案,对设定三角区域进行三角形拟合,具体过程为:获取设定三角区域的最小外接三角形,实现对设定三角区域进行三角形拟合。
[0023]
作为进一步地方案,对设定三角区域进行三角形拟合,在表盘中心区域、指针区域和拟合后的设定三角区域分别选取关键点,具体为:
[0024]
选取表盘中心区域的重心点c、指针区域中距离点c最远的点z、拟合后的设定三角区域的水平方向最大值点r和最小值点l作为关键点。
[0025]
作为进一步地方案,基于关键点计算仪表的读数,具体为:
[0026][0027][0028]
其中,α代表从向量方向出发,经顺时针旋转后到达指针区域所旋转的角度,θ为当指针位于满量程时的偏移角,r为最终的读数,s为仪表的量程,表示向量与之间的锐角夹角。
[0029]
在另一些实施方式中,采用如下技术方案:
[0030]
一种基于图像分割的仪表读数识别系统,包括:
[0031]
仪表信息提取模块,用于获取待识别的仪表图像,利用训练好的语义分割模型分别提取出仪表图像中的指针区域、表盘中心区域以及设定三角区域的掩码信息;其中,所述设定的三角区域为表盘首尾刻度值之间与表盘中心区域构成的三角区域;
[0032]
仪表位置校正模块,用于基于各区域的掩码信息将指针区域、表盘中心区域与设定三角区域分离成三个独立通道,对仪表图像中的仪表位置进行旋转校正;
[0033]
仪表自动度数模块,用于对设定三角区域进行三角形拟合,在表盘中心区域、指针区域和拟合后的设定三角区域分别选取关键点,基于关键点计算仪表的读数。
[0034]
在另一些实施方式中,采用如下技术方案:
[0035]
一种终端设备,其包括处理器和存储器,处理器用于实现各指令;存储器用于存储多条指令,所述指令适于由处理器加载并执行上述的一种基于图像分割的仪表读数识别方法。
[0036]
在另一些实施方式中,采用如下技术方案:
[0037]
一种计算机可读存储介质,其中存储有多条指令,所述指令适于由终端设备的处理器加载并执行上述的一种基于图像分割的仪表读数识别方法。
[0038]
与现有技术相比,本发明的有益效果是:
[0039]
(1)本发明设计新的图像标注方法,在仪表图像样本数据中标注仪表的中心区域、指针区域与设定的三角形区域;基于标注的样本数据对语义分割模型进行训练,通过训练好的语义分割模型将仪表图像分为指针区域、表盘中心区域以及设定三角区域,相比直接针对刻度分割,本发明的分割方法在标注效率上更高,并且标注的目标区域更少,更大,从而导致算法在整体的性能均有提升。
[0040]
(2)本发明的标注只包含指针、仪表中心点、以及中心点、量程起始点和终点的三角区域,因此在整个仪表中某些刻度被遮挡时,对识别结果并不会有影响。此外,仪表读数识别只计算指针与仪表中心点的夹角和量程起始点与终点的夹角,不会受到仪表的类型(如压力表,温度表)的影响。
[0041]
本发明的其他特征和附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本方面的实践了解到。
附图说明
[0042]
图1为本发明实施例中的基于图像分割的仪表读数识别方法流程图;
[0043]
图2为本发明实施例中的仪表图像标注示意图;
[0044]
图3为本发明实施例中的仪表图像旋转校正示意图;
[0045]
图4为本发明实施例中的关键点选取示意图。
具体实施方式
[0046]
应该指出,以下详细说明都是例示性的,旨在对本技术提供进一步的说明。除非另有指明,本发明使用的所有技术和科学术语具有与本技术所属技术领域的普通技术人员通常理解的相同含义。
[0047]
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本技术的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
[0048]
实施例一
[0049]
在一个或多个实施方式中,公开了一种基于图像分割的仪表读数识别方法,结合图1,具体过程包括:
[0050]
s101:获取待识别的仪表图像,利用训练好的语义分割模型分别提取出仪表图像中的指针区域、表盘中心区域以及设定三角区域的掩码(mask)信息;
[0051]
其中,结合图2,掩码(mask)信息表示的是仪表图像的前景信息;设定的三角区域具体为表盘首尾刻度值之间与表盘的中心区域构成的三角区域,该区域内没有表盘上的刻度值。
[0052]
本实施例中,对于语义分割模型的训练过程具体如下:
[0053]
s1011:选定训练数据集,根据图2所示的方式,对训练数据集中的图像进行数据标
注,标注区域包括仪表的中心区域c、指针区域z与特定的三角形区域t。
[0054]
s1012:选用全卷积神经网络模型u-net模型进行图像分割,并将u-net的特征提取骨干网络替换成了resnet-50,在识别精度和识别速度方面都能够有所提升。
[0055]
s1013:在训练分割模型前,将resnet-50模型事先在imagenet数据集上进行了预训练,使得模型的精度和泛化能力更好。
[0056]
s1014:在400多张训练数据上进行了50轮训练,得到训练好的语义分割模型。
[0057]
s102:基于三个区域的掩码(mask)信息将指针区域、表盘中心区域与设定三角区域分离成三个独立通道,对仪表图像中的仪表位置进行旋转校正;
[0058]
本实施例中,结合图3,首先对语义分割模型输出的三个区域的mask进行分层,将中心区域c、指针区域z与特定的三角形区域t分离成三个独立的通道;使用opencv的findcontours函数找到每个通道的所有连通域,根据连通域区域面积大小进行排序,仅保留面积最大的连通域。
[0059]
然后,在保留的连通域中,计算中心区域c与特定的三角形区域t的一阶矩,得到区域c的重心点c和区域t的重心点t。
[0060]
具体地,重心点c的计算公式如下:
[0061][0062]
其中,ω代表中心区域c,(x,y)是经过计算后的中心区域c的重心点c坐标。(xi,yi)表示中心区域c内选取的第i个点的坐标;n表示在中心区域c内选取的点的数量,n≥3;
[0063]
特定的三角形区域t的重心点t的计算方式与上面公式相同,将相应的区域变为特定的三角形区域t即可。
[0064]
最后,使用opencv的getrotationmatrix2d对图像进行旋转,旋转中心为点c。规定竖直向下作为正方向,向量代表以点c为起点,点t为终点的向量,将mask从所指向的方向旋转至正方向。若出现在正方向左侧,则逆时针旋转,反之则顺时针旋转。
[0065]
s103:对设定三角区域进行三角形拟合,在表盘中心区域、指针区域和拟合后的设定三角区域分别选取关键点,基于关键点计算仪表的读数。
[0066]
本实施例中,结合图4,经过语义分割模型得到的设定三角区域t并不一定是一个完整的三角形,由于后续的操作都是基于三角形区域完成的,因此需要进行三角形拟合。具体操作是使用opencv中的minenclosingtriangle函数拟合分割区域的最小外接三角形。
[0067]
拟合完成后,进行关键点选取,选取表盘中心区域的重心点c、指针区域中距离点c最远的点z、拟合后的设定三角区域的水平方向最大值点r和最小值点l作为关键点。
[0068]
最后根据四个关键点计算仪表读数,具体地,以指针位于0刻度线时偏移角为0,则当指针位于满量程时的偏移角为θ,θ的计算公式是:
[0069][0070]
其中,表示向量与的夹角。
[0071]
最终的读数的计算公式是:
[0072][0073]
其中,α代表从向量方向出发,经顺时针旋转后到达指针区域所旋转的角度,θ为当指针位于满量程时的偏移角,r为最终的读数,s为仪表的量程。
[0074]
本实施例分别对清晰、存在遮挡、模糊及角度发生偏转的不同类型的仪表图像,利用本实施例方法进行测试,得到的测试结果如下:
[0075][0076]
需要说明的是,上述测试结果中,误差的计算方法为:
[0077]
结果表明,针对各种类型测试图像进行测试,得到的结果误差均在2%以内,仪表读数识别能力得到明显提升。
[0078]
实施例二
[0079]
在一个或多个实施方式中,公开了一种基于图像分割的仪表读数识别系统,包括:
[0080]
仪表信息提取模块,用于获取待识别的仪表图像,利用训练好的语义分割模型分别提取出仪表图像中的指针区域、表盘中心区域以及设定三角区域的掩码信息;其中,所述设定的三角区域为表盘首尾刻度值之间与表盘中心区域构成的三角区域;
[0081]
仪表位置校正模块,用于基于各区域的掩码信息将指针区域、表盘中心区域与设定三角区域分离成三个独立通道,对仪表图像中的仪表位置进行旋转校正;
[0082]
仪表自动度数模块,用于对设定三角区域进行三角形拟合,在表盘中心区域、指针区域和拟合后的设定三角区域分别选取关键点,基于关键点计算仪表的读数。
[0083]
上述各模块的具体实现方式已经在实施例一中进行了详细的说明,此处不再详述。
[0084]
实施例三
[0085]
在一个或多个实施方式中,公开了一种终端设备,包括服务器,所述服务器包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现实施例一中的基于图像分割的仪表读数识别方法。为了简洁,在此不再赘述。
[0086]
应理解,本实施例中,处理器可以是中央处理单元cpu,处理器还可以是其他通用处理器、数字信号处理器dsp、专用集成电路asic,现成可编程门阵列fpga或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0087]
存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据、存储器的一部分还可以包括非易失性随机存储器。例如,存储器还可以存储设备类型的信息。
[0088]
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者
软件形式的指令完成。
[0089]
实施例四
[0090]
在一个或多个实施方式中,公开了一种计算机可读存储介质,其中存储有多条指令,所述指令适于由终端设备的处理器加载并执行实施例一中所述的基于图像分割的仪表读数识别方法。
[0091]
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1