1.基于改进YOLOv8的轻量化隧道裂隙分割识别方法,其特征在于,具体包括如下步骤:步骤1,获取隧道裂隙的图像数据集,对数据集进行预处理;
步骤2,对预处理后的数据集进行扩展增强;所述步骤2的具体过程为:步骤2.1,将预处理后的数据集输入采用残差块增强的WGAN‑RE模型进行迭代训练,通过Fre´chet Inception Distance和Inception Score 性能指标判断模型在训练过程中是否收敛;所述步骤2.1中,FID表示为: (1)
其中, 和 分别表示真实图像和生成图像在特征空间的均值向量; 和 分别表示真实图像和生成图像在特征空间的协方差矩阵;x表示真实图像的分布;g表示真实图像的分布;其中,IS表示为:(2)
其中,X Pg表示从生成图像的分布中抽取样本x; 表示Inception网络对图像x~预测的类别分布; 是生成图像整体的平均类别分布; 是类别分布与整体类别分布 之间的 KL散度; 表示对生成图像样本的期望;
步骤2.2,基于步骤2.1的判断结果,当WGAN‑RE模型的生成器和判别器收敛后,以1:2为扩充比例进行扩充数据集,形成增强后的数据集;
步骤3,对步骤2处理后的数据集进行标注;
步骤4,对YOLOv8模型进行改进;所述步骤4的具体过程为:步骤4.1,初始化模块,Faster_Block_EMA类被初始化时,设定模块的输入通道数、输出通道数、MLP比例、DropPath概率、层级缩放值;
步骤4.2,调整FasterNet_EMA模块中卷积操作后得到的特征图的通道数;如果输入通道数与模块内部处理的通道数不一致,会通过1x1卷积调整通道数;
步骤4.3,输入特征图首先经过Partial_conv3模块进行空间混合,然后特征图进入MLP模块进行非线性变换,进一步增强特征表示;
步骤4.4,经过MLP处理后的特征图通过DropPath正则化后,再应用EMA注意力机制进行加权处理;
步骤4.5,将经过步骤4.4处理的特征图与原始输入特征相加,以保留输入特征并输出最终结果;所述步骤4.5的具体过程为:步骤4.5.1,定义一个 Segment_LADH模块;
步骤4.5.2,在模块的初始化函数中定义模型的基本属性,包括类别数量nc、掩码数量nm、原型数量npr、以及输入特征图的通道数ch;
步骤4.5.3,计算每个卷积层和深度卷积层的输出通道数c4,具体公式如下:(3)
步骤4.5.4,构建用于处理输入特征图的卷积模块组cv4,每个模块包括两个深度可分离卷积DSConv和一个标准卷积Conv;
步骤4.5.5,在前向传播过程中,使用Proto模块对输入特征图的第一层进行处理,生成掩码原型p;
步骤4.5.6,对每个输入特征图采用对应的cv4模块进行处理,结合深度可分离卷积DSConv以及普通卷积Conv,对特征图进行逐步特征提取,最终生成掩码系数,通过torch.cat函数在第三个维度上拼接所有层的掩码系数,得到最终的掩码系数mc;
步骤4.5.7,调用LADH检测头对输入特征图进行处理,生成最终的预测结果x;
步骤4.5.8,根据PyTorch中nn.Module的内部属性self.training判断模型是否处于训练模式,如果self.training为true,则返回预测结果 x、掩码系数 mc 和掩码原型p;如果self.training为false,根据是否处于导出模式self.export,返回不同的拼接输出,拼接输出包含了预测结果和掩码系数,用于最终的图像分割结果生成;
步骤4.6,基于步骤4.5输出的特征图,使用LADH轻量化检测头替换YOLOv8中的原始检测头,用于最后的分割任务;
步骤5,对步骤4改进后的模型进行训练;
步骤6,对步骤5训练后的模型进行训练测试验证。
2.根据权利要求1所述的基于改进YOLOv8的轻量化隧道裂隙分割识别方法,其特征在于,所述步骤1的具体过程为:步骤1.1,从Roboflow平台上下载裂缝分割数据集;
步骤1.2,使用高斯滤波去噪算法步骤1.1数据集中的图像进行处理,去除图像中的随机噪声,同时保留裂缝边缘的清晰度;
步骤1.3,将经步骤1.2处理的图像尺寸统一调整为同一尺寸;
所述步骤2.1中,FID表示为:
(4)
其中, 和 分别表示真实图像和生成图像在特征空间的均值向量; 和 分别表示真实图像和生成图像在特征空间的协方差矩阵;x表示真实图像的分布;g表示真实图像的分布;其中,IS表示为:(5)
其中,X Pg表示从生成图像的分布中抽取样本x; 表示Inception网络对图像x~预测的类别分布; 是生成图像整体的平均类别分布; 是类别分布与整体类别分布 之间的 KL散度; 表示对生成图像样本的期望。
3.根据权利要求2所述的基于改进YOLOv8的轻量化隧道裂隙分割识别方法,其特征在于,所述步骤3的具体过程为:步骤3.1,使用图像标注软件Labelme中的“Polygon”工具进行裂隙标注,保存为JSON格式,再通过Python脚本将标注数据转换为YOLO格式的TXT文件;
步骤3.2,对步骤3.1标注后的数据集,以8:2的比例将数据集划分为训练集和验证集,划分后的数据集按类别分别存储于不同文件夹中,每个文件夹中包含相应的图像和标注文件。
4.根据权利要求3所述的基于改进YOLOv8的轻量化隧道裂隙分割识别方法,其特征在于,所述步骤4.3的具体过程为:步骤4.3.1,输入特征图经过Partial_conv3卷积操作进行空间混合,卷积根据参数n_div和pconv_fw_type在不同区域内进行卷积运算,实现特征图的空间混合;其中pconv_fw_type是用来控制部分卷积前向传播行为的参数;
步骤4.3.2,空间混合后的特征图进入MLP模块进行非线性变换,两次1x1卷积分别将特征维度扩大到mlp_hidden_dim再缩小回dim。
5.根据权利要求4所述的基于改进YOLOv8的轻量化隧道裂隙分割识别方法,其特征在于,所述步骤4.4的具体过程为:步骤4.4.1,经过MLP处理的特征图通过DropPath进行路径丢弃,然后进入EMA注意力机制,进一步加权;
步骤4.4.2,定义输入参数并进行分组,接受输入通道数channels 和分组因子factor,用于确定输入数据的分组数目;通过assert语句验证每组的通道数是否大于0;
步骤4.4.3,初始化用于处理特征图的组件,包括 Softmax 层、自适应平均池化层、组归一化层、以及1x1和3x3的卷积层;
步骤4.4.4,在前向传播中,首先获取输入特征图的形状,然后将特征图按照分组数重新排列;
步骤4.4.5,对重构后的特征图分别进行水平和垂直方向的自适应平均池化,获取两个方向上的特征图表示,并通过1x1卷积层进行融合;
步骤4.4.6,将步骤4.4.5中池化后的特征图和步骤4.4.4重构后的特征图进行逐元素相乘,并通过Sigmoid激活函数后、组归一化层处理,随后使用 3x3 卷积进一步提取特征,生成的特征图 ,特征提取过程表示为:(6)
其中,xh为池化操作后的特征图;xw为重构后的特征图;
步骤4.4.7,对步骤4.4.6处理后的第一组特征图在使用自适应平均池化后进行Softmax操作,得到第一组特征图的注意力权重矩阵x11;
步骤4.4.8,对步骤4.4.6处理后的第二组特征图使用自适应平均池化后进行Softmax操作,得到第二组特征图的注意力权重矩阵x21,并通过两组特征图的注意力权重得到最终的注意力权重,计算公式如下:(7)
其中,A为最终的注意力权重;x11为步骤4.4.7得到的第一组特征图的注意力权重矩阵;
x21为步骤4.4.8第二组特征图的注意力权重矩阵;x12为将第二组特征图展平后得到的特征矩阵;x22为将第一组特征图展平后得到的特征矩阵;
步骤4.4.9,使用步骤4.4.8得到的最终注意力权重与步骤4.4.1得到的特征图相乘,然后将结果重新调整为原始的形状,返回经过注意力机制处理后的特征图,公式表示为:(8)
其中,x为调整形状后的特征图;A为步骤4.4.8得到的最终注意力权重;DropPath(x)为经过路径丢弃后的特征图;b为批量大小;groups为分组数;h和w为调整形状后特征图的高度和宽度;
步骤4.4.10,将经过步骤4.4.9处理后的特征图与步骤4.3.1空间混合后的特征图相加,形成最终的输出,公式表示为:(9)
其中,DropPath(x)为经过路径丢弃后的特征图。
6.根据权利要求5所述的基于改进YOLOv8的轻量化隧道裂隙分割识别方法,其特征在于,所述步骤5的具体过程为:使用步骤3.2划分后的训练集,对步骤4改进的YOLOv8模型进行训练,在训练过程中,采用Adam作为优化器,CIoU作为损失函数,确保模型快速收敛。