无需编码即可使用 ArcGIS Pro 中的深度学习进行基于像素的分类

本文提供了在 ArcGIS Pro 中使用深度学习执行基于像素的分类的简明指南,而不是编写代码来构建深度学习模型。

我们将介绍从数据准备和模型训练到分类和可视化的基本步骤。无论您是 GIS 专业人员还是遥感专家,本教程都将帮助您利用深度学习完成地理空间项目。

我的训练图像来自 2022 年 4 月,覆盖台湾整个 石门水库集水区。它使用具有 4 个波段(R、G、B、NIR)的 Spot-6 影像。我添加了一个 5m DEM 来计算坡度作为附加波段,使其总共有 5 个波段。图像经过预处理,单元大小为 1.5m,深度为 8 位。

由于测试影像为2024年3月拍摄,覆盖石门水库集水区部分区域,波段排列相同,已进行预处理,确保所有栅格信息与训练样本相符。

步骤 1.下载深度学习包

第一步,我们需要下载DL包。下载链接

选择与您的ArcGIS Pro版本匹配的版本,
然后双击**.msi**文件解压并安装。

步骤2.数据准备和预处理

确保图像正确预处理(例如,缩放像素值),以便训练和测试图像共享相同的参数,包括像素大小、像素深度、波段数和坐标系。

您可以将特征图层添加到训练样本中 ,然后合成它们。
只需确保测试样本具有相同的波段排列即可。

步骤3.将对象标记为训练样本。

成功安装该软件包后,"深度学习"功能将在"图像"选项卡中可用。

加载训练样本前,请确保同一类别的所有样本拥有相同的类别编码、类别名称、类别值(类别值不能为0)。(编辑完成后记得导出样本。)

单击"标注深度学习对象",然后选择现有影像图层。然后单击加载训练样本。
加载样本后,选择所有类别 并单击**"编辑类别属性"**。

单击**"标注深度学习对象"** 并选择现有影像图层,然后加载训练样本。
加载后,选择相同的类 并单击**"编辑类属性"**。

在"定义类"面板中,选择**"添加新类"** ,输入类NameValue(值不能为0),然后单击"确定"。

单击导出训练数据 ,将输出文件夹更改为您的位置,并将元数据格式 更改为基于像素的分类。Classified Tiles

其他参数可以调整,我保持默认**,** 然后点击运行。
输出文件夹将包含两个文件夹和四个文件

步骤 4.开始训练你的深度学习模型

打开训练深度学习模型工具。
(Image Analyst 工具/深度学习)

选择包含训练数据的文件夹(4 个文件和 2 个文件夹)。
设置输出模型位置。
将模型类型更改为U-Net (Pixel Classification)
在数据参数中,将"mixup"从 false 更改为True

保持其他所有参数为默认设置。

您可以访问网站查看每个论点的详细解释!!

训练深度学习模型 (影像分析师) --- ArcGIS Pro | 文档深度学习参数 --- ArcGIS Pro | 文档

训练完成后,输出文件夹将包含四个文件和一个文件夹。
该**.dlpk**文件是主模型,我们将使用它来测试样本。
我们可以打开 html 文件,它显示了模型的性能。

我使用的真实数据由于图像扭曲而存在一些问题;但是,我们可以看到该模型仍然可以检测到正确的滑坡覆盖区域。

在损失图 中,我们观察到两条线:蓝线表示训练损失 ,橙线表示验证损失
随着训练周期数的增加,两条曲线都呈现下降趋势,表明模型正在学习并逐渐提高其性能。当损失值稳定时,表明模型的训练已达到收敛并且没有过拟合。

至于Precision、RecallF1(F1-score),则来自于混淆矩阵的概念,都是用来评估模型性能的。

来源:性能指标 | Vaibhav Jayaswal 著 | Towards Data Science

Presion = TP / (TP + FP),
表示在所有预测的阳性结果中,有多少百分比是真正的阳性。

召回率 = TP / (TP + FN),
表示在全部阳性样本中,预测为阳性的占比。与 TPR(真实阳性率)相同。

F1-Score = (2 * 准确率 * 召回率) / (准确率 + 召回率)
它是准确率和召回率的调和平均值。它同时考虑了假阳性和假阴性。因此,它在不平衡的数据集上表现良好。

步骤 5. 现在是测试的时候了!

打开使用深度学习分类像素 工具。
(图像分析工具/深度学习)

输入预处理后的测试影像,确保其与训练样本的栅格信息相匹配。

设置输出位置并将**.dlpk上一步中的文件输入到模型定义中。
保留其他参数为
默认值** ,然后单击运行
(此外,如果可用,请转到环境并将处理类型设置为 GPU)

通过这样做,您将看到模型对测试样本的预测。

相关推荐
lly_csdn12325 分钟前
【Image Captioning】DynRefer
python·深度学习·ai·图像分类·多模态·字幕生成·属性识别
TURING.DT2 小时前
模型部署:TF Serving 的使用
深度学习·tensorflow
励志去大厂的菜鸟3 小时前
系统相关类——java.lang.Math (三)(案例详细拆解小白友好)
java·服务器·开发语言·深度学习·学习方法
liuhui2443 小时前
Pytorch深度学习指南 卷I --编程基础(A Beginner‘s Guide) 第1章 一个简单的回归
pytorch·深度学习·回归
睡不着还睡不醒4 小时前
【深度学习】神经网络实战分类与回归任务
深度学习·神经网络·分类
知识鱼丸4 小时前
machine learning knn算法之使用KNN对鸢尾花数据集进行分类
算法·机器学习·分类
周杰伦_Jay4 小时前
简洁明了:介绍大模型的基本概念(大模型和小模型、模型分类、发展历程、泛化和微调)
人工智能·算法·机器学习·生成对抗网络·分类·数据挖掘·transformer
编码浪子4 小时前
Transformer的编码机制
人工智能·深度学习·transformer
IE065 小时前
深度学习系列76:流式tts的一个简单实现
人工智能·深度学习
m0_743106469 小时前
【论文笔记】MV-DUSt3R+:两秒重建一个3D场景
论文阅读·深度学习·计算机视觉·3d·几何学