APP下载

利用摄像设备监控积水深度

2019-10-21袁盈庭

科学导报·学术 2019年33期
关键词:计算机视觉

袁盈庭

摘  要:近年来,全球气候逐渐恶劣。在我国很多城市出现大范围降水,尽管现在城市的管道排水系统已日趋完善,但大范围降水以及充沛的降水量还是使得许多城市的排水系统出现过饱和的现象。这就会在雨水没有得到疏导时,引起局部地区的积水。

为了及时掌握积水深度和积水区域的情况,本文提出了利用摄像设备监控积水深度的研究方向。这个方法通过利用计算机视觉的功能,对获得的图像进行处理识别来检测水位。

关键词:计算机视觉;积水深度;灰度图像

1 引言

1.1 研究背景

当前气候问题已成为一个全球问题,在世界上的很多地方洪涝灾害出现的频率逐年升高,由此带来了城市内涝等灾害。高强度对的降水或持续的降水使得城市的排水系统无法承受,从而引起了城市低洼地段积水灾害的发生。发生城市内涝灾害严重时将造成交通运输、通信、生活供给等与市民密切相关的生活系统的瘫痪,对我们的生产生活造成了各种不便,同时会使得社会经济活动无法进行,由此会造成无法估量的损失。

2.基于Opencv的积水深度检测方案设计

2.1.积水深度自动检测方案

2.1.1模拟实验场景

根据我所研究的课题,需要设计出一个积水区域的实验场景,由于实验条件有限,我简单模拟了一个淹没区域的环境。在这个模拟的实验场景中,我在方形水槽中注入将近三分之二的水,用来表示积水区域,同时,找来一块形状规则且总长度为已知的长条形的红色纸板来代替水尺,而且在纸板上不标明刻度,这是因为我所进行的监控方案中是通过像素值来间接求得积水深度的,而非直接观测。为保证实验结果的精确性,一定要尽量保持纸板与水槽垂直,避免因为水尺倾斜而引起的测量误差。模拟的实验场景如下图2.2:

2.1.2积水深度自动检测

在实验之前,我们可以假设模拟水尺的长度及整个水尺对应的像素值是已知的。这在真实环境中同样也是可以做到的,所以这个假设可以成立。而在前面对图像的处理中,我们已经得到了图像未淹没的水尺部分的轮廓。我们再把这一部分所对应的像素值求出来,通过比例关系就可以得到未淹没水尺的长度,从而求出积水深度。

3.积水深度自动检测关键技术及试验结果

3.1目标图像的边缘检测

3.1.1边缘及边缘检测的算法

在计算机视觉及图像处理中,边缘检测是极其关键的步骤,其目的是检测出图像中灰度值变化特别显著的像素点,依次来提取出图像轮廓。边缘检测其实就是通过特定的算法来标识图像中目标和背景间重叠部分的轮廓线。

在图像的边缘位置,像素点的灰度变化非常的明显。因此,很多边缘检测的方法会利用到这个特性来确定边缘上的点。在一阶微分图像和二阶微分图像中通过找到峰值和零点就能找到对应的边缘点。耿迅[1](2006)指出:“为了克服一阶导数的缺点,可以计算图像的梯度”。图像梯度有一个非常关键的性质,在图像灰度变化率最大的地方可以确定梯度方向,而梯度方向正好能够反映灰度在目标图像边缘上的变化。用来检测图像边缘的算法有以下几种:Krisch算子、Sobel算子、Canny算子和Robert算子等。

3.1.2采用Canny算子进行边缘检测

二十世纪九十年代中期,JohnCanny根据先平滑再求导数的特点,设计出了与Marr边缘检测方法相似的算法:Canny算子。这里讲简要概述Canny算子进行边缘检测的具体要求。采用Canny算子来检测边缘时,我们首先要将摄像设备所采集得到的彩色图像进行处理,也就是灰度化处理。要得到灰度化图像,即将图像的三个分量加权求均值。下面介绍了两种方法来进行图像灰度化:

方法1:Gray=(R+G+B)/3;

方法2:Gray=0.299R+0.587G+0.114B;这一算法将人眼的视觉特点考虑在内,需要注意以下几个方面。

在处理不同格式的彩色图像时,需要依据其对应的关系转换成RGB,之后,在将其转化为灰度图像;注意:在编程时要注意RGB的顺序一般是BGR。

实现方法:OpenCV中实现Canny算法的函数是cv::Canny。正如我们将看到的,该算法需要制定两个阈值。函数调用方法如下://应用Canny算法cv::Mat contours;cv::Canny(image,contours,25,250);//灰度图,输出轮廓,低阈值,高阈值。

3.3水位计算和实验结果

关于水位的计算机视觉检测,在模拟的实验环境中水面是处于平静状态的,水位只会在竖直方向上发生变化,而对于在水平方向上的高低变化忽略不计。我们假想的实验条件包括,水尺的长度以及沿水尺中线方向的像素值之差为已知,所以在摄像机以及水尺的安装位置固定不变的条件下,可以考虑通过像素值的变化情况来表示水位的变化情况。下面我用画图软件,沿着检测得到的边缘图像的中线,得到了水尺底端与中线相交点的像素值得纵坐标为600。

同理可得水尺顶端的像素值纵坐标为150,已知水尺全长为300mm,设某时刻水位线像素值纵坐标为i,所以水位h與像素值i得转换的比例公式如下:

h:300=(600-i):(600-150);

上述公式中水尺顶端和底端的像素值以及水尺的总长,可根据实际应用中的具体数据来确定,这里的数据只是我在实验中得到的。从公式很容易看出,每一个水位的像素值都对应着一个水位。

在实际应用中,这种水位的检测方法将受到几个方面的误差影响:(1)水尺及相机的固定误差:由于两者的位置发生相对移动,将会对检测结果产生重大影响,导致检测数据的不精确。(2)图像边缘检测的误差:尚未找到一种边缘检测算法能够保证提取出精度极高的水位线,这就会影响像素值的精确读取,从而影响水位值得精准性。

参考文献

[1]  VC图像处理——边缘检测  耿迅-《电脑编程技巧与维护》-2006.

[2]  中值滤波编码算法的设计原理与实现  肖昕-《计算机辅助设计与图形学学报》-2004.

[3]  小波变换实现图像导向滤波  李军侠-《电子信息学报》-2007.

猜你喜欢

计算机视觉
基于光流技术的障碍物检测方法
无人驾驶小车定点追踪系统的设计与实现
基于深度卷积神经网络的物体识别算法
双目摄像头在识别物体大小方面的应用
机器视觉技术发展及其工业应用
危险气体罐车液位计算机视觉监控识别报警系统设计
对于计算机视觉商业化方向的研究
基于Matlab的人脸检测实验设计
现代目标识别算法综述
基于分块技术的改进LPB 人脸识别算法的研究