Computer Science and Application 计算机科学与应用, 2013, 3, 195-201 http://dx.doi.org/10.12677/csa.2013.34034 Published Online July 2013 (http://www.hanspub.org/journal/csa.html) A Method of Recognizing the Thick Pointer Instrument’s Numerical Reading Based on Digital Image Processing Zhongyi Sun1, Li Kang1, Ku Wang1, Hongtao Zai2, Ruiping Tian2 1College of Information and Electrical Engineering, China Agriculture University, Beijing 2Jincheng Power Supply Company, Jincheng Email: sunzhy168@126.com Received: May 1st, 2013; revised: May 19th, 2013; accepted: Jun. 3rd, 2013 Copyright © 2013 Zhongyi Sun et al. This is an open access article distributed under the Creative Commons Attribution License, which permits unre- stricted use, distribution, and reproduction in any medium, provided the original work is properly cited. Abstract: The oil-level dial of transformer is the key device to detect the state of transformers in the transformer sub- station, and the digital image recognition technology is an effective way to accurately obtain the oil-level dial’s numeri- cal reading. As to the inaccuracy, low reliability and bad real-time performance of the traditional image-based dial reading systems, according to the image features of oil-level dial, a segmentation algorithm based on the future knowl- edge of the connected region’s area is proposed. And based on this algorithm an oil-level dial reading method is imple- mented. The experimental results of Matlab simulation show that our method is better to segment the pointer from the background of the oil-level dial images, laying a foundation to accurately judge the reading of the dial’s pointer, fur- thermore it provides a practical way to recognize the oil-level dial’s numerical reading. Keywords: Image Processing; Region Labeling; Image Segmentation; Pointer Instrument; Pointer Reading 一种基于数字图像处理的粗指针仪表读数识别方法 孙忠义 1,康 丽1,王 库1,宰洪涛 2,田瑞萍 2 1中国农业大学信息与电气工程学院,北京 2晋城供电公司,晋城 Email: sunzhy168@126.com 收稿日期:2013 年5月1日;修回日期:2013年5月19 日;录用日期:2013年6月3日 摘 要:变电站中变压器上的油位表盘是监测变压器运行状态的关键设备,利用数字图像识别技术是准确获取 油位表盘指针读数的有效途径之一。针对基于图像处理的油位表盘读数系统中存在的精度不够、可靠性低和实 时性不好的问题,根据油位表指针的图像特征,提出一种基于连通区域面积大小先验知识的图像分割算法。并 在该算法基础上实现变压器油位表盘读数的方法。由 Matlab 仿真实验表明,该方法能较好地从图像背景中分割 油位表盘指针图像,为准确判定表盘指针读数奠定了基础,也为指针仪表读数识别提供了一种实用方法。 关键词:图像处理;区域标记;图像分割;指针仪表;指针读数 1. 引言 数字图像处理识别技术在工业生产中有着广泛 的应用,尤其在电力行业[1]运用的相当广泛,基于图 像处理的油位表盘指针读数识别是其在电力系统中 一个非常重要的应用方向。目前,变压器油位表盘的 读数主要是通过巡检人员肉眼观测读取示值,然而这 种方法非常容易受人的观测角度和观测距离等主观 因素的影响,尤其是遇到指针指向两个最小刻度线中 Copyright © 2013 Hanspub 195 一种基于数字图像处理的粗指针仪表读数识别方法 间的情况时,需要通过估算表盘指针的大致位置来获 取表盘指针示值,因此这种读数方式不准确、误差较 大且劳动强度大最终导致油位表盘读数不准,既降低 工作效率,又埋下安全隐患。采用数字图像处理实现 油位表盘示值的自动判读,能够很好地解决人工检测 误差较大、效率低下的问题,提高油位表盘读数的准 确性,从而确保了电力企业的生产安全。 目前,国内外学者对指针式仪表的读数识别开展 了一些研究工作,有研究学者设计了减影法[2]来确定 指针位置,但是这种方法对拍摄环境比较苛刻,即要 求在同一种光照的条件下获取两个不同刻度的表盘 指针图像,故这种方法较理想化,不适宜被实际项目 采用。而有研究人员又提出了基于指针位置的识别方 法[3],利用同心圆环搜索确定指针的位置,计算指针 的斜率,这种方法虽然计算简单,但识别精度不够, 且识别结果容易受相机和目标表盘安装角度的影响, 造成较大误差。也有学者提出了基于指针颜色聚类和 模糊识别方法[4,5]进行识别,但识别过程繁琐,并且识 别效果难以令人满意。国内一些学者设计出了指针式 仪表识别系统[6,7],但可靠性不高。对于指针位置的确 定,文献[8,9]采用了基于霍夫变换的仪表指针位置识别 算法,该算法识别精度高,但是霍夫变换复杂,运算 量大,不适合对实时性要求较高的工程应用,因此该 方法在实际应用中受到了很大的限制。 目前我国变电站变压器上的油位表盘有多种型 号,其中包括YZF、UZF 和UZB 等系列,其中 YZF 系列中的 YZF2-250TH 型号比较常用,由于 YZF2- 250TH型号的表盘指针比一般的电压表、电流表以及 液压表的指针要粗大,并且指针部分呈现三角形轮 廓,因此便于工作人员对变压器上的油位表盘指针的 读数进行远距离的监视。本文主要针对这种型号的油 位表盘进行指针读数的识别,借助该类型表盘指针的 固有特征,通过图像预处理步骤得到表盘的二值化图 像,在这基础上根据区域的连通性将二值化图像标记 为不同区域,然后依据指针区域的面积与其他表盘背 景区域的面积的大小关系,将指针区域从背景中分割 出来,之后再将表盘指针部分做细化处理,计算指针 的斜率和角度,最后按照指针角度与指针实际示值之 间的关系得到表盘指针最终读数。通过验证这种带有 粗指针表盘读数识别方法的可行性,可以为这一类表 盘指针读数的自动识别问题提供技术支撑。 2. 基于数字图像处理的变压器油位仪表指 针读数方法 在变压器油位表盘指针读数识别的过程中,通过 初步的分析,其关键步骤是将表盘指针区域从复杂的 表盘背景中分割出来,然后再将分割出来的指针进行 细化处理,计算指针直线的斜率,得到指针角度。而 在分割出表盘指针之前,需要将表盘图片进行图像预 处理操作和图像连通域标定操作。基于数字图像处理 判别油位表盘指针读数方法流程图如图 1所示。 2.1. 确定表盘识别区域 为了提高指针读数识别精度,减少算法在识别时 处理时间,首先需要确定表盘识别区域,这里的图像 识别区域是通过图像控件以手动选取的方式确定的, 然后后面图像预处理和指针分割操作都只限于在这 个区域进行。选取的表盘识别区域如图 2所示。 2.2. 表盘图像预处理 由于图像采集的环境不同,如光照明暗程度以及 设备性能的优劣等,往往存在有噪声,对比度不够等 Figure 1. The flow chart of oil-level dial pointer reading’s method 图1. 油位表盘指针读数识别方法流程图 Figure 2. Dial recognition region 图2. 表盘识别区域 Copyright © 2013 Hanspub 196 一种基于数字图像处理的粗指针仪表读数识别方法 缺点,为了提高后续指针分割和识别的准确度,因此 我们需要对图像进行预处理操作,图像预处理过程包 括如下几个步骤:图像灰度化、图像增强、平滑滤波、 图像二值化以及形态学处理。 2.2.1. 表盘图像灰度化 由于读取进来的表盘图像是 RGB 格式,而后续 图像处理操作需要对单通道的灰度图像进行处理,因 此需要将 RGB 图像转换成灰度图像。RGB 图像包含 三个通道,分别为 R(红色)通道,G(绿色)通道,B(蓝 色)通道,而灰度图是单通道的,理论上,灰度图中每 一点灰度值可以通过公式Gray = R*0.299 + G*0.587 + B*0.114 计算所得,表盘灰度图如图 3所示。 2.2.2. 图像增强与平滑滤波 在图像处理中,图像增强就是按照特定的需要突 出图像中的感兴趣的信息,抑制或去除某些不感兴趣 的信息。由于得到表盘的灰度图像对比度不高,如果 直接做阈值分割,可能得不到很好的分割效果,因而 通过图像增强操作提高图像的对比度可以增强表盘 指针细节的辨识度,这为后续表盘指针分割操作奠定 基础,而在图像增强的过程中,可能会产生一些图像 噪声,故需要通过图像平滑滤波操作来降低图像噪声 的影响。通过实验得知,采用均值滤波,图像的一些 重要的细节会变得很模糊,而采用中值滤波效果比均 值滤波效果好。因此本文采用中值滤波来平滑油位表 盘图像。表盘图像增强和平滑的效果分别如图 4,图 5所示。 Figure 3. Gray-scale image 图3. 灰度图 Figure 4. Image enhancement 图4. 图像增强 2.2.3. 阈值分割、二值化 阈值分割的基本思想:首先确定一个阈值,然后 把每个像素点的灰度值和阈值相比较,根据比较的结 果把像素划分为两类——前景和背景。常用的求阈值 方法包括:根据直方图的谷底确定阈值、迭代选择阈 值法、最小均方误差法和最大类间方差法。本文采用 的阈值分割方法为最大类间方差法。该方法不需要人 为设定其他参数,是一种自动选择阈值的方法,而且 能够得到较好的结果。假设得到的这个阈值为 Thresh, 我们可以根据表达式(1)把表盘图像变成二值化图像。 其中 , f xy为输入灰度图像中某一个像素的灰度值, , g xy 就为阈值分割后的该像素点的灰度值。二值化 后效果如图6所示。 1, ,0, f x yThresh gxy f xy Thresh (1) 然而得到的二值图像中指针区域为黑色,由于指 针是我们感兴趣的区域,我们习惯将前景置为白色区 域,背景置为黑色,因此将二值化图像颜色反转,从 而得到指针区域为白色。如图7所示。 Figure 5. Image smoothing 图5. 图像平滑 Figure 6. Binary image 图6. 二值化图 Figure 7. Color reverse image 图7. 颜色反转图 Copyright © 2013 Hanspub 197 一种基于数字图像处理的粗指针仪表读数识别方法 2.2.4. 形态学处理 的形态学处理操作包括腐蚀操作 和膨 的是把二值图像中的不 同的 基于灰度图像 胀操作,先膨胀后腐蚀的操作称之为闭运算,先 腐蚀后膨胀的操作称为开运算。开运算的作用是用来 消除小物体、在纤细点处分离物体。而闭运算的作用 则是用来填充物体内细小的空洞、连接邻近物体。由 于表盘图像中有一些较小的中文文字和数字,这些信 息是我们不感兴趣的区域,而它们的存在会给我们分 割指针区域造成干扰,因此我们需要一些形态学的操 作将它们与指针区域分离开来。图8是在图 7的基础 上经过闭运算操作得到的效果图,而图 9则是在图 8 的基础上经过开运算得到的效果图。对比图7、图 8、 图9,可以看出开闭操作减少了一些小亮点,以及填 补了一些小黑点,经过这些形态学操作有效地减少白 色连通区域的个数,从而有效地减少后面的运算量。 2.3. 连通区域标记 图像连通区域标记的目 连通区域区分开来,为下一步特征提取做好准 备。在标记过的图像中,属于不同连通区域的像素被 赋予不同的标记,而同一区域的像素则被赋予相同的 标记。连通区域可以分为4连通区域和8连通区域, 4连通区域包括中间像素和上下左右像素,而8连通 区域则包括四连通区域的像素以及左上、左下、右上、 右下像素,常用的区域标记算法[10]有:像素标记法、 线标记法以及区域增长法,本文采用的是基于8连通 区域的区域增长法,该方法依次扫描二值图像中的每 个像素点,当找到某个未标记的目标像素时,将其压 Figure 8. Closing operon 图8. 闭运算 ati Figure 9. Opening operation 图9. 开运算 入堆栈并从该点开始反复标记其邻域,直到堆栈为 指针分割 图像(图9)进行连通区域标记,然后 再计 空, 标记结束。图10 用一个案例来说明这个问题:(a) 中每个白色小方块代表一个前景像素,黑色小方块代 表一个背景像素;(b)中的数字代表对应的像素标记, 其中背景像素设为 0,为了形成对比,背景区域标记 没有标出。图 10 中的(a)为10*10 图像点阵,图中有 四个连通区域,分别用 1、2、3、4进行标记,通过 标记号,我们可以统计得到每个连通区域的面积。图 中标号 1、2、3、4的连通区域的面积分别为 8、9、7、 6。 2.4. 首先将二值化 算各个连通区域的面积,而计算连通区域面积的 常用方法[11]有:基于连通区域的顶点坐标计算区域的 面积,以及根据连通区域的边界的 Freeman 链码来计 算区域的面积,本文采用的是后面这种方法计算连通 区域的面积。然而我们目标是分割出表盘指针区域, 根据先验知识得知指针区域的面积在二值化图像中 的面积排列第二,故先将得到的连通区域面积按升序 排列,然后去除面积小于第二大面积的连通区域,去 除后的效果如图11 所示。而经过上述处理之后,二 值化图只留下两个白色的连通区域。假设将表盘指针 区域表示为A区域,表盘外围区域记为 B区域,因为 执行标记算法的过程中,从上至下进行遍历,第一次 遇到白色的连通区域,其标号要小于其他后面遍历到 的其他连通区域的标号,因此A区域的标号要大于 B (a) 二值图像 (b) 标记图像 图10. 二值图像与标记图像 Figure 10. Binary image and labeled image Figure 11. Denoising im 图11. 去噪后图 age Copyright © 2013 Hanspub 198 一种基于数字图像处理的粗指针仪表读数识别方法 区域的标号,故 件判断,即可 的形状特点,首先对指针区域采用 Can 可以通 一个简单的条过 将指针区域A分割出来。效果如图12 所示。 2.5. 指针细化 根据指针区域 ny 算子进行边缘检测,因为Canny算子相比其它 算子如: Sobel 算子、Roberts 算子、Prewitt算子、Laplace 算子,LoG算子等,该算子具有很好的信噪比和检测 精度,其效果如图 13 所示。然后通过遍历边缘检测 后的图像,确定指针区域的坐标位置,从而缩小遍历 范围,将范围固定在包含指针区域的最小矩形内,这 样可以减少无用的遍历操作,提高了算法的效率。指 针细化的原理如图 14 所示,指针区域可以近似看做 成一个三角形区域,我们在三角形外接矩形内从上至 下进行扫描图像,在扫描一列的过程中,第一次遍历 到像素值为1的点的坐标记为 A_up,第二次遍历到的 Figure 12. Pointer area image 图12. 指针区域图 Figure 13. Edge detectn 图13. 边缘检测 io Figure 14. Pointer thinning schematic diagram 图14. 指针细化原理图 像素值为 点记为 点,我们观测得知油位表盘的 量程 1的点记为 _bottom,这两个点的中A A_middle,按照这种方式,同样可以得到坐标点 B_up 与B_bottom,它们俩的中点坐标记为 B_middle。以 此 类推,可以将这个表盘指针区域细化成近似为直线的 像素带,如图15 所示。 2.6. 指针角度计算 根据表盘指针的特 为[0,10],据实际测量得知每两个相邻刻度之间的 夹角为 28.5˚,我们假设水平向左为正方向,向上为正, 向下为负,故油位表盘指针与水平线夹角范围为 −142.5˚~142.5˚。为了计算指针与水平方向的夹角,从 上往下扫描细化后的指针图像,将该像素带在 X轴方 向均分为三段,如图 16所示,指针两端的坐标分别 为点 11 , A xy (指针头)和点 44 ,Dx y(指针尾),则其 余两点 分别为点的坐标 22 ,y和点 Bx 33 ,Cx y,根据 两点之间的斜率公式,分 A和 斜率 k1、B与C之间的斜率k2、C与D之间的斜率 k3,然 后求取三条直线斜率的平均值 k_avg,将 k_avg 作为 指针所在直线的最终的斜率值,其中 别求取点 B之间的 123 _1/3*kavgk kk。 根据点 A和点 D的坐 置关系,可以分为以下 几种 标位 情况,如表1所示。 Figure 15. Pointer thinning image 图15. 指针区域图 1 y 1 x 2 x 3 x 4 x 2 y 3 y 4 y Figure16. Pointer’s angle calculation 图16. 指针角度计算 Copyright © 2013 Hanspub 199 一种基于数字图像处理的粗指针仪表读数识别方法 Table 1. The ointer angle 表1. 顶关系 A点与D夹角(˚) relationship of vertex coordinate and p 点坐标位置与指针角度 点的坐标关系 指针与水平线的 141 4 , x xy y 90 141 ,4 x xy y 90 141 ,4 x xy y 180argtan_kavg 141 ,4 x xy y 180arg tan_kavg 141 ,4 x xy y arg tan_kavg 141 ,4 x xy y arg tan_kavg 41 yy 0 2.7. 指针读数 所知,指针与水平夹角为 0˚时,表 盘指 根据原始图像 针读数为 5,根据表盘指针位置与表盘刻度的关 系,可以推导出指针读数与指针角度的关系式为: 1 _5BP valuea 。其中a为相邻整数刻度之间的 角度,为固定值(28.5 结果分析 的算法,在 CPU 型号为 Intel Cele 有关,油温越 高, 出的基于数字图像处理粗指针仪表读数 识别方法,重点在于表盘指针从背景图像中的分割算 实际 ˚),θ为指针与水平线之间的角 度,根据这个关系式,从而可以得出表盘指针的具体 读数。 3. 实验 采用本文所提出 ron,主频为 2.7 GHz的主机上利用Matlab 7.10 进行了算法仿真实验,测试了油位表盘在不同读数下 算法的识别结果,结果如表2所示。 油位表的读数跟变压器中的油温 油位表盘读数越大。根据 Matlab 仿真得到的表盘 指针所在直线的角度,表盘指针读数可以通过指针读 数与指针角度的关系式计算得出。通过实验表明,实 验值跟实际值还是存在误差,由上表得知,平均误差 = (0.07 + 0.13 + 0.10 + 0.09 + 0.04 + 0.06 + 0.04 + 0.06 + 0.08 + 0.12)/10 = 0.079,相比油位计量程[0,10],误 差较小,在可接受的范围内。通过计算,算法识别平 均时间为 0.357 秒,时间较短,在实际工程应用中, 能够很好地满足实时检测的要求。 4. 结论 本文提 Table 2. The test result of oil-level dial pointer’s reading 表2. 油位表盘指针读数测试结果 读数 指针角度(˚) 实验读数 误差 识别时间(s) 0.50 −126. 0.57 0.07 0.41 35 1.00 −109.51 1.13 0.13 0.38 2.00 −82.75 2.10 0.10 0.36 3.00 −54.24 3.09 0.09 0.39 4.00 −27.26 4.04 0.04 0.31 5.72 18.95 5.66 0.06 0.29 6.40 39.24 6.36 0.04 0.35 7.00 55.42 6.94 0.06 0.34 8.00 83.54 7.92 0.08 0.39 9.50 124.83 9.38 0.12 0.35 法中针对 化后的 表盘 ,提出了基于 针区域的面积与其他背景区域面积的比较将表盘 ) [1] 孙凤杰, 安田江, 范杰清等. 电力变压器温度表指针位置识 007, 7(27): 70-74. [2] F. Alegria,ation of analog and digital 像分 别系统的研 视觉的指针式仪表自动检测系统 技术的指针式仪 。文二值油位 图片 指 指针从背景中分割出来的图像分割方法,再经过特定 的细化操作与直线拟合操作得到表盘指针对应的直 线,然后根据直线的方向,得出直线的具体斜率,进 而得到指针的对应角度,最后根据角度与表盘指针读 数的关系得到指针读数。通过Matlab 仿真实验表明, 得到的结果与表盘实际读数相差较小,误差在可接受 误差范围内。从而证明采用这种方法自动判定油位表 盘读数在一定条件下切实、有效、可行。但该算法还 存在不足的地方,比如没有考虑在不同光照下表盘指 针读数的不同,因此对于不同光照下的表盘指针读数 的情况还需进一步研究。 参考文献 (References 别研究[J].中国电机工程学报, 2 A. Serra. Automatic calibr measuring instruments using computer vision. IEEE Transaction on Instrumentation and Measurement, 2000, 49(1): 94-99. [3] 孙凤杰, 郭风顺, 范杰清等. 基于图像处理技术的表盘指针 角度识别研究[J]. 中国电机工程学报, 2005, 25(16): 73-78. [4] 王圆圆, 丁志杰, 万华林. 基于视觉颜色聚类的彩色图 割[J]. 北京理工大学学报, 2003, 23(6): 772-775. [5] 陈松灿, 伍艳莲. 图像的模糊识别方法研究与实现[J]. 电子 学报, 2000, 28(11): 50-54. [6] 岳国义, 李宝树, 赵书涛. 智能型指针式仪表识 究[J]. 仪器仪表学报, 2003, 24(4): 430-431. [7] 王博, 秦岭松. 基于计算机 [J]. 计算机工程, 2005, 31(11): 19-21. [8] 杨耀权, 赵艳琴, 何晓燕. 基于计算机视觉 Copyright © 2013 Hanspub 200 一种基于数字图像处理的粗指针仪表读数识别方法 Copyright © 2013 Hanspub 201 obust detection of 1760-1763. 表自动检定方法[J]. 仪器仪表学报, 2001, 22(3): 233-234. [9] J. Matas, C. Galambos and J. Kittler. R lines [11] 郭尚, 苏鸿根. 基于像素的计算大量连通区域面积的快速算 法[J]. 计算机工程与设计, 2008, 29(7): using progressive probabilistic Hough transform. Computer Vi- sion and Image Understanding, 2000, 78(1): 119-137. [10] 高洪波, 王卫星. 一种二值化图像连通区域标记的新算法[J]. 计算机应用, 2007, 27 (11): 2776-2778. |