基于计算机视觉的指针仪表盘识别算法与系统设计

2023-01-28 15:05许立辉杨开元徐东东
仪器仪表用户 2023年2期
关键词:读数指针仪表

许立辉,杨开元,徐东东

(中核智能安防科技(西安)有限公司,西安 710061)

0 引言

近年来,基于传统模式识别与深度学习方法[1]的计算机视觉相关技术得到了长足发展。虽然基于深度模型的方案得到了更加广泛的关注,但是深度模型在实际应用中往往依赖高性能的计算平台与大规模高质量的标注数据才能取得良好的实现效果。此外,深度模型因其推理过程的黑盒子属性,在应用中还往往面临可解释性差的问题。因此,在计算资源相对有限、数据收集与标注成本昂贵或者场景多样性有限等实际应用中,基于传统计算机视觉的方法以其效率高、实现简单以及良好的可解释性等优点,仍然是智能仪器仪表系统的流行方案,方便并广泛应用在工业视觉、公共安防与自动驾驶等实际应用中,是视觉自动化系统的基础模块之一。

指针式仪表作为一种测量工具,具有结构简单、使用方便、可靠性高、价格低廉等优点,在工业生产与生活日用中得到了广泛的应用,比如电力系统、石油化工及铁路系统等行业。传统的指针式仪表读数获取方式主要依靠人工目视测量,这种方法费时费力,自动化程度低,工作量大,且容易受到人为因素影响,效率低,误报率高,难以满足实际生产和工作需要。因此,人工判读来识别指针式仪表的方法受到了巨大挑战,亟需研发仪表自动化识别系统,在读表过程中尽量减少或完全消除人为因素,以实现高效的指针式仪表自动化识别。

通常,指针式仪表示数识别系统包含图像采集系统和指针式仪表自动化识别算法,后者为此系统的核心,主要由仪表盘定位模块、指针定位模块与仪表示数识别模块等3个部分组成。其中,表盘定位模块主要负责通过计算机视觉技术在图像中精确找寻仪表盘的位置区域;指针定位模块则主要是在表盘定位模块输出的位置区域内,通过图像处理或机器视觉技术确定仪表刻度与指针的相对位置进而确定指针位置,或者直接利用指针特征确定指针位置;而仪表示数识别模块则是将通过预设刻度或者OCR等方法将指针位置、角度等转换为明确的指针读数,进而输出最终的仪表示数识别结果。

目前,国内外相关领域对于指针式仪表的智能自动化识别做出了大量的研究,取得了一定的成果。现有研究中采用的方法大体包括Hough相关算法[2-8]、中心投影法[9]、基于深度模型的方法[10]等。Hough直线变换法通常是在对仪表盘图像进行二值化后,采用Hough变换来定位指针直线。其中,相关研究主要包括:李金彪等[2]提出了一种基于Snake算法的自动识别方法。该方法由Hough变换粗定位圆形特征、Snake算法精确定位圆形特征与Hough变换检测直线特征等3个主要算法流程构成,比较适合于恒定光照等场景变化因素较少的仪表指针检测应用。此外,Han等[3]提出一种基于改进Hough变换的仪表识别方法。该方法首先通过自适应中值滤波与二值化方法对仪表图像进行预处理,然后使用改进的Hough变换提取指针直线角度读取示数。类似地,Yue等[4]也提出了一种基于Hough变换自动仪表读数方法。该方法通过测量指针直线与零刻度直线的夹角来计算仪表示数。更近一步地,张永强等[5]提出了基于收敛映射CM-Hough变换进行指针检测的算法。该方法直接利用Hough变换的检测结果来计算指针位置。与Hough相关算法不同,中心投影法[6]则是采用Hough变换圆检测和para空间均值圆心的方法来确定仪表盘的圆心,然后基于传统中心投影法的双向扫描求取均值确定角度的算法,并应用角度法计算出仪表指针读数。该方法实现复杂,计算量较大,不适用于实际的工程应用。与Hough相关算法和中心投影法采用传统模式识别技术进行指针仪表识别有所不同,基于深度模型的方法顾名思义是采用深度模型的识别方法。李金红[10]等在指针式仪表识别系统中,率先采用了基于深度目标检测Fast-RCNN算法[11]来直接定位指针的目标候选框,并据此裁剪得到指针图像,然后计算指针示数。与前述两种方法相比,该方法具有更紧凑的端到端推理优势,在大规模高质量标注数据下具有检测精度更佳的潜力。然而,正如上文所述,该方法基于深度检测模型,在具体实现过程中需要采集大量包含指针定位框信息的仪表图像,用于训练深度模型。因此,在实现中更为复杂,对计算资源的要求也更高。此外,在数据标注有限的条件下,该方法对于光照变化大、有阴影干扰的环境,图像不清晰的情况下,识别效果并不理想。综上,现有仪表识别方法与系统仍无法有效兼顾通用性、复杂性与准确性,这在一定程度上限制了在实际场景中的应用。

为此,本文针对标度分布均匀的指针式仪表,利用计算机视觉技术,提出了一种新的简单有效的基于指针式仪表数据自动化读取系统。本系统主要由两个部分组成:图像采集系统和指针式仪表自动化识别算法。图像采集系统包含以下3个步骤:安装仪表识别系统,校准仪表与图像采集摄像头并建立仪表模板。仪表自动化识别算法为本系统核心部分,包含以下4个流程:读取摄像头图像并对其进行预处理和连通区域的筛选,获取圆形仪表盘图像;采用Hough圆检测方法定位圆形表盘;将Hough变换方法与边缘聚类分析相结合,实现指针边缘的精确定位;利用指针角度与仪器模板计算得到当前读数。

本文为指针式仪表的数据读取提供了一种基于图像处理与模式识别的高精度自动化采集系统。实验表明,此系统具有以下优点:①通用性强。本系统通过修改阈值,即可适用于多种应用场景与多类指针式仪表;②准确性高。本系统在动态环境中具有较强的鲁棒性,可正确读取噪声干扰情况下的仪表数据;③实现简单。本系统对监控摄像头的硬件配置要求不高,非高清图像也可以通过该系统得到指针指示。

1 系统总体设计

基于计算机视觉的高精度自动化指针式仪表识别系统的实现,包含图像采集系统的设计与指针式仪表自动化识别算法的设计。系统含有指针式仪表、网络摄像头与计算机3个组件,其中指针式仪表为圆形仪表,摄像头可以是海康监控摄像头,计算机为常见的个人计算机。系统使用流程如下:安装仪表识别系统,校准仪表与摄像头,使摄像头指向仪表盘位置,并建立仪表模板与先验信息;摄像头采集仪表图像并通过网络传输至计算机;利用指针式仪表自动化识别算法对图像进行分析与处理,实现仪表读数的自动识别。

仪表模板与先验信息的建立指采集并保存仪表的信息,不同类型仪表的标定信息可能不同,一般包含仪表量程、最小刻度线角度、刻度线范围、刻度盘识别区域。每个系统安装后需要进行一次校准,并将上述先验信息记录到仪表模板库中,这将有助于后续算法对仪表读数的快速识别。其中,为保证仪表自动化识别算法的准确性,刻度盘识别区域应包含整个仪表盘区域。

指针式仪表自动化识别算法是此智能仪表识别系统的核心,也是本文的研究重点。本文以圆形指针式仪表为研究对象,基于Windows系统Visual studio软件开发平台和OpenCV开源计算机视觉库,利用图像处理与模式识别技术实现了仪表自动化识别算法,其流程如图1。

图1 指针式仪表自动化识别算法流程图Fig.1 Flow chart of automatic identification algorithm for pointer instrument

2 仪表自动化识别算法

仪表自动化识别算法主要包含以下4个流程:①采集图像预处理,包含图像读取、表盘区域提取、图像灰度化与中值滤波;②圆形表盘定位,采用Hough圆检测方法计算得到圆形的中心与半径;③指针边缘精确定位,将Hough变换方法与边缘聚类分析相结合,定位指针;④示数识别,利用指针角度与仪器模板计算得到当前读数。

2.1 预处理

相机拍摄的照片在拍摄过程中会受到各种因素的影响,如光照、温度和湿度等影响,使采集的图像中含有噪声。高斯噪声、椒盐噪声和随机噪声等普遍存在并混叠在一起,当信噪比低于一定水平时,图像不清晰且质量下降,将造成表盘读数不精确。同时,除仪表盘外,图像还包含其他背景信息,这些复杂的背景信息将严重影响圆形表盘与指针的定位精度。因此,为了最大限度地降低噪声干扰和背景信息对仪表盘特征提取与读数造成的误差,突出图像中表盘相关的有用信息,应对相机拍摄的图片进行必要的预处理。

图像预处理包括读取图像、表盘区域提取、图像灰度化和中值滤波4个部分。表盘区域提取是指利用安装系统时记录的先验信息,从摄像头采集的整幅图像中剪裁出一般为矩形的刻度盘识别区域,此步骤可以去除多余的复杂背景,降低仪表读数自动化的难度。图像灰度化指将彩色刻度盘图像转化为灰度图像,由摄像头采集的图像一般为彩色图像,通过图像灰度化,可以去除大量颜色信息,减小后续运算复杂度和存储空间。中值滤波的主要目的是减小噪声并改善图像质量,在仪表盘反光产生光斑的情况下,灰度化处理容易给图像带来椒盐噪声。此外,摄像头采集图像时不可避免地出现其他不可见噪声等,本系统采用中值滤波来滤除噪声。

预处理后图片如图2。

图2 预处理后子图像(刻度盘识别区域)Fig.2 Sub image after preprocessing (dial recognition area)

2.2 圆形表盘定位

预处理摄像头采集图像获取刻度盘识别区域后,需要对仪表的读数进行识别,其关键在于确定指针在表盘上的指向。对于实际的指针式仪表盘,指针已它的轴心为圆心,指针长度为半径,在一个圆周(圆形、扇形或环形)区域内旋转。定位指针前,需要确认此圆周位置,即确定圆心(x0,y0) ,半径R0。

本系统使用的圆检测方案为霍夫曼(Hough Transform)圆检测算法[12-14]。该检测算法普及程度较高,占用内存较少,计算量小,实现简单,具有很好的情景兼容情况。经过Hough圆检测算法处理的图像如图3,绘制出表盘圆形的位置以及圆心的位置。

图3 Hough圆检测结果Fig.3 Hough circle inspection results

2.3 指针边缘精确定位

文中指针定位的为Hough直线检测环向模板匹配法径向灰度求和法。对于指针定位,本系统采用霍夫曼(Hough Transform)直线检测的方法[15],而后通过直线上的点与圆的关系来将错误检测的直线进行过滤。此方案的难点在于Hough直线检测的方法经常与Canny边缘检测算子进行联合使用,而Canny算子的阈值选择以及Hough直线的长度选择都是比较动态的过程,在调节过程非常困难。本文采用可以连续调节Canny算子和Hough检测阈值的方法来选择适合于方案的值,初步测试有较好的效果。图4展示了通过Hough直线检测的方法找到的仪表指针位置(绿色直线)。

图4 Hough直线检测结果Fig.4 Hough straight line inspection results

2.4 示数识别

在得到圆心坐标和直线信息后,需要转化为角度参数。反切函数是以x,y相对于(0, 0)点的位置在不同象限上进行计算的,输出范围为(-π,π),因此需要对输出值进行坐标系转换,图像坐标系和常见坐标系如图5。

图5 图像坐标系和常见坐标系Fig.5 Image coordinate system and common coordinate system

常见坐标系和图像坐标系[16]都在成像平面上,但它们的原点和度量单位不同。常见坐标系的原点通常为成像平面的中点,属于物理单位,单位是mm。而图像坐标系的单位是pixel,通常用行和列描述像素点位置。因此,二者之间的转换如下:其中dx和dy表示每一列和每一行的个数,即1pixel=dxmm,故成像平面与像素坐标系的关系如图6。

图6 成像平面与像素坐标系的关系Fig.6 Relationship between imaging plane and pixel coordinate system

故成像平面与像素坐标系的关系公式为:

推出:

文中识别的指针式仪表刻度是均匀的,指针夹角和仪表刻度的对应关系是线性的。仪表指针准确定位后,可计算出指针与最小刻度线之间的夹角,再将夹角转化为指针示数,具体函数为[7]:

其中:(x,y)表示指针远点坐标,q表示属于哪一个象限。根据模板库文件已知的最小刻度值Vmin,最小刻度的初始角度θmin,最大刻度的角度θmax,仪表的量程Range,可计算出指针示数V:

3 实验结果与分析

图7所示为压力监测仪表,量程为0MPa~25MPa,精度为1MPa。在实际应用中,指针角度的误差允许范围是±3°,读数允许0.3MPa的误差。表1展示了仪表在正常光照情况下实验测试结果,其中真实值为多人视觉观察的平均值。由表1可知,最大绝对误差为不超过0.3MPa,满足仪表自动示数的精度识别要求。

图7 某品牌指针仪表识别结果Fig.7 Recognition results of a brand pointer instrument

表1 指针压力表实验结果Table 1 Test results of pointer pressure gauge

4 结论

针对现有仪表识别方法与系统仍无法有效兼顾通用性、复杂性与准确性的问题,提出了一种新的简单有效的基于指针式仪表数据自动化读取系统。首先,安装仪表识别系统,校准仪表与图像采集摄像头并建立仪表模板;其次,仪表自动化识别算法对图像进行预处理,使用Hough圆检测方法定位表盘位置,并结合Hough变换与边缘聚类分析识别指针角度,利用预设仪表模型计算得出指针读数。本文提出的仪表识别方法与系统在设计中有效平衡了复杂性与准确性,具有通用性强、实现简单与准确性高的优点,将极大促进智能自动化在实际工业场景中的广泛应用。

猜你喜欢
读数指针仪表
◆ 仪表
仪表
垂悬指针检测与防御方法*
热工仪表自动化安装探讨的认识
读数
读数
为什么表的指针都按照顺时针方向转动
读数
读数
奔驰E260车行驶过程中仪表灯熄灭