APP下载

基于卷积神经网络的监控图像水位识别

2023-09-27王述强艾小坚

江西水利科技 2023年5期
关键词:水尺语义像素

王述强,张 飞,艾小坚

(1. 信江饶河水文水资源监测中心,江西 上饶,334000;2. 江西省水文监测中心,江西 南昌,330002;3. 西安电子科技大学,陕西 西安,710071)

0 引言

水文监测是许多国家非常重要的研究领域[1],尤其是在河流区域较多的国家。河流在人类生活中起着至关重要的作用,也是洪水的源头。雨季洪水频发,造成大量经济损失和灾害性疾病。据中国国家减灾中心统计,洪水也是2020 年的主要灾害,造成27 个省3200万人受灾。因此,准确、快速地开展河流水位检测,迅速应对洪涝灾害迫在眉睫。

本文引入卷积神经网络来检测水尺和水尺上的印刷数字。然后,使用语义分割模型对水面上的水尺进行分割,得到准确的水位线。前者是目标检测任务。本文采用改进的目标检测模型FCOS[2]来检测水尺和水尺编号。得到数值相关信息后,下一步就是检测水位线。文章通过在水面以上划分水尺来间接检测水位线。为了实现这一点,本文采用了Deeplab-v3+[3],它是一种高效的语义分割模型。为了提升模型边缘计算和模型的对复杂水文场景的检测能力,本文对FOCS 和Deeplabv3+加入了上下文融合语义模块,分别将改进后的模型命名为FCOS-CA,Deeplab-CA。

1 研究方法

1.1 水尺及数字区域检测模型

本文提出的模型主要是用边缘计算的思想进行部署的。网络需要在确保准确性的同时尽可能小。本文提出的FCOS-CA 模型使用ResNet-54 作为主干网络。FCOS 使用五个不同尺度的特征图进行进一步检测。由于任务是单个目标检测,因此这些不同尺度的特征图是不必要的。模型只使用三个特征图。回归和分类的特征也减少到了3 个。采用上述修改后,本文提出的模型在检测精度和模型大小之间达到了平衡。FCOS 的骨干网络充分提取了原始图像的语义特征。不同高度的特征图层包含不同层次的语义信息,较低层次的特征包含丰富的图像细节,较高层次的特征包含全局语义结构信息[4,5]。因此,模型融合了相邻层之间的特征图,以充分保留源图像中的语义信息。基于这个想法,本文提出了上下文融合模块。该模块生成密集的像素级上下文信息,同时提高长连接路径中特征编码的效率。

1.2 水尺区域分割模型

基于卷积神经网络的语义分割已经达到了很高的水平[6,7],在智慧水利上也有使用先例,从FPN 到Deeplab 系列模型,语义分割的性能不断提升。未来水位识别模型需要在边缘设备而不是计算机上运行,因此模型的大小是有限制的。所以使用ResNet54 作为Deeplab 的骨干网络。骨干网络的减少肯定会导致性能下降。为了缓解这个问题,对特征融合进行了改进。考虑到水面以上和以下水尺的分割精度,通过使用上下文融合模块改进了特征融合的方法,如图1 所示。

图1 特征融合示意图

改进后的Deeplab 模型结构如图2 所示。

图2 改进后的Deeplab 结构图

1.3 水位识别

1.3.1 水位线提取

Deeplab 分割的结果是一个多边形区域。需要提出一种算法来根据多边形计算水位的位置。首先计算该区域的最大包围矩形。为方便起见,只计算垂直矩形框。矩形框的关键是计算左上角右下角坐标。使用该方法来计算这些坐标。水位线提取示意图如图3 所示。

图3 水位线检测示意图

1.3.2 水位测量

FCOS 物体检测的结果显示了每个数字的像素坐标,可以计算每个数字之间的距离。水位线的分割结果显示了水位线的像素高度,然后可以计算它与最近数字的距离。FCOS 模型的检测结果是矩形框,理想情况下可以给每个图一个矩形框。由于实际水尺背景复杂,FCOS 模型的检测精度无法达到100%,导致存在漏检或误检的情况。需要利用刻度上数字的分布作为先验信息,即水尺从下到上均匀分布数字0 到9,并对检测结果进行处理,去除错误的检测结果。

一个检测矩形代表一个数字区域,矩形左上角和右下角的坐标是已知信息。数字矩形中心的坐标记为hx,其中x 表示数字个数,而两个相邻检测数字之间的距离用dxy表示。由于每个数字是等距的,所以两个相邻数字之间的实际距离可以用下式表示

n 的值由数字之间的实际编号距离决定。如果模型只检测到“8”和“2”两个数字,则n 的值为6。任意一个数字的实际高度,即物理距离为5cm,相邻两个数字之间的实际物理距离为10cm,即每单位像素高度的实际物理距离。每单位像素高度的实际物理距离表示为:

检测到的最小数x 的中心坐标高度为hmin,检测到的水位线高度为hline,则实际水位值可通过以下方程计算:

2 研究结果

2.1 评价指标

本文描述的三个任务使用了不同的评估指标。对于水尺检测任务,本质上是一个物体检测问题,指标为准确率、召回率和均值平均精度。对于水尺区域分割任务,为像素精度和平均交叉合并率。对于水位识别任务,选择包括相对误差和绝对误差在内的指标。

精确度和召回率这两个指标由四个基础指标组成,即TP、TN、FP 和FN。TP 表示正样本被预测为正样本。TN 表示负样本被预测为负样本。FP 表示负样本被预测为正样本。FN 表示预测为负样本的正样本。精度和召回率计算如下。

同时,为了综合考虑这两个指标的评价,可以用这两个指标来绘制一条PR 曲线,即以准确率为纵坐标,召回率为横坐标,然后是PR 曲线所包围的面积,坐标轴可以作为新的测量值。对于单个目标,该指标称为平均准确度。对于多个目标,每个类别的AP 平均值计算为mAP。

每像素累积(Per-pixel acc)是预测的准确像素数(在分割任务中分割准确的像素数)与总像素数之比。假设有n 个类别,预测为i 类像素的类像素数用TPi表示,预测为类别的i 类像素数用FNi表示。然后,Perpixel acc 的表达式如下式所示:

2.2 数据集

由于水尺图像没有公共数据集,本文只在我们的水尺数据集上对其进行训练和评估。大部分水位数据来自江西婺源水文站。我们从该水文站的20 个监测点收集了560 幅水尺图像。此外,我们还从互联网上下载获得200 幅水尺图像。还对图像进行几何变换以扩展数据集,包括翻转、旋转、裁剪、变形、缩放等。然后用12 类注释量规和打印数字,并将原始图像裁剪为小尺寸。因此,分别使用5.6K 和0.6K 图像创建训练和测试分割。数据集的采样器如图4 所示。

图4 数据集样本

2.3 实验和分析

2.3.1 水尺及数字检测

本文使用自制的水尺数据集对改进后的FCOS 模型进行训练和测试,同时也选择了SSD、YOLOv3 目标检测模型作为对比模型。模型的测试结果如表1 所示。本文改进的模型表示为FCOS-CA。

表1 不同模型的检测效果

从表1 可以看出,FCOS-CA 在三个指标上的良好结果表明该模型能够胜任水位检测任务。

同时,本文还对水尺水位值识别中的7 个难点场景进行了测试,分别是:反射、风浪、逆光、水体透明度、夜间补光、脏污和日影。其中部分难点场景检测结果如图5 所示,效果较好。

图5 水尺检测情况

2.3.2 水尺区域分割

使用自制的水尺数据集对本文改进的Deeplabv3+语义分割模型进行训练和测试,表示为Deeplab-CA。FCN 和UNET 分割模型也被选为比较模型。不同模型的测试结果见表2。在水尺区域分割的实验结果中,将分割结果表示为浅绿色区域并叠加在原始图像之上,同时降低原始水尺图像的亮度以获得更可观的可视化测试结果。

表2 水尺区域分割模型性能对比

从表2 可以看出,在推理时间上,虽然Deeplab-CA模型稍慢,分别比UNET 和Deeplab-v3+慢0.02s 和0.04s,但都有不同程度的提升。Deeplab-CA 在三个指标上的良好结果表明,该模型能够胜任水位线分割的任务。

同时,本文还对水尺水位值识别中的七个难点场景进行了测试,分别是:反射、风浪、逆光、水体透明度、夜间补光、脏污和太阳阴影。其中部分分割结果如图6。

图6 水尺分割结果

对于图6 中的倾斜水尺,FOCS-CA 模型准确区分了水尺区域上下两部分,也解决了“倾斜”带来的干扰。

在水尺区域的分割指标方面,该模型实现了92%的像素分割准确率。从可视化分割结果来看,FOCS-CA 模型不仅在实际复杂场景中分割效果显着,而且对实际场景中的七种特殊场景也取得了显着的分割效果。

2.3.3 水位测量实验

为了验证水位值识别的有效性,本文采用的评价指标是比较人眼观察到的水位线垂直高度与算法识别的水位线垂直高度的误差。这里的高度是水尺刻度下的高度,即由尺身编号构成的高度。水尺读数示意图如图7。

图7 水尺水位值读数示意图

每个字母E 与翻盖E 的实际物理距离为5cm,字母E 的每个“十字”的物理宽度为1cm。每个数字的中心对应字母E 中间的一个“十字”中心的位置。两个相邻数字的中心之间有10 个“十字”。图中水位值的读数为5.0cm 或50.0cm,不带单位表示标记相对于刻度底部的距离,带单位表示相对于刻度底部的实际物理距离,水位值的实际水文场景也需要利用水尺安装位置的高程信息进行计算,本文仅以水尺的相对标记距离作为水位值进行讨论。首先,本文选取水尺数据集的测试集进行水位值识别实验,测试结果见表3。识别结果按照绝对误差分为若干范围,统计每个范围的样本结果占所有样本的比例。该统计结果表明:本文提出的水位识别算法取得了较好的效果。

表3 水尺测试集水位值识别统计结果

然后选取校园内不同人工湖中背景干扰程度不同的六组位置进行测试,测试结果见表4。

表4 实际监测点水尺水位测量结果

人工读数由七名观察员进行人眼观察读数。对七组水位值数据的每个监测点水位图像,去除最大值和最小值以减少个体偏差引入的误差,最后取平均值作为水位图像的水位值。表4 中算法识别值为本文通过算法识别的水位值。其中相对误差为“+”表示算法读数偏大,“-”表示偏小。

从校园人工湖实际监测点的水位识别实验可以看出,FOCS-CA 算法的识别效果与人工观测结果非常接近,绝对误差大部分在1cm 以内,满足水位观测标准的要求。同时,本文测量了七种特殊复杂场景下水尺水位值的识别情况。测量结果见表5。

表5 七种特殊场景下的水位值识别结果统计

3 结语

为了解决真实水文场景中的水位识别问题,本文提出了一种基于卷积神经网络的水位识别组合方法。这种组合方法包括水位数字检测模型、水位区域分割模型和水位线提取算法。实验结果表明,文中提出的方法有效地解决了基于水位图像的水位识别问题。目前的缺点是还不能将该方法应用于嵌入式AI 设备。未来,我们将探索解决问题的方法,提高该方法应用效率和识别准确率。

猜你喜欢

水尺语义像素
赵运哲作品
像素前线之“幻影”2000
浅析国内海洋渔船与海船载重线、水尺标志勘划的区别
语言与语义
海运电厂船舶靠岸侧水尺图像采集实验研究*
水尺标志放样及数控切割解决问题方案
“像素”仙人掌
“上”与“下”语义的不对称性及其认知阐释
高像素不是全部
浅析水尺勘划方法及要点