基于文本特征及二次矫正的指针式仪表自动读数算法*

陈锟剑,李 竹,周依莎,盛庆华

(杭州电子科技大学电子信息学院,浙江 杭州 310018)

指针式仪表由于其结构简单、使用方便等优点,被广泛应用于石油化工、电力等行业。这种输出并非数字信号的指针式仪表,无法直接通过接口进行数字化的采集与存储,通常采用的是人工读数的方法,但人工检测成本高,也容易受人主观意识的影响,检测效率低下,难以满足工业上实时化、智能化的监控需求。实现指针式仪表的自动读数具有巨大的实用价值,可以为工厂节约大量的人力成本和时间成本。

近年,对指针式仪表的自动读数大多通过机器视觉技术实现[1 - 3],其流程主要包括以下几个部分:采集仪表图像、图像预处理、表盘图像分割和表盘读数,核心步骤为表盘图像分割和表盘读数识别。表盘图像分割是对采集到的仪表图像中的指针和刻度进行分离,常用的方法有霍夫变换、图像二值化等。表盘读数则是在得到指针和刻度图像的基础上,根据它们的空间关系,计算得到仪表的读数,从原理上主要分为角度判读法和距离判读法。角度判读法通过计算指针旋转的角度与整个量程的角度的比值来得到读数,距离判读法通过指针到两边刻度线的距离来读数。

目前在国内外的研究中,均有大量有效的仪表识别方法被提出。部分方法[1 - 7]主要利用光学字符识别等技术对表中数字进行识别,无法实现指针式仪表的检测与识别。也有大量研究人员对指针式仪表识别展开研究,其中,使用角度法的研究中,孙凤杰等[8]通过图像处理技术得到细化后的指针,再用同心圆环搜索法得到指针的旋转角度,从而求得示数;
罗大成等[9]先判断指针所在直线、最小刻度线和最大刻度线3线之间的角度,选角度较小的两条线相交得到旋转中心,再以中心为投影的圆心,得到仪表上各个角度投影的灰度累加值,从而得到精确的指针,再利用角度法得出示数;
郉浩强等[10]通过霍夫变换得到表盘和指针,之后通过角度按比例读数;
李巍等[11]通过改进的霍夫变换,结合仪表图像的灰度信息检测指针的位置,再通过角度法读数;
Bao等[12]在矫正完图像后,使用图像处理技术得到刻度线中点位置坐标,并通过圆拟合得到旋转中心坐标,之后再利用霍夫变换得到指针线端点,计算出旋转角度,最后得到示数;Chi等[13]在仪表的圆形区域内,使用中心投影法得到尺度标记分布图,再使用霍夫变换来检测指针在表盘的区域和角度,利用角度法读数。在距离法[14]的研究中,Wang等[14]在得到指针和其相邻的2个刻度线后,通过它们的夹角比值来读数,这是对角度法的改进。曹宇杰等[15]使用霍夫空间投票来得到最长的直线即指针,通过指针顶端与左右刻度线的距离读出示数的小数部分,再对刻度线进行排序计数得到示数的整数部分。罗钧等[16]采用霍夫变换获取指针及其附近的刻度直线,然后通过计算两者间的距离进行读数。

用现有算法进行仪表识别,准确率大多能达到98%左右,但是这些算法对拍摄角度有较高的要求,因此在使用前需要对图像采集设备进行标定,或确保采集图像时从仪表表盘正面进行拍摄,而这些要求在复杂的工业现场往往难以确保,故其实用性较低。当前的研究中,实用性较高的算法为基于极坐标的自动读数法。这种算法解决了前述问题。其主要步骤如图1a~图1c所示,核心思想为将仪表图像进行极坐标变换,使得原本呈圆弧状分布的刻度变为线性分布,然后通过距离法读数。

孙琳等[17]首先采用该算法处理图像,然后通过直线扫描法得到刻度线信息。Li等[18]对刻度进行直线拟合,并将直线相交的交点坐标作为仪表的中心,然后进行极坐标转换,再根据指针和相邻刻度线之间的位置关系读数。魏琦等[19]直接利用霍夫圆变换得到指针旋转的中心,然后通过灰度值累加得到灰度值最小的行,由此得到最小刻度间距,实现刻度线的定位。Wang等[20]利用中心线重构指针图像,并将指针与重构指针直线的交点作为极坐标变换的中心,该算法同时提取仪表的刻度线,最后通过距离法读数。盛庆华等[21]提出了双重霍夫空间投票算法,通过对仪表刻度的2次霍夫变换,较大幅度地提高了极坐标变换的圆心的提取精度,是当前识别鲁棒性最高的算法之一。

由于极坐标转换算法是以仪表中心为原点进行转换的,所以其读数精度极大程度上依赖于提取中心的准确度。如图1d所示,中心坐标偏差较大会影响极坐标变换的结果,继而后续读数结果将产生误差。在仪表图像中,刻度线只包含极少量的像素信息,可以提取的图像特征较少,而前述几种算法均以刻度线为依据提取圆心,因此较易受到环境(如强光、阴影)的影响。较新的双重霍夫变换方法[21]通过2次投票虽然较大程度地改善了识别效果,但是并没有从根本上解决刻度线特征较少的问题。

Figure 1 Comparison of image polar coordinate transformation results图1 图像极坐标变换对比图

本文针对目前算法存在的问题,提出一种新的指针式仪表读数算法。其核心思想之一是以指针式仪表图像中的大区域特征代替刻度线特征,进而对极坐标变换的圆心进行提取。而在仪表图像中,刻度值文本图像非常适合用来为圆心提取提供特征,其原因主要如下:

(1) 不同型号的仪表,其刻度线的分布、长度等信息通常不同,前述几种算法通常需要调节不同的参数以适应不同型号的仪表。而刻度值文本是任意型号的仪表中必然包含的部分,且字体外观的差异几乎可以忽略。

(2) 刻度值文本图像由于具有较多的特征,可以通过卷积神经网络CNN(Convolutional Neural Network)获得非常稳定的定位及识别结果,其鲁棒性远高于刻度线的检测。

本文提出的指针式仪表自动读数算法的主要优势如下:

(1)本文使用刻度值文本坐标代替刻度坐标进行圆拟合并检测中心,刻度值文本图像比刻度图像具有更丰富的特征,因此用它来做圆心拟合得到的中心可适应更复杂的环境。

(2)本文通过深度卷积神经网络定位并识别刻度值文本的实际数值,网络输出结果不仅为极坐标转换提供圆心坐标,其得到的数值识别结果同时可以用来改进双重霍夫变换方法[21]中的距离读数算法,减小读数误差。

(3)本文使用最小二乘法[22]对刻度值文本坐标进行圆拟合。在得到精确的拟合点坐标的条件下,最小二乘法相比霍夫变换法具有更高的拟合精度和更少的计算量[23]。

(4)本文对极坐标变换后的图像进行二次矫正,使刻度线保持水平,极大地减小了后续的读数误差。

根据指针表的特性,仪表的刻度值分布在一个圆弧上,该圆弧的圆心即为仪表指针的旋转中心,如图2所示。因此,以刻度值文本坐标为数据点拟合圆就可以确定极坐标变换的中心。本文提出的指针式仪表自动读数算法实现过程如图3所示。

Figure 2 Fitting arc with the coordinates of the dashboard scale value图2 用仪表盘刻度值的坐标拟合圆弧

Figure 3 Process of the automatic readingalgorithm of pointer meter图3 指针式仪表自动读数算法过程图

本文首先使用深度卷积神经网络对刻度值文本进行定位与示数的识别。其中,文本边界框的中心坐标用于求解圆心坐标,数值信息用于距离法读数。然后通过最小二乘法拟合经过刻度值文本坐标点的圆,得到圆心坐标。求得圆心坐标之后,将图像以仪表圆心为中心进行极坐标变换。之后对变换后的图像进行处理,其中包括图像二值化和图像连通域分析,从而分离得到仪表的刻度和指针图像。最后,对图像进行二次矫正并使用改进的距离法进行读数。

由于本文的重点并非改进文本检测的结果,而是将刻度值文本图像作为自动读数算法所依据的特征,因此直接选择了较为成熟的神经网络,并针对本文所检测的目标进行训练。

随着深度学习的发展与进步,基于深度学习的文本检测成为现阶段主流的文本检测算法。本文所采用的神经网络模型如图4所示,图中Conv表示卷积层,W和H分别表示输入图像的宽和高。该网络主要由特征提取层、特征融合层和预测层组成。特征提取层使用基础网络ResNet-50,特征融合层对特征提取层提取的特征依次进行上采样并融合提取的特征。预测层输出得分图(score map)和文本框图(text box map),score map对点是否属于文本区域进行预测,text box map有5个通道,分别对应文本框内的点与文本框上、下、左、右的距离以及文本框的旋转角度,4个距离分别用dt,db,dl和dr表示。从而得到包含角度信息的文本位置信息。最后将得到的文本框进行非极大值抑制处理,得到最终的文本区域。该网络可以有效地检测出不同角度仪表图像中的刻度值文本,使本文所提算法有更广泛的应用范围。

Figure 4 Neural network model for text detection图4 文本检测神经网络模型

本文使用梯度下降法对网络进行训练,通过最小化损失值来得到网络的最优解。为了平衡正负样本数量的差异,本文采用焦点损失(Focal Loss)作为分类损失函数,其表达式如式(1)所示:

(1)

回归损失表达式如式(2)所示:

Lg=1-cos(θ-θ*)-logIOU(R,R*)

(2)

其中,θ表示网络预测的文本框旋转度数,θ*表示真实的旋转角度,IOU(R,R*)表示预测文本框R与真实文本框R*的重叠程度。

检测出文本框后,可进一步进行文本识别。本文所提算法首先将文本检测网络检测到的具有角度信息的文本图像通过双线性插值法转化为水平的文本图像,之后再输入识别网络。识别网络先利用卷积神经网络CNN提取图像特征并采用按列切分的方式(利用Map-to-Sequence网络层)将最后得到的特征图向量化;然后将特征向量输入双向长短期记忆网络Bi-LSTM(Bidirectional Long Short-Term Memory),从而得到图像每一列的字符概率分布;最后利用基于神经网络的时间序分类方法[24]求解最优文本序列。另外,在训练过程中加入了Dropout[25]防止过拟合现象的产生,使训练后的网络生成更准确的结果。

在得到刻度值文本坐标后,本文利用最小二乘法来拟合圆,以得到圆心坐标。最小二乘法是一种数学优化方法,在确定函数形式的前提下,将已知的数据点代入以上函数,通过求误差平方和的极小值来求解最佳匹配的函数,它常用于一些曲线拟合问题。本文采用这种方法来拟合圆形曲线,从而得到圆心。圆的方程如式(3)所示:

R2=(x-x′)2+(y-y′)2

(3)

如图5所示,(xk,yk)为文本检测得到的刻度值文本坐标,k=0,1,2,…,i,拟合得到的圆心坐标(x′,y′) 和半径R可由式(4)和式(5)得到:

(4)

(5)

其中,dk表示数据点(xk,yk)距圆心的距离。

Figure 5 Fitting circle with least squares图5 最小二乘法拟合圆

6.1 仪表图像极坐标转换

将仪表图像转换至极坐标中主要是因为代表图像存在以下几个问题:

(1)大部分的指针式仪表的刻度区域分布在一个圆弧上。

(2)越精密的仪表,其刻度分布越密集,在圆弧中对单个刻度线进行分离就越难,通过角度法对仪表示数判读的难度也会大大增加。

(3)有小部分指针表中刻度分布不均匀,角度法无法进行判读。

将仪表图像转换到极坐标中,指针表的刻度区域则呈直线分布,可以有效地解决以上3个问题。极坐标转换公式如式(6)和式(7)所示。

(6)

(7)

其中,ρ和θ分别是极坐标系中的极径和极角,x和y是笛卡尔直角坐标系中的横、纵坐标,(Cx,Cy)为极坐标变换的中心。

6.2 基于二次矫正的仪表示数计算

双重霍夫变换方法[21]通过零刻度线到满量程刻度线之间的距离法进行读数识别。由于零刻度线及满量程刻度线图像均具有较少的图像特征,因此较容易受到环境影响而导致提取失败,读数结果将产生较大误差。本文提出的算法对刻度值文本图像进行二次矫正并改进了距离读数法。

在经过极坐标变换后得到的图像中可能仍存在刻度区域不呈水平分布的情况,会影响后续的读数,如图6a所示。本文采用仿射变换对刻度值文本图像进行二次矫正。首先,进行刻度线和指针的定位。由于仪表刻度间的距离近似相等,因此距离的方差较小,所以本文首先通过垂直方向上的投影法得到每一行像素对应的方差投影值。当该行的投影值在设定的方差范围内时,即为刻度区域。然后,在该区域图像中进行水平方向上的投影,得到图像每一列的像素值总和,设定阈值得到各刻度线的水平位置。本文通过水平投影确定指针的水平位置,而不是通过拟合指针直线。具体步骤如下:首先,进行图像的二值化处理,找到图像所有的前景像素;然后,通过种子填充法进行连通域标记,根据指针图像的特征对连通域进行筛选;最后,得到指针图像,对该指针图像进行水平投影,得到每一列像素值的总和,取像素值和最小的一列作为指针的水平位置。在得到各刻度线和仪表指针的水平位置后,对刻度值文本图像进行二次矫正。

如图6a所示,二次矫正首先寻找仿射变换的锚点,本文选择文本检测结果中离指针最近的2个文本对应的刻度线的端点,即pt1~pt4。二次矫正的目标是使刻度线呈水平分布,极坐标变换已经使每条刻度线保持竖直,故只需使pt1与pt3的高度相同,由此构建仿射变换矩阵,从而得到二次矫正后的图像,如图6b所示。

Figure 6 Image secondary correction图6 图像二次矫正

二次矫正后重新获取刻度线与指针的水平位置,并采用距离法进行仪表的判读。如图7所示,当指针所在数值区域为[A,B]时,指针式仪表的读数可由式(8)和式(9)得到:

(8)

(9)

Figure 7 Image after separating the pointer and scale area图7 分离出指针和刻度区域的图像

其中,A、B对应的刻度线为其边界框中心坐标竖直方向对应的刻度;n为A对应的刻度线和指针左侧距指针最近的刻度线L之间的刻度线数量;
N为A、B刻度值对应的刻度线之间的刻度线数量;
dl为指针与左侧最近刻度线L之间的距离;
dr为指针离右侧最近刻度线的距离;w为仪表的单位刻度值。

7.1 实验环境

为验证本文所提算法的有效性,本节在指针式仪表图像上进行实验,实验环境如表1所示。

Figure 8 Comparison of instrument image text detection results between the proposed algorithm and traditional algorithm under different viewing angles图8 不同视角下本文所提算法与传统算法的仪表图像文本检测结果对比

Table 1 Experimental environment

本文采用文献[21]的数据集,并在原有数据集的基础上增加了强光照射、阴影遮挡和不同拍摄视角情况下的测试样本。数据集图像中的仪表信息如表2所示,数据集共包含大小为2000*2000的仪表图像300幅。

Table 2 Basic information of tested pointer meters

7.2 仪表刻度值检测与识别

本节首先使用公共数据集SynthText[26]对文本检测神经网络进行预训练,然后利用标注好的仪表数据集对模型进行微调,训练方法为小批量的梯度下降法,批数据大小为32,迭代90个周期。训练初始学习率为0.001,以0.95为衰减率进行指数衰减。训练中使用了数据增强的技巧,包括对图像进行裁剪、旋转、改变色调和高斯噪声。

使用仪表图像对训练完成的文本检测神经网络进行测试,并与传统算法,即滑动窗口和HOG/SVM检测法[27]进行比较,结果如图8所示。其中,图8a为使用神经网络的检测结果,图8b为传统算法检测的结果,图8a1和图8b1是正视情况下的仪表图像,图8a2和图8b2是逆时针旋转的仪表图像,图8a3和图8b3是顺时针旋转的仪表图像。从图8中可以看到,传统检测算法在仪表正视的情况下有较好的检测效果,但对在不同视角下的仪表图像均出现了漏检和错检的情况。传统检测算法对拍摄环境极具依赖性,对拍摄角度的鲁棒性较弱。本文采用神经网络来检测刻度值文本,因神经网络对旋转的鲁棒性强,所以当拍摄角度发生变化时,读数不会受到影响。表3展示了部分刻度值数字文本识别的结果,第1列展示了文本检测神经网络检测的结果,第2列展示了双线性插值转化后的水平文本图像,第3列为文本识别的结果。

Table 3 Text recognition results

7.3 仪表刻度值检测与识别

利用本文算法进行圆心拟合的结果如图9所示,在正常光线、强光、阴影遮挡及不同拍摄视角情况下,本文算法对圆心的拟合均有较好的效果。图10展示了利用双重霍夫空间投票法对圆心的拟合效果,可以看到该算法在正常光线下能够准确拟合得到圆心位置,但由图10d和图10e可以看出,该算法在强光、阴影环境下无法准确地拟合圆心,这是由于在强光与阴影环境下,仪表图像中的刻度线特征不明显,从而无法得到足够的拟合点来拟合圆心;
由图10f可以看出,当拍摄角度倾斜时该算法也无法准确拟合圆心,这是由于该算法通过角度特征筛选连通域来得到正确的刻度线,所以当拍摄视角不同,仪表旋转超过一定角度时,从图像中筛选得到的刻度线不足,无法正确拟合圆心。本文采用文本代替刻度线来拟合圆心,由于文本的特征量远多于刻度的特征量,所以在强光环境、阴影环境中都能够准确得到圆心。另外,本文采用神经网络来检测刻度值文本,而神经网络对旋转具有鲁棒性,所以当拍摄角度倾斜时,读数不会受到影响。

Figure 9 Results of detecting the center of the circle using the proposed algorithm图9 本文算法检测圆心的结果

Figure 10 Results of detecting the center of the circle using the algorithm in Reference [21]图10 文献[21]算法检测圆心的结果

7.4 极坐标转换及二次矫正后刻度、指针分离结果

图11为仪表极坐标转换结果与二次矫正后结果,二次矫正保证了后续读数的准确性。仪表刻度、指针分离结果如图12所示。图12a分别是正泰42L6-V交流电压表、川崎6L2-A交流电流表和川崎44C2-V直流电压表的极坐标变换及二次矫正后的结果。图12b是3种指针式仪表的指针提取结果。图12c分别是3种指针式仪表的刻度区域提取结果,为使显示更加清晰,对提取到的刻度图像区域进行了放大处理,以图12c1为例,方框B′为方框A′的放大图像。根据指针和刻度图像在图像中的水平位置,可以准确地读取指针表的读数。

Figure 11 Diagram of secondary correction图11 二次矫正示意图

Figure 12 Process of meter reading图12 仪表读数过程

7.5 读数示数

本节将自动读数的结果与人工读数的结果进行比较,以检验自动读数的准确度。因为本文提出的算法是为了利用计算机视觉代替人工读数,因此忽略了人工读数自身的误差,以人工读数的结果为实际值,自动读数算法的结果为实验值,计算相应的引用误差,引用误差可根据式(10)得到。实验结果如表4所示。

(10)

其中,xr为算法判读值,x0为人工读数,xm为仪表满刻度值。由表4可见,本文所提算法对第1种和第3种指针式仪表的读数精确度较高,引用误差均在0.2%以下;
对第2种指针式仪表的引用误差较其他2种的高,主要是由于该指针式仪表的刻度分布比较稀疏,利用距离法进行判读会引入一定的误差。

7.6 与其他算法的读数结果比较

基于双重霍夫空间投票[21]的仪表读数算法在目前仪表读数算法中性能最好,但是该算法依赖图像的预处理过程,对不同环境尤其是曝光条件的适应能力有限。在复杂环境下,读数误差较大。

表5展示了双重霍夫空间投票算法和本文算法对正常光照、强曝光环境和阴影环境下的仪表图像的读数平均引用误差。可以看到,双重霍夫空间投票算法对于正常光照下的仪表图像,读数精确度较高,但是该算法在强光和阴影数据集上的读数误差较大;而本文算法对3种光照条件下的图像都保持了较小的平均引用误差。

在强曝光、阴影这类复杂的环境中,基于双重霍夫空间投票的读数算法会出现较大误差,一是由于它在这种情况下无法正确拟合圆心,二是由于其读数算法采用的是零刻度线到满量程刻度线之间的距离法,强曝光环境中,刻度区域图像如图13所示,指针与零刻度线之间的刻度线产生缺失,从而影响读数结果。而本文在能正确拟合圆心的基础上,又对刻度值文本进行了识别,在刻度值文本坐标之间运用距离法,很大程度上减小了误差。

Table 4 Experimental results of the proposed algorithm

Table 5 Comparison of reading results of two algorithms

Figure 13 Scale area image under strong exposure图13 强曝光下的刻度区域图像

7.7 算法耗时

表6为本文算法在本文实验环境 NVIDIA RTX 1080Ti上的运行时间及部署在NVIDIA Jetson TX2上的运行时间对比。可以看出,部署后的耗时相对于本文实验环境更长,但由于指针式仪表的自动读数对实时性的要求不是太高,每幅图像平均1.833 s的速度可以满足实际应用需求。在未来的工作中,首先将采集的仪表图像传输至云端,然后再对图像进行自动读数,从而实现仪表读数的加速。

Table 6 Time consumed by the algorithm on different platforms

本文依据指针式仪表刻度值文本和刻度区域的空间分布规律,提出了一种基于文本特征及二次矫正的指针式仪表自动读数算法,将刻度值读数作为特征图像引入算法并对极坐标转换后的图像进行二次矫正。与最新的算法比较证明了本文所提算法的有效性。在未来的工作中,对算法的改进将会集中在文字检测与识别的运算效率上。

猜你喜欢 极坐标读数指针 “0”的读法和要领小学生学习指导·低年级(2021年6期)2021-09-10垂悬指针检测与防御方法*软件学报(2020年6期)2020-09-23关于游标卡尺读数问题易错点的剖析中学生数理化(高中版.高考理化)(2020年2期)2020-04-21二重积分的极坐标计算法探讨试题与研究·教学论坛(2017年32期)2018-01-25为什么表的指针都按照顺时针方向转动广东第二课堂·小学(2017年9期)2017-09-28《极坐标与参数方程》过关测试卷中学生数理化·高二版(2016年5期)2016-05-14仪器工作原理决定了仪器的读数规则物理教学探讨(2014年2期)2014-05-22浅析C语言指针软件工程(2014年3期)2014-03-15游标卡尺读数四步骤中学生数理化·高二版(2008年8期)2008-06-15

推荐访问:读数 矫正 算法