无需编码即可使用 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)

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

相关推荐
Blossom.1186 小时前
使用Python和Scikit-Learn实现机器学习模型调优
开发语言·人工智能·python·深度学习·目标检测·机器学习·scikit-learn
scdifsn7 小时前
动手学深度学习12.7. 参数服务器-笔记&练习(PyTorch)
pytorch·笔记·深度学习·分布式计算·数据并行·参数服务器
海盗儿8 小时前
Attention Is All You Need (Transformer) 以及Transformer pytorch实现
pytorch·深度学习·transformer
不爱写代码的玉子8 小时前
HALCON透视矩阵
人工智能·深度学习·线性代数·算法·计算机视觉·矩阵·c#
sbc-study9 小时前
PCDF (Progressive Continuous Discrimination Filter)模块构建
人工智能·深度学习·计算机视觉
小喵喵生气气9 小时前
Python60日基础学习打卡Day46
深度学习·机器学习
红衣小蛇妖11 小时前
神经网络-Day44
人工智能·深度学习·神经网络
且慢.58911 小时前
Python_day47
python·深度学习·计算机视觉
&永恒的星河&12 小时前
基于TarNet、CFRNet与DragonNet的深度因果推断模型全解析
深度学习·因果推断·cfrnet·tarnet·dragonnet
Blossom.11813 小时前
使用Python和Flask构建简单的机器学习API
人工智能·python·深度学习·目标检测·机器学习·数据挖掘·flask