0


毕业设计:基于深度学习的遥感道路图像提取系统 人工智能

前言

📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。

🚀对毕设有任何疑问都可以问学长哦!

选题指导:

    最新最全计算机专业毕设选题精选推荐汇总

    大家好,这里是海浪学长毕设专题,本次分享的课题是

   🎯**基于深度学习的遥感道路图像提取系统**

课题背景和意义

   遥感技术在地图制作、环境监测、交通规划等领域具有重要应用价值。基于深度学习的遥感道路图像提取系统,通过利用深度学习技术和计算机视觉方法,实现了对遥感图像中道路的自动提取,有助于提高遥感图像分析的准确性和效率。此课题的研究对于推动深度学习技术在遥感领域的发展,提高遥感图像处理的速度和准确性,具有重要意义。

实现技术思路

一、算法理论基础

1.1 卷积神经网络

   卷积神经网络(CNN)在遥感道路图像提取系统中有广泛的应用。通过CNN,可以对遥感图像进行高效的特征提取和分类,实现道路的自动识别和提取。CNN能够学习到图像中的局部特征和空间结构,通过卷积层、池化层和全连接层的组合,能够有效地捕捉道路的纹理、形状和上下文信息。在训练阶段,通过提供带有标注的道路图像样本,CNN可以学习到道路的特征表示和分类决策边界,从而在测试阶段对新的遥感图像进行道路提取。

毕业设计:基于深度学习的遥感道路图像提取系统 人工智能

   卷积神经网络由多个层组成,其中包括卷积层、池化层和全连接层。卷积层利用一系列的卷积核对输入图像进行特征提取,每个卷积核在图像上滑动并执行卷积操作,生成特征图。池化层用于减小特征图的尺寸,并降低特征的维度,常用的池化操作包括最大池化和平均池化。全连接层将池化层输出的特征图连接成一维向量,并通过多个全连接层进行分类或回归任务。此外,CNN还包括激活函数、损失函数和优化算法等组成部分,用于引入非线性性质、定义模型的训练目标和优化网络参数。

毕业设计:基于深度学习的遥感道路图像提取系统 人工智能

   Leaky ReLU是一种修正线性单元的变体激活函数。与传统的ReLU函数在输入小于零时返回零不同,Leaky ReLU在输入小于零时返回一个小的负斜率,通常为一个较小的常数。相比于ReLU函数,Leaky ReLU具有一定的优势。首先,Leaky ReLU在输入小于零时不会完全消失,能够缓解“神经元死亡”问题,即避免了在训练过程中一些神经元无法被激活的情况。其次,Leaky ReLU拥有线性的部分,在某些情况下,可以更好地拟合包含负值的数据。此外,Leaky ReLU相对于其他激活函数,如sigmoid和tanh,具有更快的计算速度。

毕业设计:基于深度学习的遥感道路图像提取系统 人工智能

1.2 注意力机制

   正向传播是卷积神经网络中的传播过程之一,它从输入层开始,逐层计算并存储模型的中间变量,直到输出层。在正向传播过程中,网络的参数被用于计算每一层的输出,同时中间变量被传递给下一层进行进一步的计算。

   反向传播是神经网络中的另一种传播过程,它从输出层开始,逆向计算并存储目标函数与各层的中间变量以及参数的梯度。通过误差反向传播,可以根据目标函数的梯度对模型的参数进行调整和更新,以提高网络的性能和准确度。反向传播算法由前向传播和后向传播两个过程组成。前向传播计算输出的预测值,并存储中间变量;后向传播根据预测值与真实值之间的误差,通过链式法则计算每一层的梯度,并更新参数。

毕业设计:基于深度学习的遥感道路图像提取系统 人工智能

   迁移学习是将已有的知识和方法通过相似性迁移到新的学习任务中的过程。在深度学习中,迁移学习可以将已经训练好的模型参数迁移到新的网络模型中,从而节省训练时间并提高网络模型的性能。迁移学习的使用需要满足一定条件,如避免包含测试数据集中已学习的数据以防止过度拟合,并需要充足的数据集支持。

毕业设计:基于深度学习的遥感道路图像提取系统 人工智能

1.3 语义分割方法

   全卷积神经网络(FCN)是一种用于语义分割的深度学习方法,通过将传统卷积神经网络的全连接层替换为卷积层,实现对任意尺度图像的处理,并通过反卷积层进行上采样恢复原始图像尺寸。FCN的优势在于灵活处理不同尺度的输入图像,减少了卷积的重复计算。然而,它也存在一些问题,包括结果精度不高和缺乏像素间关系的考虑,对于语义分割任务的连续性和一致性要求有所不足。

毕业设计:基于深度学习的遥感道路图像提取系统 人工智能

   U-Net网络是一种端到端的像素级语义分割网络,在目标检测任务中广泛应用,并具有数据需求少和良好的检测效果等优点。U-Net网络由编码器部分和解码器部分组成。编码器通过四次下采样提取图像特征,每次下采样增加特征通道数,使用3x3卷积层、ReLU激活层和2x2最大池化层。解码器通过四次上采样将分割图像恢复到原始图像大小。编码器提取的高维特征信息与解码器的特征图通过跳跃连接进行拼接,以提高图像分辨率。通过反卷积网络减少通道数并进行特征融合,最后通过级联跳跃结构减少特征丢失,提高特征提取精度。

毕业设计:基于深度学习的遥感道路图像提取系统 人工智能

   DeepLabv3+是一种精度较高的语义分割网络模型。它由编码器和解码器两个部分组成。编码器用于提取图像的深度特征信息,包括深度卷积神经网络(DCNN)和空洞空间金字塔池化模块(ASPP),ASPP进一步优化DCNN的特征。解码器对从编码器传递过来的特征图进行上采样,并与浅层特征进行融合,从而得到图像分割的结果。

毕业设计:基于深度学习的遥感道路图像提取系统 人工智能

二、 数据集

2.1 数据集

   由于网络上没有现有的合适的数据集,我决定自己去医院进行拍摄,收集遥感图像并制作了一个全新的数据集。这个数据集包含了各种遥感图像,其中包括不同地区、不同天气条件下的遥感图像。通过现场拍摄,我能够捕捉到真实的遥感图像和多样的道路状况,这将为我的研究提供更准确、可靠的数据。

毕业设计:基于深度学习的遥感道路图像提取系统 人工智能

2.2 数据扩充

   数据扩充是提高模型鲁棒性和泛化能力的重要手段。在本研究中,我们对收集到的遥感图像数据进行了多样化的数据扩充。包括使用图像处理技术生成新的训练样本,如旋转、缩放、裁剪等。这些扩充后的数据能够帮助模型更好地学习和理解遥感图像的多样性和复杂性,提高模型在实际应用中的表现力。同时,数据扩充还可以增加模型的泛化能力,使其在面对未见过的数据时仍能保持良好的性能。

毕业设计:基于深度学习的遥感道路图像提取系统 人工智能

三、实验及结果分析

3.1 实验环境搭建

3.2 模型训练

   在该实验中,采用了Dice Loss和二元交叉熵损失作为损失函数,初始学习率设置为0.001,模型进行了200次迭代,批量大小为16,并使用Adam优化器进行训练。该实验旨在进行二分类任务,区分道路图像和非道路图像,可以使用混淆矩阵作为评价指标来评估分类任务的性能。同时,由于也属于语义分割任务,可以使用其他语义分割的评价指标进行评估,如准确率、精确率、召回率、F1-Score和交并比。混淆矩阵中的TP表示正确分类的道路像素数量,TN表示正确分类的非道路像素数量,FP表示将非道路误分类为道路的像素数量,FN表示将道路误分类为非道路的像素数量。

   消融实验在编码器网络ResNet34中的部分卷积核使用了深度过参数化卷积(Do-Conv)和Leaky ReLU激活函数。其次,在桥接网络中引入了上下文信息提取模块。最后,在解码器网络中采用了注意力机制模块CBAM。消融实验使用DeepGlobe数据集进行评估。交并比(IoU)作为一个综合的度量指标,能够全面评估道路提取中道路像素可能被误分类为背景等情况。

相关代码示例:

# 设置训练参数
learning_rate = 0.001
num_epochs = 200
batch_size = 16

# 加载数据集
data_paths = [...]  # 遥感图像路径列表
label_paths = [...]  # 道路标签路径列表
transform = ToTensor()
dataset = RoadDataset(data_paths, label_paths, transform=transform)
dataloader = DataLoader(dataset, batch_size=batch_size, shuffle=True)

# 实例化U-Net模型和优化器
model = UNet()
optimizer = optim.Adam(model.parameters(), lr=learning_rate)
criterion = nn.BCELoss()  # 二元交叉熵损失函数

# 训练模型
for epoch in range(num_epochs):
    for images, labels in dataloader:
        # 前向传播
        outputs = model(images)
        loss = criterion(outputs, labels)

        # 反向传播和优化
        optimizer.zero_grad()
        loss.backward()
        optimizer.step()

    # 打印训练信息
    print(f"Epoch [{epoch+1}/{num_epochs}], Loss: {loss.item()}")

# 使用训练好的模型进行预测
test_image = Image.open("test_image.jpg")
test_image = transform(test_image).unsqueeze(0)
output = model(test_image)
predicted_labels = output.squeeze() > 0.5  # 使用阈值0.5进行二分类

海浪学长项目示例:

最后

我是海浪学长,创作不易,欢迎点赞、关注、收藏。

毕设帮助,疑难解答,欢迎打扰!


本文转载自: https://blog.csdn.net/qq_37340229/article/details/136283039
版权归原作者 HaiLang_IT 所有, 如有侵权,请联系我们删除。

“毕业设计:基于深度学习的遥感道路图像提取系统 人工智能”的评论:

还没有评论