描述
在栅格分析部署中,此工具用于运行输入栅格上的训练深度学习模型,以生成包含其识别对象的要素类。此要素类可作为托管要素图层在门户中共享。这些要素可以是所找到对象周围的边界框或面,也可以是对象中心的点。
插图
使用方法
必须使用正确的深度学习框架 Python API(例如,Tensorflow、CNTK 或类似内容)配置栅格分析 (RA) 服务器 Python 环境。
运行此工具后,您的 RA 服务器将调用第三方深度学习 Python API(例如,TensorFlow 或 CNTK),并使用指定的 Python 栅格函数来处理每个栅格切片。
此输入模型参数仅使用来自门户的深度学习包 (.dlpk) 项目。
选择或指定输入模型后,该工具将从栅格分析服务器获取模型参数信息。如果您的输入模型无效或者栅格分析服务器未使用深度学习框架正确配置,则该工具可能无法获得模型参数信息。
使用非极大值抑制参数标识和移除对象检测中重复的要素。
有关深度学习的详细信息,请参阅 ArcGIS Pro 中的深度学习。
语法
DetectObjectsUsingDeepLearning(inputRaster, inputModel, outputName, {modelArguments}, {runNMS}, {confidenceScoreField}, {classValueField}, {maxOverlapRatio}, {processingMode})
参数 | 说明 | 数据类型 |
inputRaster | 用于检测对象的输入图像。它可以是影像服务 URL、栅格图层、影像服务、地图服务器图层或 Internet 切片图层。 | Raster Layer; Image Service; Feature Service Layer; MapServer; Map Server Layer; Internet Tiled Layer; String |
inputModel | 输入模型可以是文件或者来自门户的深度学习包 (.dlpk) 项目的 URL。 | File; String |
outputName | 检测对象的输出要素服务的名称。 | String |
modelArguments [modelArguments,...] (可选) | 函数模型参数在输入模型引用的 Python 栅格函数类中定义。您可以在此列出其他深度学习参数和用于试验和优化的参数,例如用于优化灵敏度的置信度阈值。参数名称将由工具通过读取 RA 服务器上的 Python 模块进行填充。 | Value Table |
runNMS (可选) | 指定是否执行可用于标识重复对象和移除置信值较低的重复要素的非极大值抑制。
| Boolean |
confidenceScoreField (可选) | 要素服务中的字段,该字段包含将由对象检测方法用作输出的置信度得分。 当将 NMS 关键字用于 runNMS 参数时需要用到该参数。 | String |
classValueField (可选) | 要素服务中类值字段的名称。 如果未指定字段名称,则 Classvalue 或 Value 字段将被使用。如果这些字段不存在,则会将所有记录标识为属于一个类。 | String |
maxOverlapRatio (可选) | 两个重叠要素的最大重叠比,其定义为交集区域与并集区域之比。默认值为 0。 | Double |
processingMode (可选) | 指定处理镶嵌数据集或影像服务中的所有栅格项目的方式。当输入栅格是镶嵌数据集或影像服务时,将应用此参数。
| String |
派生输出
名称 | 说明 | 数据类型 |
outObjects | 输出要素服务。 | 要素类 |
代码示例
此示例使用 DetectObjectsUsingDeepLearning 工具并基于对象检测在您的门户中创建托管要素图层。
import arcpy
arcpy.DetectObjectsUsingDeepLearning_ra(
"https://myserver/rest/services/Farm/ImageServer",
"https://myportal/sharing/rest/content/items/itemId", "detectedTrees",
"score_threshold 0.6;padding 0", "NO_NMS")
此示例使用 DetectObjectsUsingDeepLearning 工具并基于对象检测在您的门户中创建托管要素图层。
#---------------------------------------------------------------------------
# Name: DetectObjectsUsingDeepLearning_example02.py
# Requirements: ArcGIS Image Server
# Import system modules
import arcpy
# Set local variables
inImage = "https://myserver/rest/services/coconutFarmImage/ImageServer"
inModel = "https://myportal/sharing/rest/content/items/itemId"
outName = "detectedTrees"
modelArgs = "score_threshold 0.6;padding 0"
runNMS = "NMS"
confScoreField = "Confidence"
classVField = "Class"
maxOverlapRatio = 0.15
# Execute Detect Objects Using raster analysis tool
arcpy.DetectObjectsUsingDeepLearning_ra(inImage, inModel, outName, modelArgs,
runNMS, confScoreField, ClassVField, maxOverlapRatio)
许可信息
- Basic: 需要 ArcGIS Image Server
- Standard: 需要 ArcGIS Image Server
- Advanced: 需要 ArcGIS Image Server