使用 ArcGIS Image Analyst 扩展模块的深度学习

获得 Image Analyst 许可后可用。

使用 ArcGIS Image Analyst 扩展模块,您可以使用 ArcGIS Pro 中的影像执行整个深度学习工作流。 使用地理处理工具准备图像训练数据、训练对象检测、像素分类或对象分类模型,以及生成和查看结果。

注:

本主题介绍了使用 Image Analyst 进行影像工作流的深度学习。 有关 ArcGIS Pro 中所有深度学习功能的概述,请参阅 ArcGIS Pro 中的深度学习

工作流如下图所示。

深度学习工作流

步骤描述

深度学习步骤 1

使用标注对象以供深度学习窗格创建训练样本,然后使用导出训练数据进行深度学习工具将样本转换为深度学习训练数据。

注:

Spatial Analyst 扩展模块还支持导出训练数据进行深度学习工具。

深度学习步骤 2

使用训练深度学习模型工具通过 PyTorch 训练模型,或在 ArcGIS Pro 外部使用支持的第三方深度学习框架训练模型。

深度学习步骤 3

使用训练模型运行使用深度学习检测对象工具、使用深度学习分类像素工具或使用深度学习分类对象工具以生成输出。

使用属性窗格查看和验证结果,并使用计算对象检测的精度工具计算精度。

特性和功能

通过 ArcGIS Pro 中的深度学习工具,可以使用除标准机器学习分类方法以外的更多方法。

  • 使用卷积神经网络或深度学习模型检测对象、对对象进行分类或对图像像素进行分类。
  • 集成外部深度学习模型框架。
  • 多次使用模型定义文件来检测随时间的变化或检测不同感兴趣区域中的对象。
  • 生成面要素类来显示检测到的对象的位置,以供其他分析或工作流使用。
  • 利用 GPU 处理以及使用 CPU 进行分布式处理。

深度学习入门

可在 ArcGIS Pro 中使用标准训练样本生成工具创建和导出训练样本。 深度学习模型可以使用训练深度学习模型工具通过 PyTorch 框架进行训练,或者可以在 ArcGIS Pro 外部使用另一个深度学习框架进行训练。 训练模型后,使用 Esri 模型定义文件 (.emd) 运行地理处理工具以检测影像中的要素或对其进行分类。

您必须安装深度学习框架 Python 包;否则,在将 Esri 模型定义文件添加到深度学习地理处理工具时会出现错误。 有关如何安装这些包的信息,请参阅安装 ArcGIS 的深度学习框架

  1. 创建并导出训练样本。
    1. 使用标注对象以供深度学习窗格或训练样本管理器来选择或创建分类方案。
    2. 为感兴趣的类类别或类要素创建训练站点样本。 保存训练样本文件。
    3. 运行导出训练数据进行深度学习地理处理工具,将源影像和训练样本转换为深度学习训练数据。 源影像可以是影像服务、镶嵌数据集、栅格数据集或栅格文件夹。 该工具的输出为影像片或样本,其中包含用于训练深度学习模型的训练场。 该工具的另一个输出是必须填充的模板文件 .emd
  2. 训练深度学习模型。
    1. 使用训练深度学习模型工具通过在上一步中生成的影像片训练深度学习模型。
  3. ArcGIS Pro 中运行推断地理处理工具。
    1. 使用使用深度学习检测对象使用深度学习 分类像素使用深度学习分类对象地理处理工具处理影像。 如果经过训练的模型整合了自定义 Python 栅格函数及其他变量(如用于微调灵敏度的填充或置信度阈值),则这些变量将显示在地理处理工具的用户输入对话框中。 数据类型(如字符串或数字)在 Python 栅格函数中指定。 理想情况下,其他推断参数的个数限制应为两个。

      Esri 模型定义参数值可以是 Esri 模型定义 JSON 文件 (.emd) 或 JSON 字符串。 当在服务器上使用此工具时,JSON 字符串十分有用,因为您可以直接粘贴 JSON 字符串,而无需上传 .emd 文件。

      The output of the 使用深度学习检测对象工具是显示模型检测到的对象的要素类。 使用深度学习分类像素工具会输出已分类栅格。 使用深度学习分类对象工具需要要素类和影像作为输入数据集,并将生成一个要素类,其中每个要素中的每个对象均以类名称标注。

使用深度学习模型后,您需要审查结果并评估模型的准确性。 使用属性窗格,通过基于对象的推断审查结果使用深度学习分类对象工具或使用深度学习检测对象工具)。 您也可以使用计算对象检测的精度工具生成表格和报表以进行精度评估。

要了解具有计算机视觉的深度学习应用程序的基础知识,请参阅深度学习简介

有关运行地理处理工具的要求以及您可能遇到的问题的信息,请参阅深度学习常见问题

开发人员资源

除了 ArcGIS Pro 中提供的地理处理工具和工作流程外,您还可以在脚本和笔记本中执行深度学习任务。 如果您正在使用 ArcGIS REST API,请使用适用于栅格分析服务的深度学习任务。 这些任务等同于可用的地理处理工具,但允许根据您的处理配置进行分布式处理。

如果您正在使用 ArcGIS API for Python,则 arcgis.learn 模块还有许多其他可用深度学习任务。

相关主题