APP下载

基于数字图像处理的指针仪表识别技术研究∗

2019-05-07侯忠辉

计算机与数字工程 2019年4期
关键词:灭火器指针仪表

侯忠辉 王 毅 尤 颖

(1.上海市消防局 上海 200051)(2.公安部第三研究所 上海 200031)

1 引言

指针式仪表的优点很多,诸如,结构简单、方便维护、精度较高、较强的抗干扰性,所以在目前的控制及其测试系统中多采用指针仪表。对指针式仪表来说,它一般都没有数据线接口功能而且若采用肉眼去识别读数会受到很多人为因素的影响,因此检测效率较低并且精确度不高,长时间的人为读数会导致视觉疲劳以及误差的产生;此外有一些场合无法靠人为地去读数识别,因此实现对指针式仪表的自动识别具有重要的现实意义。目前,国内外开展了一些针对仪表图像识别的研究。其中包括文献[1]提出的指针位置识别算法,它是利用同心圆环的搜索来确定指针位置并计算其指针角度。这种算法计算固然简单,但是识别精度不高、受人工影响较大且较难控制,且容易受摄像头和表盘目标安装角度的影响导致误差;另一种是指针识别系统[2],但可靠性不高;此外,还有人提出了基于形态学的线性目标图像的处理识别方法[3~4],因过程比较复杂,不利于实际应用。由于本文只需识别灭火器指针所指的不同颜色区域,故采用基于视觉颜色RGB二值化和霍夫变换识别方法对指针仪表图像进行识别,过程简单容易且效果明显。

2 图像预处理

首先对采集到的图片进行预处理,便于后期指针识别的高效性和准确性,如图1所示。为了提高精度,还要对灰度图像进行区域识别,在这里主要采取手动选取的方式进行图像区域识别,而后面的图像处理和识别仅限于该区域进行。手动选取识别区域的主要优点是降低计算量,从而节约处理时间。手动选取可在程序中采用人机交互的形式来完成。图像预处理主要包括图像灰度化及滤波、图像RGB二值化、图像膨胀和细化。

2.1 图像灰度处理和滤波

当采集到彩色图片后,需要对原图像进行灰度及区域识别的处理,便于后面部分的处理。滤波的目的是为了去除图像中的杂点或者噪声,使得图片只剩下待识别的指针和其所指区域。经典的滤波方法为线性滤波法,例如邻域平均法等,而以中值滤波[5]为代表的非线性滤波方法由于在保护图像边缘和细节方面的优势而得到了广泛的应用,在中值滤波中又以自适应中值滤波在去除噪声和保存细节两方面效果最好。但随着脉冲噪声密度的增大,上述滤波器的性能随之下降,本文采用结合了均值滤波和自适应中值滤波两者优点的改进型自适应中值滤波算法[6]。然后对灰度图像进行区域提取,提取出所需要的信息空间。

图1 图像的预处理过程

2.2 图像RGB颜色二值化

本文处理的是彩色的灭火器仪表图像,图像中每个像素是由三个不同的颜色分量R、G、B组成,其中R、G、B分别代红、绿、蓝三个分量的颜色。然后根据灰度、空间纹理、几何形状等特征,将一幅图像中的目标与背景分离开来,一般用黑白两种颜色来表示,以便于进一步处理,它是对图像进行分析和识别的基本前提。基于阈值法的RGB二值分割方法是一种常用的图像分割技术,它利用处于目标和背景内部相邻像素间的灰度值有较大差异的特点,把原图像分为目标和背景两部分,即将图像转化成只含“0(黑色)”、“1(白色)”两个灰度值的黑白图像,从而将背景和目标区域分割开来。

2.3 膨胀和腐蚀处理

膨胀和腐蚀处理在滤波以后,待识别的区域就只剩下了指针和其所指区域,但此时的指针在有些地方较模糊,不利于后面的图像识别处理,所以要运用形态学中的膨胀运算,将模糊地方的指针重新连接起来。经过膨胀之后,指针图像变得清晰且连续,为后面的图像处理奠定了基础。指针经过膨胀后,虽然指针清晰了,但指针太粗大,将影响识别的精度,因此要对其进行细化使指针图像变为直线段[7~8]。经过形态学的膨胀和细化处理后,从而将指针变得连续清晰,更有利于后续指针角度的识别[9]。

3 仪表中指针所指颜色的区域识别

3.1 霍夫变换

Hough 变换是一种形状匹配[10~12]的技术,它的原理是利用两个坐标点之间的变换来检测平面内的直线或者其他有规律的曲线,换一种理解方式,Hough变换是对图像进行某种形式的坐标变换。它将原图像中给定形状的曲线,以及直线上的所有的点都集中到变换空间的某个点上,进而形成峰点。这样,就把原始图像中给定的形状曲线或直线的检测问题转化为寻找变换空间中峰点的问题。直线检测的原理如下:

直线y=kx+b的极坐标形式为

在图2中,给定了参数的几何解释。其中(θ,ρ)表示一个从原点到线上最近点的向量,这个向量与该直线垂直。考虑一个包含参数θ和ρ的二维空间,在x,y平面上的任一直线对应了该空间的一个点。因而x,y平面中的任一直线的霍夫曼变换是θ,ρ空间中的一个点。即在图像空间中共线的点其实是对应于参数空间共点的线,反之亦然。Hough变换就根据点线的对偶性进而把在图像空间中存在的直线检测问题演变为成参数空间中存在的点检测问题,显然后者的处理要比前者简单得多,因为只需简单的累加统计即可实现对边缘的检测[13]。它的具体算法是:利用Hough变换将原始图像中给定直线上的所有的点都集中到变换空间的某个点,从而形成峰值,然后再寻找峰点累加数的最大值,即可确定出指针所在的直线,即偏转角度。

图2 直线的标准表达方法

图3 表盘坐标系

3.2 改进Hough变换对指针角度的识别

Hough变换是一种实用的方法,其优点之多例如:霍夫变换都适用实线曲线或者虚线曲线、与线宽度的均匀性没有关系、可同时处理图像中的多条线时。但它也有缺点,由于标准的Hough变换是一对多的映射,因此需要很大的存储空间和计算量,判别速度会受到影响。由于一般指针式仪表刻度和指针所包含的直线角度都在一定范围内,所以只需要对特定范围内的直线进行变换,这样可以大大减少运算时间[14~16]。所以本文在标准 Hough 变换算法的基础上并结合仪表的量程,然后在进行Hough变换时限定角度的搜索范围,通过设置角度的双阈值来减少需要计算的像素点,根据实际的仪表来选取阈值。

在检测出指针相对于零刻度线,即图像水平线的角度θ后,通过结合具体的仪表模板,利用角度和指针的线性关系检测出指针所指的颜色区域。以灭火器仪表表盘为例,以表盘的圆心为原点建立直角坐标系。图像空间的坐标系如图3所示。首先将坐标系由(x,y)下的直角坐标系转化为(v,u)下的坐标系,使得坐标系的原点在(m,n)处,而此点即为所选取的“圆心”点,而Fx则表示为表盘指针所在的直线,如图3中的vu坐标系所示。

4 实验结果

采用本文提出的算法,在Matlab环境下,以灭火器指针仪表为例,当仪表指针指向绿色区域时候,则表示灭火器中气体充足,可以正常使用,如图4(a)所示;当仪表指针指向红色区域时,表示该灭火器中气体不足,需要即刻充气,以免意外发生,如图5(a)所示;而当指针指向黄色区域时候,则表示灭火器中气体过多。

图4 灭火器仪表原图1和经处理后的图像

对识别的原始图像进行Hough变换判,其中,仪表指针所在的直线用绿线指出,不同颜色区域界线用灰色直线表示,也可以进行角度识别。图4(b)和图5(b)分别表示经改进后的霍夫变换处理后的图像,白色区域表示指针指向的颜色区域,即实验需要识别的颜色区域。通过对两组图像的实验对比可看出,该方法能够较精确地识别指针所指颜色区域,误差率小并在允许范围之内,且过程实现简单,视觉效果很好,很符合实际运用。

图5 灭火器仪表原图2和经处理后的图像

5 结语

本文采用改进的双阈值Hough变换方法进行指针所指颜色区域的识别,在指针式仪表的自动读取中,结合实际的仪表并限定表盘角度搜索范围,大大提高了检测指针的速度。通过实验测试可知,该方法识别精度高、实时性强、适合不同形状的仪表表盘刻度与角度成线性关系的表盘指针所指颜色区域的识别。而对于在实际应用中的不同形状的刻度表盘来说,如圆形、半圆甚至四分之一圆等,都可以运用此方法来进行角度的识别,只需要变动阈值范围即可。此外,对于一些无法利用人工读取的情况,如无人飞行器或者航天中的弹载,可以运用该技术通过传回的图像来进行地面在线的监测,或者还包括一些炉温监控等等。因而在实际工程中,本文改进的算法具有很好的应用前景。本算法的误差主要来源于摄像镜头和表盘目标的安装角度,所以为了减少识别误差,安装过程中应该尽量使摄像镜头和表盘目标在同一条直视线上。进一步完善识别算法将是本文接下来的工作,以提高其自动化程度并将手动选取识别区域改进为全自动识别。

猜你喜欢

灭火器指针仪表
浙江中控自动化仪表有限公司
浅谈电气仪表自动化安装技术
电气仪表自动化安装与调试分析
郊游
为什么表的指针都按照顺时针方向转动
探讨自动化仪表安装调试技术要点
小小消防员第三集
浅析C语言指针