使用 AI 模型提取要素 (GeoAI)

获得 Image Analyst 许可后可用。

摘要

将在输入栅格上运行一个或多个预训练的深度学习模型以提取要素,并自动对推断输出进行后处理。

了解有关“使用 AI 模型提取要素”工作原理的详细信息

使用情况

  • 此工具需要来自 ArcGIS Living Atlas of the WorldArcGIS 预训练模型或自定义深度学习模型包(.dlpk 文件)。

  • 您必须在 ArcGIS AllSource 中为 Python 安装适当的深度学习框架。

    了解如何安装 ArcGIS 的深度学习框架

  • 该工具生成输出所需的时间取决于以下因素:

    • 用于推断的感兴趣区域
    • 所选模型的数量

  • 要运行此工具,需要配备 GPU 的计算机。 如果您具有多个 GPU,请指定 GPU ID

  • 该工具的潜在用例包括使用多个模型创建底图,以及使用算法对模型输出进行后处理,以清理提取的要素。

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

参数

标注说明数据类型
输入栅格

将对其执行处理的输入栅格。

如果将模式参数指定为仅后处理,则此参数需要具有二进制分类的栅格。

Raster Layer; Raster Dataset; Mosaic Layer
模式

指定将用于处理输入栅格的模式。

  • 推断和后处理将从影像中提取要素并对其进行后处理。 这是默认设置。
  • 仅后处理将直接对输入栅格进行后处理。 此选项需要具有二进制分类的单波段栅格。
String
输出位置

将存储模型的中间输出和最终后处理输出的文件地理数据库。

Workspace
输出前缀

将添加到输出名称的前缀,输出将保存到输出位置。 前缀还将用作图层组的名称,该图层组将用于显示所有输出。

String
感兴趣区域
(可选)

将用于提取要素的地理范围。 将仅提取感兴趣区域内的要素。

Feature Set
预训练模型
(可选)

来自 ArcGIS Living Atlas of the World 的 ArcGIS 预训练模型,可用于提供的输入栅格。 此参数需要 Internet 连接,才能下载预训练模型。

String
其他模型
(可选)

可在提供的输入栅格上使用的深度学习模型以及将用于其他模型文件(.dlpk.emd)的后处理工作流。 可用的后处理工作流如下:

  • 线规则化 - 后处理工作流将从具有二进制分类的单波段栅格中提取线要素,并在对其进行细化后生成折线要素类。 此工作流还支持生成折线要素类的深度学习模型。
  • 宗地规则化 - 后处理工作流将从具有二进制分类的单波段栅格中提取宗地,并在对其进行细化后生成面要素类。
  • 面规则化 - 后处理工作流将在对其进行细化后生成面要素类。 此工作流仅与对象检测模型兼容。
  • 面分割 - 后处理工作流将使用其质心或边界框生成包含检测到的对象的面要素类。 使用提示参数指定分割方法。
  • - 将不会应用任何后处理工作流。 这是默认设置。

Value Table
置信度阈值
(可选)

在检测对象时将使用的深度学习模型的最小置信度。 值必须位于 0 和 1 之间。

Double
保存中间输出
(可选)

指定是否将中间输出保存到输出位置。 术语中间输出是指对模型进行推断后生成的结果。

  • 选中 - 将中间输出保存到输出位置。
  • 未选中 - 将不会保存中间输出。 这是默认设置。
Boolean
测试时间增加
(可选)

指定是否将输入影像的翻转和旋转变体的预测合并到最终输出中。

  • 选中 - 输入影像的翻转和旋转变体的预测将合并到最终输出中。
  • 未选中 - 不会将输入影像的翻转和旋转变体的预测合并到最终输出中。 这是默认设置。

Boolean
缓冲距离
(可选)

将折线要素用于后处理之前,将用于缓冲折线要素的距离。 默认值为 15 米。

Linear Unit
延伸长度
(可选)

将线段延伸到相交要素所需的最大距离。 默认值为 25 米。

Linear Unit
平滑容差
(可选)

指数核的多项式近似 (PAEK) 算法使用的容差。 默认值为 30 米。

Linear Unit
悬挂长度
(可选)

将修剪两个端点均未接触其他线的线段(悬挂线)的长度。 默认设置为 5 米。

Linear Unit
输入道路要素
(可选)

将用于细化宗地的道路要素类。 输入可以为面或折线要素类。

Feature Layer; Feature Class
道路缓冲宽度
(可选)

将用于输入道路要素的缓冲距离。 对于折线要素,默认值为 5 米;对于面要素,默认值为 0 米。

Linear Unit
规则化宗地
(可选)

指定是否将通过消除已提取宗地几何中不需要的伪影来对其进行规范化。

  • 选中 - 将对已提取宗地进行规范化。 这是默认设置。
  • 未选中 - 将不会对已提取宗地进行规范化。
Boolean
后处理工作流
(可选)

指定将使用的后处理工作流。

  • 线规则化将从具有二进制分类和折线要素类的单波段栅格中提取线要素,并在优化后生成折线要素类。
  • 宗地规则化将从具有二进制分类和面要素类的单波段栅格中提取宗地,并在优化后生成面要素类。
  • 面规则化面要素类将在优化后生成。 此工作流仅与对象检测模型兼容。
String
输出要素
(可选)

包含后处理输出的要素类。

Feature Class
相邻宗地之间的容差
(可选)

在将两个坐标视为相同坐标之前它们之间的最小距离。 此参数用于减少已提取宗地之间的狭长面。 默认值为 3 米。

Linear Unit
规则化方法
(可选)

指定将在后处理中使用的规则化方法。

  • 直角将在相邻边之间构造由 90° 角组成的形状。 这是默认设置。
  • 直角和对角将在相邻边之间构造由 45° 和 90° 角组成的形状。
  • 任意角将在相邻边之间构造由任意角组成的形状。
  • 圆形将使用距正在处理的要素边界的最大距离。
String
容差
(可选)

规则化覆盖区可从其原始要素的边界偏移的最大距离。 默认值为 1 米。

Linear Unit
提示 (prompt)
(可选)

指定当其他模型参数设置为面分割时将使用的分割方法。

  • 质心检测的质心将用于向面分割模型指示要在输入栅格中分割的内容。
  • 边界框检测的边界框将用于向面分割模型指示要在输入栅格中分割的内容。
  • 将不使用分割方法。 这是默认设置
String
输入要素
(可选)

将执行要素类的后处理。 仅当后处理工作流参数设置为线规则化面规则化时,才支持此参数。

将执行要素类的后处理。 仅当 post_processing_workflow 参数设置为 Line RegularizationPolygon Regularization 时,系统才支持此参数。

Feature Layer; Feature Class
输出汇总
(可选)

该表将包含生成的输出及其各自路径的列表。

Table

arcpy.geoai.ExtractFeaturesUsingAIModels(in_raster, mode, out_location, out_prefix, {area_of_interest}, {pretrained_models}, {additional_models}, {confidence_threshold}, {save_intermediate_output}, {test_time_augmentation}, {buffer_distance}, {extend_length}, {smoothing_tolerance}, {dangle_length}, {in_road_features}, {road_buffer_width}, {regularize_parcels}, {post_processing_workflow}, {out_features}, {parcel_tolerance}, {regularization_method}, {poly_tolerance}, {prompt}, {in_features}, {out_summary})
名称说明数据类型
in_raster

将对其执行处理的输入栅格。

如果将 mode 参数指定为 Only Postprocess,则此参数需要具有二进制分类的栅格。

Raster Layer; Raster Dataset; Mosaic Layer
mode

指定将用于处理输入栅格的模式。

  • Infer and Postprocess将从影像中提取要素并对其进行后处理。 这是默认设置。
  • Only Postprocess将直接对输入栅格进行后处理。 此选项需要具有二进制分类的单波段栅格。
String
out_location

将存储模型的中间输出和最终后处理输出的文件地理数据库。

Workspace
out_prefix

将添加到输出名称的前缀,输出将保存到输出位置。 前缀还将用作图层组的名称,该图层组将用于显示所有输出。

String
area_of_interest
(可选)

将用于提取要素的地理范围。 将仅提取感兴趣区域内的要素。

Feature Set
pretrained_models
[pretrained_models,...]
(可选)

来自 ArcGIS Living Atlas of the World 的 ArcGIS 预训练模型,可用于提供的输入栅格。 此参数需要 Internet 连接,才能下载预训练模型。

String
additional_models
[additional_models,...]
(可选)

可在提供的输入栅格上使用的深度学习模型以及将用于其他模型文件(.dlpk.emd)的后处理工作流。 可用的后处理工作流如下:

  • Line Regularization - 后处理工作流将从具有二进制分类的单波段栅格中提取线要素,并在对其进行细化后生成折线要素类。 此工作流还支持生成折线要素类的深度学习模型。
  • Parcel Regularization - 后处理工作流将从具有二进制分类的单波段栅格中提取宗地,并在对其进行细化后生成面要素类。
  • Polygon Regularization - 后处理工作流将在对其进行细化后生成面要素类。 此工作流仅与对象检测模型兼容。
  • Polygon Segmentation - 后处理工作流将使用其质心或边界框生成包含检测到的对象的面要素类。 使用 prompt 参数指定分割方法。
  • None - 将不会应用任何后处理工作流。 这是默认设置。

Value Table
confidence_threshold
(可选)

在检测对象时将使用的深度学习模型的最小置信度。 值必须位于 0 和 1 之间。

Double
save_intermediate_output
(可选)

指定是否将中间输出保存到输出位置。 术语中间输出是指对模型进行推断后生成的结果。

  • TRUE将中间输出保存到输出位置。
  • FALSE将不会保存中间输出。 这是默认设置。
Boolean
test_time_augmentation
(可选)

指定是否将输入影像的翻转和旋转变体的预测合并到最终输出中。

  • TRUE输入影像的翻转和旋转变体的预测将合并到最终输出中。
  • FALSE不会将输入影像的翻转和旋转变体的预测合并到最终输出中。 这是默认设置。
Boolean
buffer_distance
(可选)

将折线要素用于后处理之前,将用于缓冲折线要素的距离。 默认值为 15 米。

Linear Unit
extend_length
(可选)

将线段延伸到相交要素所需的最大距离。 默认值为 25 米。

Linear Unit
smoothing_tolerance
(可选)

指数核的多项式近似 (PAEK) 算法使用的容差。 默认值为 30 米。

Linear Unit
dangle_length
(可选)

将修剪两个端点均未接触其他线的线段(悬挂线)的长度。 默认设置为 5 米。

Linear Unit
in_road_features
(可选)

将用于细化宗地的道路要素类。 输入可以为面或折线要素类。

Feature Layer; Feature Class
road_buffer_width
(可选)

将用于输入道路要素的缓冲距离。 对于折线要素,默认值为 5 米;对于面要素,默认值为 0 米。

Linear Unit
regularize_parcels
(可选)

指定是否将通过消除已提取宗地几何中不需要的伪影来对其进行规范化。

  • TRUE将对已提取宗地进行规范化。 这是默认设置。
  • FALSE将不会对已提取宗地进行规范化。
Boolean
post_processing_workflow
(可选)

指定将使用的后处理工作流。

  • Line Regularization将从具有二进制分类和折线要素类的单波段栅格中提取线要素,并在优化后生成折线要素类。
  • Parcel Regularization将从具有二进制分类和面要素类的单波段栅格中提取宗地,并在优化后生成面要素类。
  • Polygon Regularization面要素类将在优化后生成。 此工作流仅与对象检测模型兼容。
String
out_features
(可选)

包含后处理输出的要素类。

Feature Class
parcel_tolerance
(可选)

在将两个坐标视为相同坐标之前它们之间的最小距离。 此参数用于减少已提取宗地之间的狭长面。 默认值为 3 米。

Linear Unit
regularization_method
(可选)

指定将在后处理中使用的规则化方法。

  • Right Angles将在相邻边之间构造由 90° 角组成的形状。 这是默认设置。
  • Right Angles and Diagonals将在相邻边之间构造由 45° 和 90° 角组成的形状。
  • Any Angles将在相邻边之间构造由任意角组成的形状。
  • Circle将使用距正在处理的要素边界的最大距离。
String
poly_tolerance
(可选)

规则化覆盖区可从其原始要素的边界偏移的最大距离。 默认值为 1 米。

Linear Unit
prompt
(可选)

指定当 additional_models 参数设置为 Polygon Segmentation 时将使用的分割方法。

  • Centroid检测的质心将用于向面分割模型指示要在输入栅格中分割的内容。
  • Bounding Box检测的边界框将用于向面分割模型指示要在输入栅格中分割的内容。
  • None将不使用分割方法。 这是默认设置
String
in_features
(可选)

将执行要素类的后处理。 仅当 post_processing_workflow 参数设置为 Line RegularizationPolygon Regularization 时,系统才支持此参数。

Feature Layer; Feature Class
out_summary
(可选)

该表将包含生成的输出及其各自路径的列表。

Table

代码示例

ExtractFeaturesUsingAIModels(Python 窗口)

该示例演示了如何使用 ExtractFeaturesUsingAIModels 函数。

# Name: ExtractFeaturesUsingAIModels.py
# Description: Extract features using pretrained deep learning models on imagery data.
  
# Import system modules
import arcpy

# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")

# Set local variables
datapath = "path_to_training_data" 
out_gdb = "path_to_gdb"
predictions = "output_prefix"

# Run Extract Features Using AI Models
arcpy.geoai.ExtractFeaturesUsingAIModels(
    in_raster=datapath,
    mode="Infer and Postprocess", 
    out_location=out_gdb, 
    out_prefix=predictions, 
    pretrained_models="'Building Footprint Extraction - USA'", 
    save_intermediate_output="TRUE", 
    buffer_distance="15 Meters", 
    extend_length="25 Meters", 
    smoothing_tolerance="30 Meters", 
    dangle_length="5 Meters",
    regularization_method="Right Angles",
    poly_tolerance="1 Meters",
    prompt="Bounding Box")

环境