本申请涉及计算机技术领域,特别是涉及一种识别表计示数方法、装置、可读存储介质和计算机设备。
背景技术:
通过读取变电站内设备表计的示数以监控变电站内设备运行状态,是保障变电站安全、稳定运行的基础。目前,通常采用基于机器视觉算法的巡检机器人对变电站内的各设备表计进行直接读数,具体过程依次为:驱动机器人底盘移动、云台转动、粗校准、镜头调焦、二次校准、模板匹配、指针定位和表计读数等。
然而,上述表计读数方法读数过程繁琐、且容易受场地和光照等成像条件影响,导致表计读数的效率较低。
技术实现要素:
基于此,有必要针对表计读数效率低的技术问题,提供一种识别表计示数方法、装置、可读存储介质和计算机设备。
一种识别表计示数方法,包括:
获取表盘图像;
对所述表盘图像进行表盘检测,根据检测结果从所述表盘图像中提取出表盘区域;
从所述表盘区域中读取指针点和至少两个表盘关键点;
分别计算所述至少两个表盘关键点与所述指针点之间的中心角度值;
根据所述中心角度值和所述至少两个表盘关键点的刻度值,计算所述指针点所对应的示数。
在一个实施例中,所述分别计算所述至少两个表盘关键点与所述指针点之间的中心角度值包括:
确定所述指针点的第一坐标和所述至少两个表盘关键点的第二坐标;
根据所述第一坐标和所述至少两个表盘关键点的第二坐标,计算所述表盘的中心点坐标;
根据所述中心点坐标、所述第一坐标和所述第二坐标,计算出所述至少两个表盘关键点与所述指针点之间的中心角度值。
在一个实施例中,所述根据所述中心点坐标、所述第一坐标和所述第二坐标,计算出所述至少两个表盘关键点与所述指针点之间的中心角度值,包括:
计算所述中心点坐标和所述第一坐标的第一向量;以及,
分别计算所述中心点坐标和各所述第二坐标的第二向量;
根据所述第一向量和所述第二向量,计算所述至少两个表盘关键点与所述指针点之间的中心角度值。
在一个实施例中,所述根据所述第一坐标和所述至少两个表盘关键点的第二坐标,计算所述表盘的中心点坐标,包括:
确定目标曲线方程;
将所述第一坐标和所述至少两个表盘关键点的第二坐标代入所述目标曲线方程;
求解所述目标曲线方程,得到所述表盘的中心点坐标。
在一个实施例中,所述至少两个表盘关键点包括所述表盘中刻度的第一边界点和第二边界点;所述中心角度值包括:所述第一边界点与所述指针点的第一中心角度值,以及所述第二边界点与所述指针点的第二中心角度值;
所述根据所述中心角度值和所述至少两个表盘关键点的刻度值,计算所述指针点所对应的示数,包括:
分别读取所述第一边界点的第一刻度值和所述第二边界点的第二刻度值;所述第一刻度值小于所述第二刻度值;
计算所述第一刻度值和所述第二刻度值之间的刻度差值;以及,
计算所述第一中心角度值与中心角度和值的比值;所述中心角度和值为所述第一中心角度值与所述第二中心角度值的和值;
根据所述第一刻度值、所述刻度差值和所述比值,计算出所述指针点所对应的示数。
一种识别表计示数装置,所述装置包括:
表盘图像获取模块,用于获取表盘图像;
表盘区域提取模块,用于对所述表盘图像进行表盘检测,根据检测结果从所述表盘图像中提取出表盘区域;
关键点提取模块,用于从所述表盘区域中读取指针点和至少两个表盘关键点;
中心角度值计算模块,用于分别计算所述至少两个表盘关键点与所述指针点之间的中心角度值;
示数计算模块,用于根据所述中心角度值和所述至少两个表盘关键点的刻度值,计算所述指针点所对应的示数。
在一个实施例中,所述中心角度值计算模块,还用于:
确定所述指针点的第一坐标和所述至少两个表盘关键点的第二坐标;
根据所述第一坐标和所述至少两个表盘关键点的第二坐标,计算所述表盘的中心点坐标;
根据所述中心点坐标、所述第一坐标和所述第二坐标,计算出所述至少两个表盘关键点与所述指针点之间的中心角度值。
在一个实施例中,所述中心角度值计算模块,还用于:
计算所述中心点坐标和所述第一坐标的第一向量;以及,
分别计算所述中心点坐标和各所述第二坐标的第二向量;
根据所述第一向量和所述第二向量,计算所述至少两个表盘关键点与所述指针点之间的中心角度值。
在一个实施例中,所述中心角度值计算模块,还用于:
确定目标曲线方程;
将所述第一坐标和所述至少两个表盘关键点的第二坐标代入所述目标曲线方程;
求解所述目标曲线方程,得到所述表盘的中心点坐标。
在一个实施例中,所述至少两个表盘关键点包括所述表盘中刻度的第一边界点和第二边界点;所述中心角度值包括:所述第一边界点与所述指针点的第一中心角度值,以及所述第二边界点与所述指针点的第二中心角度值;
所述示数计算模块,还用于:
分别读取所述第一边界点的第一刻度值和所述第二边界点的第二刻度值;所述第一刻度值小于所述第二刻度值;
计算所述第一刻度值和所述第二刻度值之间的刻度差值;以及,
计算所述第一中心角度值与中心角度和值的比值;所述中心角度和值为所述第一中心角度值与所述第二中心角度值的和值;
根据所述第一刻度值、所述刻度差值和所述比值,计算出所述指针点所对应的示数。
一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:
获取表盘图像;
对所述表盘图像进行表盘检测,根据检测结果从所述表盘图像中提取出表盘区域;
从所述表盘区域中读取指针点和至少两个表盘关键点;
分别计算所述至少两个表盘关键点与所述指针点之间的中心角度值;
根据所述中心角度值和所述至少两个表盘关键点的刻度值,计算所述指针点所对应的示数。
在一个实施例中,所述计算机程序被处理器执行所述分别计算所述至少两个表盘关键点与所述指针点之间的中心角度值的步骤时,使得所述处理器具体执行以下步骤:
确定所述指针点的第一坐标和所述至少两个表盘关键点的第二坐标;
根据所述第一坐标和所述至少两个表盘关键点的第二坐标,计算所述表盘的中心点坐标;
根据所述中心点坐标、所述第一坐标和所述第二坐标,计算出所述至少两个表盘关键点与所述指针点之间的中心角度值。
在一个实施例中,所述计算机程序被处理器执行所述根据所述中心点坐标、所述第一坐标和所述第二坐标,计算出所述至少两个表盘关键点与所述指针点之间的中心角度值的步骤时,使得所述处理器具体执行以下步骤:
计算所述中心点坐标和所述第一坐标的第一向量;以及,
分别计算所述中心点坐标和各所述第二坐标的第二向量;
根据所述第一向量和所述第二向量,计算所述至少两个表盘关键点与所述指针点之间的中心角度值。
在一个实施例中,所述计算机程序被处理器执行所述根据所述第一坐标和所述至少两个表盘关键点的第二坐标,计算所述表盘的中心点坐标的步骤时,使得所述处理器具体执行以下步骤:
确定目标曲线方程;
将所述第一坐标和所述至少两个表盘关键点的第二坐标代入所述目标曲线方程;
求解所述目标曲线方程,得到所述表盘的中心点坐标。
在一个实施例中,所述至少两个表盘关键点包括所述表盘中刻度的第一边界点和第二边界点;所述中心角度值包括:所述第一边界点与所述指针点的第一中心角度值,以及所述第二边界点与所述指针点的第二中心角度值;
所述计算机程序被处理器执行所述根据所述中心角度值和所述至少两个表盘关键点的刻度值,计算所述指针点所对应的示数的步骤时,使得所述处理器具体执行以下步骤:
分别读取所述第一边界点的第一刻度值和所述第二边界点的第二刻度值;所述第一刻度值小于所述第二刻度值;
计算所述第一刻度值和所述第二刻度值之间的刻度差值;以及,
计算所述第一中心角度值与中心角度和值的比值;所述中心角度和值为所述第一中心角度值与所述第二中心角度值的和值;
根据所述第一刻度值、所述刻度差值和所述比值,计算出所述指针点所对应的示数。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:
获取表盘图像;
对所述表盘图像进行表盘检测,根据检测结果从所述表盘图像中提取出表盘区域;
从所述表盘区域中读取指针点和至少两个表盘关键点;
分别计算所述至少两个表盘关键点与所述指针点之间的中心角度值;
根据所述中心角度值和所述至少两个表盘关键点的刻度值,计算所述指针点所对应的示数。
在一个实施例中,所述计算机程序被处理器执行所述分别计算所述至少两个表盘关键点与所述指针点之间的中心角度值的步骤时,使得所述处理器具体执行以下步骤:
确定所述指针点的第一坐标和所述至少两个表盘关键点的第二坐标;
根据所述第一坐标和所述至少两个表盘关键点的第二坐标,计算所述表盘的中心点坐标;
根据所述中心点坐标、所述第一坐标和所述第二坐标,计算出所述至少两个表盘关键点与所述指针点之间的中心角度值。
在一个实施例中,所述计算机程序被处理器执行所述根据所述中心点坐标、所述第一坐标和所述第二坐标,计算出所述至少两个表盘关键点与所述指针点之间的中心角度值的步骤时,使得所述处理器具体执行以下步骤:
计算所述中心点坐标和所述第一坐标的第一向量;以及,
分别计算所述中心点坐标和各所述第二坐标的第二向量;
根据所述第一向量和所述第二向量,计算所述至少两个表盘关键点与所述指针点之间的中心角度值。
在一个实施例中,所述计算机程序被处理器执行所述根据所述第一坐标和所述至少两个表盘关键点的第二坐标,计算所述表盘的中心点坐标的步骤时,使得所述处理器具体执行以下步骤:
确定目标曲线方程;
将所述第一坐标和所述至少两个表盘关键点的第二坐标代入所述目标曲线方程;
求解所述目标曲线方程,得到所述表盘的中心点坐标。
在一个实施例中,所述至少两个表盘关键点包括所述表盘中刻度的第一边界点和第二边界点;所述中心角度值包括:所述第一边界点与所述指针点的第一中心角度值,以及所述第二边界点与所述指针点的第二中心角度值;
所述计算机程序被处理器执行所述根据所述中心角度值和所述至少两个表盘关键点的刻度值,计算所述指针点所对应的示数的步骤时,使得所述处理器具体执行以下步骤:
分别读取所述第一边界点的第一刻度值和所述第二边界点的第二刻度值;所述第一刻度值小于所述第二刻度值;
计算所述第一刻度值和所述第二刻度值之间的刻度差值;以及,
计算所述第一中心角度值与中心角度和值的比值;所述中心角度和值为所述第一中心角度值与所述第二中心角度值的和值;
根据所述第一刻度值、所述刻度差值和所述比值,计算出所述指针点所对应的示数。
上述识别表计示数方法、装置、可读存储介质和计算机设备,通过获取表盘图像;对表盘图像进行表盘检测,根据检测结果从表盘图像中提取出表盘区域;从表盘区域中读取指针点和至少两个表盘关键点;分别计算至少两个表盘关键点与指针点之间的中心角度值;根据中心角度值和至少两个表盘关键点的刻度值,计算指针点所对应的示数,从而实现快速地读取出表计的示数,提高了表计读数的效率。
附图说明
图1为一个实施例中识别表计示数方法的应用环境图;
图2为一个实施例中识别表计示数方法的流程示意图;
图3为一个实施例中ssd算法的网络结构图;
图4为一个实施例中识别表计示数方法的示意图;
图5为一个实施例中计算中心角度值步骤的流程示意图;
图6为一个实施例中识别表计示数方法的流程示意图;
图7为一个实施例中识别表计示数装置的结构框图;
图8为一个实施例中计算机设备的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为一个实施例中识别表计示数方法的应用环境图。参照图1,该识别表计示数方法应用于识别表计示数系统。该识别表计示数系统包括终端110和服务器120。终端110和服务器120通过网络连接。该识别表计示数方法可以执行于终端110或服务器120,以执行于终端110为例,终端110获取表盘图像之后,对表盘图像进行表盘检测,根据检测结果从表盘图像中提取出表盘区域;从表盘区域中读取指针点和至少两个表盘关键点;分别计算至少两个表盘关键点与指针点之间的中心角度值;根据中心角度值和至少两个表盘关键点的刻度值,计算指针点所对应的示数,从而实现快速地读取出表计的示数。
终端110具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
如图2所示,在一个实施例中,提供了一种识别表计示数方法。本实施例主要以该方法应用于上述图1中的终端110来举例说明。参照图2,该识别表计示数方法具体包括如下步骤:
s202,获取表盘图像。
其中,表盘图像为包含表盘的图像,具体可以是直接通过图像采集装置获取的原始表盘图像,也可以是直接从本地的存储空间中获取的原始表盘图像,还可以是从服务器中获取的原始表盘图像。
在一个实施例中,终端在获取到表盘图像之后,还可以对表盘图像进行灰度化、去噪等处理,以便后续对表盘图像进行表盘检测的结果更准确。
s204,对表盘图像进行表盘检测,根据检测结果从表盘图像中提取出表盘区域。
其中,表盘检测是检测并确定表盘图像中表盘区域的位置。
在一个实施例中,终端采用深度学习算法的表盘检测模型,对表盘图像进行检测,确定出表盘区域,并从该表盘图像中提取出所确定的表盘区域。其中,深度学算法可以是ssd算法(single-shotmulti-boxdetection)或yolo(you-only-look-once)算法的单阶深度学习检测器,以便提高表盘检测的速度。上述的ssd算法和yolo算法的理论基础均可以是卷积神经网络,卷积神经网络是一种层次模型,其输入的数据一般是图像,输出为目标任务(分类、回归等)的对应矩阵,卷积神经网络通过卷积层、池化层和全连接层等一系列操作后,将其目标任务形式化为目标函数,目标函数也叫做损失函数,是从统计学角度衡量解决方案错误程度的量化函数,也是神经网络中优化的目标函数。
单阶检测器主要由负责提取特征的主干网络、负责检测框位置回归的位置分支和负责预测类别的分类分支组成。以ssd算法为例,ssd算法的核心是在特征图上采用卷积核来预测一些列边界框的类别以及坐标偏移,ssd算法的网络结构图如图3所示,该网络首先使用基础网络vgg16进行特征提取,形成大量原始图像的多维度特征;然后,在基础网络后加入一系列的卷积层,并对每个卷积层提取的特征图引入检测器与分类器,检测器和分类器的实质也是卷积神经网络,其主要作用是对卷积层产生的一系列固定大小的包围框进行检测、分类和位置回归,并输出每一个包围框中包含物体的目标可能性的评分这些层的大小逐渐减小,可以进行多尺度预测;最后,采用非极大值抑制算法,对每一个包围框中包含物体可能性的评分进行目标筛选,并过滤掉那些重叠度较大的预测框,得到理想的预测结果。
在一个实施例中,终端在进行表盘检测时,设置检测类别数为2,即表盘区域为前景类别,其他区域均为背景类别,假定表盘区域接近正方形,将anchor对应的默认框相对于特征图的长宽比设定为1,以减少输出channel数,从而减少计算量提高表盘检测的速度。其中,anchor(锚)参数的思想来源是借鉴fasterrcnn算法。
在一个实施例中,终端采用经典深度学习算法,对表盘图像进行检测,检测结果为包含表盘区域的矩形框,具体可以是该矩形框左上顶点坐标和右下顶点坐标,终端根据该矩形框,从表盘图像中提取出该矩形框所包围的区域,并将该区域作为表盘区域。
s206,从表盘区域中读取指针点和至少两个表盘关键点。
其中,指针点为表盘中指针所指的位置,或指针顶点的位置。关键点为用于确定表盘形状的点,具体可以是表盘刻度上有刻度值的点,指针点和关键点可以统称为特征点。
在一个实施例中,终端通过深度学习网络从表盘区域中读取指针点和至少两个表盘关键点。其中深度学习网络采取高维数据回归的方式,对应的损失函数为:
式中,h(xi)j为第i张输入图像输入深度学习网络得到的输出数据的第j维,
s208,分别计算至少两个表盘关键点与指针点之间的中心角度值。
其中,中心角度值为关键点到表盘中心点的连线与指针点到表盘中心点的连线之间的夹角值,表盘中心点为表盘上指针旋转的中心点。
在一个实施例中,终端在从表盘区域中读取到指针点和至少两个表盘关键点之后,确定指针点和该至少两个表盘关键点分别所对应的坐标,并根据所确定的坐标,确定出关键点到表盘中心点的连线,以及指针点到表盘中心点的连线,根据所确定的各连线计算至少两个表盘关键点与指针点之间的中心角度值。
s210,根据中心角度值和至少两个表盘关键点的刻度值,计算指针点所对应的示数。
其中,刻度值为所获取的各关键点在表盘上所对应的刻度值。
在一个实施例中,终端通过数字识别模型从所获取的表盘区域中提取出各关键点对应的刻度值,并在确定出关键点和指针点的位置关系之后,根据该位置关系,选择对应的计算公式,将计算出的中心角度值和提取的各刻度值代入该公式,计算指针点所对应的示数。
在一个实施例中,终端直接获取表盘区域对应的量程,并在确定出关键点和指针点的位置关系之后,根据该位置关系和所获取的量程计算指针点所对应的示数。
作为一个示例,对上述识别表计读数方法进行说明。如图4所示,终端在获取表盘图像后,采用经典深度学习算法的表盘检测模型,对表盘图像进行检测,检测结果即为矩形框内区域,然后根据检测结果从表盘图像中提取出表盘区域,然后对表盘区域进行特征点定位,特征点包括指针点和关键点,并从表盘区域中读取出各特征点对应的坐标,根据该坐标计算出表盘的中心点坐标,从而根据特征点坐标和中心点坐标,计算出相关的中心角度值,根据计算出的中心角度值和关键点的刻度值,计算出指针点所对应的示数。
上述实施例中,终端通过获取表盘图像;对表盘图像进行表盘检测,根据检测结果从表盘图像中提取出表盘区域;从表盘区域中读取指针点和至少两个表盘关键点;分别计算至少两个表盘关键点与指针点之间的中心角度值;根据中心角度值和至少两个表盘关键点的刻度值,计算指针点所对应的示数,从而实现快速地读取出表计的示数,提高了表计读数的效率。
在一个实施例中,如图5所示,s208具体包括以下步骤:
s502,确定指针点的第一坐标和至少两个表盘关键点的第二坐标。
s504,根据第一坐标和至少两个表盘关键点的第二坐标,计算表盘的中心点坐标。
在一个实施例中,终端在确定出指针点的第一坐标和至少两个表盘关键点的第二坐标之后,确定目标曲线方程,并将第一坐标和至少两个表盘关键点的第二坐标代入该目标曲线方程,求解该目标曲线方程,得到表盘的中心点坐标。其中,目标曲线方程可以是圆的方程。
以目标曲线方程为圆的方程为例,对计算表盘中心点坐标进行说明。例如,终端在确定出指针点的第一坐标和至少两个表盘关键点的第二坐标之后,确定目标曲线方程为圆的方程,如下式所示:
上式中,目标圆的圆心坐标为o(a,b),目标圆的半径为r。
求解过程如下,令:
根据式(1)、(2)、(3)和圆的方程可以得出:
s506,根据中心点坐标、第一坐标和第二坐标,计算出至少两个表盘关键点与指针点之间的中心角度值。
在一个实施例中,终端在计算出中心点坐标、第一坐标和第二坐标之后,计算中心点坐标与第一坐标的第一向量,并分别计算出中心点坐标和第二坐标的第二向量,根据第一向量和第二向量,计算对应的至少两个表盘关键点与指针点之间的中心角度值。例如,假设求得的中心点坐标为o(x0,y0),确定出的第一坐标为p(xp,yp),第二坐标为s(xs,ys),e(xe,ye),则根据中心点坐标与第一坐标计算出第一向量为:
其中,θ0、θ1分别为对应的两个表盘关键点与指针点之间的中心角度值。
在一个实施例中,终端所获取的至少两个表盘关键点包括表盘中刻度的第一边界点和第二边界点,对应的中心角度值包括:第一边界点与指针点的第一中心角度值,以及第二边界点与指针点的第二中心角度值,s210具体包括以下步骤:计算第一刻度值和第二刻度值之间的刻度差值;以及,计算第一中心角度值与中心角度和值的比值;中心角度和值为第一中心角度值与第二中心角度值的和值;根据第一刻度值、刻度差值和比值,计算出指针点所对应的示数。例如,终端计算出第一中心角度值为θ0,第二中心角度值为θ1,θ0和θ1代入下式,从而计算出指针点所对应的示数。
上式中,val为指针点所对应的示数,min为第一刻度值,max为第二刻度值。
上述实施例中,终端通过确定指针点的第一坐标和至少两个表盘关键点的第二坐标,根据第一坐标和至少两个表盘关键点的第二坐标,计算表盘的中心点坐标,根据中心点坐标、第一坐标和第二坐标,从而快速地计算出至少两个表盘关键点与指针点之间的中心角度值,以便根据中心角度值和至少两个表盘关键点的刻度值,计算指针点所对应的示数,从而实现快速地读取出表计的示数,提高了表计读数的效率。
在一个实施例中,还种提供了一种识别表计示数方法。本实施例主要以该方法应用于上述图1中的终端110来举例说明。参照图6,该识别表计示数方法具体包括如下步骤:
s602,获取表盘图像。
s604,对表盘图像进行表盘检测,根据检测结果从表盘图像中提取出表盘区域。
s606,从表盘区域中读取指针点和表盘中刻度的第一边界点和第二边界点。
s608,确定指针点的第一坐标和第一边界点、第二边界点的第二坐标。
s610,确定目标曲线方程。
s612,将第一坐标和第二坐标代入目标曲线方程。
s614,求解目标曲线方程,得到表盘的中心点坐标。
s616,根据中心点坐标、第一坐标和第二坐标,计算出第一边界点与指针点的第一中心角度值,以及第二边界点与指针点的第二中心角度值。
s618,分别读取第一边界点的第一刻度值和第二边界点的第二刻度值;第一刻度值小于第二刻度值。
s620,计算第一刻度值和第二刻度值之间的刻度差值;以及,计算第一中心角度值与中心角度和值的比值;中心角度和值为第一中心角度值与第二中心角度值的和值。
s622,根据第一刻度值、刻度差值和比值,计算出指针点所对应的示数。
图2、5和6为一个实施例中识别表计示数方法的流程示意图。应该理解的是,虽然图2、5和6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、5和6中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图7所示,提供了一种识别表计示数装置,该装置包括:表盘图像获取模块702,表盘区域提取模块704,关键点提取模块706,中心角度值计算模块708和示数计算模块710,其中:
表盘图像获取模块702,用于获取表盘图像;
表盘区域提取模块704,用于对表盘图像进行表盘检测,根据检测结果从表盘图像中提取出表盘区域;
关键点提取模块706,用于从表盘区域中读取指针点和至少两个表盘关键点;
中心角度值计算模块708,用于分别计算至少两个表盘关键点与指针点之间的中心角度值;
示数计算模块710,用于根据中心角度值和至少两个表盘关键点的刻度值,计算指针点所对应的示数。
在一个实施例中,至少两个表盘关键点包括表盘中刻度的第一边界点和第二边界点;中心角度值包括:第一边界点与指针点的第一中心角度值,以及第二边界点与指针点的第二中心角度值;
示数计算模块710,还用于:
分别读取第一边界点的第一刻度值和第二边界点的第二刻度值;第一刻度值小于第二刻度值;
计算第一刻度值和第二刻度值之间的刻度差值;以及,
计算第一中心角度值与中心角度和值的比值;中心角度和值为第一中心角度值与第二中心角度值的和值;
根据第一刻度值、刻度差值和比值,计算出指针点所对应的示数。
上述实施例中,终端通过获取表盘图像;对表盘图像进行表盘检测,根据检测结果从表盘图像中提取出表盘区域;从表盘区域中读取指针点和至少两个表盘关键点;分别计算至少两个表盘关键点与指针点之间的中心角度值;根据中心角度值和至少两个表盘关键点的刻度值,计算指针点所对应的示数,从而实现快速地读取出表计的示数,提高了表计读数的效率。
在一个实施例中,中心角度值计算模块708,还用于:
确定指针点的第一坐标和至少两个表盘关键点的第二坐标;
根据第一坐标和至少两个表盘关键点的第二坐标,计算表盘的中心点坐标;
根据中心点坐标、第一坐标和第二坐标,计算出至少两个表盘关键点与指针点之间的中心角度值。
在一个实施例中,中心角度值计算模块708,还用于:
计算中心点坐标和第一坐标的第一向量;以及,
分别计算中心点坐标和各第二坐标的第二向量;
根据第一向量和第二向量,计算至少两个表盘关键点与指针点之间的中心角度值。
在一个实施例中,中心角度值计算模块708,还用于:
确定目标曲线方程;
将第一坐标和至少两个表盘关键点的第二坐标代入目标曲线方程;
求解目标曲线方程,得到表盘的中心点坐标。
上述实施例中,终端通过确定指针点的第一坐标和至少两个表盘关键点的第二坐标,根据第一坐标和至少两个表盘关键点的第二坐标,计算表盘的中心点坐标,根据中心点坐标、第一坐标和第二坐标,从而快速地计算出至少两个表盘关键点与指针点之间的中心角度值,以便根据中心角度值和至少两个表盘关键点的刻度值,计算指针点所对应的示数,从而实现快速地读取出表计的示数,提高了表计读数的效率。
图8示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的终端110(或服务器120)。如图8所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现识别表计示数方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行识别表计示数方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的识别表计示数装置可以实现为一种计算机程序的形式,计算机程序可在如图8所示的计算机设备上运行。计算机设备的存储器中可存储组成该识别表计示数装置的各个程序模块,比如,图7所示的表盘图像获取模块702,表盘区域提取模块704,关键点提取模块706,中心角度值计算模块708和示数计算模块710。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的识别表计示数方法中的步骤。
例如,图8所示的计算机设备可以通过如图7所示的识别表计示数装置中的表盘图像获取模块702执行s202。计算机设备可通过表盘区域提取模块704执行s204。计算机设备可通过关键点提取模块706执行s206。计算机设备可通过中心角度值计算模块708执行s208。计算机设备可通过示数计算模块710执行s210。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:获取表盘图像;对表盘图像进行表盘检测,根据检测结果从表盘图像中提取出表盘区域;从表盘区域中读取指针点和至少两个表盘关键点;分别计算至少两个表盘关键点与指针点之间的中心角度值;根据中心角度值和至少两个表盘关键点的刻度值,计算指针点所对应的示数。
在一个实施例中,计算机程序被处理器执行分别计算至少两个表盘关键点与指针点之间的中心角度值的步骤时,使得处理器具体执行以下步骤:确定指针点的第一坐标和至少两个表盘关键点的第二坐标;根据第一坐标和至少两个表盘关键点的第二坐标,计算表盘的中心点坐标;根据中心点坐标、第一坐标和第二坐标,计算出至少两个表盘关键点与指针点之间的中心角度值。
在一个实施例中,计算机程序被处理器执行根据中心点坐标、第一坐标和第二坐标,计算出至少两个表盘关键点与指针点之间的中心角度值的步骤时,使得处理器具体执行以下步骤:计算中心点坐标和第一坐标的第一向量;以及,分别计算中心点坐标和各第二坐标的第二向量;根据第一向量和第二向量,计算至少两个表盘关键点与指针点之间的中心角度值。
在一个实施例中,计算机程序被处理器执行根据第一坐标和至少两个表盘关键点的第二坐标,计算表盘的中心点坐标的步骤时,使得处理器具体执行以下步骤:确定目标曲线方程;将第一坐标和至少两个表盘关键点的第二坐标代入目标曲线方程;求解目标曲线方程,得到表盘的中心点坐标。
在一个实施例中,至少两个表盘关键点包括表盘中刻度的第一边界点和第二边界点;中心角度值包括:第一边界点与指针点的第一中心角度值,以及第二边界点与指针点的第二中心角度值;计算机程序被处理器执行根据中心角度值和至少两个表盘关键点的刻度值,计算指针点所对应的示数的步骤时,使得处理器具体执行以下步骤:分别读取第一边界点的第一刻度值和第二边界点的第二刻度值;第一刻度值小于第二刻度值;计算第一刻度值和第二刻度值之间的刻度差值;以及,计算第一中心角度值与中心角度和值的比值;中心角度和值为第一中心角度值与第二中心角度值的和值;根据第一刻度值、刻度差值和比值,计算出指针点所对应的示数。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:获取表盘图像;对表盘图像进行表盘检测,根据检测结果从表盘图像中提取出表盘区域;从表盘区域中读取指针点和至少两个表盘关键点;分别计算至少两个表盘关键点与指针点之间的中心角度值;根据中心角度值和至少两个表盘关键点的刻度值,计算指针点所对应的示数。
在一个实施例中,计算机程序被处理器执行分别计算至少两个表盘关键点与指针点之间的中心角度值的步骤时,使得处理器具体执行以下步骤:确定指针点的第一坐标和至少两个表盘关键点的第二坐标;根据第一坐标和至少两个表盘关键点的第二坐标,计算表盘的中心点坐标;根据中心点坐标、第一坐标和第二坐标,计算出至少两个表盘关键点与指针点之间的中心角度值。
在一个实施例中,计算机程序被处理器执行根据中心点坐标、第一坐标和第二坐标,计算出至少两个表盘关键点与指针点之间的中心角度值的步骤时,使得处理器具体执行以下步骤:计算中心点坐标和第一坐标的第一向量;以及,分别计算中心点坐标和各第二坐标的第二向量;根据第一向量和第二向量,计算至少两个表盘关键点与指针点之间的中心角度值。
在一个实施例中,计算机程序被处理器执行根据第一坐标和至少两个表盘关键点的第二坐标,计算表盘的中心点坐标的步骤时,使得处理器具体执行以下步骤:确定目标曲线方程;将第一坐标和至少两个表盘关键点的第二坐标代入目标曲线方程;求解目标曲线方程,得到表盘的中心点坐标。
在一个实施例中,至少两个表盘关键点包括表盘中刻度的第一边界点和第二边界点;中心角度值包括:第一边界点与指针点的第一中心角度值,以及第二边界点与指针点的第二中心角度值;计算机程序被处理器执行根据中心角度值和至少两个表盘关键点的刻度值,计算指针点所对应的示数的步骤时,使得处理器具体执行以下步骤:分别读取第一边界点的第一刻度值和第二边界点的第二刻度值;第一刻度值小于第二刻度值;计算第一刻度值和第二刻度值之间的刻度差值;以及,计算第一中心角度值与中心角度和值的比值;中心角度和值为第一中心角度值与第二中心角度值的和值;根据第一刻度值、刻度差值和比值,计算出指针点所对应的示数。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
1.一种识别表计示数方法,包括:
获取表盘图像;
对所述表盘图像进行表盘检测,根据检测结果从所述表盘图像中提取出表盘区域;
从所述表盘区域中读取指针点和至少两个表盘关键点;
分别计算所述至少两个表盘关键点与所述指针点之间的中心角度值;
根据所述中心角度值和所述至少两个表盘关键点的刻度值,计算所述指针点所对应的示数。
2.根据权利要求1所述的方法,其特征在于,所述分别计算所述至少两个表盘关键点与所述指针点之间的中心角度值包括:
确定所述指针点的第一坐标和所述至少两个表盘关键点的第二坐标;
根据所述第一坐标和所述至少两个表盘关键点的第二坐标,计算所述表盘的中心点坐标;
根据所述中心点坐标、所述第一坐标和所述第二坐标,计算出所述至少两个表盘关键点与所述指针点之间的中心角度值。
3.根据权利要求2所述的方法,其特征在于,所述根据所述中心点坐标、所述第一坐标和所述第二坐标,计算出所述至少两个表盘关键点与所述指针点之间的中心角度值,包括:
计算所述中心点坐标和所述第一坐标的第一向量;以及,
分别计算所述中心点坐标和各所述第二坐标的第二向量;
根据所述第一向量和所述第二向量,计算所述至少两个表盘关键点与所述指针点之间的中心角度值。
4.根据权利要求2所述的方法,其特征在于,所述根据所述第一坐标和所述至少两个表盘关键点的第二坐标,计算所述表盘的中心点坐标,包括:
确定目标曲线方程;
将所述第一坐标和所述至少两个表盘关键点的第二坐标代入所述目标曲线方程;
求解所述目标曲线方程,得到所述表盘的中心点坐标。
5.根据权利要求1至4所述的方法,其特征在于,所述至少两个表盘关键点包括所述表盘中刻度的第一边界点和第二边界点;所述中心角度值包括:所述第一边界点与所述指针点的第一中心角度值,以及所述第二边界点与所述指针点的第二中心角度值;
所述根据所述中心角度值和所述至少两个表盘关键点的刻度值,计算所述指针点所对应的示数,包括:
分别读取所述第一边界点的第一刻度值和所述第二边界点的第二刻度值;所述第一刻度值小于所述第二刻度值;
计算所述第一刻度值和所述第二刻度值之间的刻度差值;以及,
计算所述第一中心角度值与中心角度和值的比值;所述中心角度和值为所述第一中心角度值与所述第二中心角度值的和值;
根据所述第一刻度值、所述刻度差值和所述比值,计算出所述指针点所对应的示数。
6.一种识别表计示数装置,其特征在于,所述装置包括:
表盘图像获取模块,用于获取表盘图像;
表盘区域提取模块,用于对所述表盘图像进行表盘检测,根据检测结果从所述表盘图像中提取出表盘区域;
关键点提取模块,用于从所述表盘区域中读取指针点和至少两个表盘关键点;
中心角度值计算模块,用于分别计算所述至少两个表盘关键点与所述指针点之间的中心角度值;
示数计算模块,用于根据所述中心角度值和所述至少两个表盘关键点的刻度值,计算所述指针点所对应的示数。
7.根据权利要求6所述的装置,其特征在于,所述中心角度值计算模块,还用于:
确定所述指针点的第一坐标和所述至少两个表盘关键点的第二坐标;
根据所述第一坐标和所述至少两个表盘关键点的第二坐标,计算所述表盘的中心点坐标;
根据所述中心点坐标、所述第一坐标和所述第二坐标,计算出所述至少两个表盘关键点与所述指针点之间的中心角度值。
8.根据权利要求7所述的装置,其特征在于,所述中心角度值计算模块,还用于:
计算所述中心点坐标和所述第一坐标的第一向量;以及,
分别计算所述中心点坐标和各所述第二坐标的第二向量;
根据所述第一向量和所述第二向量,计算所述至少两个表盘关键点与所述指针点之间的中心角度值。
9.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至5中任一项所述方法的步骤。
10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至5中任一项所述方法的步骤。
技术总结