APP下载

基于OPENCV的仪表图像识别技术的研究与应用

2023-02-16张文超

中国设备工程 2023年3期
关键词:水表干式树莓

张文超

(大庆油田责任有限公司第四采油厂数字化运维中心,黑龙江 大庆 163511)

为了满足油田站库自动化工控系统仪表数据的采集及检定的需求,进行了以视觉识别技术替代人工现场读数的研究。由于采油厂每年干式水表检定量较大,同时,每块需要检定3个流量点,每个流量点测试一次需要5分钟。而现有的检定台为人工操作,人工读数录入,工作量很大。本文利用OPENCV图像识别技术,结合现场进行干式水表检定中的数据读取应用试验,经过多次现场试验及论证,提出了一种可以实现仪表视频图像识别的模型。该模型通过工业摄像头采集仪表图像,将表盘图像进行预处理,然后采用2D卷积运算,并转化为HSV空间图像。通过霍夫变换进行表盘轮廓识别及表盘圆心定位,利用形态学算法对图像字符定位分割,并建立数字匹配模板,利用特征识别判断表盘数据,实现了仪表的自动识别功能,降低了员工的劳动强度。

1 仪表数字识别的系统搭建

1.1 硬件系统搭建

由于树莓派是一款基于ARM的微型电脑,具有低功耗、体积小的特点,可以进行网络数据传输,并可以连接USB视频头,自身带有LINUX系统,运行OPENCV环境。因此,本文选用树莓派运行OPENCV进行仪表识别的硬件,通过USB接口连接工业免驱摄像头,识别的结果通过网络接口传递给主控计算机,可以进行数据处理并实现报表证书生成等功能。

1.2 软件系统搭建

在树莓派上运行基于PYTHON语言的OPENCV环境,OPENCV自带视觉库,并且具有视觉识别的底层接口500多个函数,可以快速进行视觉识别系统开发,因此本文在具有OPENCV底层接口函数的这样一个环境进行开发,可以更便捷、快速地进行油田仪表图像识别技术的研究。其开发环境,如图1所示。

图1 PYTHON+OPENCV软件环境

在主控计算机采用VB.NET语言环境进行开发,用于接收树莓派发送的网络数据,进行数据运算,生成证书。

2 仪表数字识别技术研究

2.1 图像的色彩空间转换

采用USB摄像头直接采集的为RGB图像,即每个像素都拆分为红绿蓝三种颜色的比重混合而成,称为RGB色彩空间。RGB色彩比重受光线照度影响较大,为了最大限度地消除光线对仪表图像的影响,将RGB图像转换为HSV图像,即色相、饱和度、透明度模型,由于我们待检定仪表颜色为青色,因此,表体青色区域进行掩膜识别。其对表体外部识别效果,如图2所示。

图2 HSV色彩空间颜色定义

2.2 表盘定位

我们要识别的干式水表表体为圆形,因此,可以对表体区域进行圆形识别。采用霍夫圆函数检测表盘区域范围的圆,记录圆心坐标及半径,并与图像中进行绘制识别结果。在实验中发现,由于受到光线、仪表摆放影响,每次的表盘圆心定位结果是有一定偏差的,为后续的字符图像分割、识别造成一定干扰,因此,不可通过一次定位识别就给出最终结果,需要多次定位识别,获取最准确的结果。

2.3 仪表图像倾斜校正

进行数字仪表图像采集时,由于干式水表人工放置检定区域后,不能保证采集的数字图像与摄像头角度完全一致,采集的图像会发生倾斜。为了方便后期图像分割识别,需要对倾斜的图像进行校正。摄像头采集图像及检测校正结果,如图3所示。

图3 表盘旋转校正

首先,将仪表图像进行Canny边缘检测,得到仪表轮廓图像矩阵,与表盘内部区域进行与操作,除了表盘外部区域图像点,然后,对仪表图像内部液晶显示屏区域进行Hough直线检测,得到一组线段,找出最长的线段,即为液晶屏区域的轮廓线,再根据检测到的直线两个端点的坐标值,进行反正切运算,得到直线倾斜角度,然后,以0.1°~45°进行筛选,即为图像旋转角度,然后利用图像旋转函数,将仪表图像进行旋转校正。

2.4 图像形态学处理

为提取更有效、清晰的图像数据,进行特征识别,就要除去多余的图像像素。该系统可以对仪表图像进行腐蚀(Erosion)膨胀(Dilation)等数学形态学运算,对图像进行滤波处理,平滑边界。提高图像的质量,并填充仪表读数图像中的细小空洞,避免单个数字各段码之间的中断。

2.5 仪表图像二值化

为了能够准确地识别字符,第一步需要对图像做二值化处理,使该图像分割成背景部分和目标部分。采用最经典的全局阈值的Otsu算法。为了避免对比度和光照不均匀对二值化的影响,要先对图像进行顶帽处理,然后再进行二值化处理。这样能够使二值化效果达到预期的目标,然后二值化,得到黑白图像数字矩阵。

2.6 字符分割及提取

通过以上程序对仪表图像处理后,我们就可以获得一个高质量的二值化黑白图像,然后,需要对数字仪表的读数进行定位与分割,这样就可以有效地稳固而二值化图像的基础数据。精准的定位分割,可有效地提高程序及识别率。

仪表表盘数字定位分割一般有基于连通域和基于投影法的仪表数字定位与分割。 但是,不同的光照条件,仪表的影子对水平投影的影响过大,在有影子存在的情况下,不能理想地分割出表盘上的每个字符。因此,本文采用的是基于连通域的方法来进行数字的定位与分割。

在图像中,用f(x,y)表示位于图像阵列中第x行、第y列的像素的值,一幅m×n的图像具有m行n列,f(0,0)表示图像左上角的像素值,f(m-1,n-1)表示图像右下角的像素值。遍历图像,通过4邻域连通标准查找出所有符合的连通域,这样就可以把图像中每个分离的区域检测出来。

在查找出所有连通域后,按照连通域的面积、读数的形状、长宽比来进行筛选,排除不符合条件的区域,这样就可以直接定位并分割出数字仪表的每个读数。算法实现步骤如下。

(1)计算连通域面积:连通域A的面积就是像素值为255的点的数目,即区域的边界内包含的像素点数。

(2)计算连通域的长宽比:连通域的宽/连通域的长。

(3)遍历所有连通域,如果连通域面积大于500小于5000且连通域的长宽比大于1.5小于2.5则提取,如果不满足以上条件则舍弃。这样便可筛选出满足要求的连通域,即数字仪表每个读数。

2.7 仪表数字样本制作

将表盘字符高清拍照,并将图片导入CAD,利用CAD的直线命令将数字边缘进行描点绘制,并进行填充,完成样本图像制作,然后,保存为bmp格式图像,与PYTHON程序文件存放于同一目录下。

2.8 仪表数字识别

数字识别就是要比较待识别图像与样本中哪个特征最接近。采用欧式距离法进行比较,分别提取样本特征与待识别图像特征值,将待识别图像特征值矩阵依次与样本图像特征矩阵做平方差运算,方差越小,说明特征值越接近,判断为该数字。

2.9 识别算法的修正

利用图像矩阵方差运算识别图像准确率较高,缺点是耗时较长。在识别的数字少时可以使用。本文中所用的干式水表所需要进行识别的有11个数字,运算量很大,识别一帧图像数据需要5s。为了提高识别效率,本文最后一步修正算法,采用了穿线法,即通过识别七段数码管各个段的明暗状态进行编码,可以大幅度地提高识别效率,识别一帧图像仅需要不到1s。在主程序里用namedWindows函数创建窗口,建立一个无限循环的while函数,使用imshow函数显示视频图像帧。然后进入视频读取识别程序,只有当所有位置的数字都准确识别对应后,才给出最终结果,如果有没识别出对应位置上的数字,说明本次识别结果不准,重新进行表盘定位及下一轮结果识别程序。

2.10 识别结果传输

树莓派通过视频识别仪表数字后,通过网络接口与计算机建立TCP/IP连接。计算机作为服务器端,监听端口,树莓派所谓客户端,连接服务器端口。采用Socket模块接口,使用socket套接字,连接服务器。当树莓派接收到计算机发送的视频识别指令时,开始进行视频识别,识别完成后,将识别结果发送至计算机端显示。

2.11 补光处理

在实验中我们发现,外界光线会对识别结果造成干扰。特别是会在液晶区域形成阴影,造成识别结果准确率下降。因此,在每个USB摄像头周围,均匀加装了10只LED灯珠,在启动识别的时候,开启LED灯光,在表盘进行四周补光,消除表盘液晶区域的阴影,提高了识别准确率。

3 现场应用

在干式水表检定间现场应用时,可以替代人工识别出水表的数值。经过上千组数据读数验证,识别准确率>95。可以有效替代人工进行数据录入,降低员工的劳动强度,提高工作效率。

图4 干式水表检定间现场应用

4 结语

本文采用树莓派、USB工业摄像头搭建了仪表视频识别硬件系统,采用PYTHON和OPENCV库进行仪表视频识别的软件环境。通过一系列试验探索,对干式水表数字进行识别,实现干式水表视频数据的实时采集、图像处理及结果输出。得到以下结论:

(1)树莓派具有体积小、集成度高、安装方便、开发简单的特点,可以以树莓派为视频识别硬件,在油田工业环境下进行视频识别;(2)本文研究的仪表视频识别技术可减少劳动强度,为自动化检定、智能检定打下基础;(3)本文研究的仪表视频识别模型图像识别步骤具有实用价值,可以进一步完善推广在指针式仪表、数码显示仪表中应用。

猜你喜欢

水表干式树莓
干式喷漆室的商用化
干式荧光发光法在HBV感染诊疗中应用价值
含废镁碳砖中间包镁质干式料的研制
水表普查与水表挂接子系统建设
水表检定装置不确定度分析计算的相关思考
基于树莓派的骑行智能头盔设计
防冻水表
基于树莓派的远程家居控制系统的设计
FT-Dry全干式光缆的开发与应用
响应面法优化红树莓酒发酵工艺