基于图像语义分割的水位智能监测方法

2023-09-25 09:40张文静
关键词:水尺漂浮物灰度

张文静,张 振,黄 剑,周 扬,蒋 芸

(1.河海大学计算机与信息学院,江苏 南京 211100; 2.赣江中游水文水资源监测中心,江西 吉安 343000)

水位是江河湖库的基本水文要素之一,水位数据是防汛抗旱、灌溉、航运和水利设施建设和管理的基本依据,及时可靠的水位自动监测对于提高防洪抗旱的预警预报水平具有重要意义。水尺通过读数来记录水位高度,是最直观、最简单的水位测量工具,但传统水尺测量需要人工定时观测,自动化程度低,人员劳动强度大。现有的自动水位计根据测量原理不同主要包括浮子式、压力式、超声波式及雷达式等[1-3]。但这些设备在实际安装、使用和日常维护中存在一定的局限性,普遍存在设备及安装成本高,测量精度易受环境温度、水体泥沙含量及现场控制结构的影响,测量结果不易校验,需要工作人员定期维护等缺点[4-5]。

近年来,网络视频监控系统已在江河湖库中得到推广[6-7],传统基于图像的方法通过图像处理代替人眼自动检测水位线的读数,包括受人眼视觉启发的方法和基于机器视觉的方法,但这些方法存在一定的局限性。受人眼视觉启发的方法通过检测刻度线和识别字符来确定水位线的位置[8-9],非常依赖刻度线和图像特征的可见性,在水尺局部污垢和损坏、图像分辨率低、自然光不足、人工光照过强等复杂条件下无法测量。基于机器视觉的方法首先检测图像中水位线的位置,然后利用变换关系将水位线像素坐标转换为实际水位读数[10]。然而在野外实际应用中,水尺和拍摄设备之间的距离较远,导致图像分辨率较低、干扰噪声较多。此外野外环境光照强度的变化对成像效果的影响较大,晴天水面耀光、逆光、水体透明、水尺倒影强烈;阴雨天气水尺和水面的灰度值接近、图像信噪比降低;夜间人工补光过曝,使得传统基于灰度、边缘信息的图像处理技术很难准确有效地检测出水位线的位置,同时对于水位线处漂浮物缠绕水尺片等遮挡情况的测量结果无法进行有效性识别。

随着大数据技术和高性能计算设备的发展,深度学习技术逐渐应用于许多计算机视觉任务上[11],传统图像处理方法仅利用低层次特征,难以有效解决复杂水流(波浪破碎、漂浮物缠绕)、光照条件(强光、阴影、反射)下的测量问题,而深度学习方法凭借深层结构,从输入图像的低层次特征中逐步抽象、提取出深层次特征,并以端到端方式自动完成分类,表现出优秀的分类性能[12-13]。目前采用深度学习技术进行水位测量时仍然遵循传统基于图像的两类方法:①通过深度学习识别水尺刻度线和字符,根据刻度线和字符数量确定实际水位值的方法。例如:曹玉超等[14]提出采用深度残差神经网络识别矿井水位标尺刻度的方法能够检测标尺的E型刻度字符,但是不能实现刻度字符到水位的转换,且训练测试样本过少,不能涵盖实际测量的各种条件;王磊等[15]提出采用ResNet网络识别水尺在水面以上部分的刻度线数量,再结合水尺总长度换算成实际水位值,但是并未给出实际的网络模型结构和参数。②通过深度学习识别图像中水位线位置,再换算成实际水位值。例如:潘金秋等[16]提出一种基于CNN的水位测量方法,利用设计的滑动窗口对查询图像进行分类,将水信息图像的ROI (region of interest)分为标尺类和水类,并将这些查询样本输入到训练好的CNN中,得到查询样本的标签,最后通过搜索标签的边界线来确定水位,但是滑动窗口大小对于测量结果的正确性和精度影响较大;程淑红等[17]提出了一种基于U-net的水位线检测方法,使用U-net进行图像分割,得到去除外界因素干扰的水和背景的轮廓,再进行边缘提取获得图像的水位线,但未将水位线分隔结果转化为水位值,并且测量环境相对单一。基于深度学习的方法具有误差小、稳定性强的特点,但现有利用深度学习进行水尺和水面图像分类或者水位线检测的方法,未能在野外实际场景下实现全天候的水位测量,也缺乏针对复杂水流和光照条件的讨论分析。

图像语义分割是人工智能领域中一个重要的分支,随着全卷积神经网络(fully convolutional network, FCN)的出现,深度学习正式进入图像语义分割领域[18]。针对现有方法存在的问题,本文设计了一种基于深度学习图像语义分割的水尺水位智能监测方法(以下简称FCN法),该方法通过构建FCN模型自动提取深层次的水尺图像特征,实现对水尺图像逐像素的分类预测,且能够自动识别测量结果的有效性,便于资料整编时进行人工核验。

1 测量方法

1.1 基本流程

图像法水尺水位测量的基本流程如下:①进行测量系统标定,方法是从摄像机拍摄的原始监控图像中人工选取水尺的ROI,利用与正射水尺模板对应的角点坐标计算透视投影变换矩阵,进而利用该矩阵对水尺图像进行正射校正,实现像素对齐;②采集不同条件下的正射水尺图像构建样本数据集,人工标注图像中不同类型的区域得到标签图;③对构建的FCN模型进行训练,并将训练好的模型用于待测水尺图像的语义分割;④根据分割图像的水平投影曲线检测水位线在图像垂直方向的坐标并识别测量结果的有效性;⑤利用正射校正图像的物理分辨率(即物像尺度因子)将水位线坐标换算为实际水位值,并对多次测量结果进行滤波从而抑制随机误差。系统标定方法见文献[19],以下重点讨论水尺图像语义分割、水位线检测及有效性识别。

1.2 水尺图像语义分割

1.2.1 数据集

基于深度学习的网络模型训练需要大量的样本数据,如果训练样本的数量太少,容易导致过拟合的问题。由于水尺水位测量目前没有直接可用的公共数据集,本研究基于该测点2019年6—8月出现洪水过程的数据,选取不同天气、光照和水流条件下总计1850张正射水尺图像(长2000像素、宽200像素)构建数据集。其中训练样本集和测试样本集按照8∶2的比例进行划分。图像标注采用LabelMe工具,将正射水尺图像按任意多边形区域方式标注为水尺、水面和漂浮物3种类型,生成json格式的标签文件以及8位PNG格式的标签图像,其中3种类型的标签值分别为1、0、2。为便于人工辨识,将标签图像中的像素值扩大100倍得到着色图像。图1给出了光照条件分别为夜间人工照明、清晨昏暗光照、直射阳光、阴影投影、斜射阳光、无人工照明(从左到右)的正射水尺图像(图1(a))及着色标签图像(图1(b))。

图1 不同光照条件下的正射水尺图像及其着色标签图像Fig.1 Orthographic staff gauge images and label images under different illumination conditions

1.2.2 FCN法

FCN以VGG-19网络作为基础网络,与VGG-19网络相比,全连接层全部换成卷积层,可以接受任意尺寸的输入图像,即将全连接层FC-4096、FC-4096和FC-1000替换为卷积层conv17、conv18、conv19,卷积核的尺寸(宽,长,通道数)分别为(7,7,4096)、(1,1,4096)、(1,1,N),其中N为要预测的类别数,本文中N=3,表示水体、水尺、漂浮物3个类别。分类时每经过一次卷积,特征图的分辨率就会降低一半,为了将特征图大小恢复到输入图像的相同尺寸,对特征图进行了上采样操作。

使用Softmax分类器做逐像素预测。Softmax多分类层对各个输入分类器的概率值做指数计算,经归一化后,最大值所代表的类别即为分类结果,判断每个像素所属类别后计算损失函数,将Softmax多分类层的输出向量和样本数据的标签值做交叉熵处理:

(1)

式中:Hx(y) 为交叉熵,用来衡量模型分割结果与标签值之间的差异;xi为标签中第i个元素的值;yi为Softmax层输出向量(y1,y2,…,ym)的第i个向量数据。

利用从ImageNet分类网络上获得的模型参数初始化FCN,训练后的网络用于测试图像的语义分割。输入图像为24位2 000 × 200像素的正射图像,分割后生成像素灰度值在0~2之间的8位JPG格式的结果图像。分割结果表明,水体、水尺和漂浮物部分的像素灰度值分别为0、1和2。在后续的水位线检测中,对分割结果图像的每一部分像素灰度值进行100倍的扩展,即水体、水尺和漂浮物的灰度值分别为0、100和200。

FCN模型基于TensorFlow平台实现,模型训练在操作系统Windows10的工作站上完成,其GPU型号为NVIDIA GeForce GTX 2080Ti,处理器为双路至强E5-2678v3,内存为32GB,显存为11GB。网络训练的初始化学习率为0.0001,迭代次数为2万次,训练时长约为7h。

1.3 水位线检测

在分割后扩大像素灰度值得到的结果图中,对图像中的像素灰度值按行累加[20]:

S(r)=B(r,1)+B(r,2)+…+B(r,w)

(2)

式中:B(r,w)为像素(r,w)处的像素灰度值;r为当前像素的行坐标,取r=1,2,…,2000;w为像素的列坐标,取w=1,2,…,200。各行像素的灰度累加值S(r)构成了像素值水平投影曲线,如图2所示。

图2 分割图像的像素值水平投影Fig.2 Horizontal projection of pixel values in segmentation image

设定水尺和漂浮物部分的固定灰度值阈值分别为Tw和Tg。在分割结果图的像素值水平投影中自上而下进行遍历,S(r)Tg的像素行坐标为漂浮物部分,记为rg。通过式(3)计算水体部分垂直方向的像素长度,确定水位线位置l:

l=rw2-rw1

(3)

式中:rw2为水体部分顶端像素的行坐标;rw1为水体部分底端像素的行坐标。

由于配准图像和模板图像在统一的坐标系下,可以直接采用模板图像的物像尺度因子s将水位线坐标换算为实际水位值L(每个像素对应的实际长度为1mm):

L=l/s

(4)

若rrTg的次数记为n。漂浮物标志位f的初始化值为1,当0δ时,f值跳变为0,表示水尺上缠有漂浮物,提醒用户需要人工校验结果。

2 试验验证

2.1 测点及测量系统

测点位于中国江西省遂川县禾源镇坳下坪水文站,如图3所示。该站处于长江流域鄱阳湖区赣江水系,属国家三类水文站,主要承担小流域基本水文资料收集、提供禾源镇及沿江两岸防汛信息。该段上游有当地采石场,石材加工使得水体较为浑浊。河床由卵石、粗砂、细砂组成,断面稳定。右岸有防波堤,左岸由石头和岩石组成,比较稳定。汛期水位短时间内变幅可达3m,流速可达3m/s。水面有浮木、树枝、漂浮物等上游冲积的漂浮物,波浪和漂浮物对流量测量有一定的影响。水位采用站内浮子式水位计自动测量,可为水位比测提供参考值。以冻结基面为水位零点,历史最高水位为72.18m。

图3 测量系统和断面Fig.3 Measurement system and section

测量系统由硬件和软件系统两部分组成[21]。硬件系统安装于河流右岸站房一侧,其中网络摄像机采用壁装支架安装,相对于水平面的俯仰角和横滚角分别为32.2°和0.1°;图像传感器的分辨率为200万像素,配备4mm焦距的广角镜头;镜头表面贴850nm滤光片使其固定工作于近红外波段以提高成像信噪比;视频数据采用4G路由器和VPN网关上传至云端的工控机进行分析处理。水尺布设于摄像机下游约3m处,零点高程为69.30m;采用尺寸为1000mm×200mm的黑白双色水尺片,量程为2m。软件系统基于网络摄像机软件开发工具包(SDK)和开源计算机视觉库OpenCV在VC++MFC平台下开发。

2.2 结果与分析

为验证方法对于水位线检测和漂浮物识别的有效性,选取2019年6月30日的一个洪水过程进行测试。观测过程起始于16:50,结束于19:10,包含了水位快速涨落及水尺被漂浮物缠绕遮挡的场景。水位测量以5min为间隔、30s为视频时长,共采集了29组数据,每组数据包含了25个测次,水位测量值为25个测次的中值滤波结果。试验中发现,测站浮子式水位计的进水管道由于泥沙淤塞导致测井内水位变化滞后,其读数无法作为有效真值,因此增加了水尺水位的人工目测值作为参考,并与基于传统灰度图像分割的最大均值差法(maximum mean difference, MMD)[22]进行了比较,如图4所示。

图4 6月30日水位测量结果Fig.4 Water-level measurement results on June 30

由图4可以看出:①16:50~16:55时段处于涨水前期,FCN法与浮子式水位计和目测值对比,平均误差均小于2cm;②17:00~17:50时段处于涨水期间,FCN法与目测值对比,平均误差小于2cm,其中17:00时MMD法的水位值偏大,原因是水位线模糊引起单次测量的水位线误检率高,摄像机俯仰角较大,透视畸变严重,使得水尺图像部分分辨率低,图像模糊,而FCN法对这种不利条件并不敏感,体现出在不良测量条件下FCN法的鲁棒性;③17:50~18:10时段水位开始回落,但并未受漂浮物影响,FCN法与目测值对比,平均误差小于2cm;④18:10~19:10时段,受漂浮物影响,FCN法失效,水位线定位在漂浮物与水尺的分界线处,读数偏大,但能准确判定出该时间段内漂浮物缠绕水尺的不良测量条件,即漂浮物识别有效,漂浮物标志位f跳变为0,提醒用户需要人工校验结果,而MMD法无法识别出全部这些不良测量条件,水位线定位在漂浮物顶端。

在16:50~19:10时段,除去18:10以后漂浮物缠绕水尺的时段,共有17组数据,表1显示了这一时期FCN和MMD法测量结果的均方根误差(RMSE)和不确定度。水位测量的系统不确定度X″、随机不确定度X′、综合不确定度X的计算公式如下:

表1 FCN和MMD法测量结果的RMSE和不确定度

(6)

(7)

(8)

式中:N′为比测次数;Lmi为第i个测量值;Lti为第i个真值。

表1中N1、N2分别表示测量误差大于10cm和2cm的测量数。FCN法17组有效测量值的RMSE为1.73cm,优于MMD法,综合不确定度在3cm以内,满足水文测验的要求。测量值误差较大的原因是高速水流对水位计的冲击,造成图像中水位线的倾斜。

为了进一步对比FCN与MMD法的准确性,给出了4组洪水过程的测量结果,如图5所示(图中左侧为监控图像中水尺所在的区域,中间是FCN法的可视化结果图像,右侧为MMD法的可视化结果图像)。可视化图像包括最左侧的标准水尺模板图像以及右侧的25帧正射水尺图像,每帧图像的水位测量结果用白色线条标识,25帧的中值滤波结果用蓝色线条在模板图像上标识。从图5可以明显看出,受漂浮物影响,18:35时FCN法失效,水位线定位在漂浮物与水尺的分界线处,MMD法的水位线定位在漂浮物顶端。其余时间FCN法均能准确地定位出水位线,识别效果较好。

图5 不同时刻水尺图像及测量结果Fig.5 Staff gauge images and measurement results at different times

图6给出了上述4组测量过程中的水尺图像和分割结果(从左至右依次为监控水尺图像、正射水尺图像、水尺语义分割结果和可视化结果)。16:50处于涨水前期,水位较低,水位线相对水平,FCN法能准确分割出水尺区域,如图6(a)中红色区域所示。17:10高速水流冲击水尺,引起图像中水位线倾斜,如图6(b)所示,水尺分割区域的底端也符合水位线的倾斜情况。17:50高速水流冲击水尺顶端,引起图像中水位线倾斜。18:35水位回落,水位线附近漂浮物遮挡缠绕水尺,如图6(d)所示,FCN法能识别出漂浮物缠绕水尺的不良测量条件,并能有效分割出漂浮物区域,体现出FCN法的优势。

图6 不同时刻水尺图像和分割结果Fig.6 Staff gauge image and segmentation results at different times

3 结 语

本文基于深度学习图像语义分割的思想,设计了一种基于深度学习的水尺水位智能监测方法。采用不同条件下采集并由人工精确标注的水尺、水面和漂浮物三分类样本图像构建数据集,训练深层FCN完成对水尺图像的逐像素分类预测,最终在语义分割图像中检测水位线的像素位置,将其转化为实际水位值。试验结果表明,FCN法可对水尺图像进行像素级分割,使水位线检测的分辨率达到像素级,水位测量的综合不确定度小于3cm,满足水位观测标准的要求。FCN法能对漂浮物缠绕水尺的不良测量条件进行有效性识别,达到水尺水位智能监测的目的,可以作为传统监测手段的有效补充。

猜你喜欢
水尺漂浮物灰度
采用改进导重法的拓扑结构灰度单元过滤技术
神秘的海上漂浮物
浅析国内海洋渔船与海船载重线、水尺标志勘划的区别
基于灰度拉伸的图像水位识别方法研究
三峡水库水面漂浮物对近坝段水体重金属的影响初探
海运电厂船舶靠岸侧水尺图像采集实验研究*
水尺标志放样及数控切割解决问题方案
一种新型带电导线漂浮物清除器研制
基于最大加权投影求解的彩色图像灰度化对比度保留算法
基于灰度线性建模的亚像素图像抖动量计算