计算机系统应用  2021, Vol. 30 Issue (9): 85-91   PDF    
基于卷积神经网络的指针式仪表识别
李金红1, 熊继平2, 陈泽辉2, 朱凌云2     
1. 浙江师范大学 数学与计算科学学院, 金华 321004;
2. 浙江师范大学 物理与电子信息工程学院, 金华 321004
摘要:目前大部分研究指针式仪表识别的方法中提取指针是完全基于传统的图像处理技术, 提取过程较为复杂且步骤繁多. 为了有效解决指针式仪表读数识别中指针中轴线所在直线提取困难及识别精度不高等问题, 本文提出了一种基于深度学习的指针式仪表的识别方法. 首先用Faster R-CNN算法检测仪表圆盘, 再采用基于深度学习的方法Faster R-CNN算法检测指针, 根据得到的指针目标框的位置信息裁剪得到指针图像, 在指针图像的基础上进行二值化、细化、霍夫变换检测直线、最小二乘法拟合直线等步骤识别仪表最终读数. 和直接在仪表表盘目标框图像或原始图像上进行传统图像处理相比很大程度上减少了定位指针中轴线所在直线过程中的干扰. 实验结果表明本文所提出的基于深度学习的指针检测的平均准确率高达96.55%. 对于复杂背景下指针式仪表的指针区域的检测具有良好的准确性与稳定性.
关键词: 深度学习    Faster R-CNN算法    指针检测    指针式仪表    读数识别    
Recognition of Pointer Instrument Based on Convolution Neural Network
LI Jin-Hong1, XIONG Ji-Ping2, CHEN Ze-Hui2, ZHU Ling-Yun2     
1. College of Mathematics and Computer Science, Zhejiang Normal University, Jinhua 321004, China;
2. College of Physics and Electronic Information Engineering, Zhejiang Normal University, Jinhua 321004, China
Abstract: At present, most of the pointer recognition methods are based on the traditional image processing technology, and the extraction process is complicated with many steps. To effectively solve the problems of difficult pointer axis extraction and poor reading recognition accuracy of a pointer instrument, this study introduces a method of pointer instrument recognition based on deep learning. First, the Faster R-CNN algorithm is used to detect the instrument disk, and then the method based on deep learning is adopted to detect the pointer. According to the position information of the target frame, the pointer image is obtained by clipping. The final reading of the instrument is identified by binarization, thinning, Hough transform, and the least square fitting line. Compared with the traditional image processing directly on the image of the panel target frame or the original image, this method greatly reduces the interference in the process of locating the line where the pointer axis is located. The experimental results show that the average accuracy of pointer detection based on deep learning proposed in this study is up to 96.55%. It has high accuracy and stability for pointer detection of the pointer instrument under a complex background.
Key words: deep learning     Faster R-CNN algorithm     pointer detection     pointer instrument     number identification    

指针式仪表识别技术不仅仅是模式识别技术领域的前沿研究发展方向, 还具有宽阔的应用前景[1]. 目前在很多公司中, 存在大量的指针式仪表, 尤其是用在变电站这种场景中, 仪表几乎全部为模拟式显示而非数字式显示的仪表, 这种指针式仪表如果靠人工去读数, 不仅在人工上消耗很大, 而且人工读数还会存在一定的误差, 导致精度不高[2,3]. 因此研究一种快速、准确、鲁棒性强的指针式仪表识别的方法具有十分重要意义[4,5].

针对指针式仪表识别的问题, 研究人员从不同的研究方向提出了各种解决方法. 徐发兵等人[6]提出先检测图像中的文本, 再从这些文本中筛选出刻度线处的数字, 其中文本检测和筛选数字使用的方法分别是改进过的EAST算法和印刷体数字识别模型. 根据那些数字的位置计算确定指针直线和仪表圆盘的圆心, 该方法中图像质量对于最终提取的效果影响较大, 并且整个研究过程步骤较多; 刘葵等人[7]先应用连通域分析、图像阈值分割实现指针分割, 再用最小二乘法实现了细化直接提取中轴线; 徐丽等人[8]提出了一种基于迭代最大类间方差的算法, 该方法在对光照条件、拍摄角度的不同以及表盘中一些干扰等影响的抗干扰性较好, 具有良好的鲁棒性能; 邢浩强等人[9]提出通过透视变换消除仪表图像畸变, 双边滤波、MSRCR算法增强图像, 再通过Hough检测仪表的表盘与指针, 最终得到仪表的读数. 此研究方法对硬件计算资源要求较高, 还存在一定的漏检的情况.

然而, 直接基于Hough变换等传统图像处理技术获取指针位置, 对图像噪声非常敏感, 常会出现提取指针所在区域、识别精度较差等问题. 针对这个问题, 本文提出了一种基于深度学习的指针式仪表识别的方法, 该方法先通过Faster R-CNN算法先检测指针目标框, 裁剪出指针目标框区域, 再在该区域图像上对指针进行细化、Hough变换检测直线, 提取指针, 此方法减少了仪表圆盘背景及刻度线对指针提取的影响, 提高了指针提取的准确度和鲁棒性, 还适用于不同背景下的仪表指针检测.

1 仪表的识别系统

针对指针式仪表, 本文所提出研究方法包括仪表目标检测、仪表指针目标检测以及仪表读数识别3个主要部分. 识别系统的具体流程如图1所示.

1.1 仪表圆盘自动检测

目前, 深度学习在计算机视觉领域发展了许多, 其在图像分类、目标检测和语义分割等方面都取得了一定的成果[10-16]. 卷积神经网络(CNN)采用卷积(convolution)、权值共享(shared weights)等, 是一种模拟人类视觉神经细胞处理图像的方法[17]. 适用于处理图像分类、分割和目标识别等问题. 采用Faster R-CNN模型检测仪表类目标[18].

图 1 仪表识别系统的流程图

1.2 指针自动检测

目前对于指针式仪表自动识别研究大多基于传统的图像处理技术, 先用深度学习方法得到仪表圆盘目标之后, 直接在截得的仪表圆盘区域图像基础上或者直接在最原始的图像上用传统图像处理方法定位仪表指针中轴线所在直线. 此方法对图像的质量的要求高, 前期对图像处理步骤多. 本文提出了先用深度学习方法检测出指针, 再根据检测的位置信息裁剪得到的指针区域图像上用传统图像处理方法定位指针中轴线所在直线. 此方法与上述方法相比大大减少了原始图像上其它区域对指针中轴线所在直线定位过程的干扰, 而定位指针中轴线所在直线是仪表读数识别中非常关键的一步, 很大程度上决定了最后结果的精度. 采用Faster R-CNN模型用于仪表类目标的检测, Faster R-CNN模型分为4个主要内容:

(1) 卷积层: Faster R-CNN首先使用一组基础的卷积加ReLU激活函数再加上池化组成层提取图片的特征图, 将特征图输入RPN层和全连接层.

(2) RPN网络: RPN网络就是专门用来提取候选区域.

(3) 感兴趣区域池化: 该层得到特征图和候选区域, 结合这些信息提取候选区域的特征图, 输入全连接层判断得到目标类别.

(4) 分类器: 根据候选区域的特征图得到候选框的类别, 再次采用边框回归得到更精确的检测框. 具体如图2所示.

Faster R-CNN和 Fast R-CNN之间最大的不同, 它提出了一个RPN的网络, 该网络起到了推荐候选区域的作用. RPN网络能够进行端对端的训练, 最后目的是选出候选框区域. 整个模型详细的框架结构设置如表1[19]. 本文中的模型是在ImageNet数据集上的预训练好的模型上进行微调的模型, 采用的主要超参数如学习率为0.001, “gamma”学习率衰减设置为0.1, “weight_decay”即权值衰减用于防止过拟合的参数设置为0.0005, “momentum”设置为0.9. 其中Faster R-CNN模型使用的损失函数为式(1).

$L({p_i},{t_i}) = \frac{1}{{{N_{\rm cls}}}}\sum\limits_i {{L_{\rm cls}}} ({p_i},p_i^*) + \lambda \frac{1}{{{N_{\rm reg}}}}\sum\limits_i {p_i^*} {L_{\rm reg}}({t_i},t_i^*)$ (1)
图 2 Faster R-CNN模型流程图

表 1 Faster R-CNN结构图

1.3 仪表读数识别 1.3.1 仪表圆盘的圆心

根据检测到的仪表目标框的位置, 即仪表目标框的左上角和右下角的坐标 $\left( {{b_{x1}},{b_{y1}}} \right)$ $\left( {{b_{x2}},{b_{y2}}} \right)$ , 如图3所示, 通过如式(2)可得到仪表圆盘的半径 $r$ , 再通过如式(3)可得到仪表圆盘的圆心的坐标( ${C_x}$ , ${C_{{y}}}$ ).

$r = [({b_{x2}} - {b_{x1}}) + ({b_{y2}} - {b_{y1}})]/4$ $\left[ \begin{gathered} {C_x} = {b_{x1}} + r \\ {C_y} = {b_{y1}} + r \\ \end{gathered} \right]$ (2)

得到圆心的坐标后, 将原始图像的坐标系转换为以仪表圆盘圆心为原点的坐标系, 如图4所示, 再将1.2节中检测仪表的指针目标框的位置坐标变成转换后的新坐标系下的, 转换后的指针目标框的位置坐标为 $\left( {{{\textit{z}}_{x1}},{{\textit{z}}_{y1}}} \right)$ $\left( {{{\textit{z}}_{x2}},{{\textit{z}}_{y2}}} \right)$ , 如图5所示, 分别为指针在新坐标系第二、四象限下, 其它两个象限情况类似.

图 3 仪表目标框

图 4 转换后的新坐标系

图 5 指针目标框坐标

1.3.2 指针的细化

首先根据指针检测中得到的指针目标框的坐标, 从原图中裁剪出指针图像, 在此基础上进行传统图像处理, 如果直接得到的仪表圆盘的基础上进行操作, 细化后会得到结果如图6(a)所示. 从图中可以看出细化后的结果中有很多直线, 对定位到指针直线具有很大的干扰性.

将指针细化前需要先把仪表的指针图像进行二值化. 本文采用的二值化方法是OpenCV2库中的自适应阈值法(adaptive threshold)函数, 此函数并不是像固定阈值方法那样, 它是按照图像的不同部分亮度的情况来计算局部阈值, 因此对于图像的不同部分, 计算出不同的阈值, 相较固定阈值法效果更好.

本文采用的细化(骨架提取)方法是查表法, 细化如“瘦身”, 把图中一些不必要的点去掉, 比如一个圆, 最终得到的结果就是一个圆心, 这个圆心就是圆的骨架. 具体思想就是基于八领域来判断一个点是否去除, 比如内部点、直线端点等不可以. 指针图像和细化的结果如图6(b)图6(c)所示.

图 6 细化结果

1.3.3 霍夫变换直线检测

霍夫变换是一种常用图像处理方法[20], 本文采用霍夫变换检测已经经过细化后的指针图像中的指针中轴线. 它采用投票算法, 该方法可以得到所有你所需要检测的特定形状, 并将结果组合成一个集合, 其中用到的以 $x$ , $y$ 为坐标的极坐标系装换为 $\;\rho $ , $\theta $ 霍夫空间的公式如式(4). 该方法可以进行直线, 椭圆等形状的检测. 检测的结果如图7所示, 加粗黑色部分表示检测到的直线.

$ \begin{split} & x\cos \theta + y\sin \theta = \rho \\ &\;\;\;\;\;\;\;\;\;\; \downarrow \\ &\rho = \cos \theta x + \sin \theta y \end{split} $ (4)
图 7 霍夫变换直线检测

1.3.4 最小二乘法拟合直线

根据霍夫变换检测到的直线, 利用得到的直线集合中所有直线的两个坐标, 再将这些坐标点用最小二乘法去拟合出一条直线, 即为指针中轴线的表达式. 它通过最小化误差的平方即残差平方和公式如式(5)所示, 来得到能够拟合数据的最佳函数.

${\sum\limits_{i = 1}^{{n}} {\left( {{h_\theta }\left( {{x_i}} \right) - {y_i}} \right)} ^2}$ (5)
1.3.5 仪表示数结果

根据1.3.1节所述中的新坐标系下的指针目标框的位置坐标为 $\left( {{{\textit{z}}_{x1}},{{\textit{z}}_{y1}}} \right)$ $\left( {{{\textit{z}}_{x2}},{{\textit{z}}_{y2}}} \right)$ 来判断指针所在新坐标系下的象限. 具体判断依据如下:

(1)第一象限: ${{k > 0}},{{\textit{z}}_{x2}} \ge 10$ ;

(2)第二象限: $k < 0,{{\textit{z}}_{x1}} \le - 10$ ;

(3)第三象限: $k > 0,{{\textit{z}}_{x1}} \le - 10$ ;

(4)第四象限: $k < 0,{{\textit{z}}_{x2}} \ge 10$ .

还有两种情况: $k = 0$ k不存在. 若 $k = 0$ , 即指针中轴线与新坐标系下的X轴重合; 若 $k$ 不存在即指针中轴线与新坐标系下的Y轴重合. 通过上述得到仪表指针中轴线所在直线的斜率, 再根本上述判断象限的方法可知指针位置所属的象限, 可以得到仪表指针中轴线所在直线与X正轴或者负轴所成的角度angle. 然后通过已知的指针式仪表的量程, 即指针刻度的具体分布和两条相邻刻度线相交的角度, 如本文实验中的仪表的刻度7和刻度12之间的角度为90°, 和刻度12与图4中转换后的坐标系下的X轴正半轴重合等. 具体示数value求解情况分为以下情况:

(1)第一象限: value=(angle/90)×13+33;

(2)第二象限:value=7–(angle/90)×13;

(3)第三象限: value=(angel/90)×13+7;

(4)第四象限: value=((90–angle)/90)×13+20.

通过上述计算即可得到仪表的示数.

2 实验及结果分析 2.1 仪表圆盘检测测试模块

首先自制所需的仪表数据集, 自制仪表目标数据集共有225张指针式仪表图片, 其中205张图像作为训练集, 剩余的20张作为测试集. 训练集采用VOC数据集格式, 使用标记软件LabelImg4.1进行手工标记. 然后用网络训练数据集, 测试数据集用于测试训练效果. 测试结果如图8所示. 由测试结果可知, 基于Faster R-CNN模型的指针式仪表检测模型能够准确地检测出不同状态下的仪表表盘.

2.2 指针检测测试模块

和上述的仪表圆盘检测一样, 所用到的数据集是一样的, 不同的是在使用标记软件LabelImg4.1进行手工标记时在仪表图像上标记的指针区域, 然后用网络训练数据集, 这个的训练和上述仪表圆盘的训练是一起训练的, 测试数据集用于测试训练效果. 其中仪表圆盘与指针进行目标检测的训练的损失函数loss的曲线如图9所示, 其中横坐标iterations表示的是训练的轮数, 轴坐标loss表示的是训练时的loss损失值, 由图中可以看出最终的loss值趋近于0.

对含有仪表的图像进行测试, 得到测试结果如图8所示, 下面的图为不同摆放角度下不同示数的仪表图像. 表2所示为随机选取的20张测试图片的测试结果, 其中每张测试图片中有且仅有一个仪表表盘, 每个表盘中只有一个指针目标 由测试结果可知, 基于Faster R-CNN模型的指针式仪表检测模型能够准确地检测出不同状态下指针, 具有良好的效果, 具有很强的准确性和鲁棒性.

2.3 仪表读数识别测试模块

为了检测算法的各方面性能, 本文对采集的20组仪表样本进行测试, 测试的样本由不同的角度拍摄的显示不同示数的指针式仪表. 表3所示为其中10组样本测试结果, 测试数据集的平均准确率高达为96.55%.

图 8 目标检测结果图

图 9 损失函数loss曲线

表 2 指针目标检测模块测试结果

表 3 仪表读数识别测试结果

3 结论

本文提出了一种基于深度学习的指针式仪表的识别方法. 针对刻度分布均匀的指针式仪表, 本文所提出的指针式仪表的识别方法由仪表检测、仪表指针检测以及仪表读数识别3个部分组成. 该方法通过获得仪表圆盘目标的包围框, 仪表指针目标的包围框、指针细化、霍夫变换检测直线、最小二乘法确定指针中轴线表达式等步骤识别仪表最终读数. 该方法先基于深度学习的方法检测仪表表盘和指针目标, 根据得到的指针目标框的位置信息裁剪得到指针图像, 在指针图像的基础上再结合一些传统图像处理的方法提取指针直线, 与直接在仪表表盘目标框图像或原始图像上进行传统图像处理相比很大程度上减少了定位指针中轴线所在直线过程中的干扰, 该方法具有很好的鲁棒性和实际应用价值. 测试实验结果表明, 提出的方法对于指针式仪表检测与识别具有良好的准确性与稳定性, 能够满足一定的实际应用. 另外提高指针的中轴线位置的检测精度, 使得结果更精确, 将是本文后续重点研究内容.

参考文献
[1]
邹俊贵, 陈以. 常用指针式仪表识别技术研究综述. 仪器仪表与分析监测, 2009(1): 1-3, 6. DOI:10.3969/j.issn.1002-3720.2009.01.001
[2]
万保权, 谢辉春, 樊亮, 等. 特高压变电站的电磁环境及电晕控制措施. 高电压技术, 2010, 36(1): 109-115. DOI:10.13336/j.1003-6520.hve.2010.01.048
[3]
何永祥. 数字化变电站技术在西昌电网中的应用及其关键技术研究. 国外电子测量技术, 2009, 28(2): 42-45, 48. DOI:10.3969/j.issn.1002-8978.2009.02.013
[4]
Yue XF, Min Z, Zhou XD, et al. The research on auto-recognition method for analogy measuring instruments. Proceedings of 2010 International Conference on Computer, Mechatronics, Control and Electronic Engineering. Changchun, China. 2010. 207–210.
[5]
刘志平. 检测仪表中粗大误差的剔除分析. 电子测量技术, 2009, 32(11): 55-57, 84. DOI:10.19651/j.cnki.emt.2009.11.016
[6]
徐发兵, 吴怀宇, 陈志环, 等. 基于深度学习的指针式仪表检测与识别研究. 高技术通讯, 2019, 29(12): 1206-1215. DOI:10.3772/j.issn.1002-0470.2019.12.006
[7]
刘葵. 基于深度学习的指针式仪表示数识别[硕士学位论文]. 武汉: 华中科技大学, 2017.
[8]
许丽, 石伟, 方甜. 巡检机器人中的指针式仪表读数识别系统. 仪器仪表学报, 2017, 38(7): 1782-1790. DOI:10.19650/j.cnki.cjsi.2017.07.027
[9]
邢浩强, 杜志岐, 苏波. 变电站指针式仪表检测与识别方法. 仪器仪表学报, 2017, 38(11): 2813-2821. DOI:10.3969/j.issn.0254-3087.2017.11.024
[10]
Hinton G, Deng L, Yu D, et al. Deep neural networks for acoustic modeling in speech recognition: The shared views of four research groups. IEEE Signal Processing Magazine, 2012, 29(6): 82-97. DOI:10.1109/MSP.2012.2205597
[11]
赵新秋, 贺海龙, 杨冬冬, 等. 基于改进的卷积神经网络在图片分类中的应用. 高技术通讯, 2018, 28(11–12): 930-936. DOI:10.3772/j.issn.1002-0470.2018.11-12.006
[12]
Zhu XB, Li ZZ, Zhang XY, et al. Deep convolutional representations and kernel extreme learning machines for image classification. Multimedia Tools and Applications, 2019, 78(20): 29271-29290. DOI:10.1007/s11042-018-6781-Z
[13]
丁伟利, 谷朝, 王明魁, 等. 基于边缘预测与边缘增长的图像分割方法. 高技术通讯, 2018, 28(5): 409-416. DOI:10.3772/j.issn.1002-0470.2018.05.004
[14]
Zhu XB, Zhang XM, Zhang XY, et al. A novel framework for semantic segmentation with generative adversarial network. Journal of Visual Communication and Image Representation, 2019, 58: 532-543. DOI:10.1016/j.jvcir.2018.11.020
[15]
LeCun Y, Bengio Y, Hinton G. Deep learning. Nature, 2015, 521(7553): 436-444. DOI:10.1038/nature14539
[16]
Schmidhuber J. Deep learning in neural networks: An overview. Neural Networks, 2015, 61: 85-117. DOI:10.1016/j.neunet.2014.09.003
[17]
Jia YQ, Shelhamer E, Donahue J, et al. Caffe: Convolutional architecture for fast feature embedding. Proceedings of the 22nd ACM International Conference on Multimedia. Orlando, FL, USA. 2014. 675–678.
[18]
Ren SQ, He KM, Girshick R, et al. Faster R-CNN: Towards real-time object detection with region proposal networks. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(6): 1137-1149. DOI:10.1109/TPAMI.2016.2577031
[19]
叶灵枫. 基于深度学习的食品自动识别算法研究[硕士学位论文]. 金华: 浙江师范大学, 2020.
[20]
李凯南. 基于Hough变换的指针式仪表的自动判读. 现代电子技术, 2006, 29(14): 18-19, 26. DOI:10.3969/j.issn.1004-373X.2006.14.008