基于深度学习的水位线监测方法
- 国知局
- 2024-11-06 14:28:19
本发明涉及深度学习,尤其涉及一种基于深度学习的水位线监测方法。
背景技术:
1、水位线图像的准确识别是水文监测与管理的关键环节,同时也是水位监测领域面临的重要挑战之一。长期以来,水利工程师和研究人员一直在探索有效的水位监测方法。然而,传统的水位监测主要依赖于人工观察,这不仅耗时且具有较大的主观性,可能导致监测数据不精确,甚至出现严重的误判情况。因此,仅依靠人工监测的效率和准确性都难以满足现代水资源管理的需求。
2、目前,虽然已有一些基于传统图像处理技术的水位线自动识别方法,但这些方法往往需要专业人员进行特征设计和提取,其过程繁琐、耗时,并且这些方法在特征提取和分类识别上通常是分离的。此外,由于依赖手工提取的特征,这些方法在水位线识别的准确性、模型的泛化能力和鲁棒性方面表现并不理想。
技术实现思路
1、有鉴于此,本发明提供了一种基于深度学习的水位线监测方法,用以提高水位监测的准确度和自动化度,减少人工监测的需求,有效地支持对水资源的保障管理和灾害预防。
2、第一方面,本发明提供了一种基于深度学习的水位线监测方法,所述方法包括:
3、步骤1、图像预处理与数据增强:对实地摄像头拍摄的水体图像进行预处理,以优化图像质量;通过随机旋转、翻转和缩放对训练集应用数据增强技术,得到第一次处理后的图像;
4、步骤2、构建特征提取与识别模型:通过高级深度学习模型u-net++和vggblock卷积块结合,得到特征提取与识别模型;
5、步骤3、采用bcediceloss作为损失函数,优化特征提取与识别模型,得到优化后的特征提取与识别模型;
6、步骤4、图像畸变矫正与逆透视变换:利用逆透视变换和畸变矫正技术,对第一次处理后的图像进行畸变矫正和逆透视变换,得到第二次处理后的图像;
7、步骤5、对特征提取与识别模型进行训练:通过迭代训练过程,采用梯度下降算法,使用第二次处理后的图像对特征提取与识别模型进行训练,获得训练后的特征提取与识别模型;
8、步骤6、水位线检测与特征提取与识别模型评估:使用训练后的特征提取与识别模型进行水位线检测,并在评价指标下对特征提取与识别模型进行性能评估。
9、可选地,所述步骤1包括:
10、步骤11、图像裁剪和调整:首先将原始图像的尺寸从1024×768像素裁剪至500×500像素的中心区域;然后将裁剪的图像调整为256×256像素的标准尺寸,其裁剪和调整resizedimage的表达式为:
11、resizedimage=resize(crop(1024,768),256,256);
12、其中,resize(·)表示将裁剪后的图像调整为标准尺寸,以便后续处理或分析;crop(·)表示裁剪掉图像的多余部分,仅保留最重要的区域,即为感兴趣的区域或目标区域;
13、步骤12、对裁剪和调整后的图像进行自适应灰度直方图均衡化;自适应灰度直方图均衡化的表达式为:
14、
15、其中,rk表示原始图像的灰度级,p′(rk)表示均衡化后的图像的新灰度级;
16、步骤13、调整亮度和对比度:将原始图像的亮度调整系数设定为10,对比度调整系数设定为1.2;原始图像的亮度和对比度表示为iorig,调整亮度和对比度后的图像iadj表示为:iadj=1.2×iorig+10;
17、灰度线性变换的表达式为:
18、iout=a·iin+b;
19、其中,iin表示输入原始图像的灰度值,iout表示输出图像的灰度值;参数a控制着变换的斜率,影响图像的对比度,参数b表示y轴截距,影响图像的亮度;
20、步骤14、图像将噪:应用标准差为1.5的高斯滤波器去除图像中的噪声;高斯滤波器g(x,y,1.5)用于降噪,降噪后的图像表示为:idenoise=iorig*g(x,y,1.5);
21、设f(x,y)为原始图像,g(x,y)为经过高斯滤波后的图像,则高斯滤波的表达式为:
22、
23、其中,w(s,t)表示高斯滤波器的权重;a和b用于定义高斯滤波器的大小;
24、由高斯分布计算得出w(s,t),其表达式为:
25、
26、其中,σ表示高斯滤波器的标准差,控制滤波器的平滑程度;
27、步骤15、数据增强:对图像执行顺时针和逆时针旋转各30度、水平翻转、垂直翻转以及0.8倍-1.2倍的缩放操作;其增强后的图像iaug的表达式为:
28、iaug=t(iorig);
29、其中,t表示图像变换操作。
30、可选地,所述步骤2包括:
31、步骤21、构建vggblock卷积块:初始化vggblock卷积块,首先定义输入通道in_channels、中间通道middle_channels和输出通道out_channels,输入通道用于定义输入到vggblock的图像通道数,rgb图像为3;中间通道用于定义两次卷积操作间的通道数,为一个内部参数,用于在卷积层间传递特征;输出通道用于定义vggblock输出的通道数,决定经过vggblock后图像的通道数;
32、初始化relu激活函数和批量归一化层,relu激活函数使用nn.relu(inplace=true)初始化,用于增加非线性,inplace=true参数将在原地修改输入数据;批量归一化层分别为中间层初始化和输出层初始化nn.batchnorm2d层,分别对应中间通道和输出通道的数量;
33、步骤22、vggblock前向传播:
34、(a)第一次卷积操作:第一层卷积使用nn.conv2d(in_channels,middle_channels,kernel_size=3,padding=1)初始化卷积层,卷积核大小为3×3,边缘填充padding为1,保持图像尺寸不变;批量归一化和relu激活:应用批量归一化nn.batchnorm2d(middle_channels)后,使用relu激活函数nn.relu(inplace=true)激活中间特征;
35、对于卷积层,其表达式为:
36、o=relu(bn(w*i+b));
37、其中:o表示输出特征图output feature map;i表示输入特征图input featuremap;w表示卷积核kernel;*表示卷积操作;b表示偏置项(bias);bn表示批量归一化操作;relu表示激活函数,定义为relu(x)=max(0,x);
38、(b)第二次卷积操作:第二层卷积使用nn.conv2d(middle_channels,out_channels,kernel_size=3,padding=1),保持卷积核大小和边缘填充不变;批量归一化和relu激活:应用批量归一化nn.batchnorm2d(out_channels),并使用relu激活函数nn.relu(inplace=true)激活输出特征;
39、批量归一化操作表达式为:
40、
41、其中:x表示卷积层的输出;μ表示批量内的均值;σ2表示批量内的方差;∈表示正参数;γ和β表示学习的参数,用于重新缩放和偏移归一化值;
42、最终输出:最后一次relu激活后的输出视为vggblock卷积块的最终输出,用于后续的网络层或作为特征映射;
43、步骤23、构建u-net++网络结构:
44、(c)网络初始化,定义不同层级的过滤器数量为[32,64,128,256,512],将决定每个层级的特征提取能力;初始化u-net++的编码器层conv_{i,0}和解码器层conv_{i,j},用于确保进行特征提取和处理;
45、(d)编码器路径,输入图像i首先通过第一个编码器层级conv_{0,0},此为特征提取的起点;接下来,对于每个编码器层级的输出,执行最大池化操作maxpool,以降低特征图的维度并增加抽象级别;一直持续到最后一个编码器层级conv_{4,0},每个层级都能捕获不同级别的图像特征;
46、(e)解码器路径,首先对最深层的编码器输出进行上采样,增加特征图的维度;上采样后的特征通过跳跃连接与相应编码器层级的特征进行拼接,用于保留空间信息;融合后的特征通过解码器的卷积层处理,逐步重构出特征图,在不同的解码器层级中重复进行,逐步重建出高分辨率的特征图;
47、(f)输出层,在网络的最后,将解码器的最终输出通过一个卷积层,将特征图的通道数转换为目标类别数;使用softmax或sigmoid激活函数,为每个像素点分配概率或分类;
48、(g)深度监督,启用深度监督,网络的中间层会产生额外的输出,辅助输出帮助网络在训练过程中关注更深层次的特征;通过计算辅助输出的损失,并将其与主损失函数结合,以使模型表示学习复杂的特征。
49、可选地,所述步骤3包括:
50、bcediceloss损失函数优化的目标为最小化bcediceloss,以平衡单像素的分类准确性和整个预测区域的连续性;其具体计算包括:
51、二元交叉熵损失bce,其表达式为:
52、
53、其中yi表示真实标签,yi预测表示预测概率;
54、dice损失用于评估预测区域与真实标签之间的空间重叠程度,其表达式为:
55、
56、其中,smooth是平滑项,用于避免除零错误。
57、组合损失函数bcediceloss的表达式为:
58、bcediceloss=α·bce+(1-α)·dice;
59、通过参数α来权衡bce损失和dice损失的重要性。
60、可选地,所述步骤4包括:
61、步骤41、图像畸变矫正:
62、加载相机校准图像,通过加载相机校准图像,获取用于相机校准的棋盘格图像;使用glob库获取相机校准图像的文件路径;
63、寻找棋盘角点,利用相机校准图像,使用opencv的cv2.findchessboardcorners函数找到棋盘格的角点;
64、校准相机并去除图像畸变,使用棋盘格的角点和对应的真实坐标点进行相机校准;通过cv2.calibratecamera函数计算相机的相机矩阵和畸变系数,然后利用cv2.undistort函数对图像进行畸变校正;畸变系数用多项式形式表示相机的畸变情况,其包括径向畸变k1,k2,k3和切向畸变p1,p2;相机矩阵k的表达式为:
65、
66、其中,fx和fy是焦距,(cx,cy)是光学中心的像素坐标;
67、步骤42、图像逆透视:
68、选取逆透视变换的关键点,逆透视变换需要四个非共线的点,其表示为p={(x1,y1),(x2,y2),(x3,y3),(x4,y4)},四个非共线的点在原始图像上选定,用于构成逆透视变换的基准,定义图像的透视区域;
69、计算逆透视变换矩阵,逆透视变换矩阵的计算是基于选定的原始图像中的四个关键点和目标图像的四个对应顶点;逆透视变换矩阵是通过求解线性方程组来获得的,利用原始图像中的四个点与目标图像对应顶点之间的关系;原始图像中的四个点poriginal={(x1,y1),(x2,y2),(x3,y3),(x4,y4)},目标图像中对应的四个顶点ptarget={(u1,v1),(u2,v2),(u3,v3),(u4,v4)},逆透视变换矩阵m通过cv2.getperspectivetransform函数计算得出,其为一个3x3的矩阵;逆透视变换矩阵m通过求解以下线性方程组得到:
70、
71、其中,m矩阵表示原始图像中的点到目标图像中对应点的映射关系,进而实现了逆透视变换;
72、执行逆透视变换,逆透视变换函数cv2.warpperspective根据计算得到的逆透视变换矩阵m对原始图像进行变换;给定原始图像ioriginal和逆透视变换矩阵m,执行逆透视变换得到变换后的图像itransformed,其表达式为:
73、itransformed=cv2.warpperspective(ioriginal,m,target_size);
74、其中,target_size表示期望输出的目标图像大小;逆透视变换函数利用逆透视变换矩阵m将原始图像ioriginal映射到新的视角或几何形状,生成变换后的图像itransformed;
75、图像处理和合成,在逆透视变换后,对变换后的图像和原始图像进行处理和合成,以获得最终校正透视畸变后的图像;使用掩码mask和反向掩码inverse mask对图像进行分割和合并;掩码是一个与图像尺寸相同的矩阵,用于标识需要进行逆透视变换的区域;反向掩码则是掩码的补集,用于保留未进行变换的区域;通过位运算函数将逆透视变换后的图像与原始图像分离,并在适当的区域进行合并,得到最终处理后的图像;其表达式为:
76、masked_dst=cv2.bitwise_and(itransformed,mask);
77、masked_img=cv2.bitwise_and(ioriginal,inverse_mask);
78、final_img=cv2.add(masked_dst,masked_img);
79、其中,itransformed表示逆透视变换后的图像;ioriginal表示原始图像;mask表示逆透视变换区域的掩码;inverse_mask表示未进行变换区域的反向掩码;masked_dst表示逆透视变换后图像应用掩码后的区域;masked_img表示原始图像应用反向掩码后的区域;final_img表示合并变换后区域和未变换区域的最终图像。
80、可选地,所述步骤5包括:
81、步骤51、初始化训练配置:设定训练周期epochs,其表示训练过程中网络将遍历整个数据集的次数;批量大小设置batch_size,其表示一次训练所用的样本数,影响梯度估计和内存使用;
82、步骤52、优化器选择与配置:选择优化器optimizer用于决定更新网络的权重;学习率设置lr用于控制权重调整的步长大小;动量设置momentum用于sgd,有助于加速sgd在相关方向上的优化,并抑制震荡;权重衰减weight_decay为正则化项,用于防止过拟合;
83、步骤53、训练循环:
84、前向传播:输入数据通过网络,计算每一层的输出;损失计算:使用损失函数计算预测结果和真实标签之间的差异;后向传播:计算损失函数关于网络权重的梯度;梯度下降:根据计算的梯度更新网络权重;更新规则由优化器定义;其表达式为:
85、
86、其中,wnew和wold分别是更新后和更新前的权重,η是学习率,是损失函数l对权重的梯度;
87、模型评估:使用验证数据集检查模型性能,监控过拟合情况;
88、步骤54、学习率调整:学习率调度器为cosineannealinglr,将学习率根据余弦函数进行调整,使其在每个周期内先减小后增大,其表达式为:
89、
90、其中,ηt是t时刻的学习率,ηmin和ηmax分别是学习率的最小值和最大值,tcur是当前迭代次数,tmax是一个周期内的最大迭代次数。
91、可选地,步骤61、模型参数的保存与加载,训练完成后,将模型参数保存到磁盘;通常选择在验证集上性能最佳的模型进行保存;在预测阶段,从磁盘加载训练好的模型参数,以确保使用的是经过优化的模型;
92、步骤62、测试集预测,应用加载的模型对测试集中的水位线图像进行预测;模型针对每张测试图像输出预测的水位线位置和相关特征;
93、步骤63、性能评估,通过评价指标对模型在测试集上的性能进行全面评估,量化模型在真实场景中的应用效果;
94、步骤64、结果分析,对模型的预测结果进行分析,获得模型的分析结果;
95、步骤65、改进建议,根据性能评估和分析结果,改进模型和数据处理流程。
96、第二方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在电子设备执行第一方面或第一方面任一可能的实现方式中的基于深度学习的水位线监测方法。
97、第三方面,本发明实施例提供一种电子设备,包括:一个或多个处理器;存储器;以及一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中,所述一个或多个计算机程序包括指令,当所述指令被所述电子设备执行时,使得所述设备执行第一方面或第一方面任一可能的实现方式中的基于深度学习的水位线监测方法。
98、本发明提供的技术方案中,该方法包括图像预处理与数据增强:对实地摄像头拍摄的水体图像进行预处理,以优化图像质量;通过随机旋转、翻转和缩放对训练集应用数据增强技术,得到第一次处理后的图像;构建特征提取与识别模型:通过高级深度学习模型u-net++和vggblock卷积块结合,得到特征提取与识别模型;采用bcediceloss作为损失函数,优化特征提取与识别模型,得到优化后的特征提取与识别模型;图像畸变矫正与逆透视变换:利用逆透视变换和畸变矫正技术,对第一次处理后的图像进行畸变矫正和逆透视变换,得到第二次处理后的图像;对特征提取与识别模型进行训练:通过迭代训练过程,采用梯度下降算法,使用第二次处理后的图像对特征提取与识别模型进行训练,获得训练后的特征提取与识别模型;水位线检测与特征提取与识别模型评估:使用训练后的特征提取与识别模型进行水位线检测,并在评价指标下对特征提取与识别模型进行性能评估。该方法利用深度学习模型对水位线图像进行分析和识别,可以自动从大量的水位线图像中学习到复杂且有效的特征,提高了水位监测的准确度和自动化度,减少了人工监测的需求,有效地支持了对水资源的保障管理和灾害预防。
本文地址:https://www.jishuxx.com/zhuanli/20241106/322276.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表