使用深度学习分类对象 (栅格分析)

描述

用于运行输入栅格和可选要素类上的训练深度学习模型,以生成要素类或表,其中每个输入对象或要素均具有一个分配的类或类别标注。

插图

“使用深度学习分类对象”工具图示

使用方法

  • 必须使用正确的深度学习框架 Python API(例如,Tensorflow、CNTK 或类似内容)配置栅格分析服务器 Python 环境。

  • 运行此工具后,您的栅格分析服务器将调用第三方深度学习 Python API(例如,TensorFlow 或 CNTK),并使用指定的 Python 栅格函数来处理每个栅格切片。

  • 此工具的输入模型仅通过门户获取深度学习包(.dlpk 文件)项目。

  • 选择或指定输入模型后,该工具将从栅格分析服务器获取模型参数信息。如果您的输入模型无效或者栅格分析服务器未使用深度学习框架正确配置,则该工具可能无法获得模型参数信息。

语法

arcpy.ra.ClassifyObjectsUsingDeepLearning(inputRaster, inputModel, outputName, {inputFeatures}, {modelArguments}, {classLabelField}, {processingMode})
参数说明数据类型
inputRaster

待分类的输入影像。该影像可以是影像服务 URL、栅格图层、影像服务、地图服务器图层或 Internet 切片图层。

Raster Layer; Image Service; MapServer; Map Server Layer; Internet Tiled Layer; String
inputModel

深度学习模型用于对输入影像中的对象进行分类。输入是深度学习包 (.dlpk) 项目的 URL,其中包含深度学习二进制模型文件的路径、待使用的 Python 栅格函数的路径以及其他参数,例如首选切片大小或填充。

File
outputName

包含已分类对象的要素服务的名称。

String
inputFeatures
(可选)

用于标识要分类或要标注的每个对象或要素位置的要素服务。输入要素服务中的每一行表示一个对象或要素。

如果未指定输入要素服务,则每个输入影像将被分类为单个对象。如果一个或多个输入影像使用空间参考,则工具的输出为要素类,其中每个影像的范围将用作每个标注要素类的边界几何。如果一个或多个输入影像没有使用空间参考,则工具的输出为包含影像 ID 值和每个影像类标注的表。

Feature Layer; Map Server Layer; String
modelArguments
[modelArguments,...]
(可选)

用于分类的函数模型参数。函数参数在输入模型引用的 Python 栅格函数类中定义。您可以在此列出其他深度学习参数和用于试验和优化的参数,例如用于调整灵敏度的置信度阈值。参数名称将由栅格分析服务器上的 Python 模块中的工具进行填充。

Value Table
classLabelField
(可选)

包含输出要素类中类或类别标注的字段名称。

如果未指定字段名称,则会在输出要素类中生成一个名为 ClassLabel 的新字段。

String
processingMode
(可选)

指定处理镶嵌数据集或影像服务中的所有栅格项目的方式。当输入栅格是镶嵌数据集或影像服务时,将应用此参数。

  • PROCESS_AS_MOSAICKED_IMAGE将镶嵌在一起并处理镶嵌数据集或影像服务中的所有栅格项目。这是默认设置。
  • PROCESS_ITEMS_SEPARATELY将作为独立影像处理镶嵌数据集或影像服务中的所有栅格项目。
String

派生输出

名称说明数据类型
outObjects

输出要素集。

要素集

代码示例

ClassifyObjectsUsingDeepLearning 示例 1(Python 窗口)

此示例使用栅格分析部署中的深度学习并基于分类模型对栅格中的要素进行分类,并将栅格作为托管影像图层发布到您的门户中。

import arcpy

arcpy.ClassifyObjectsUsingDeepLearning_ra(
	"https://myserver/rest/services/Buildings/ImageServer", 
	"https://myserver/rest/services/Hosted/BuildingFootprints/FeatureServer/0",
	"https://myportal/sharing/rest/content/items/itemId", "BuildingDamage",
	"batch_size 4", "ClassLabel","PROCESS_AS_MOSAICKED_IMAGE")
ClassifyObjectsUsingDeepLearning 示例 2(独立脚本)

此示例使用栅格分析部署中的深度学习并基于分类模型对栅格中的要素进行分类,并将栅格作为托管影像图层发布到您的门户中。

#---------------------------------------------------------------------------
# Name: ClassifyObjectsUsingDeepLearning_example02.py
# Requirements: ArcGIS Image Server
# Import system modules
import arcpy

# Set local variables
inputRaster = "https://myserver/rest/services/Buildings/ImageServer"
inputFeatures = "https://myserver/rest/services/Hosted/BuildingFootprints/FeatureServer/0"
inputModel = "https://myportal/sharing/rest/content/items/itemId"
outputName = "BuildingDamage"
modelArguments = "batch_size 4"
classLabelField = "ClassLabel"
processingMode = "PROCESS_AS_MOSAICKED_IMAGE"

# Execute Classify Objects Using Deep Learning 
arcpy.ClassifyObjectsUsingDeepLearning_ra(inputRaster, inputFeatures, 
	inputModel, outputName, modelArguments, classLabelField , processingMode)

许可信息

  • Basic: 需要 ArcGIS Image Server
  • Standard: 需要 ArcGIS Image Server
  • Advanced: 需要 ArcGIS Image Server