掌桥专利:专业的专利平台
掌桥专利
首页

一种基于机器视觉的水表耐久性装置漏水监测方法

文献发布时间:2023-06-19 18:37:28


一种基于机器视觉的水表耐久性装置漏水监测方法

技术领域

本发明属于实验环境智能监控领域,具体涉及一种基于机器视觉的水表耐久性装置漏水监测方法。

背景技术

依据JJF1777-2019《饮用冷水水表型式评价大纲》中10.12条的要求,应在满足水表额定工作条件下对参与型式评价的水表进行长达几百小时的连续流量耐久性和断续流量耐久性的实验。水表耐久性装置是完成水表耐久性实验的必备仪器设备,对于实验过程中的异常监测尤为重要。

传统的基于物联网终端的监测预警方法在实验装置周围布设高精度的传感器作为监测节点,各监测节点可以实时感知实验过程中的水流、水温以及水压的变化,然后将监测结果通过低功耗的无线网络进行传输。这种方法可以记录水表实验过程中的异常情况,但是对于装置异常和漏水等情况无法进行甄别,所获得的监控数据可以作为水表耐久性实验过程的依据,但是无法进行装置异常工作情况的实时报警。另一种方法是铺设安防网络,利用传统工业摄像头将实验装置的实时运行画面投屏至监控室,但是还是需要人工24h值守和巡检,无法完全智能的实现监控和报警,更多的是对于发生漏水之后的事后溯源追责。

发明内容

为了解决现有水表耐久性装置人工值守带来的弊端,本发明提出了一种基于机器视觉的水表耐久性装置漏水监测方法,是基于数字图像处理的水表耐久性装置智能监控方案,为水表耐久性实验提供及时监测和异常报警。本发明集成了计算机技术和数字图像处理技术,能够有效准确的进行漏水监测和实时报警,并且有效减少对于人工值守所产生的工作量,采用了基于机器视觉的水表耐久性装置漏水监测方法,将摄像头固定在水表耐久性装置周身,开机以后便对水表耐久性装置的周围环境进行捕捉,将捕获的数字图像传输回监控主机,监控主机调用数字图像处理算法对采集的数字图像进行处理,获取实时的监测结果,再将监测结果传输至计算机进行数据处理。

为了实现上述功能,采用了如下步骤:

步骤S1、对水表耐久性装置的周围环境进行捕获,将采集的视频流进行时间域解析,得到图像序列。具体实现方法如下:

Cap=VideoCapture(0) (1)

Frame=Read(cap) (2)

Imwrite(“x”,Frame,T) (3)

其中,VideoCapture为视频流读取函数;cap为承载视频流的结构体;Read为视频流解析函数;Frame为解析图片;Imwrite为图片存储函数;X为图片存储路径及存储名称;T为图像存储计时器,达到规定时间触发图片存储。

步骤S2、初始化金字塔光流法的各项运动参数,并对解析的图像序列进行分辨率调整:

i

其中,i

步骤S3、将经过调整的图像输入三层金字塔模型进行三维建模。假设存储好的原始图像为i

步骤S4、将原始图像置于三层金字塔模型底层,将分辨率最低的图像置于三层金字塔模型顶层。

步骤S5、完成一个时间序列图像的三层金字塔模型建模之后,对同一金字塔模型层级中相邻两帧图像的运动特征向量:(dx,dy,dt),进行提取,具体计算方法如下:

Pic

其中,Pic

将公式(5)等号右侧进行泰勒级数展开:

光流法假定相邻两帧图像的运动变化量很小,则可进行如下推导:

令△x=u,△y=v,随着视频流被解析成时间域上的n个序列,组成了如下的线性微分方程组:

为了求解u和v,假设图像上以T区域内某像素点为中心的周围像素点的运动方向和大小一致,令

E=∑

其中W

利用最小二乘法对光流误差函数进行求解,可以求得:

A

V=(A

其中,

W=(W(P

通过求解(8)的微分方程,得出了(15)一组运动特征向量,通过将原始图像与运动向量相结合,最终预判特征像素点随着时间推移在空间几何尺度上的变化。

步骤S6、根据三层金字塔模型将前后两帧图像中捕获的异常特征点在空间几何尺度上的变化逐层传递,获得精确的光流场。

步骤S7、采用卡尔曼滤波对承载光流场的图像序列中的噪声进行过滤。去除对检测结果造成较大干扰的像素点。

步骤S8、对经过卡尔曼滤波之后的图像序列进行灰度处理,建立灰度频率直方图,然后进行装置漏水模型的匹配识别。

进行具体方法如下:

i3=cv2.cvtColor(i2,cv2.color_BGR2GRAY) (13)

其中,i2为原始图像;i3为灰度图像;cv2.cvtColor为颜色空间转换函数;cv2.color_BGR2GRAY为固化的颜色转换算子,决定函数执行的代码序列。

步骤S9、针对时间序列前后的两帧图像(就是金字塔模型中同一层级的时间序列的前后两帧图像)进行灰度比较,获取灰度存在明显差异的特征像素点坐标。

步骤S10、通过连续的比较,过滤位置暂时不变的像素点,并对运动像素点在下一帧中的位置进行估计。

步骤S11、对缓慢运动的像素点进行标记,并进行像素点计数。

步骤S12、根据工业摄像头铺设的位置和角度合理设置阈值参数,一旦运动像素点的个数超出设置的阈值,并且像素点运动坐标集中在图像某个特定区域,并且在时间域上呈现一定时段的连续分布,便进行装置漏水报警。

步骤S13、报警信号可以同步远程发送至监控值班室,也可以发送至个人手持终端。

本发明的有效益果:

1、可以实现水表耐久性装置异常监测的智能化。架设完监控设备之后,根据架设位置和角度,合理调试报警参数,即可对水表耐久性装置的运行情况24h无人监控,智能识别,减少了对于固定人员巡检的工作负担,减轻了型式评价实验工作人员的负担。

2、实现监控场景和模式的智能识别,将正常出现在监控画面中的工作人员,水表,灯光等具体场景和异常漏水,喷水等工作情况进行区分,基本杜绝了误报的情况发生。

3、具有较强的漏水识别精度,实现发现即报警,没有延时,缩短人员反应和干预的时间,对于水表耐久性装置实现最大限度的保护。

附图说明

图1为算法流程图;

图2为漏水监控的报警流程图;

图3为金字塔模型结构图;

图4为正常工作状态图像灰度频率直方图;

图5为人员干扰图像灰度频率直方图;

图6为光线干扰图像灰度频率直方图;

图7为装置渗水图像灰度频率直方图。

具体实施方式

下面结合附图对本发明做进一步的说明。

如图1所示,为本发明的检测流程图。从架设的监控设备(工业摄像头)中获取一段漏水监控视频,进行相关算法的实现与验证。

一种基于机器视觉的水表耐久性装置漏水监测方法,具体实施步骤如下:

1.通过水表耐久性实验室布设的监控设备,获取视频流,对水表耐久性装置的周围环境进行捕获,并对监控视频流进行时间域解析,得到图像序列。在本实施例中,每隔0.2s保留一帧。

Cap=VideoCapture("E:\\videoSave\\20221104.mp4")

Frame=Read(cap)

Imwrite("E://Data//ThirdLayer-Pramid//n.jpg",Frame,0.2)

其中,VideoCapture为视频流读取函数;Cap为承载视频流的结构体;函数引号内为视频流的读取路径,Read为视频流解析函数;Frame为解析图片;Imwrite为图片存储函数;函数引号内为图片存储路径及存储名称;0.2代表图像存储计时器,每隔0.2秒触发图片存储。

2.首先通过在监控主机的存储设备中调用固定路径的图像序列,获取初始图像,

Frame1=imread("E://Data//ThirdLayer-Pramid//n.jpg")

其中Frame1为从图像存储路径中获取的原始图像,imread为图像导入函数,引号内为图像在计算机存储介质中的获取路径;

其次对图像进行分辨率调整,

AutPramid3=ImageReSize(Frame1,(1280,760))

AutPramid2=ImageReSize(Frame1,(640,380))

AutPramid1=ImageReSize(Frame1,(320,190))

其中,ImageReSize为图像初始化函数,AutPramid3为对应分辨率为1280*760的图像,AutPramid2为对应分辨率为640*380的图像,AutPramid1为对应分辨率为320*190的图像。

然后对金字塔光流法的参数进行初始化:

其中,typedef struct particle为初始化定义了一个名为“PARTICLE”的光流场结构体,int orix,oriy为原始光流粒子的坐标,int x,y为光流金字塔模型中当前帧的粒子坐标,double scale为光流金字塔模型中当前光流粒子的窗口尺寸,int prex,prey为光流金字塔模型中上一帧粒子的坐标,double prescale为光流金字塔模型中上一帧光流粒子的窗口尺寸,Rect rect为当前光流粒子集中汇聚的矩形区域,Mat hist为当前矩形区域的灰度频率直方图特征,double weight为当前粒子的权重。同时x轴梯度运动参数U=0;y轴梯度运动参数V=0;计数器C=0。

3.将经过调整的图像输入三层金字塔模型进行三维建模。

假设存储好的原始图像为i

4.将AutPramid3图像设置为金字塔模型中的第一层图像,AutPramid2设置成金字塔模型中的第二层图像和AutPramid1设置成金字塔模型中的第三层图像,具体模型如图3所示。

5.通过算法内置的解析方法求解线性微分方程组,计算获得相邻两帧图像的运动特征向量。

6.通过原始图像与运动特征向量相结合,获得异常像素点在下一帧图像当中的运动估计,获取精确的光流场。

其中i为光流场的计数器,Dot[1].size()为现有光流金字塔模型中的异常像素点个数,Vector代表了运动特征向量,firstTrack[1][i]代表了异常像素点上一次的最终运动估计,Dot[1][i]代表参照本次光流金字塔模型中计算的结果在下一光流金字塔模型中运动估计。Drawcircle为实现将异常像素点上一次的运动估计在AutPramid1中进行坐标标记。Scalar(0,255,0)代表了标记坐标点的颜色。

7.采用卡尔曼滤波对承载光流场的图像序列中的噪声进行过滤,卡尔曼滤波通过分析样本间的相似程度进行聚类,通过分析各样本数据到样本中心的几何距离来判定样本间的相似程度,去除异常的光流值。

AutPramid1_fliter=KalmanFilter(AutPramid1,3)

AutPramid1_fliter为经过卡尔曼滤波之后的图像,KalmanFilter为卡尔曼滤波函数,3代表选用的滤波窗口大小。

8.对经过卡尔曼滤波之后的图像序列进行灰度处理,并建立灰度频率直方图进行装置漏水模型的匹配识别。

AutPramid1_gray=cv2.cvtColor(AutPramid1_fliter,cv2.color_BGR2GRAY)CalicHist(AutPramid1_gray,piexl,channels,ranges)

AutPramid1_fliter是经过卡尔曼滤波的原始图像;AutPramid1_gray为灰度图像;cv2.cvtColor为颜色空间转换函数;cv2.color_BGR2GRAY为固化的颜色转换算子,决定函数执行的代码序列。

CalicHist分析图像的灰度频率直方图函数,piexl为特征像素点的颜色,channels为特定颜色特征像素点的聚类个数,ranges为聚类的宽度。

图4至图7分别是四种不同情况下的灰度频率直方图,分别表示正常状态、人员干扰状态、光线干扰状态以及渗水状态下的灰度频率直方图。

9.对经过灰度处理的图像进行异常特征像素点的提取并获取坐标参数。

Calic_flow[i][j]=getVector(AutPramid1_gray)

getVector:坐标提取函数,Calic_flow[i][j]:存储坐标的二维坐标矩阵。

10.通过连续的比较,过滤位置暂时不变的像素点,并对运动像素点在下一帧中的位置进行估计。

11.通过对异常像素点的运动估计描绘出异常像素点在金字塔模型中的运动轨迹,对连续运动的像素点进行运动估计和像素点个数累积统计,最后绘制漏水区域:

DrawRectangle(AutPramid1,tracking_rect,Scalar(0,0,255));

DrawRectangle为区域绘制函数,tracking_rect为运动估计结构体,Scalar(0,0,255)为区域颜色。

12.根据工业摄像头铺设的位置和角度,设置阈值参数,在预设的时间域内判断异常运动像素点个数是否超过预设阈值参数并且在漏水区域呈现时域的连续分布,便进行装置漏水报警,如图2所示。

13.对异常情况进行报警,通过无线网络将实时漏水画面远程投送至个人终端和控制室的监控投屏。

测试采用视频流中出现3次人员干扰,3次光线明暗干扰,3次装置渗水。检测结果总计触发三次渗水报警,并且报警机制正确,报警率实现100%,未因干扰触发误报,误报率为0。

技术分类

06120115636746