一种表计读数识别方法及系统与流程

文档序号:14728926发布日期:2018-06-19 15:22阅读:470来源:国知局

本发明涉及计算机处理领域,更具体地,涉及一种表计读数识别方法及系统。



背景技术:

现有的表计识别方法主要采用传统的模式识别,通过图像预处理、目标区域检测、指针识别、读数计算等一系列的步骤实现表计读数,现有的方法虽然具体实施步骤有所不同,但整体流程、使用的技术都大同小异。

例如在申请号为201510345598.2的中国专利申请中提出了一种基于图像配准的机械式表计识别方法,该方法通过对表记的标准图像的刻度点进行手工标定,利用图像处理的方法将待识别图像与标准图像的特征点进行匹配,然后对待识别图像做透视变换,完成待识别表计图像的配准,最后通过对表盘中特定区域的灰度值比较识别指针的位置,计算出电表的读数。

许丽在文献《巡检机器人中的指针式仪表读数识别系统》中,通过目标分割方法提取指针区域,然后通过hough变换定位指针,最后对图像进行二值化处理,利用指针中心线相对于仪表量程初始刻度的角度和量程的关系识别仪表的读数。

在现有的表计识别中,识别表计读数包括预处理图像、目标区域检测、指针识别等步骤,步骤繁琐,而且需要大量的先验知识,对算法设计人员的专业知识要求较高,同时传统识别中需要针对不同的表计设计不同的算法,增大了表计读数识别的难度。



技术实现要素:

本解决现有技术中对表计读数的识别需要针对不同的表计设计不同的算法,对算法设计人员要求较高,对表计读数识别难度较大的问题,提供一种表计读数识别方法及系统。

根据本发明的一个方面,提供一种表计读数识别方法,所述方法包括:

S1,接收包含机械表计图像的表计图片,将所述表计图片输入到训练好的卷积神经网络中,获取所述表计图片中表计的刻度信息和表计指针的位置信息;

S2,根据所述表计的刻度信息和表计中指针的位置信息,计算获得所述表计图片中表计的读数;

其中,所述表计的刻度信息至少包括表计的0刻度位置点,所述表计指针的位置信息至少包括指针顶端的位置点和指针在所述表计表盘上的指针固定点。

其中,所述步骤S2中具体包括:

S21,计算所述指针固定点到表计0刻度位置点之间的线段,和所述指针固定点到所述指针顶端的位置点的线段的测量夹角;

S22,根据所述测量夹角的角度和表计的总量程的角度的比值,与表计的总量程相乘,获得所述表计图片中表计的读数。

其中,所述步骤S1之前还包括,

采集多张表计图片,对所述表计图片中的多个特征点进行标注,构建训练样本集;

通过所述训练样本集,采用误差反向传播算法,对所述卷积神经网络进行训练;

其中,所述表计图片中的特征点至少包括表计的0刻度位置点、表计中的指针固定点和表计中指针顶端位置点。

其中,所述采用误差反向传播算法,对所述卷积神经网络进行训练具体包括:

将所述表计图片作为输入数据输入到所述卷积神经网络中,在全连接层输出所述多个特征点的坐标信息;

将所述多个特征点的坐标信息,与所述表计图片中标注的特征点的均方误差作为目标函数,对所述卷积神经网络进行训练。

其中,所述神经网络的结构包含7个卷积层和一个全连接层;

其中每个卷积层后面还包含一个Batch Normalization层和一个激励层。

根据本发明的第二方面,提供一种表计读数识别系统,包括:

图像识别模块,用于接收包含机械表计图像的表计图片,将所述表计图片输入到训练好的卷积神经网络中,获取所述表计图片中表计的刻度信息和表计指针的位置信息;

表计读数计算模块,用于根据所述表计的刻度信息和表计中指针的位置信息,计算获得所述表计图片中表计的读数;

其中,所述表计的刻度信息至少包括表计的0刻度位置点,所述表计指针的位置信息至少包括指针顶端的位置点和指针在所述表计表盘上的指针固定点。

其中,所述表计读数计算模块具体包括:

角度计算子模块,用于计算所述指针固定点到表计0刻度位置点之间的线段和所述指针固定点到所述指针顶端的位置点的线段的测量夹角;

读数计算子模块,用于根据所述测量夹角的角度和表计的总量程的角度的比值,与表计的总量程相乘,获得所述表计图片中表计的读数。

其中,所述系统还包括神经网络训练模块,用于:

采集多张表计图片,对所述表计图片中的多个特征点进行标注,构建训练样本集;

通过所述训练样本集,采用误差反向传播算法,对所述卷积神经网络进行训练;

其中,所述表计图片中的特征点至少包括表计的0刻度位置点、表计中的指针固定点和表计中指针顶端位置点。

本发明提供的方法,利用神经网络进行了图片中表计特征的自动提取,通过提取的图像中的特征,计算获得表计的读数,实现了对机械表计读数的自动识别,不需要人工参与,而且模型对光照不敏感,鲁棒性较高。。

附图说明

图1为本发明一实施例提供的一种表计读数识别方法的流程图;

图2为本发明一实施例提供的一种表计读数识别方法中神经网络训练的流程图;

图3为本发明另一实施例提供的一种表计读数识别系统的结构图。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。

参考图1,图1为本发明一实施例提供的一种表计读数识别方法的流程图,所述方法包括:

S1,接收包含机械表计图像的表计图片,将所述表计图片输入到训练好的卷积神经网络中,获取所述表计图片中表计的刻度信息和表计指针的位置信息;

其中,所述表计的刻度信息至少包括表计的0刻度位置点,所述表计指针的位置信息至少包括指针顶端的位置点和指针在所述表计表盘上的指针固定点。

具体的,当采集到需要进行表计读数识别的表计图片时,将所述表计图片输入到训练好的卷积神经网络中,对表计中的刻度信息和表计指针的位置信息进行获取。

其中,表计的刻度信息至少包括表计的0刻度位置点,表计指针的位置信息包括表计中指针在表计的表盘上的固定点的位置,同时还需要获得表计中指针顶端的位置点。其中,指针在表计的表盘上的固定点指的是表盘上用于固定指针位置的位置点,指针可以通过这个固定点为转动轴在表计的表盘上转动。所述对于单指针的机械表计,只用获得一个指针顶端的位置点信息,对于多指针的机械表计,由于机械表计的设计中,指针的固定点都为同一点,因此需要识别图片中每一根指针的指针顶端位置信息和指针共同的固定点的位置信息。

S2,根据所述表计的刻度信息和表计中指针的位置信息,计算获得所述表计图片中表计的读数。

具体的,在获得了待识别的表计图片中表计的表计的刻度信息和表计指针的位置信息后,根据获得的信息,对表计的读数进行计算,从而获得表计图片中,机械表计的最终的读数。

通过此方法,利用神经网络进行了图片中表计特征的自动提取,通过提取的图像中的特征,计算获得表计的读数,实现了对机械表计读数的自动识别,不需要人工参与,而且模型对光照不敏感,鲁棒性较高。

在上述实施例的基础上,所述步骤S2中具体包括:

S21,计算所述指针固定点到表计0刻度位置点之间的线段,和所述指针固定点到所述指针顶端的位置点的线段的测量夹角;

S22,根据所述测量夹角的角度和表计的总量程的角度的比值,与表计的总量程相乘,获得所述表计图片中表计的读数。

具体的,在表计读数计算过程中,通过计算指针所在的起始位置和指针当前位置的夹角,来计算表计的读数,其中,指针的起始位置为指针在表计表盘上的固定点到表计0刻度位置的线段,指针的当前位置可以表示为指针在表计表盘的固定点到指针顶点的线段,计算两条线段之间的夹角。

通过所述夹角的角度值,和表计总量程的角度值,从而通过计算两个角度值的比值,根据两个角度的比值,从而计算出表计图片中表计的读数。其中,在表计刻度为圆形的表计中,表计的总量程的角度即为360度,在表计刻度为弧形的表计中,表计的的总量程的角度值为指针在0刻度位置和指针在最大刻度位置时指针所在的线段的夹角。

在单指针避雷器电流表中,通过计算,表计总量程的角度值为120度,表计总量程为30毫安,指针在0刻度位置时和指针在当前位置时的夹角为30度,则指针当前位置与初始位置的角度值的夹角和表计总量程的角度值的比为0.25,表计的最终读数计算为30mA×0.25,即为7.5mA。

通过此方法,根据少量特征点,即可计算出表计读数,计算过程简单,具备泛用性,可以对各类表计的读数进行精确识别,无需针对不同的表计设计不同的识别方法。

在上述各实施例的基础上,所述步骤S1之前还包括,

采集多张表计图片,对所述表计图片中的多个特征点进行标注,构建训练样本集;

通过所述训练样本集,采用误差反向传播算法,对所述卷积神经网络进行训练;

其中,所述表计图片中的特征点至少包括表计的0刻度位置点、表计中的指针固定点和表计中指针顶端位置点。

其中,所述采用误差反向传播算法,对所述卷积神经网络进行训练具体包括:

将所述表计图片作为输入数据输入到所述卷积神经网络中,在全连接层输出所述多个特征点的坐标信息;

将所述多个特征点的坐标信息,与所述表计图片中标注的特征点的均方误差作为目标函数,对所述卷积神经网络进行训练。

具体的,通过收集大量的表计图片,随后对图片中的表计进行特征点标注,也就是需要神经网络进行识别的特征点,对特征点的标注至少包括表计表盘的0刻度位置,指针的在表盘上的固定点和指针顶端的位置点,对于不同的表计,可能会标注更多的数量的特征点例如双指针温度表还要标注指针末端的位置、表计表盘的中心位置点和表计表盘的最大刻度位置点。

在对采集的到大量表计图片进行了标注后,将标注结果作为需要神经网络进行识别的结果,表计图片作为输入数据,对卷积神经网络进行训练,其中训练的方法采用的误差反向传播算法,在全连接层输出的多维度数据为特征点的坐标信息。

将所述特征点的坐标信息与表计图片中标注的特征点信息的均方误差作为训练的目标函数,这个均方误差即为损失函数,一般来说,在进行机器学习任务时,使用的每一个算法都有一个目标函数,算法便是对这个目标函数进行优化,特别是在分类或者回归任务中,便是使用损失函数(Loss Function)作为其目标函数,又称为代价函数(Cost Function)。损失函数是用来评价模型的预测值与真实值的不一致程度,它是一个非负实值函数,损失函数越小,模型的性能就越好。

在上述各实施例的基础上,所述神经网络包含7个卷积层和一个全连接层;其中每个卷积层后面还包含一个Batch Normalization层和一个激励层。

具体的,对于神经网络模型来说,损失函数越小,模型的性能就越好。因此在进行神经网络训练的时候,会对神经网络的结构进行调整,即每次增加卷积层得到新的网络结构,再对新结构进行训练,当增加网络层后损失函数的值不再减小,或者损失函数的值已经小于设定的阈值时,就以当前的网络结构作为最终的网络结构。

在本实施例中,卷积神经网络的结构包含7个卷积层和一个全连接层,其中,每个全连接层后面还包括一个Batch Normalization(BN)层和一个激励层。

Batch Normalization是由谷歌提出的一种训练优化方法,与激活函数层、卷积层、全连接层、池化层一样,BN(Batch Normalization)也属于网络的一层,Normalization是数据标准化(归一化,规范化),Batch可以理解为批量,加起来就是批量标准化。

在每个BN层后面还会有一个激励层,神经网络中的每个节点接受输入值,并将输入值传递给下一层,输入节点会将输入属性值直接传递给下一层(隐层或输出层)。在神经网络中,隐层和输出层节点的输入和输出之间具有函数关系,这个函数称为激励函数。常见的激励函数有:线性激励函数、阈值或阶跃激励函数、S形激励函数、双曲正切激励函数和高斯激励函数等。

通过图2所示的步骤,在对神经网络进行反向传播算法进行训练后,计算损失函数的值是否小于预设阈值或者损失函数的值不会因为神经网络的卷积层增加而下降的时候,则可以认为模型达到需求的状态。当损失函数的值没有满足要求的,增加神经网络的卷积层,对新构建的神经网络继续进行反向传播算法训练。

最终在本实施例中使用的神经网络结构为7个卷基层,7个BN层,7个激励层和1个全连接层构成的神经网络模型。

通过此方法,使得在训练过程中,可以将损失函数的值确定在预设阈值以下,使得神经网络构建的模型可以满足最佳的识别精度。

在本发明的另一实施例中,参考图3,图3为本发明另一实施例提供的一种表计读数识别系统的结构图,所述系统包括:图像识别模块31,表计读数计算模块32。

其中,所述图像识别模块31用于接收包含机械表计图像的表计图片,将所述表计图片输入到训练好的卷积神经网络中,获取所述表计图片中表计的刻度信息和表计指针的位置信息;所述表计的刻度信息至少包括表计的0刻度位置点和表计中表盘的中心位置点或者指针在表盘上的固定点,所述表计指针的位置信息至少包括指针顶端位置点。

具体的,当采集到需要进行表计读数识别的表计图片时,将所述表计图片输入到训练好的卷积神经网络中,对表计中的刻度信息和表计指针的位置信息进行获取。

其中,表计的刻度信息至少包括表计的0刻度位,表计指针的位置信息包括表计中指针在表计的表盘上的固定点的位置,同时还需要获得表计中指针顶端的位置点。其中,指针在表计的表盘上的固定点指的是表盘上用于固定指针位置的位置点,指针可以通过这个固定点为转动轴在表计的表盘上转动。所述对于单指针的机械表计,只用获得一个指针顶端的位置点信息,对于多指针的机械表计,由于机械表计的设计中,指针的固定点都为同一点,因此需要识别图片中每一根指针的指针顶端位置信息和指针共同的固定点的位置信息。

其中,表计读数计算模块32用于根据所述表计的刻度信息和表计中指针的位置信息,计算获得所述表计图片中表计的读数。

具体的,在获得了待识别的表计图片中表计的表计的刻度信息和表计指针的位置信息后,根据获得的信息,对表计的读数进行计算,从而获得表计图片中,机械表计的最终的读数。

通过此系统,利用神经网络进行了图片中表计特征的自动提取,通过提取的图像中的特征,计算获得表计的读数,实现了对机械表计读数的自动识别,不需要人工参与,而且模型对光照不敏感,鲁棒性较高。

在上述实施例的基础上,所述表计读数计算模块具体包括:

角度计算子模块,用于计算所述指针固定点到表计0刻度位置点之间的线段和所述指针固定点到所述指针顶端的位置点的线段的测量夹角;

读数计算子模块,用于根据所述测量夹角的角度和表计的总量程的角度的比值,与表计的总量程相乘,获得所述表计图片中表计的读数。

具体的,在表计读数计算过程中,通过计算指针所在的起始位置和指针当前位置的夹角,来计算表计的读数,其中,指针的起始位置为指针在表计表盘上的固定点到表计0刻度位置点的线段,指针的当前位置可以表示为指针在表计表盘的固定点到指针顶点的线段,计算两条线段之间的夹角。

通过所述夹角的角度值,和表计总量程的角度值,从而通过计算两个角度值的比值,根据两个角度的比值,从而计算出表计图片中表计的读数。其中,表计的总量程的角度值为指针在0刻度位置点和指针在最大刻度位置时指针所在的线段的夹角。

通过此方法,根据少量特征点,即可计算出表计读数,计算过程简单,具备泛用性,可以对各类表计的读数进行精确识别,无需针对不同的表计设计不同的识别方法。

在上述各实施例的基础上,所述系统还包括神经网络训练模块,用于:

采集多张表计图片,对所述表计图片中的多个特征点进行标注,构建训练样本集;

通过所述训练样本集,采用误差反向传播算法,对所述卷积神经网络进行训练;

其中,所述表计图片中的特征点至少包括表计的0刻度位置点、表计中表盘的中心位置点和表计中指针顶端位置点。

具体的,通过收集大量的表计图片,随后对图片中的表计进行特征点标注,也就是需要神经网络进行识别的特征点,对特征点的标注至少包括表计表盘的0刻度位置,指针的在表盘上的固定点和指针顶端的位置点,对于不同的表计,可能会标注更多的数量的特征点例如双指针温度表还要标注指针末端的位置、表计表盘的中心位置点和表计表盘的最大刻度位置点。

在对采集的到大量表计图片进行了标注后,将标注结果作为需要神经网络进行识别的结果,表计图片作为输入数据,对卷积神经网络进行训练,其中训练的方法采用的误差反向传播算法,在全连接层输出的多维度数据为特征点的坐标信息。

将所述特征点的坐标信息与表计图片中标注的特征点信息的均方误差作为训练的目标函数,这个均方误差即为损失函数,一般来说,在进行机器学习任务时,使用的每一个算法都有一个目标函数,算法便是对这个目标函数进行优化,特别是在分类或者回归任务中,便是使用损失函数(Loss Function)作为其目标函数,又称为代价函数(Cost Function)。损失函数是用来评价模型的预测值与真实值的不一致程度,它是一个非负实值函数,损失函数越小,模型的性能就越好。

在上述各实施例的基础上,所述神经网络包含7个卷积层和一个全连接层;其中每个卷积层后面还包含一个Batch Normalization层和一个激励层。

具体的,对于神经网络模型来说,损失函数越小,模型的性能就越好。因此在进行神经网络训练的时候,会对神经网络的结构进行调整,即每次增加卷积层得到新的网络结构,再对新结构进行训练,当增加网络层后损失函数的值不再减小,或者损失函数的值已经小于设定的阈值时,就以当前的网络结构作为最终的网络结构。

在本实施例中,卷积神经网络的结构包含7个卷积层和一个全连接层,其中,每个全连接层后面还包括一个Batch Normalization(BN)层和一个激励层。

Batch Normalization是由谷歌提出的一种训练优化方法,与激活函数层、卷积层、全连接层、池化层一样,BN(Batch Normalization)也属于网络的一层,Normalization是数据标准化(归一化,规范化),Batch可以理解为批量,加起来就是批量标准化。

在每个BN层后面还会有一个激励层,神经网络中的每个节点接受输入值,并将输入值传递给下一层,输入节点会将输入属性值直接传递给下一层(隐层或输出层)。在神经网络中,隐层和输出层节点的输入和输出之间具有函数关系,这个函数称为激励函数。常见的激励函数有:线性激励函数、阈值或阶跃激励函数、S形激励函数、双曲正切激励函数和高斯激励函数等。

通过不断对神经网络的结构进行调整,最终在本实施例中使用的神经网络结构为7个卷基层,7个BN层,7个激励层和1个全连接层构成的神经网络模型。

通过此系统,使得在训练过程中,可以将损失函数的值确定在预设阈值以下,使得神经网络构建的模型可以满足最佳的识别精度。

最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1