本发明涉及电子技术领域,尤其涉及一种仪表读取方法、设备及计算机可读存储介质。
背景技术:
现有技术中,指针式仪表由于其可靠性等诸多原因在工业现场中应用十分广泛。常见的指针式仪表有抗震压力表,水表等。在大数据的背景下,出于工业自动化和数据分析的需求,需要一种稳定可靠的算法让计算机能自动读取由摄像机自动拍摄的指针式仪表的示数。
当前已有诸多基于计算机视觉的指针式仪表读数算法,这些算法主要分为两步:
(1)图像配准;
(2)表针定位。
其中,图像配准主要解决摄像机视角造成的表盘旋转,扭曲等问题。图像配准大多为基于特征点的匹配算法,其特征点通常由orb、sift等算法提取得到,表针定位通常基于霍夫直线变换或者其它手工设计的例如表针颜色等特征。
但是,现有的指针式仪表读数方法大都具有以下缺点:
(1)orb或者sift等特征点提取算法大都较为耗时,对系统资源的需求较高,并且无法处理表盘可能不在图像的情况;
(2)霍夫直线变换等表针检测算法不具有通用性。若系统需要同时处理多种表盘,就需要大量重复的调参工作。
因此,现有技术中缺少一种稳定可靠的仪表读取方案。
技术实现要素:
为了解决现有技术中的上述技术缺陷,本发明提出了一种仪表读取方法,该方法包括:
采集预设数量的仪表图像;
标注所述仪表图像内的表盘区域以及关键点区域,生成标注数据;
结合所述标注数据训练预设的卷积神经网络,得到预测网络;
向所述预测网络导入新增的仪表图像,以获取所述仪表图像内的仪表读数。
可选的,所述采集预设数量的仪表图像,包括:
在所述仪表图像内确定所述表盘区域以及所述关键点区域,其中,所述表盘区域由所述仪表图像内的指针区域和读数区域确定;
根据所述指针区域以及所述读数区域确定所述表盘区域的框型,其中,所述框型包括矩形框以及圆形框。
可选的,所述标注所述仪表图像内的表盘区域以及关键点区域,生成标注数据,包括:
在所述仪表图像内确定与所述仪表读数相关的识别对象,作为所述关键点区域;
在所述仪表图像内确定所述框型内的识别对象,作为所述表盘区域;
分别在所述预设数量的仪表图像内标注所述表盘区域以及所述关键点区域;
根据所述标注操作生成所述标注数据。
可选的,所述结合所述标注数据训练预设的卷积神经网络,得到预测网络,包括:
将所述预设的卷积神经网络分为检测子网络以及关键点定位子网络;
结合所述标注数据以及所述检测子网络训练所述框型的位置回归以及框型分类,同时,结合所述标注数据以及所述关键点定位子网络训练所述关键点区域的位置。
可选的,所述向所述预测网络导入新增的仪表图像,以获取所述仪表图像内的仪表读数,包括:
导入新增的仪表图像;
通过训练后的检测子网络确定所述新增仪表图像的表盘区域,同时,通过训练后的关键点定位子网络确定所述新增仪表图像的关键点区域;
根据所述表盘区域以及所述关键点区域确定所述新增仪表图像的仪表读数。
本发明还提出了一种仪表读取设备,该设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现:
采集预设数量的仪表图像;
标注所述仪表图像内的表盘区域以及关键点区域,生成标注数据;
结合所述标注数据训练预设的卷积神经网络,得到预测网络;
向所述预测网络导入新增的仪表图像,以获取所述仪表图像内的仪表读数。
可选的,所述计算机程序被所述处理器执行时实现:
在所述仪表图像内确定所述表盘区域以及所述关键点区域,其中,所述表盘区域由所述仪表图像内的指针区域和读数区域确定;
根据所述指针区域以及所述读数区域确定所述表盘区域的框型,其中,所述框型包括矩形框以及圆形框。
可选的,所述计算机程序被所述处理器执行时实现:
在所述仪表图像内确定与所述仪表读数相关的识别对象,作为所述关键点区域;
在所述仪表图像内确定所述框型内的识别对象,作为所述表盘区域;
分别在所述预设数量的仪表图像内标注所述表盘区域以及所述关键点区域;
根据所述标注操作生成所述标注数据。
可选的,所述计算机程序被所述处理器执行时实现:
将所述预设的卷积神经网络分为检测子网络以及关键点定位子网络;
结合所述标注数据以及所述检测子网络训练所述框型的位置回归以及框型分类,同时,结合所述标注数据以及所述关键点定位子网络训练所述关键点区域的位置;
导入新增的仪表图像;
通过训练后的检测子网络确定所述新增仪表图像的表盘区域,同时,通过训练后的关键点定位子网络确定所述新增仪表图像的关键点区域;
根据所述表盘区域以及所述关键点区域确定所述新增仪表图像的仪表读数。
本发明还提出了一种计算机可读存储介质,该计算机可读存储介质上存储有仪表读取程序,仪表读取程序被处理器执行时实现如上述任一项所述的仪表读取方法的步骤。
实施本发明的仪表读取方法、设备及计算机可读存储介质,通过采集预设数量的仪表图像;然后,标注所述仪表图像内的表盘区域以及关键点区域,生成标注数据;再然后,结合所述标注数据训练预设的卷积神经网络,得到预测网络;最后,向所述预测网络导入新增的仪表图像,以获取所述仪表图像内的仪表读数。实现了一种高精度以及高效率的仪表读取方案,节省了仪表读取的系统资源消耗,提高了仪表读取的准确性,增强了用户体验。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明仪表读取方法第一实施例的流程图;
图2是本发明仪表读取方法第二实施例的流程图;
图3是本发明仪表读取方法第三实施例的流程图;
图4是本发明仪表读取方法第四实施例的流程图;
图5是本发明仪表读取方法第五实施例的流程图;
图6-1是本发明仪表读取方法的仪表图像示意图;
图6-2是本发明仪表读取方法的另一仪表图像示意图;
图7是本发明仪表读取方法的关键点定位子网络示意图。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
实施例一
图1是本发明仪表读取方法第一实施例的流程图。一种仪表读取方法,该方法包括:
s1、采集预设数量的仪表图像;
s2、标注所述仪表图像内的表盘区域以及关键点区域,生成标注数据;
s3、结合所述标注数据训练预设的卷积神经网络,得到预测网络;
s4、向所述预测网络导入新增的仪表图像,以获取所述仪表图像内的仪表读数。
具体的,在本实施例中,首先,采集预设数量的仪表图像;然后,标注所述仪表图像内的表盘区域以及关键点区域,生成标注数据;再然后,结合所述标注数据训练预设的卷积神经网络,得到预测网络;最后,向所述预测网络导入新增的仪表图像,以获取所述仪表图像内的仪表读数。
具体的,在本实施例中,考虑到本实施例适用的广泛性,因此,在本实施例中,首先需要对采集的仪表图像进行初步的分析,而又因为仪表种类繁多,因此,需要确定仪表图像内的仪表类型,其中,仪表类型包括数值型仪表、指针型仪表等,其中,仪表类型还包括单指针型仪表以及多指针型仪表等。
具体的,在本实施例中,对仪表图像进行初步分析后,在根据仪表图像的初步特征确定本实施例所需的表盘区域以及关键点区域,其中,表盘区域表示指针所在的区域,可以理解的是,若在多指针仪表的仪表图像内,其对应的表盘区域存在多个,可选的,若在多指针仪表中,多个指针的大小各不相同,因此,其对应的表盘区域也对应的与指针的大小相匹配。在本实施例中,关键点区域是指仪表图像内用于标识数值或单位的区域,可以理解的是,该区域可以是点状区域也可以是块状区域,根据标识的对象的不同而不同。
具体的,在本实施例中,结合所述标注数据训练预设的卷积神经网络,得到预测网络,其中,将上述步骤得到的标注数据代入预设的卷积神经网络进行训练,得到预测网络,可以理解的是,若前述步骤采集的仪表图像越多,则该预测网络所达到的训练效果越好。
具体的,在本实施例中,得到预测网络之后,向所述预测网络导入新增的仪表图像,以获取所述仪表图像内的仪表读数。同样的,如上例所述,在本实施例中,经训练后的预测网络具备仪表图像的学习和分析功能,因此,导入新增的仪表图像,由此预测网络得到仪表图像内的仪表读数,可以理解的是,新增的仪表图像预测过程中,同样是对上述预测网络的继续训练的过程,从而逐步增加该预测网络的预测准确性。
本实施例的有益效果在于,通过采集预设数量的仪表图像;然后,标注所述仪表图像内的表盘区域以及关键点区域,生成标注数据;再然后,结合所述标注数据训练预设的卷积神经网络,得到预测网络;最后,向所述预测网络导入新增的仪表图像,以获取所述仪表图像内的仪表读数。实现了一种高精度以及高效率的仪表读取方案,节省了仪表读取的系统资源消耗,提高了仪表读取的准确性,增强了用户体验。
实施例二
图2是本发明仪表读取方法第二实施例的流程图,基于上述实施例,所述采集预设数量的仪表图像,包括:
s11、在所述仪表图像内确定所述表盘区域以及所述关键点区域,其中,所述表盘区域由所述仪表图像内的指针区域和读数区域确定;
s12、根据所述指针区域以及所述读数区域确定所述表盘区域的框型,其中,所述框型包括矩形框以及圆形框。
具体的,在本实施例中,首先,在所述仪表图像内确定所述表盘区域以及所述关键点区域,其中,所述表盘区域由所述仪表图像内的指针区域和读数区域确定;然后,根据所述指针区域以及所述读数区域确定所述表盘区域的框型,其中,所述框型包括矩形框以及圆形框。
如图6-1所示的是本发明仪表读取方法的仪表图像示意图,在该图中获取本实施例所需的所述表盘区域以及所述关键点区域。
如图6-2所示的是本发明仪表读取方法的另一仪表图像示意图,其中,46个黑色小点(指针边缘的刻度点)以及4个灰色大点(指针中心点)所在的区域作为本实施例的关键点区域,四个白色矩形框区域作为本实施例的表盘区域。
其中,该仪表图像的读数过程可分为两步:(a)寻找表盘,(b)寻找刻度线以及指针位置。在基于关键点定位和表盘检测的指针式仪表读取方法中,(a)被抽象为一个表盘检测问题,(b)被抽象成一个关键点检测问题。
因此,本实施例的表盘中零刻度点,满刻度点,其他重要刻度点,表针的针头针尾都可以被视作关键点。假设n为关键点数量,卷积神经网络同时预测出仪表图像中存在表盘的概率,表盘的矩形框位置信息(左上角坐标和右下角坐标),以及图片中每一点属于第k个关键点的概率,其中(1≤k≤n)。
本实施例的有益效果在于,通过在所述仪表图像内确定所述表盘区域以及所述关键点区域,其中,所述表盘区域由所述仪表图像内的指针区域和读数区域确定;然后,根据所述指针区域以及所述读数区域确定所述表盘区域的框型,其中,所述框型包括矩形框以及圆形框。为后续实现一种高精度以及高效率的仪表读取方案提供了条件基础。
实施例三
图3是本发明仪表读取方法第三实施例的流程图,基于上述实施例,所述标注所述仪表图像内的表盘区域以及关键点区域,生成标注数据,包括:
s21、在所述仪表图像内确定与所述仪表读数相关的识别对象,作为所述关键点区域;
s22、在所述仪表图像内确定所述框型内的识别对象,作为所述表盘区域;
s23、分别在所述预设数量的仪表图像内标注所述表盘区域以及所述关键点区域;
s24、根据所述标注操作生成所述标注数据。
具体的,在本实施例中,首先,在所述仪表图像内确定与所述仪表读数相关的识别对象,作为所述关键点区域;然后,在所述仪表图像内确定所述框型内的识别对象,作为所述表盘区域;再然后,分别在所述预设数量的仪表图像内标注所述表盘区域以及所述关键点区域;最后,根据所述标注操作生成所述标注数据。
同样的,如上例所述,如图6-1所示的是本发明仪表读取方法的仪表图像示意图,在该图中获取本实施例所需的所述表盘区域以及所述关键点区域。
如图6-2所示的是本发明仪表读取方法的另一仪表图像示意图,其中,46个黑色小点(指针边缘的刻度点)以及4个灰色大点(指针中心点)所在的区域作为本实施例的关键点区域,四个白色矩形框区域作为本实施例的表盘区域,其中,根据仪表图像内的识别对象的不同,确定相应的对象作为本实施例的关键点区域,以及,确定本实施例的表盘区域。
可选的,使用旋转、仿射变换等方式对仪表图像进行数据增强。
本实施例的有益效果在于,通过在所述仪表图像内确定与所述仪表读数相关的识别对象,作为所述关键点区域;然后,在所述仪表图像内确定所述框型内的识别对象,作为所述表盘区域;再然后,分别在所述预设数量的仪表图像内标注所述表盘区域以及所述关键点区域;最后,根据所述标注操作生成所述标注数据。为后续实现一种高精度以及高效率的仪表读取方案提供了条件基础。
实施例四
图4是本发明仪表读取方法第四实施例的流程图,基于上述实施例,所述结合所述标注数据训练预设的卷积神经网络,得到预测网络,包括:
s31、将所述预设的卷积神经网络分为检测子网络以及关键点定位子网络;
s32、结合所述标注数据以及所述检测子网络训练所述框型的位置回归以及框型分类,同时,结合所述标注数据以及所述关键点定位子网络训练所述关键点区域的位置。
具体的,在本实施例中,首先,将所述预设的卷积神经网络分为检测子网络以及关键点定位子网络;然后,结合所述标注数据以及所述检测子网络训练所述框型的位置回归以及框型分类,同时,结合所述标注数据以及所述关键点定位子网络训练所述关键点区域的位置。
可选的,在同一个卷积神经网络中同时预测关键点和表盘矩形框位置信息,由于卷积神经网络计算量相对较大,为减少计算量,在本方案中,将表盘检测子问题和关键点定位子问题由同一个网络解决。也即,检测子网络和关键点定位子网络采用并行计算的方式进行,主干网络被两者所共享,由此,采用该网络结构可以同时提高指针式仪表读数的精度和速度。
具体的,在本实施例中,检测子网络的训练步骤为:
检测子网络采用多任务学习的方式,检测子网络由lcls和lloc组成。对于输入为512*512的图,网络训练先产生
512×512×12÷8÷8=49152个默认框,与真实框的重叠度大于0.7的默认框会被视作正样本,重叠度小于0.3的默认框会被视作负样本。其他的默认框会被视作中间样本。其损失函数为:
其中pclsi为网络对第i个默认框对其所属类别(正样本或者负样本)的置信度预测,nbox为正样本和负样本的数量之和。该损失函数越小越好。
同样的,
其中ploci为网络对第i个默认框的位置的预测。lloci为第i个默认框的真实预测。同样的,该损失函数越小越好。
具体的,在本实施例中,关键点定位子网络的训练步骤为:
如图7所示的是本发明仪表读取方法的关键点定位子网络示意图,图左侧的res-layer0,res-layer1,res-layer2,res-layer3与检测子网络共享。res-layer0,res-layer1,res-layer2和res-layer3的输出经过数次上采样之后对每个关键点可以得到与原图同等大小通道数为1取值为0-1的图像。在检测子网络所输出的矩形框区域内取argmax便可得到关键点的位置。
关键点的训练目标使用高斯函数生成,设第i个关键点的训练目标为ti,ti的第m第n列为ti(m,n),则:
其中
关键点子网络的损失函数为:
本实施例的有益效果在于,通过将所述预设的卷积神经网络分为检测子网络以及关键点定位子网络;然后,结合所述标注数据以及所述检测子网络训练所述框型的位置回归以及框型分类,同时,结合所述标注数据以及所述关键点定位子网络训练所述关键点区域的位置。为后续实现一种高精度以及高效率的仪表读取方案提供了预测网络基础。
实施例五
图5是本发明仪表读取方法第五实施例的流程图,基于上述实施例,所述向所述预测网络导入新增的仪表图像,以获取所述仪表图像内的仪表读数,包括:
s41、导入新增的仪表图像;
s42、通过训练后的检测子网络确定所述新增仪表图像的表盘区域,同时,通过训练后的关键点定位子网络确定所述新增仪表图像的关键点区域;
s43、根据所述表盘区域以及所述关键点区域确定所述新增仪表图像的仪表读数。
具体的,在本实施例中,首先,导入新增的仪表图像;然后,通过训练后的检测子网络确定所述新增仪表图像的表盘区域,同时,通过训练后的关键点定位子网络确定所述新增仪表图像的关键点区域;最后,根据所述表盘区域以及所述关键点区域确定所述新增仪表图像的仪表读数。
本实施例的有益效果在于,通过导入新增的仪表图像;然后,通过训练后的检测子网络确定所述新增仪表图像的表盘区域,同时,通过训练后的关键点定位子网络确定所述新增仪表图像的关键点区域;最后,根据所述表盘区域以及所述关键点区域确定所述新增仪表图像的仪表读数。实现了一种高精度以及高效率的仪表读取方案。
实施例六
基于上述实施例,本发明还提出了一种仪表读取设备,该设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现:
采集预设数量的仪表图像;
标注所述仪表图像内的表盘区域以及关键点区域,生成标注数据;
结合所述标注数据训练预设的卷积神经网络,得到预测网络;
向所述预测网络导入新增的仪表图像,以获取所述仪表图像内的仪表读数。
具体的,在本实施例中,首先,采集预设数量的仪表图像;然后,标注所述仪表图像内的表盘区域以及关键点区域,生成标注数据;再然后,结合所述标注数据训练预设的卷积神经网络,得到预测网络;最后,向所述预测网络导入新增的仪表图像,以获取所述仪表图像内的仪表读数。
具体的,在本实施例中,考虑到本实施例适用的广泛性,因此,在本实施例中,首先需要对采集的仪表图像进行初步的分析,而又因为仪表种类繁多,因此,需要确定仪表图像内的仪表类型,其中,仪表类型包括数值型仪表、指针型仪表等,其中,仪表类型还包括单指针型仪表以及多指针型仪表等。
具体的,在本实施例中,对仪表图像进行初步分析后,在根据仪表图像的初步特征确定本实施例所需的表盘区域以及关键点区域,其中,表盘区域表示指针所在的区域,可以理解的是,若在多指针仪表的仪表图像内,其对应的表盘区域存在多个,可选的,若在多指针仪表中,多个指针的大小各不相同,因此,其对应的表盘区域也对应的与指针的大小相匹配。在本实施例中,关键点区域是指仪表图像内用于标识数值或单位的区域,可以理解的是,该区域可以是点状区域也可以是块状区域,根据标识的对象的不同而不同。
具体的,在本实施例中,结合所述标注数据训练预设的卷积神经网络,得到预测网络,其中,将上述步骤得到的标注数据代入预设的卷积神经网络进行训练,得到预测网络,可以理解的是,若前述步骤采集的仪表图像越多,则该预测网络所达到的训练效果越好。
具体的,在本实施例中,得到预测网络之后,向所述预测网络导入新增的仪表图像,以获取所述仪表图像内的仪表读数。同样的,如上例所述,在本实施例中,经训练后的预测网络具备仪表图像的学习和分析功能,因此,导入新增的仪表图像,由此预测网络得到仪表图像内的仪表读数,可以理解的是,新增的仪表图像预测过程中,同样是对上述预测网络的继续训练的过程,从而逐步增加该预测网络的预测准确性。
本实施例的有益效果在于,通过采集预设数量的仪表图像;然后,标注所述仪表图像内的表盘区域以及关键点区域,生成标注数据;再然后,结合所述标注数据训练预设的卷积神经网络,得到预测网络;最后,向所述预测网络导入新增的仪表图像,以获取所述仪表图像内的仪表读数。实现了一种高精度以及高效率的仪表读取方案,节省了仪表读取的系统资源消耗,提高了仪表读取的准确性,增强了用户体验。
实施例七
基于上述实施例,可选的,所述计算机程序被所述处理器执行时实现:
在所述仪表图像内确定所述表盘区域以及所述关键点区域,其中,所述表盘区域由所述仪表图像内的指针区域和读数区域确定;
根据所述指针区域以及所述读数区域确定所述表盘区域的框型,其中,所述框型包括矩形框以及圆形框。
实施例八
基于上述实施例,可选的,所述计算机程序被所述处理器执行时实现:
在所述仪表图像内确定与所述仪表读数相关的识别对象,作为所述关键点区域;
在所述仪表图像内确定所述框型内的识别对象,作为所述表盘区域;
分别在所述预设数量的仪表图像内标注所述表盘区域以及所述关键点区域;
根据所述标注操作生成所述标注数据。
实施例九
基于上述实施例,可选的,所述计算机程序被所述处理器执行时实现:
将所述预设的卷积神经网络分为检测子网络以及关键点定位子网络;
结合所述标注数据以及所述检测子网络训练所述框型的位置回归以及框型分类,同时,结合所述标注数据以及所述关键点定位子网络训练所述关键点区域的位置;
导入新增的仪表图像;
通过训练后的检测子网络确定所述新增仪表图像的表盘区域,同时,通过训练后的关键点定位子网络确定所述新增仪表图像的关键点区域;
根据所述表盘区域以及所述关键点区域确定所述新增仪表图像的仪表读数。
实施例十
基于上述实施例,本发明还提出了一种计算机可读存储介质,该计算机可读存储介质上存储有仪表读取程序,仪表读取程序被处理器执行时实现如上述任一项所述的仪表读取方法的步骤。
实施本发明的仪表读取方法、设备及计算机可读存储介质,通过采集预设数量的仪表图像;然后,标注所述仪表图像内的表盘区域以及关键点区域,生成标注数据;再然后,结合所述标注数据训练预设的卷积神经网络,得到预测网络;最后,向所述预测网络导入新增的仪表图像,以获取所述仪表图像内的仪表读数。实现了一种高精度以及高效率的仪表读取方案,节省了仪表读取的系统资源消耗,提高了仪表读取的准确性,增强了用户体验。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。