获得 Image Analyst 许可后可用。
描述
用于运行输入栅格上的训练深度学习模型,以生成分类栅格,其中每个有效像素都被分配了一个类标注。
该工具需要包含经过训练的模型信息的模型定义文件。可以使用训练深度学习模型工具或第三方训练软件(例如 TensorFlow、PyTorch 或 Keras)训练模型。模型定义文件可以是 Esri 模型定义 JSON 文件 (.emd) 或深度学习模型包,它必须包含为处理每个对象调用的 Python 栅格函数的路径以及经过训练的二进制深度学习模型文件的路径。
使用方法
您必须在 ArcGIS Pro Python 环境中安装适当的深度学习框架 Python API(例如 TensorFlow 或 PyTorch);否则在将 Esri 模型定义文件添加至工具时会发生错误。向 Esri 模型定义文件的创建者索取相应的框架信息。
要设置计算机以在 ArcGIS Pro 中使用深度学习框架,请参阅安装 ArcGIS 的深度学习框架。
该工具将调用第三方深度学习 Python API(例如 TensorFlow、PyTorch 或 Keras),并使用指定的 Python 栅格函数来处理每个对象。
可以在 Esri Python 栅格函数 GitHub 页面 上找到此工具的示例用例。您还可以按照 GitHub 资料档案库中的示例和说明编写自定义 Python 模块。
Esri 模型定义参数值可以是 Esri 模型定义 JSON 文件 (.emd)、JSON 字符串或深度学习模型包 (.dlpk)。当在服务器上使用此工具时,JSON 字符串十分有用,因为您可以直接粘贴 JSON 字符串,而无需上传 .emd 文件。.dlpk 文件必须存储在本地。
有关深度学习的详细信息,请参阅 ArcGIS Pro 中的深度学习。
以下代码示例使用 Esri 模型定义 (.emd) 文件:
{ "Framework":"TensorFlow", "ModelConfiguration":"deeplab", "ModelFile":"\\Data\\ImgClassification\\TF\\froz_inf_graph.pb", "ModelType":"ImageClassification", "ExtractBands":[0,1,2], "ImageHeight":513, "ImageWidth":513, "Classes" : [ { "Value":0, "Name":"Evergreen Forest", "Color":[0, 51, 0] }, { "Value":1, "Name":"Grassland/Herbaceous", "Color":[241, 185, 137] }, { "Value":2, "Name":"Bare Land", "Color":[236, 236, 0] }, { "Value":3, "Name":"Open Water", "Color":[0, 0, 117] }, { "Value":4, "Name":"Scrub/Shrub", "Color":[102, 102, 0] }, { "Value":5, "Name":"Impervious Surface", "Color":[236, 236, 236] } ] }
有关运行此工具的要求以及您可能遇到的问题的信息,请参阅深度学习常见问题。
语法
ClassifyPixelsUsingDeepLearning(in_raster, in_model_definition, {arguments}, processing_mode, {out_classified_folder})
参数 | 说明 | 数据类型 |
in_raster | 待分类的输入栅格数据集。输入可以是镶嵌数据集、影像服务或影像文件夹中的单个栅格或多个栅格。 | Raster Dataset; Raster Layer; Mosaic Layer; Image Service; MapServer; Map Server Layer; Internet Tiled Layer; Folder |
in_model_definition | in_model_definition 参数值可以是 Esri 模型定义 JSON 文件 (.emd)、JSON 字符串或深度学习模型包 (.dlpk)。当在服务器上使用此工具时,JSON 字符串十分有用,因为您可以直接粘贴 JSON 字符串,而无需上传 .emd 文件。.dlpk 文件必须存储在本地。 其中包含深度学习二进制模型文件的路径、待使用的 Python 栅格函数的路径以及其他参数,例如首选切片大小或填充。 | File; String |
arguments [arguments,...] (可选) | 函数参数在 Python 栅格函数类中定义。您可以在此列出其他深度学习参数和用于试验和优化的参数,例如用于调整灵敏度的置信度阈值。参数名称将通过读取 Python 模块进行填充。 | Value Table |
processing_mode | 指定处理镶嵌数据集或影像服务中的所有栅格项目的方式。当输入栅格是镶嵌数据集或影像服务时,将应用此参数。
| String |
out_classified_folder (可选) | 将存储输出分类栅格的文件夹。将使用此文件夹中的分类栅格来生成镶嵌数据集。 当输入栅格是要单独处理所有项目的影像文件夹或镶嵌数据集时,此参数为必需项。默认为工程文件夹中的文件夹。 | Folder |
返回值
名称 | 说明 | 数据类型 |
out_classified_raster | 分类栅格的名称或包含分类栅格的镶嵌数据集的名称。 | Raster |
代码示例
此示例使用 ClassifyPixelsUsingDeepLearning 工具并基于自定义像素分类对栅格进行分类。
# Import system modules
import arcpy
from arcpy.ia import *
# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")
out_classified_raster = ClassifyPixelsUsingDeepLearning
("c:\\classifydata\\moncton_seg.tif", "c:\\classifydata\\moncton_sig.emd",
"padding 0; batch_size 16", "PROCESS_AS_MOSAICKED_IMAGE")
Out_classified_raster.save("c:\\classifydata\\classified_moncton.tif")
此示例使用 ClassifyPixelsUsingDeepLearning 工具并基于自定义像素分类对栅格进行分类。
# Import system modules
import arcpy
from arcpy.ia import *
"""
Usage: ClassifyPixelsUsingDeepLearning(in_raster,out_classified_raster,
in_classifier_definition, {arguments}, {processing_mode})
"""
# Set local variables
in_raster = "c:\\classifydata\\moncton_seg.tif"
in_model_definition = "c:\\classifydata\\moncton_sig.emd"
model_arguments = "padding 0; batch_size 16"
processing_mode = "PROCESS_AS_MOSAICKED_IMAGE"
# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")
# Execute
Out_classified_raster = ClassifyPixelsUsingDeepLearning(in_raster,
in_model_definition, model_arguments, processing_mode)
Out_classified_raster.save("c:\\classifydata\\classified_moncton.tif")
许可信息
- Basic: 需要 Image Analyst
- Standard: 需要 Image Analyst
- Advanced: 需要 Image Analyst