Python遥感影像深度学习指南(1)-使用卷积神经网络(CNN、U-Net)和 FastAI进行简单云层检测
2023-12-24 06:07:30
【遥感影像深度学习】系列的第一章,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(blue_f
文章来源:https://blog.csdn.net/qq_16773699/article/details/135170514
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!