使用深度学习分类对象 (影像分析工具)
汇总
用于运行输入栅格和可选要素类上的训练深度学习模型,以生成要素类或表,其中每个输入对象或要素均具有一个分配的类或类别标注。
该工具需要包含经过训练的模型信息的模型定义文件。 可以使用训练深度学习模型工具或第三方训练软件(例如 PyTorch)训练模型。 模型定义文件可以是 Esri 模型定义 JSON 文件 (.emd) 或深度学习模型包,该文件必须包含为处理每个对象调用的 Python 栅格函数路径以及经过训练的二进制深度学习模型文件路径。
用法
您必须在 ArcGIS Pro Python 环境中安装适当的深度学习框架 Python API;否则在将 Esri 模型定义文件添加至工具时会发生错误。 Esri 模型定义文件的创建者应提供相应的框架信息。
要设置计算机以在 ArcGIS Pro 中使用深度学习框架,请参阅安装 ArcGIS 的深度学习框架。
该工具将调用第三方深度学习框架 Python API,并使用指定的 Python 栅格函数来处理每个对象。
该工具的示例用例请参见 Esri Python 栅格函数 GitHub 页面。 您还可以按照以下示例和说明编写自定义 Python 模块。
模型定义参数值可以是 Esri 模型定义 JSON 文件 (
.emd)、JSON 字符串或深度学习模型包 (.dlpk)。 当在服务器上使用此工具时,JSON 字符串十分有用,因为您可以直接粘贴 JSON 字符串,而无需上传.emd文件。.dlpk文件必须存储在本地。CropSizeFixed属性可定义每个对象周围的栅格切片的裁剪模式。 值 1 表示将使用由.emd文件内的ImageHeight和ImageWidth属性定义的固定栅格切片。 对象位于固定切片大小的中心。 值 0 表示将使用可变切片大小,其中栅格切片将使用对象周围的最小边界框进行裁剪。BlackenAroundFeature属性指定是否掩膜每个对象外部的像素。 值 0 表示不会掩膜对象外部的像素。 值 1 表示将掩膜对象外部的像素。该工具可以处理地图空间或像素空间中的输入影像。 地图空间中的影像位于基于地图的坐标系中。 像素空间中的影像基于行和列,没有旋转和畸变。 可以在导出训练数据进行深度学习工具中使用参考系统参数生成训练数据时指定参考系统。 如果使用第三方训练软件对模型进行训练,则必须在
.emd文件中使用ImageSpaceUsed参数指定参考系统,可以设置为MAP_SPACE或PIXEL_SPACE。输入栅格可以是单个栅格、多个栅格或附加影像的要素类。 有关附件的详细信息,请参阅添加或移除文件附件。
增加批量大小可以提高工具性能;但是随着批量大小增加,所用内存也将随之增加。 如果出现内存不足错误,则降低批量大小。 可以使用自变量参数调整
batch_size值。批量大小为平方数,例如 1、4、9、16、25、64 等。 如果输入值不是完全平方值,将使用可能的最高平方值。 例如,如果指定的值为 6,则批量大小设置为 4。
一些深度学习模型支持梯度加权类激活映射 (Grad-CAM)。 Grad-CAM 模型用于在模型中相对于最近激活映射查找最主要 logit 梯度。 该方法将突出显示图像中最具影响力的像素,这些像素在用于确定图像分类的模型中起着重要作用。
当在模型定义中将 Grad-CAM 支持设置为
true时,输出要素类中的每个要素都将具有一个附件,该附件显示了具有影响力的像素。该工具将支持并使用多个 GPU(如果可用)。 要使用特定的 GPU,指定 GPU ID 环境。 如果未设置 GPU ID,该工具将使用所有可用 GPU。 这是默认设置。
- 当处理器类型环境设置为 CPU 且并行处理因子环境未指定时,工具将使用 50% 的并行处理因子值。
有关运行此工具的要求以及您可能遇到的问题的信息,请参阅深度学习常见问题。
有关深度学习的详细信息,请参阅使用 ArcGIS Image Analyst 扩展模块的深度学习。
参数
| 标注 | 说明 | 数据类型 |
|---|---|---|
|
输入栅格 |
用于分类对象的输入图像。 输入可以是镶嵌数据集、影像服务或影像文件夹中的一个或多个栅格,或者具有影像附件的要素类。 |
Raster Dataset; Raster Layer; Mosaic Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer; Folder; Feature Layer; Feature Class |
|
输出分类对象要素类 |
包含输入要素类中对象或要素周围几何的输出要素类,以及用于存储分类标注的字段。 如果要素类已存在,结果将追加到现有要素类。 |
Feature Class |
|
模型定义 |
模型定义参数值可以是 Esri 模型定义 JSON 文件 ( 其中包含深度学习二进制模型文件路径、待使用的 Python 栅格函数路径以及其他参数,例如首选切片大小或填充。 |
File; String |
|
输入要素 (可选) |
用于标识要分类或要标注的每个对象或要素位置的点、线或面输入要素类。 输入要素类中的每一行表示一个对象或要素。 如果未提供任何输入要素类,将假设每个输入影像包含单个待分类对象。 如果一个或多个输入影像使用空间参考,则工具的输出为要素类,其中每个影像的范围将用作每个标注要素类的边界几何。 如果一个或多个输入影像没有使用空间参考,则工具的输出为包含影像 ID 值和每个影像类标注的表。 |
Feature Class; Feature Layer |
|
类标注字段 (可选) |
包含输出要素类中类或类别标注的字段名称。 如果未提供任何字段名称,则会在输出要素类中生成一个 |
String |
|
处理模式 (可选) |
指定处理镶嵌数据集或影像服务中的所有栅格项目的方式。 当输入栅格是镶嵌数据集或影像服务时,将应用此参数。
|
String |
|
参数 (可选) |
模型定义参数中的信息将用于填充此参数。 这些参数会有所变化,具体取决于模型架构。 下面为在 ArcGIS 中训练的模型支持的模型参数。 ArcGIS 预训练模型和自定义深度学习模型可能具有该工具支持的其他参数。 值表列:
|
Value Table |
|
说明文字 (可选) |
包含输出要素类中文本或标题的字段名称。 仅当使用“影像描述生成器”模型时才支持此参数。 如果未提供任何字段名称,则会在输出要素类中生成一个 注:此参数不会出现在地理处理窗格中。 要更改默认字段名称,请使用类标注字段参数。 |
String |
环境
输出坐标系, 地理变换, 范围, 像元大小, 处理器类型, GPU ID, 并行处理因子
许可信息
- 基本: 需要 Image Analyst
- 标准: 需要 Image Analyst
- 高级: 需要 Image Analyst