关键词:指针式仪表,实时读数,虚拟仪器,不变矩
1 引言
指针式仪表在工业中广泛应用,但人眼读数的方法在仪表检定中显出很多弊端,如:精度不确定、检定效率较低等等。因此,需要找出一种具有合适精度、较高效率的读数方法。目前国内外有一些运用计算机视觉技术进行指针式仪表读数的例子,其中的方法不外乎两类:根据指针的偏移角度读数;根据表盘的刻度数字读数。第一种法读数过程可以总结为以下步骤:1)图像预处理(如滤波等操作);2)目标分割;3)图像细化(即骨架提取);4)Hough变换,提取指针直线;5)根据直线角度读数。第二种方法是根据第一种方法处理的结果,对指针最相邻的表盘标志数字的识别来实现。无论哪种方法,都要经过较长时间的运算(经常为200ms以上),对于实时性要求较高的系统并不能够满足要求。
本文根据第一种方法中对表盘图像的处理流程,运用线性滤波和不变矩的图像分割方法,并结合了LabVIEW的仪表指针读数模块,实现了指针式仪表的自动读数,同时大大提高了读数,适应了实时系统的需要。
本文的第二部分论述了图像滤波和不变矩分割的原理;第三部分运用LabVIEW中的指针读数模块对处理之后的表盘图像读数;第四部分将百分表作为被测对象进行实验,结果表明,本文中提出的方法具有良好的读数精度和实时性;第五部分为结论。
2 表盘图像预处理
原始的仪表图像必然存在一定的噪声,噪声是指图像数据中由外界干扰带来的不能反映真实图像的象素部分。目前,简单有效的常用滤波算法主要有均值滤波和中值滤波。本系统采用的是中值滤波算法,原因是它使用简便,比起均值滤波,更能够很好的保持图像的边界部分。这种方法的原理是:在图像中对各个象素点(边缘点除外) 依次取其N N邻域,将邻域中各点按照象素值大小排序,用序列中间值代替原 点象素值。在对一幅具体图象进行滤波的时候,需要建立二维的滤波窗口,一般为方形或者十字形。在图中按一定顺序移动窗口,对每一点(不包括边缘点)进行此操作,完成滤波。
滤波之后的图像要经过分割提取出感兴趣的目标,即仪表指针。分割算法的目的是将目标从复杂的图像背景中提取出来以便作进一步的分析。图像分割的算法很多,一般情况下需要根据图像具体情况来确定使用哪种分割方法。通过实验比较发现,对本系统中表盘图像运用“不变矩法”进行分割很有效。
“矩”是随机变量的一个数学特征,图象分割处理前后的两幅图都有各自的“矩”,“矩量保持算法”中寻找图象分割阈值的准则就是:分割前后图象的各阶矩相近或者相等。“矩”的定义如下:
(1)
图1 运用不变矩法的分割结果
3 运用LabVIEW读数
LabVIEW是一种利用现有的计算机,加上特殊设计的仪器硬件和专用软件,形成既有普通仪器的基本功能,又有一般仪器所没有的特殊功能的高档、低价的新型仪器。它被广泛应用于检测、控制等诸多领域。其中的图像处理和测量模块包含了众多功能强大的算法。指针仪表读数就是其中之一。它可以对图1中的原始表盘图像读数,但实验表明,分割之后的图像读数精度更高,程序运行更快捷。
图2为运用LabVIEW读数并显示的后面板程序图。
(a) (b)
图2 读数后面板程序。(a)读数模块(b)显示模块。
读数模块的主要输入量为根据系统情况自定义的图像中心点,即指针轴心,以及指针旋转范围,即360o。显示模块主要功能为显示图像中指针所在直线并显示读数。
需要说明的是,仪表读数的功能模块也可以对不加分割的原始图像进行读数,但通过实验证明,这种情况下的读数精度要低于分割后图像的读数精度,具体实验数据可见试验部分表1。
4 实验分析
本文中运用NI公司IMAQ1411图像采集卡,结合LabVIEW编写读数程序。以指针可驱动的百分表为被测对象进行实验。通过摄像头连续采集表盘图像进行实时处理、读数。标志出读数时间以验证本文方法效率和实时性;在静态条件下,人眼对百分表读数,与自动读数相比较,计算读数的误差并列表。
图3为读数程序的前面板及运行结果,分别显示了原始图像、分割之后的图像和读数时间、结果。并在原始图像中加以标志。
图3 指针读数结果显示
为了看清楚程序运行情况,系统中将两幅图像读数过程中间插入500ms的延时,故,真实读数时间约为20ms左右。故本文提出的读数方法可以适应实时要求.
表1中为指针读数0-100整个范围内,每间隔10刻度的人工读校对的整刻度值与自动读数值的比较误差。同时与不进行分割的图像读数比较,列出误差。
由表中数据可知,图像分割之前,读数误差在0.8%以内,而图像分割处理之后,本系统的读数误差相对于整个量程而言不超过0.25%,具有较高的读数精度。
表1 标准刻度与自动读数的误差
|
项目 |
标准 |
分割前自 |
分割前读 |
分割后自 |
分割后读 |
序号 |
|
刻度 |
动读数 |
数误差 |
动读数 |
数误差 |
0 |
|
0 |
0.25 |
0.25 |
0.12 |
0.12 |
1 |
|
10 |
10.58 |
0.58 |
10.2 |
0.2 |
2 |
|
20 |
19.47 |
-0.53 |
19.83 |
-0.17 |
3 |
|
30 |
29.68 |
-0.32 |
30.09 |
0.09 |
4 |
|
40 |
40.12 |
0.12 |
40.21 |
0.21 |
5 |
|
50 |
50.29 |
0.29 |
50.17 |
0.17 |
6 |
|
60 |
59.35 |
-0.65 |
59.84 |
-0.16 |
7 |
|
70 |
69.2 |
-0.8 |
69.98 |
-0.02 |
8 |
|
80 |
80.39 |
0.39 |
80.06 |
0.06 |
9 |
|
90 |
90.46 |
0.46 |
90.15 |
0.15 |
10 |
|
100(0) |
0.23 |
0.23 |
0.13 |
0.13 |
6 结论
本文提出了一种运用LabVIEW技术对指针式仪表表盘图像进行读数的新方法。采用中值滤波技术对图像预处理;采用不变矩分割方法分割出表盘中所感兴趣的指针目标;最后采用LabVIEW软件中的仪表读数模块获得结果。通过实验可以证明,本文的方法可以用于实时仪表读数或者检测,结果精度较高,程序运行时间较短。
本文作者创新点:运用不变矩分割和LabVIEW功能模块结合,实现指针式仪表的实时读数。克服了人眼读数精度不固定,易疲劳等缺点,提高了仪表读数的精度和效率。
参考文献
[1] 邓伟, 王军安. 计算机图像识别系统的设计与实现[J].计算机应用研究, 2000年第 六期.
[2] 李卓, 郭立红. 快速图像处理中阈值选取方法的比较研究[J]. 微计算机信息, 2006, 22: 3-1.
[3] 艳琴等. 基于计算机视觉技术的指针式仪表示值的自动判读方法研究[J]. 电力情报, 2001年.
[4] Fu Ping, Chen Hexin. The Recognition of Meter Dial by Computer Vision[J].International Symposium on Precision Mechanical Measurements, Aug.2002
[5] 阮秋琦;数字图像处理学[M].北京:电子工业出版社,2001.郑南宁;计算机视觉与模式识别[M]. 北京:国防工业出版社,1998.