Python遥感影像深度学习指南(1)-使用卷积神经网络(CNN、U-Net)和 FastAI进行简单云层检测

这篇博客是【遥感影像深度学习】系列的第一章,介绍了如何使用Python和深度学习(特别是CNN、U-Net及FastAI库)从卫星图像中分割和检测云层。作者详细讲解了数据集准备、预处理、创建数据加载器、构建模型以及训练过程,展示了在有限的数据和简单设置下,仍能达到96%的准确率。
摘要由CSDN通过智能技术生成

        【遥感影像深度学习】系列的第一章,Python遥感影像深度学习的入门课程,介绍如何使用卷积神经网络(CNN)从卫星图像中分割云层

1、数据集

        在本项目中,我们将使用 Kaggle 提供的 38-Cloud Segmentation in Satellite Images数据集。

        该数据集由裁剪成 384x384 (适用于深度学习)的卫星场景组成。总共有 8400 个用于训练和 9201 个用于测试的图块,分别位于红、绿、蓝和近红外(近红外)波段的目录中,还有一个额外的目录用于存储参考掩膜(真实值 - *_gt)。结构如图 2 所示。 

2、数据预处理

        为了给神经网络准备好数据,我们首先需要对数据进行预处理,以适合我们的模型。由于我们将使用预训练的 ResNet 框架,因此模型中只能拟合 3 个波段,最好是 RGB 波段,因为模型已经用这些波段进行了预训练。因此,数据预处理的第一步就是从给定的图像中创建 RGB patch小块。我们将使用 PIL(Python Imaging Library,Python 图像库)打开红、绿、蓝 .tif 图像,并将其保存为单一的 RGB .png 文件。下面的代码就可以做到这一点(确保与原始数据集的结构相同),并对图像进行归一化处理。

from PIL import Image
from pathlib import Path
import numpy as np

def create_rgb_pil (red_filename: Path):
    # set the filenames for each patch
    red_fn = str(red_filename)
    blue_fn = red_fn.replace('red','blue')
    green_fn = red_fn.replace('red', 'green')
    rgb_fn = red_fn.replace('red', 'rgb').replace('.TIF', '.png')
    
    # open red, green and blue patches as numpy arrays
    arr_red = np.array(Image.open(red_fn))
    arr_green = np.array(Image.open(green_fn))
    arr_blue = np.array(Image.open(blu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gis收藏家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值