Clasificar objetos con aprendizaje profundo (Análisis de ráster)

Resumen

Ejecuta un modelo de aprendizaje profundo entrenado en un ráster de entrada y una clase de entidad opcional para generar una clase de entidad o tabla en la que cada objeto o entidad de entrada tenga asignada una etiqueta de clase o categoría.

Ilustración

Ilustración de la herramienta Clasificar objetos con aprendizaje profundo

Uso

  • El entorno de Python de servidor de análisis de ráster debe estar configurado con la API de Python del marco de aprendizaje profundo como TensorFlow, CNTK o similares.

  • Con esta herramienta en ejecución, su servidor de análisis de ráster llama a una API de Python de aprendizaje profundo externa (como TensorFlow o CNTK) y usa la función ráster de Python especificada para procesar todas las teselas ráster.

  • El modelo de entrada de esta herramienta solo tomará un elemento del paquete de aprendizaje profundo (archivo .dlpk) del portal.

  • Después de seleccionar o especificar el modelo de entrada, la herramienta obtendrá la información de los argumentos de modelo del servidor de análisis de ráster. Es posible que la herramienta no pueda obtener dicha información si su modelo de entrada no es válido o su servidor de análisis de ráster no está configurado correctamente con el marco de aprendizaje profundo.

Sintaxis

arcpy.ra.ClassifyObjectsUsingDeepLearning(inputRaster, inputModel, outputName, {inputFeatures}, {modelArguments}, {classLabelField}, {processingMode})
ParámetroExplicaciónTipo de datos
inputRaster

La imagen de entrada a clasificar. La imagen puede ser una URL de servicio de imágenes, una capa ráster, un servicio de imágenes, una capa del servidor de mapas o una capa de teselas de Internet.

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

Modelo de aprendizaje profundo que se utilizará para clasificar objetos en la imagen de entrada. La entrada es la URL de un paquete de aprendizaje profundo (.dlpk) que contiene la ruta al archivo de modelo binario de aprendizaje profundo, la ruta a la función ráster de Python que se va a usar y otros parámetros, como el tamaño de tesela preferido o el relleno.

File
outputName

Nombre del servicio de entidades que contiene los objetos clasificados.

String
inputFeatures
(Opcional)

Servicio de entidades que identifica la ubicación de cada objeto o entidad que se va a clasificar y etiquetar. Cada fila del servicio de entidades de entrada representa un único objeto o entidad.

Si no se especifica ningún servicio de entidades de entrada, cada imagen de entrada se clasificará como un único objeto. Si las imágenes de entrada utilizan alguna referencia espacial, la salida de la herramienta es una clase de entidad en la que se utiliza la extensión de cada imagen como la geometría de delimitación para cada clase de entidad etiquetada. Si las imágenes de entrada no se referencian espacialmente, la salida de la herramienta es una tabla que contiene los valores de Id. de imagen y las etiquetas de clase de cada imagen.

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

Argumentos del modelo de función que se utilizarán para la clasificación. Se definen en la clase de función ráster de Python a la que el modelo de entrada hace referencia. Aquí es donde enumera los argumentos y parámetros de aprendizaje profundo adicionales para experimentos y refinamiento, como un umbral de confianza para ajustar la sensibilidad. La herramienta rellena los nombres de los argumentos a partir del módulo de Python del servidor de análisis de ráster.

Value Table
classLabelField
(Opcional)

Nombre del campo que va a contener la etiqueta de clase o categoría en la clase de entidad de salida.

Si no se especifica ningún nombre de campo, se generará un nuevo campo denominado ClassLabel en la clase de entidad de salida.

String
processingMode
(Opcional)

Especifica cómo se procesarán todos los elementos de ráster en un dataset de mosaico o un servicio de imágenes. Este parámetro se aplica si el ráster de entrada es un dataset de mosaico o un servicio de imágenes.

  • PROCESS_AS_MOSAICKED_IMAGESe creará un mosaico con todos los elementos de ráster del dataset de mosaico o del servicio de imágenes y se procesarán. Esta es la opción predeterminada.
  • PROCESS_ITEMS_SEPARATELYTodos los elementos de ráster del dataset de mosaico o del servicio de imágenes se procesarán como imágenes separadas.
String

Salida derivada

NombreExplicaciónTipo de datos
outObjects

Entidad de salida configurada.

Conjunto de entidades

Muestra de código

Ejemplo 1 de ClassifyObjectsUsingDeepLearning (ventana de Python)

Este ejemplo clasifica las entidades de un ráster basado en un modelo de clasificación que emplea el aprendizaje profundo en una implementación de análisis de ráster y publica el ráster como capa de imágenes alojada en el portal.

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")
Ejemplo 2 de ClassifyObjectsUsingDeepLearning (script independiente)

Este ejemplo clasifica las entidades de un ráster basado en un modelo de clasificación que emplea el aprendizaje profundo en una implementación de análisis de ráster y publica el ráster como capa de imágenes alojada en el portal.

#---------------------------------------------------------------------------
# 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)

Información de licenciamiento

  • Basic: Requiere ArcGIS Image Server
  • Standard: Requiere ArcGIS Image Server
  • Advanced: Requiere ArcGIS Image Server