目录

前言

设计思路

一、课题背景与意义

二、算法理论原理

2.1 注意力模块

2.2 大尺寸遥感图像检测架构

三、检测的实现

3.1 数据集

3.2 实验及结果分析

实现效果图样例

最后


前言

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

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

         选题指导:

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

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

        🎯基于深度学习的卫星遥感图像滑窗目标检测系统

毕业设计-基于深度学习的卫星遥感图像滑窗目标检测系统 YOLO python 卷积神经网络 人工智能

设计思路

一、课题背景与意义

       光学遥感目标检测在遥感图像分析和处理中具有重大作用,是土地利用、城市规划、航空探测等应用的重要基础。随着目前对地观测技术的发展,获取到的高分辨率遥感图像数据能够提供更丰富的图像细节信息,这为目标检测在遥感领域的发展提供了契机。

二、算法理论原理

2.1 注意力模块

       CBAM是一种轻量级注意力模块,它综合使用了空间注意力机制和通道注意力机制。引入CBAM后,注意力机制能够让网络学会关注重点信息,从而提升模型细粒度特征提取能力。每个CBAM模块由一个空间注意力(SAM)模块和通道注意力(CAM)模块组成,假设CBAM的输入为大小为N×H×W×C的特征块F,则其先经过一个通道注意力模块。

毕业设计-基于深度学习的卫星遥感图像滑窗目标检测系统 YOLO python 卷积神经网络 人工智能

2.2 大尺寸遥感图像检测架构

       需要通过滑窗的方式对大尺度遥感图像进行目标检测,而滑窗的过程本身耗时较大,因上采用轻量化且准确度较高的目标检测模型是非常有必要的,我们综合考虑YOLOv5这四种架构,选取YOLOv5m架构为基本架构,改进设计遥感光学图像目标检测模型。我们基于从空中平台大型图像小芯片中收集数据集对提出的基于滑窗的卫星遥感目标检测模型进行训练和验证。

毕业设计-基于深度学习的卫星遥感图像滑窗目标检测系统 YOLO python 卷积神经网络 人工智能

相关代码:

 # 生成所有可能的锚框
    anchor_boxes = []
    for size in anchor_sizes:
        for ratio in aspect_ratios:
            width = np.sqrt(size * ratio)
            height = size / width
            anchor_boxes.append([width, height])

    # 进行K-means聚类
    anchor_boxes = np.array(anchor_boxes)
    kmeans = KMeans(n_clusters=num_clusters, random_state=0)
    kmeans.fit(anchor_boxes)

    # 获取聚类中心作为最终的锚框
    clusters = kmeans.cluster_centers_

    # 将锚框坐标映射到图像尺度
    anchor_boxes_scaled = clusters * np.array([image_width, image_height])

    return anchor_boxes_scaled

# 定义图像尺寸和聚类数量
image_width = 1920
image_height = 1080
num_clusters = 5

# 生成适用于大尺寸图像的锚框
anchor_boxes = generate_anchor_boxes(image_width, image_height, num_clusters)

# 打印锚框的坐标
for i, anchor_box in enumerate(anchor_boxes):
    print(f"Anchor Box {i+1}: Width={anchor_box[0]:.2f}, Height={anchor_box[1]:.2f}")

三、检测的实现

3.1 数据集

       数据集来自学长从多个地点收集的高架图像。数据是通过空中平台收集的,但视角较低,类似于卫星图像。数据集中的图像的分辨率为15cm GSD,大约是当前商业卫星图像最佳分辨率的两倍。通过原始图像与高斯核卷积,并将图像尺寸减少一半,以创建等效于30cm GSD图像的图像。

3.2 实验及结果分析

       单纯用YOLOv5模型目标检测的F1分数为0.90 ± 0.09,各个测试场景下的F1均值提升了0.03%,并且改进的遥感图像目标检测模型在测试集上的稳定性更好,目标检测精度浮动更小。。

毕业设计-基于深度学习的卫星遥感图像滑窗目标检测系统 YOLO python 卷积神经网络 人工智能

       CBAM注意力模块增强了模型细粒度特征提取能力,这对于遥感图像的小目标检测具有一定的增强。

毕业设计-基于深度学习的卫星遥感图像滑窗目标检测系统 YOLO python 卷积神经网络 人工智能

相关代码如下:

# 加载数据集
dataset = torchvision.datasets.VOCDetection(dataset_path, year='2007', image_set='train', download=True, transform=transform)

# 创建数据加载器
batch_size = 32
dataloader = DataLoader(dataset, batch_size=batch_size, shuffle=True)

# 加载预训练的模型
model = fasterrcnn_resnet50_fpn(pretrained=True)
model = model.cuda()  # 将模型移动到GPU(如果可用)

# 定义优化器和损失函数
optimizer = torch.optim.SGD(model.parameters(), lr=0.001, momentum=0.9)
criterion = torch.nn.CrossEntropyLoss()

# 训练模型
num_epochs = 10

for epoch in range(num_epochs):
    for images, targets in dataloader:
        images = images.cuda()
        targets = [target.cuda() for target in targets]

        # 前向传播
        outputs = model(images)
        loss = criterion(outputs, targets)

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

    print(f"Epoch [{epoch+1}/{num_epochs}], Loss: {loss.item()}")

# 保存训练好的模型
torch.save(model.state_dict(), 'path_to_save_model.pth')

实现效果图样例

毕业设计-基于深度学习的卫星遥感图像滑窗目标检测系统 YOLO python 卷积神经网络 人工智能

创作不易,欢迎点赞、关注、收藏。

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

最后

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐