基于视频图像的嵌入式水位监测方法
2023-01-12靳晓妍
张 帆, 靳晓妍
(湖南大学电气与信息工程学院,湖南 长沙 410082)
0 引 言
水电站是实现水能到电能的水利枢纽工程,持续、稳定的电能对人民的日常生活与生命安全具有重要作用。在水电站的安全调控和运行优化过程中,实时水位数据具有重大意义。在水位测量领域,现有水位检测方法主要有接触式与非接触式两种[1-2]:常用的接触式[3-4]方法有电容式、压力式水位检测方法等,这种方式与水体直接接触,故障率相对较高;非接触式[5-9]包括超声波、雷达、图像处理等检测水位方法。超声波、雷达检测方法是向水体表面发射脉冲波,根据反射波的接收时间来计算水位高度,但波动水体对检测的精度有较大影响,不适用于小型水电站。图像处理检测水位[10-18]方法在很多场景得到了应用,大多是通过模板匹配或图像差分的方法辨识图像中标尺的刻度来确定水位高度,但标尺很容易受水体污染腐蚀刻度,影响检测精度,限制了这种方法的推广应用。
本文提出一种基于移动激光与视频图像处理技术的水位监测方法,采用光斑提取与目标跟踪算法识别激光轨迹,从而得到水位信息来计算水位高度。该方法不需要背景标尺,因此避免了水体污染标尺而影响检测精度的问题。
1 总体方案
所设计水位监测系统的结构示意图如图1所示。
图1 系统结构图
系统主要由背板、支架、挡板、嵌入式设备、摄像机、激光模组与电机组成。背板采用磨砂表面,支架采用钢构支架,挡板安装在支架上方,可以遮挡强光和雨水。嵌入式设备安装在水平支架上,控制摄像机、激光模组与电机的开闭。摄像机固定在水平支架下沿,并斜向下面对背板,保证水位高低变化均处在摄像机拍摄范围。电机带动激光模组转动,调整激光模组的角度,使激光模组照射在背板的激光点从上到下移动至水面。摄像机采集激光点移动期间的视频图像,检测时根据图像的颜色特征提取红色激光点,根据激光点在视频图像中的移动轨迹确定水位线在图像中的位置,依据几何关系计算得到实际水位高度,并传输水位数据至服务器。系统结构原理图如图2所示。
图2 系统结构原理图
2 水位识别与计算
水位监测系统主要包括光斑提取、图像水位判别与实际水位高度计算三个部分。
2.1 光斑提取
2.1.1 红色区域提取
激光模组照射出的激光点颜色为红色,其在自然界极少出现,所以根据图像颜色特征进行光斑识别,从而提取目标光斑。传统的图像色彩分析大多基于RGB颜色模型,将红、绿、蓝三色通过加色法配置出人眼看到的颜色,难以单独得到红色区域。为了得到完整的红色区域,将RGB格式的图像转换到HSV色彩空间,计算公式如下:
式中:R(Red)、G(Green)、B(Blue)——图像的红、绿、蓝色彩分量;
H(Hue)——颜色的色调,如红、黄、蓝等,其度量范围为 [0 180];
S(Saturation)——颜色的饱和度,指的是颜色的深浅程度,其范围为 [0 255];
V(Value)——颜色的亮度,范围为 [0 255]。
HSV颜色模型更加符合人眼能够感知的颜色特性。转换后的图像如图3(a)所示。根据OpenCV(open source computer vision library)提供的 HSV颜色模型标准,模糊红色范围为 H[0 10] &[156 180],S[43 255],V[46 255]。通过设定 HSV 三通道,特别是H通道的阈值对图像进行分割,从而得到包含全部红色光斑区域的灰度图,由于反射的红色光斑较浅,为了准确识别,将S通道的范围适当放宽,可得到如图3(b)的图像。
2.1.2 形态学处理
经过阈值分割后的图像光斑较小,形状不规则,还可能存在一些噪点,影响目标光斑的提取,对图像进行形态学处理可以去除光斑内的孔洞与噪点,得到更清晰的光斑图像。膨胀和腐蚀是最基本的图像形态学处理,在消除图像毛刺,使轮廓光滑等方面具有优异效果。其中膨胀是求图像的局部最大值,经过膨胀后的图像拥有更大的高亮区域,可对光斑内部的区域进行填充,消除孔洞,腐蚀是求图像的局部最小值,图像经过腐蚀后高亮区域变小,还原图像信息。对每帧图像进行先膨胀后腐蚀的闭运算,填充光斑像素间断,消除冗余像素。经过形态学处理后的图像如图3(c)所示。
2.1.3 中值滤波
形态学处理后的图像可能存在由于环境干扰产生的噪声,如热噪声、椒盐噪声等,需要对其进行低通滤波去噪,这里选用中值滤波,可以在保留图像目标光斑的前提下滤除孤立噪声点。中值滤波将与周围一定区域的像素值差距过大的点判断为噪声点,对其按照周围像素点的中值重新设定,从而消除噪声。经过中值滤波后,小于设定大小区域的噪声被滤除,期望的光斑会被保留,得到的图像如图3(d)所示。
图3 图像处理过程图
2.2 图像水位判别
2.2.1 静止水体水位判别
为了得到光斑的移动轨迹,需要对检测到的光斑进行跟踪,由于摄像机为斜上方拍摄,光斑的形状在移动中会发生变化,采用基于ASMS的目标跟踪[19]算法跟踪光斑位置。基于ASMS的目标跟踪算法基于mean-shift框架。在OpenCV中,基于mean-shift的目标跟踪算法主要过程为:1)对图像中的目标区域进行直方图描述;2)根据直方图构建下一帧的反向投影图;3)在反向投影图中迭代找出与目标区域相似性最大处,即为目标移动的位置。
基于ASMS的目标跟踪算法加入了先验(尺度不剧变)作为正则项,提高目标跟踪正确率,算法基本流程如下:
1)选取视频图像第一帧,将图像中的光斑区域手动框选,将此区域作为模板区域,对此区域以直方图形式进行描述。
2)设定相似性度量阈值,当计算得到的相似性度量函数结果大于等于此定值时,认为此处区域为跟踪目标。
3)从下一帧图像的上一帧图像目标区域中心点开始迭代,与模板区域进行相似性对比,使用的相似性度量函数为:式中:u——区域直方图的索引;因子矫正相似性的计算。
4)计算光斑区域的尺寸参数,将其作为正则项
5)对比同一图像的所有待匹配区域与模板区域的相似性,选择大于等于相似性度量阈值的区域作为本帧图像的匹配结果,记录此区域的中心点坐标。
6)重复步骤 3)、4)、5),对所有图像进行处理,直至视频所有图像检测结束。
经过以上步骤处理后可以得到直射光斑与反射光斑的移动轨迹坐标,观察光斑轨迹发现,激光点移动过程主要分为以下四个阶段:
1)系统开始运行后激光亮起,背板上端出现激光模组直射的激光点,由于光的反射,水面上出现反射激光点。
2)随着直射激光点向下移动至接近水位线,水面上的反射激光点也接近水位线并向上移动。
3)直射激光点与反射激光点在水位线位置重合。
4)直射激光点继续向下移动,反射激光点继续向上移动,远离水位线一定位置后熄灭。
激光轨迹示意图如图4所示。
故判断,直射光斑与反射光斑的坐标差值为0或小于设定阈值时光斑坐标为水位线位置坐标,即图4中c图的位置。
2.2.2 波动水体水位判别
水体静止只存在于少数情况,在实际生产中大多数情况下水体呈现波动状态,水体波动情况下视频图像中的光斑状态可能不同:当直射激光打在背板时,水面上可能出现复数反射光斑,且形状不规则,面积变化较大,当直射激光打在水面时,水面可能由于水体波动出现多个光斑,背板上的反射光斑也可能为复数,或互相粘连。
为了将水位线以上和水位线以下的光斑进行区分,采取静态数据分析中的数据聚类技术对滤波后的光斑图像进行分析。
K-means算法[20]是最常用的聚类分析算法之一,它将距离越近的对象判定为相似性越大,以此为根据对多个对象进行分类,基本流程如下:
1)在整幅图像中随机选取K个对象作为聚类质心,本方法为了将图像光斑依据水位线以上和水位线以下进行分类,取K=2。
2)假设光斑对象共有N个,对于每一个对象,找到距离它最近的质心作为标签,若N=1,则直接分为一类,分类结束。计算方式如下:
式中:c——类标签;
x——各个光斑对象;
3)对于同样标签的类,更新其质心,公式如下:
4)重复步骤2)和3),不断划分新的聚类,计算新的质心,直至新的质心和上一次计算的质心相同或差距小于设定的阈值,判断此时聚类收敛,分类结束,记录此时两类光斑的质心位置。
光斑图像经过分类后可得到直射激光点类与反射激光点类的移动轨迹,将两类质心的移动轨迹作为直射与反射光斑的移动轨迹坐标。
由于水体波动、光照强等原因,水面上的激光点可能由于不清晰而导致误检,或由于光的反射呈现复数激光点,不能简单地将两个激光点重合时判断为水位位置。观察发现,当直射激光点到达水位线之前,较上端的光斑为直射激光点,且向下移动;当直射激光点到达水位线之后,较上端的激光为反射激光点,且向上移动。因此,判断图像上端首个激光点类的移动轨迹最下方为水位线位置。
2.3 水位高度计算
构建系统几何关系图,如图5所示。经过图像水位判别方法后得到的水位在图像中的位置为C,此处像素值即为AC的长度。摄像机采集图像为640×480像素大小,图像纵向长度AD为480像素,摄像机的广角为41.41°,图像中水位以上部分的角度∠AOC即α的大小可由下式计算:
图5 系统几何关系图
摄像机在支架上的位置为O,图5中虚线部分OA,OD为摄像机的广角,其视野最高点为A,支架拐角处为Q。标尺测量得到AQ与OQ的长度,则∠AOQ即β的计算式为:
在 △OQC′′中,根据正切定理,可以得到水面以上背板的高度的计算式:
背板固定在墙壁上,已知背板长度QX,可得到水位线距离背板底端的高度的计算式:
通过以上计算得到实际水位高度,若计算水位线距离水底的高度,可在公式(8)中增加背板底端到水底的距离。系统事先设定一个固定值作为安全水位阈值,一旦实际水位等于或超过安全水位阈值,系统会发送警报至管理人员。
3 实验结果与分析
3.1 装置组成
选用 Raspberry Pi基金会的 Raspberry Pi 4B 开发板作为嵌入式设备,支持4 GB运行内存,体积小,性能强。垂直水面的支架长度为1.8 m,水平支架长度为1.6 m,可以使摄像机广角覆盖水位高低变化极限。摄像机内置5 000万像素,通过HDMI线与树莓派进行数据传输。电机选用可240°旋转的舵机,由树莓派供电并工作在5 V电压下。电机通过机械结构带动激光模组匀速转动,调整激光模组的角度,使激光模组照射在背板的红色激光点从上到下移动至水面。多次试验发现激光模组直接全压(5 V)启动会对其产生电流冲击现象,缩短使用寿命,故选用PWM调压启动来保护激光模组。
系统安装的实物图如图6所示。
图6 实物安装图
3.2 实验结果
分别在水位变化明显的14:00-17:00与23:00-01:00时间段依据以下步骤进行实验:
1)关闭水电站的发电机,将水体静止时人工观测水尺得到的水位数据作为水位高度依据。
2)记录同一时间该水位检测系统检测的水位高度作为静止水体测量水位方法的结果。
3)开启水电站的发电机后,水体开始波动,系统重新检测此时的水位高度,将此高度作为波动水体测量水位方法的结果。
4)使用基于模板匹配的图像处理检测水位方法测量此时的水位值。
选取时段的水位从51.48~177.84 cm,变化幅度为126.36 cm,白天进行48组对比实验,夜晚进行34组对比实验,该水位监测系统拍摄的每段视频包含激光点从上到下移动一次的时间,均为23.74 s,每秒拍摄32帧,视频处理所需时间在25~60 s之间,造成这种差距的原因是夜晚的视频图像基本为黑色,图像信息较少,处理较快。模板匹配法在夜晚测量时进行人工补光。
计算得到的数据如表1所示,E为与人工测量水位相比的绝对误差,系统静止水体测量方法的数据量为N1,占比为σ1,系统波动水体测量方法的数据量为N2,占比为σ2,基于模板匹配的图像处理检测水位方法的数据量为N3,占比为σ3。
条件 样本数E/cmN1σ1/%N2σ2/%N3σ3/%
白天 48<0.1 21 43.75 9 18.75 3 6.25 0.1~0.3 15 31.25 11 22.92 7 14.58 0.3~0.6 12 25.00 16 33.33 11 22.92 0.6~2 0 0 12 25.00 22 45.83>2 0 0 0 0 5 10.42
夜晚 34<0.1 18 52.94 6 17.65 3 8.82 0.1~0.3 12 35.29 7 20.59 4 11.76 0.3~0.6 4 11.76 12 35.29 7 20.59 0.6~2 0 0 9 26.47 16 47.06>2 0 0 0 0 4 11.76
以GB/T 50138—2010《水位观测标准》为依据,采用自动监测设备检测水位时,其系统平均误差的计算方式为:
式中:Px——系统测量水位高度;
Pr——人工测量水位高度;
N——测量次数。
分别计算系统静止水位检测方法的平均误差X1,系统波动水位检测方法的平均误差X2,模板匹配检测水位方法的平均误差X3,得到表2。
表2 不同条件下平均误差表
根据统计数据,在水体静止时任何光线条件下,该监测水位方法的测量误差均小于0.6 cm,其中,在白天测量的平均误差为0.24 cm,夜晚测量的平均误差为0.15 cm,在水体波动时,该检测水位方法的测量误差均小于2.0 cm,其中,在白天测量的平均误差为0.49 cm,夜晚测量的平均误差为0.48 cm,可见该系统在任何光线条件、水体状态下均可以满足测量精度要求,且夜晚的测量精度略高于白天。
实验结果表明,该系统检测水位方法在不同光线、水体情况下均可正确检测,测量误差小于2.00 cm,满足水位检测精度要求,系统水位计算方法简单,速度较快,证明了该水位检测方法稳定有效。
4 结束语
本文提出了一种基于可见激光与视频图像处理技术的嵌入式水位监测方法,该方法不通过辨识水尺的刻度得到水位,而是通过识别可见激光从背板到水面的移动轨迹得到水位位置,避免水体污染标尺对检测精度的影响,在波动水位检测方面表现优异。另外,水位线识别只关注背板部分图像,大多背景区域无需考虑,对图像进行目标区域提取,提高了工作效率与检测精度。
优化方向:由于支架的安装只能在竖直墙壁上,使用场景具有一定的局限性,后续准备取消支架,将嵌入式设备、激光模组、电机和摄像机等硬件设备做成一个整体,可安装在待测量水位对面的任意墙壁上,进一步扩大应用范围。