Detectar objetos con aprendizaje profundo (Análisis ráster)

Resumen

Ejecuta un modelo de aprendizaje profundo entrenado en un ráster de entrada para generar una clase de entidad con los objetos que identifique. La clase de entidad se puede compartir como capa de entidades alojada en el portal. Las entidades pueden ser cuadros o polígonos de delimitación alrededor de los objetos encontrados o puntos en el centro de los objetos.

Ilustración

Ilustración de la herramienta Detectar objetos con aprendizaje profundo

Uso

  • El entorno de Python de servidor de su análisis de ráster (RA, por sus siglas en inglés) debe estar configurado con la API de Python del marco de aprendizaje profundo como TensorFlow, CNTK o similares.

  • Estando la herramienta en ejecución, su servidor de RA 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 parámetro Modelo de entrada tan solo usará un elemento del paquete de aprendizaje profundo (.dlpk) del portal.

  • Después de seleccionar o especificar el Modelo de entrada, la herramienta obtendrá la información de los argumentos de modelo de su 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.

  • Use el parámetro Supresión no máxima para identificar y eliminar entidades duplicadas de la detección de objetos.

  • Para obtener más información sobre el aprendizaje profundo, consulte Aprendizaje profundo con la extensión ArcGIS Image Analyst.

Parámetros

EtiquetaExplicaciónTipo de datos
Ráster de entrada

La imagen de entrada usada para detectar objetos. 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; Map Server; Map Server Layer; Internet Tiled Layer; String
Modelo de entrada

El modelo de entrada puede ser un archivo o una URL de un elemento de paquete de aprendizaje profundo (.dlpk) del portal.

File
Nombre de salida

El nombre del servicio de entidades de salida de objetos detectados.

String
Argumentos de modelo
(Opcional)

Los argumentos de modelo de funció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 de la lectura del módulo de Python en el servidor de RA.

Value Table
Supresión no máxima
(Opcional)

Especifica si se llevará a cabo la supresión no máxima, en la que se identifican los objetos duplicados y se elimina la entidad duplicada con el valor de coincidencia más bajo.

  • Desactivado: todos los objetos detectados estarán en la clase de entidad de salida. Esta es la opción predeterminada.
  • Activado: se eliminarán los objetos duplicados.

Boolean
Campo de puntuación de confianza
(Opcional)

El campo del servicio de entidades que contiene las puntuaciones de confianza que se utilizarán como resultado del método de detección de objetos.

Este parámetro es obligatorio cuando está activado el parámetro Supresión no máxima.

String
Campo de valor de clase
(Opcional)

El nombre del campo de valor de clase del servicio de entidades.

Si no se proporciona ningún nombre de campo, se utilizará un campo Classvalue o Value. Si estos campos no existen, se identificará que todos los registros pertenecen a una sola clase.

String
Máx. ratio de superposición
(Opcional)

El ratio de superposición máximo para dos entidades de superposición, definido como la relación del área de intersección sobre el área de combinación. El valor predeterminado es 0.

Double
Modo de procesamiento
(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.

  • Procesar como imagen en mosaicoSe 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.
  • Procesar todos los elementos de ráster por separadoTodos 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

EtiquetaExplicaciónTipo de datos
Objetos de salida

El servicio de entidades de salida.

Feature Class

arcpy.ra.DetectObjectsUsingDeepLearning(inputRaster, inputModel, outputName, {modelArguments}, {runNMS}, {confidenceScoreField}, {classValueField}, {maxOverlapRatio}, {processingMode})
NombreExplicaciónTipo de datos
inputRaster

La imagen de entrada usada para detectar objetos. 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; Map Server; Map Server Layer; Internet Tiled Layer; String
inputModel

El modelo de entrada puede ser un archivo o una URL de un elemento de paquete de aprendizaje profundo (.dlpk) del portal.

File
outputName

El nombre del servicio de entidades de salida de objetos detectados.

String
modelArguments
[modelArguments,...]
(Opcional)

Los argumentos de modelo de funció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 de la lectura del módulo de Python en el servidor de RA.

Value Table
runNMS
(Opcional)

Especifica si se llevará a cabo la supresión no máxima, en la que se identifican los objetos duplicados y se elimina la entidad duplicada con el valor de coincidencia más bajo.

  • NO_NMSTodos los objetos detectados estarán en la clase de entidad de salida. Esta es la opción predeterminada.
  • NMSSe eliminarán los objetos duplicados.
Boolean
confidenceScoreField
(Opcional)

El campo del servicio de entidades que contiene las puntuaciones de confianza que se utilizarán como resultado del método de detección de objetos.

Este parámetro es obligatorio cuando la palabra clave NMS se usa para el parámetro runNMS.

String
classValueField
(Opcional)

El nombre del campo de valor de clase del servicio de entidades.

Si no se proporciona ningún nombre de campo, se utilizará un campo Classvalue o Value. Si estos campos no existen, se identificará que todos los registros pertenecen a una sola clase.

String
maxOverlapRatio
(Opcional)

El ratio de superposición máximo para dos entidades de superposición, definido como la relación del área de intersección sobre el área de combinación. El valor predeterminado es 0.

Double
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

El servicio de entidades de salida.

Feature Class

Muestra de código

Ejemplo 1 de DetectObjectsUsingDeepLearning_ra (ventana de Python)

Este ejemplo crea una capa de entidades alojada en su portal en función de la detección de objetos mediante la herramienta DetectObjectsUsingDeepLearning.

import arcpy
arcpy.ra.DetectObjectsUsingDeepLearning(
        "https://myserver/rest/services/Farm/ImageServer",
        "https://myportal/sharing/rest/content/items/itemId", "detectedTrees",
"score_threshold 0.6;padding 0", "NO_NMS")
Ejemplo 2 de DetectObjectsUsingDeepLearning (script independiente)

Este ejemplo crea una capa de entidades alojada en su portal en función de la detección de objetos mediante la herramienta 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.ra.DetectObjectsUsingDeepLearning(inImage, inModel, outName, modelArgs,
runNMS, confScoreField, ClassVField, maxOverlapRatio)

Información de licenciamiento

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

Temas relacionados