训练模型
土地利用-土地覆盖 (LULC) 分类基于遥感图像,概述了广阔地理区域的土地利用和土地覆盖的常用类别。 它在环境监测、资源管理、生物多样性保护、减少灾害风险和气候变化分析等各个方面发挥着至关重要的作用。 它有助于系统地监测土地利用的变化、有效分配资源、保护栖息地、识别灾害易发地区以及评估气候变化的影响。
您将使用使用 AutoDL 训练工具来训练多个模型,并确定性能最佳的模型,以根据合成孔径雷达 (SAR) 图像对土地覆盖进行分类。
下载并浏览数据
首先,您需要下载一个包含您将使用的训练数据的工程。
- 下载 AutoDL_tutorial.ppkx 包。
AutoDL_tutorial.ppkx 文件随即下载到您的计算机。
注:
.ppkx 文件是一个 ArcGIS Pro 工程包,可能包含可以在 ArcGIS Pro 中打开的地图、数据和其他文件。 通过本指南了解有关管理 .ppkx 文件的详细信息。
该工程包大约为 4.3 GB,因此下载可能需要一些时间。
- 在计算机上找到已下载的文件。
注:
开始下载前,根据 web 浏览器的不同,系统可能会提示您选择文件的位置。 大多数浏览器将默认下载到计算机的 Downloads 文件夹下。
- 双击 AutoDL_tutorial.ppkx 工程包。
注:
打包的工程被提取到您的文档文件夹中。 此过程将压缩项目和数据提取到新位置,可能需要一些时间。 到工程的路径将类似于 C:\Users\username\Documents\ArcGIS\Packages\AutoDL_tutorial_7bd31e。 最后一个文件夹名称的最后几位数字是随机生成的。
如果要从项目的原始状态开始,可以重命名或删除此文件夹,然后双击 AutoDL_tutorial.ppkx 项目包文件来创建项目的副本。
注:
如果您没有 ArcGIS Pro 的访问权限或者 ArcGIS 组织帐户,请参阅软件访问权限选项。
使用 AutoDL 训练工具需要 ArcGIS Pro 3.2 或更高版本。
- 提示时登录您的 ArcGIS Online 组织帐户。
出现一张显示德国部分地区的地图。 图像图层 LULCRaster2018.tif 将显示在地形底图之上。
LULCRaster.tif 图层是显示 1 级 LULC 类别的分类栅格。 该分类系统将地球表面广泛地分为一般土地利用和土地覆盖类型,例如城市地区、农业用地、森林、水体和湿地。 它是最基本的分类级别,为大规模分析提供了主要土地类别的概览。
- 在功能区地图选项卡的导航部分中,单击书签并选择 Speyer 书签。
地图缩放至 LULCRaster2018.tif 图层的西南部。
该图层显示了河流附近的建筑区、森林和农业区。
- 在内容窗格中,取消选中 LULCRaster2018.tif 图层并选中 SARImagery2018.tif 图层。
SARImagery2018.tif 图层源自 2018 年遥感 Sentinel-1 地面范围检测 (GRD) SAR 图像。 该图层的分辨率为 10 米,以三个波段的 TIFF 格式存储。
注:
下载并处理原始 SAR 图像以准备进行分析。 它最初由两个极化波段 VV 和 VH 组成,被下载后使用波段算术栅格函数创建了 VV/VH 衍生波段。 该波段等于 VV 波段除以 VH 波段。 这种波段组合很有用,因为它突出显示了散射行为的差异,帮助您推断表面特性。 完成此处理后,使用复合波段地理处理工具创建具有 8 位无符号像素深度的 VV、VH 和 VV/VH 的复合波段。
其中一个可以免费下载地球上任何地方的 Sentinel-1 GRD 数据的网站是 ASF Data Search Vertex 网站。
对 Sentinel-1 数据进行定期收集,以便比较不同的图像来检测随时间的变化。
手动将该图像的所有像素分类到 1 级 LULC 类别,将是一个漫长而繁琐的过程。 深度学习模型可以自动对图像进行 LULC 分类,这可以帮助您定期获取新数据、对其进行分类并检测与旧图像相比的变化。 在本教程中,您将测试该流程以确定是否可以使用此工作流程每年更新您的土地利用土地覆盖数据,并允许您识别和报告随时间的变化。
浏览训练数据
工程包包含您将用于训练和确定最佳性能模型的训练样本。 这些样本是使用导出训练数据进行深度学习工具创建的。 准备这些数据的步骤超出了本教程的范围。 您可以阅读更多了解有关该部分的完成方法。
- 单击功能区上的视图选项卡。 在窗口部分中,单击目录窗格。
- 在目录窗格中,展开文件夹,展开 AutoDL_tutorial 文件夹,然后展开 trainingdata 文件夹。
trainingdata 文件夹包含您将使用的训练数据。
图像文件夹包含使用导出训练数据进行深度学习工具从 SARImagery2018.tif 图层提取的图像片段。
标签文件夹包含显示分类土地覆盖类型的标签图像。
训练深度学习模型对这些图像进行分类涉及向模型提供影像片段和匹配的标签,从而使模型了解哪些类别与哪些 SAR 波段组合相关。
训练多模型
深度学习的挑战之一是确定使用哪种模型架构。 选择和训练模型的过程可能会令人困惑且漫长,因为模型有不同的优点和缺点,并且它们需要不同的输入和参数。 使用 AutoDL 训练工具将允许您选择一组模型架构进行训练。 它会对这些架构进行训练和测试,并报告哪个模型表现最佳。
使用 AutoDL 训练工具通过构建训练管道和自动执行大部分训练过程来训练深度学习模型。 其中包括数据增强、模型选择、超参数调整和批次大小推导。 输出内容包括训练数据上最佳模型的性能指标和训练有素的深度学习模型包(.dlpk 文件),可用于使用人工智能模型提取要素或使用深度学习工具分类像素以对其他图像进行分类。
注:
在 ArcGIS Pro 中使用深度学习工具需要在计算机上安装正确的深度学习库。 如果您未安装这些文件,请保存工程,关闭 ArcGIS Pro,然后按照在 ArcGIS Pro 中为深度学习做好准备中提供的步骤说明操作。 在这些说明中,您还可以了解如何检查您的计算机硬件和软件能否运行深度学习工作流,以及获取其他有用的提示。 完成后,您可以重新打开工程并继续本教程。
- 在功能区分析选项卡的地理处理组中,单击工具。
- 在地理处理窗格搜索框中,输入 train using autodl。 在搜索结果中,单击使用 AutoDL 训练工具。
- 在使用 AutoDL 训练工具窗格中,对于输入训练数据,单击浏览按钮。 浏览至文件夹,展开 AutoDL_tutorial 文件夹,单击 trainingdata 文件夹,然后单击确定。
- 对于输出模型,单击浏览按钮。 浏览到 AutoDL_tutorial 文件夹,输入 ClassifiedSARLULC,然后单击保存。
这将创建一个新文件夹来包含输出的训练模型。
接下来,您将指定该工具应花费多长时间来训练模型。
- 对于总时间限制(小时),输入 4。
该工具将执行该任务长达四个小时。 根据您计算机的 GPU,它可能会使用整个时间,或者可能在更短的时间内完成任务。
根据训练数据的格式,您将看到特定于像素分类的受支持的神经网络列表。
- 展开高级选项部分。
- 对于神经网络,单击添加多个。
神经网络列表随即出现。
- 选中以下神经网络:
- HRNet
- PSPNetClassifier
- UnetClassifier
- 单击添加。
神经网络被添加到要通过使用 AutoDL 训练工具进行训练和评估的网络列表中。
这些是使用语义分割对栅格中的像素进行分类的神经网络。 它们通常用于土地覆盖分类。
- 选中保存已评估模型复选框。
您已指定使用 AutoDL 训练工具应运行四个小时来训练和评估三个模型。
注:
如果您有一台配备合适 GPU 的计算机,您可以运行该工具在接下来的四个小时内训练和评估这三个模型。 要了解有关 GPU 以及它们如何用于深度学习过程的更多信息,请参见 ArcGIS Pro 教程为深度学习做好准备中的检查 GPU 可用性一节。 或者,您可以跳过训练步骤并查看为您准备的包含该工具所有输出的文件夹。 如果您不打算运行模型训练过程,请阅读接下来的四个步骤,并在下一部分“查看模型训练结果”中重新开始工作。
- 单击环境选项卡。
- 在处理器类型部分的 GPU ID 中输入 0。
如果启用 CUDA 的 GPU 具有不同的 GPU ID,请使用该 ID 号。 当您的计算机有多个 GPU 时,这可能很有必要。
- 或者,单击运行。
该进程将持续长达四个小时。
您可以在工具运行时查看有关进程状态的消息。
- 在使用 AutoDL 训练窗格的底部,单击查看详细信息。
- 单击消息选项卡。
当该进程完成后,您可以在消息窗格中查看输出。
在训练过程中,该工具随机保留 10% 的训练数据集用于验证,并使用其余 90% 的数据集训练模型。 随着训练的进行,模型会计算预测值与验证数据集中的值的匹配程度。 表格总结了每种模型的表现。 部分原因是由于验证样本的随机选择,使用该工具的训练模型是不确定的。 该工具每次运行时还会随机设置一些初始条件。 有关详细信息,请参阅工具帮助。 给定同一组训练数据,可能会选择不同的模型作为最佳模型,并且该表中会出现不同的值。
该表包括训练损失和验证损失的列。 训练损失显示模型的学习效果。 验证损失显示了模型在验证集上学到的内容表现如何,实际上展示了学习的概化程度有多好。 这两个指标的值越低,表示训练效果越好,因此在这种情况下,UnetClassifier 模型在训练损失和验证损失方面表现最佳。
PSPNetClassifier 模型的准确度值高于其他模型。 为了提高准确性,值越高越好。
准确度和骰子是衡量模型正确分类像素程度的标准。 PSPNetClassifier 模型的准确度值也高于其他模型。
学习率是用于神经网络训练的超参数。 如果您未指定该值,则将由训练工具进行计算。 该工具试图优化学习率,权衡速度和质量。 如果您作为高级用户想要继续训练模型,并且需要有关选择额外训练的学习率值的指导,则您会对表中列出的生成学习率值感兴趣。
时间列表示训练每个模型所需的时间。 您会注意到第一个模型的时间比其他模型的时间更长。 这是因为第一个模型会产生一些数据处理开销,随后这些开销会被后续模型重复使用。
该主干是默认的模型主干。 如果将 AutoDL 模式参数设置为高级而不是基本,则可能会尝试多个主干。
- 关闭关系窗格。
查看模型训练结果
您下载的工程包中包含使用 AutoDL 工具训练工具结果的压缩文件夹。 现在您将查看这些。
- 在目录窗格中,浏览到文件夹和 AutoDL_tutorial 文件夹。 右键单击 userdata 文件夹,然后选择复制路径。
- 在 Microsoft File Explorer 中,将路径粘贴到路径文本框中。
路径将类似于:C:\Users\username\Documents\ArcGIS\Packages\AutoDL_tutorial_7bd31e\userdata
该文件夹内有两个 zip 档案。 LULCClassifierModel.zip 档案包含使用之前指定的设置运行使用 AutoDL 训练工具所创建的结果。
TrainingData.zip 档案包含用于创建训练数据的数据。
- 右键单击 LULCClassifierModel.zip 档案并选择提取全部。
- 单击提取。
- 打开 LULCClassifierModel 文件夹。
该文件夹包含运行该工具的几个输出。 其中包括:
- ModelCharacteristics 文件夹,包含 README.html 文件中使用的图像。
- models 文件夹,包含在训练数据子集上评估的所有训练模型。
- ArcGISImageClassifier 是一个 Python 脚本,其中的代码用于对训练过程中的图像进行分类。
- ClassifiedSARLULC.dlpk 是模型输出文件夹中存储的所有文件的完整包,包括训练模型、模型定义文件和模型指标文件。 此包可以共享给 ArcGIS Online 和 ArcGIS Enterprise,并作为训练好的模型项目供其他人使用。
- ClassifiedSARLULC.emd 是模型定义文件,包含关于切片大小、类和模型类型的模型信息等。
- ClassifiedSARLULC.pth 是经过训练的模型,通常以 PyTorch 格式保存。
- model_metrics.html 是 HTML 页面,包含有关使用的学习率和训练过的模型精度的详细信息。
- README.html 是一个 HTML 页面,其中包含有关模型评估和最佳性能模型的准确性的详细信息。
- 双击 README.html 文件。
该页面将在浏览器选项卡中打开。 此页面将显示有关最佳性能模型的信息,包括该模型与其他模型的比较情况,以及该模型从输入训练数据中对 LULC 进行分类的能力。
训练和验证损失部分显示了训练模型期间出现的错误量图表。 当工具运行时,百分之九十的输入数据用于训练模型,而百分之十的数据则用于验证模型以确定其准确性。 理想情况下,随着可用时间内处理的图像(批次)数量的增加,这些损失值将减少并收敛。
注:
由于验证样本是从训练图像片段中随机选择的,并且一些超参数是随机设置来开始训练的,因此每次运行该工具时,即使在同一训练数据集上,训练损失和验证损失指标也会有所不同。
在此图中,您可以看到,对于处理的前 60 批图像,验证线显示的误差很高,但每批的误差都很大。 经过 60 批之后,验证过程中的错误量减少并且变化较小,除了 120 批时的峰值外。 训练线显示误差量稳步减少。
模型分析部分显示数据类的精度。 从技术角度而言,您的模型具有五个类:四个为土地覆盖,一个为 NoData。 更高的精度值意味着模型对其结果更有信心。 您可以阅读有关解释深度学习工具的精度和准确度统计数据的更多信息。
最后,此页面显示一些与原始 LULC 训练数据对比的样本影像片,实际地表位于左侧,而模型的预测位于右侧。 理想情况下,预测应与原始实际地表高度匹配。
- 在 Web 浏览器上关闭 README 页面。
- 在快速访问工具栏中,单击保存工程按钮。
您已经基于 2018 年拍摄的 Sentinel 1 影像训练了用于 LULC 分类的深度学习模型,并发现该任务表现最佳的模型是基于 UnetClassifier 架构。 接下来,您将使用该模型对 2024 年拍摄的 Sentinel 1 影像中的土地覆盖进行自动分类。
应用模型
创建了深度学习模型后,就可以使用它对不同日期捕获的类似数据进行快速土地覆盖分类。 这使您可以监测土地覆盖随时间的变化。 举例来说,您将采用您创建的模型并使用它对 2024 年在同一地理区域捕获的 Sentinel-1 影像进行分类。
使用经过训练的模型对新图像进行分类
接下来,您将使用深度学习模型通过使用深度学习分类像素工具对 2024 年收集的 Sentinel-1 影像进行分类。
- 在 ArcGIS Pro 中,单击部署模型地图选项卡。
部署模型地图显示 SARImagery2024.tif 图层。
- 在地理处理窗格中,单击后退按钮。
- 在搜索框中,输入 classify pixels using deep learning。 在搜索结果中,单击使用深度学习分类像素工具。
- 在使用深度学习分类像素工具上,对于输入栅格参数,选择 SARImagery2024.tif。
- 对于输出栅格数据集,输入 ClassifiedLULC2024。
- 对于模型定义,单击浏览按钮,浏览至 ClassifiedSARLULC 文件夹。 单击 ClassifiedSARLULC.dlpk 深度学习包。
注:
如果您没有在机器上训练模型,则可以使用工程提供的训练好的模型。 在工程文件夹结构中,浏览到 userdata\ClassifiedSARLULC\ClassifiedSARLULC 文件夹,然后单击 ClassifiedSARLULC.dlpk 深度学习包。
该工具加载深度学习包后,会出现模型参数表。 您需要接受默认值。 如果您计算机的 GPU 具有至少 8 GB 的专用 VRAM,则可以通过将批次大小增加到 8 或 16 来减少处理时间。 如果您的 GPU 的 VRAM 少于 8 GB,则可能需要将批量大小减小到 2。
- 单击环境选项卡。
- 在栅格分析部分下,对于像元大小,输入 10。
SAR 数据的像元大小与模型训练的像元大小不完全匹配,因此您可以指定输出的像元大小应为 10。
- 对于处理器类型,选择 GPU。
对该图像进行分类的过程可能需要 40 分钟或更长时间。 或者,您可以跳过运行该工具并查看工程包中提供的工具输出。
- 在处理器类型部分的 GPU ID 中输入 0。
如果启用 CUDA 的 GPU 具有不同的 GPU ID,请使用该 ID 号。 当您的计算机有多个 GPU 时,这可能很有必要。
- 或者,单击运行。
如果您运行该工具,则当它完成时,请在地图上查看结果。
注:
图像类别颜色将被随机分配。 您可以根据自己的喜好更改它们。 右键单击类别符号,然后在调色板中选择您喜欢的颜色。
- 如果您没有运行该工具,请单击结果地图选项卡以查看工具结果。
分类影像随即出现。
注:
深度学习不是一个确定性的进程,因此您获得的结果可能会略有不同。
您可以将 2024 年的栅格与 2018 年的栅格进行比较,检测随时间推移的大规模土地利用变化。 现在深度学习模型已经训练完毕,您可以每年或更频繁地将其应用于新的 SAR 图像。 该训练模型可以成为有效工作流程的一部分,监测随时间推移的土地覆盖变化。
- 按 Ctrl+S 以保存工程。
在本教程中,您使用了使用 AutoDL 训练工具来训练多个模型,对 Sentinel-1 SAR 图像中的土地覆盖进行分类,并自动识别哪个模型表现最佳。 然后,您将表现最佳的训练模型应用于更新的图像。
注:
Esri 在 ArcGIS Living Atlas 提供超过 60 个预训练模型,加快对图像进行分类和检测物体的过程。 这些模型可以免费下载,您可以直接在兼容的影像输入上部署它们。 您还可以根据自己的训练数据对这些预训练模型进行微调;这通常比从头开始训练模型花费的时间更少。 例如,请参阅使用深度学习预训练模型检测对象和使用 SAR 数据和深度学习绘制洪水地图教程。访问本教程系列以获取更多深度学习教程。
有关为深度学习工作流程准备 SAR 图像的更多信息,请参阅本教程。