Aprendizaje profundo con la extensión ArcGIS Image Analyst

Disponible con licencia de Image Analyst.

Con la extensión ArcGIS Image Analyst, puede realizar todos los flujos de trabajo de aprendizaje profundo con imágenes en ArcGIS Pro. Utilice herramientas de geoprocesamiento para preparar datos de entrenamiento de imágenes, entrenar una detección de objetos, una clasificación de píxeles o un modelo de clasificación de objetos y producir y revisar los resultados.

Nota:

En este tema se describe el aprendizaje profundo para flujos de trabajo de imágenes que utilizan Image Analyst. Para obtener una descripción general de todas las funcionalidades del aprendizaje profundo en ArcGIS Pro, consulte Aprendizaje profundo en ArcGIS Pro.

El flujo de trabajo se representa en el siguiente diagrama.

Flujo de trabajo de aprendizaje profundo

PasoDescripción

Paso 1 del aprendizaje profundo

Cree muestras de entrenamiento en el panel Etiquetar objetos para aprendizaje profundo y use la herramienta Exportar datos de entrenamiento para aprendizaje profundo para convertir las muestras en datos de entrenamiento de aprendizaje profundo.

Nota:

La herramienta Exportar datos de entrenamiento para aprendizaje profundo también se admite con la extensión Spatial Analyst.

Paso 2 del aprendizaje profundo

Use la herramienta Entrenar modelo de aprendizaje profundo para entrenar un modelo con PyTorch o entrenar el modelo fuera de ArcGIS Pro con un marco de aprendizaje profundo compatible de terceros.

Paso 3 del aprendizaje profundo

Utilice el modelo entrenado para ejecutar la herramienta Detectar objetos con aprendizaje profundo, la herramienta Clasificar píxeles con aprendizaje profundo o la herramienta Clasificar objetos con aprendizaje profundo para generar una salida.

Revise y valide los resultados con el panel de atributos y calcule la precisión con la herramienta Calcular precisión para la detección de objetos.

Características y capacidades

Las herramientas de aprendizaje profundo de ArcGIS Pro le permiten aprovechar más funciones que las que ofrecen las técnicas de clasificación de aprendizaje automático estándar.

  • Use redes neuronales convolucionales o modelos de aprendizaje profundo para detectar objetos, clasificar objetos o clasificar píxeles de imagen.
  • Integrar marcos de modelo de aprendizaje profundo externos, como TensorFlow, PyTorch y Keras.
  • Usar un archivo de definición de modelo varias veces para detectar cambios a lo largo del tiempo o detectar objetos en distintas áreas de interés.
  • Generar una clase de entidad poligonal que muestre la ubicación de objetos detectados para usarlos en flujos de trabajo o análisis adicionales.
  • Aproveche el procesamiento de GPU y el uso de CPU para el procesamiento distribuido.

Primeros pasos con el aprendizaje profundo

La creación y exportación de muestras de entrenamiento se realiza en ArcGIS Pro mediante las herramientas de generación de muestras de entrenamiento estándar. El modelo de aprendizaje profundo se puede entrenar con el marco de PyTorch con la herramienta Entrenar modelo de aprendizaje profundo o se puede entrenar fuera de ArcGIS Pro con otro marco de aprendizaje profundo. Una vez entrenado el modelo, utilice un archivo de definición de modelo de Esri (.emd) para ejecutar herramientas de geoprocesamiento a fin de detectar o clasificar entidades en sus imágenes.

Debe instalar los paquetes de Python de marco de aprendizaje profundo; de lo contrario, se produce un error al agregar el archivo de definición de modelo de Esri a las herramientas de geoprocesamiento de aprendizaje profundo. Para obtener más información sobre cómo instalar estos paquetes, consulte Instalar marcos de aprendizaje profundo para ArcGIS.

  1. Cree y exporte muestras de entrenamiento.
    1. Use el panel Etiquetar objetos para aprendizaje profundo o el Administrador de muestras de entrenamiento para seleccionar o crear un esquema de clasificación.
    2. Cree muestras de un sitio de entrenamiento para las entidades o categorías de clase de interés. Guarde el archivo de muestra de entrenamiento.
    3. Ejecute la herramienta de geoprocesamiento Exportar datos de entrenamiento para aprendizaje profundo para convertir las imágenes de origen y las muestras de entrenamiento en datos de entrenamiento de aprendizaje profundo. Las imágenes de origen pueden ser un servicio de imágenes, un dataset de mosaico, un dataset ráster o una carpeta de rásteres. La salida de la herramienta son chips de imagen o muestras que contienen sitios de entrenamiento que se utilizarán para entrenar el modelo de aprendizaje profundo. Una salida adicional de la herramienta es un archivo .emd de plantilla que se debe completar.
  2. Entrene el modelo de aprendizaje profundo.
    1. Use la herramienta Entrenar modelo de aprendizaje profundo para entrenar un modelo de aprendizaje profundo utilizando los chips de imagen generados en el paso anterior.
  3. Ejecute las herramientas de geoprocesamiento de inferencia en ArcGIS Pro.
    1. Utilice las herramientas de geoprocesamiento Detectar objetos con aprendizaje profundo, Clasificar píxeles con aprendizaje profundo o Clasificar objetos con aprendizaje profundo para procesar las imágenes. Si el modelo entrenado incorporaba funciones ráster de Python personalizadas con variables adicionales, como el relleno o un umbral de confianza para afinar la sensibilidad, estas variables aparecen en el cuadro de diálogo de la herramienta de geoprocesamiento para que las introduzca el usuario. El tipo de datos, como cadena de caracteres o numérico, se especifica en la función ráster de Python. Lo ideal es que los parámetros de inferencia adicionales se limiten a dos.

      El valor del parámetro definición de modelo de Esri puede ser un archivo JSON de definición de modelo de Esri (.emd) o una cadena de caracteres JSON. Una cadena de caracteres JSON es útil cuando esta herramienta se utiliza en el servidor para pegar la cadena de caracteres JSON, en lugar de cargar el archivo .emd.

      The output of the La herramienta Detectar objetos con aprendizaje profundo es una clase de entidad que muestra los objetos que detecta el modelo. La herramienta Clasificar píxeles con aprendizaje profundo genera un ráster clasificado. La herramienta Clasificar objetos con aprendizaje profundo requiere una clase de entidad e imágenes como datasets de entrada y el resultado es una clase de entidad en la que cada objeto de cada entidad se etiqueta con un nombre de clase.

Después de utilizar un modelo de aprendizaje profundo, es importante revisar los resultados y evaluar la precisión del modelo. Utilice el panel Atributos para revisar los resultados de la inferencia basada en objetos (herramienta Clasificar objetos con aprendizaje profundo o Detectar objetos con aprendizaje profundo). También puede utilizar la herramienta Calcular precisión para la detección de objetos para generar una tabla y un informe para evaluar la precisión.

Para obtener más información sobre los conceptos básicos de aplicaciones de aprendizaje profundo con visión informática, consulte Introducción al aprendizaje profundo.

Para obtener información sobre los requisitos para ejecutar las herramientas de geoprocesamiento y los problemas que pueden presentarse, consulte Preguntas frecuentes sobre el aprendizaje profundo.

Archivo de definición de modelo de Esri

El archivo .emd es un archivo JSON que describe el modelo de aprendizaje profundo entrenado. Contiene parámetros de definición del modelo que son necesarios para ejecutar las herramientas de inferencia, y es necesario que el científico de datos que entrenó el modelo lo modifique. Existen parámetros obligatorios y opcionales en el archivo, tal y como se describe en la siguiente tabla.

Una vez completado y verificado el archivo .emd, se puede usar para inferir varias veces, siempre y cuando las imágenes de entrada sean del mismo sensor que la entrada de modelo original y las clases u objetos que se detectan son iguales. Por ejemplo, un archivo .emd que se definió con un modelo para detectar plataformas de pozos petrolíferos mediante imágenes de satélite de Sentinel-2 se puede utilizar para detectar plataformas de pozos petrolíferos en varias áreas de interés y varias fechas con imágenes de Sentinel-2.

Algunos parámetros se utilizan en todas las herramientas de inferencia; se enumeran en la tabla siguiente. Algunos parámetros solo se utilizan con herramientas específicas, como los parámetros CropSizeFixed y BlackenAroundFeature, que solo los utiliza la herramienta Clasificar objetos con aprendizaje profundo.

Parámetro de archivo de definición de modeloExplicación

Marco

El nombre del marco de aprendizaje profundo utilizado para entrenar el modelo.

Se admiten los siguientes marcos de aprendizaje profundo:

  • TensorFlow
  • Keras
  • PyTorch
Si entrena el modelo con un marco de aprendizaje profundo que no aparece aquí, se necesita una función de inferencia personalizada (un módulo de Python) además del modelo entrenado; también debe definir InferenceFunction según la ruta del módulo de Python.

ModelConfiguration

El nombre de la configuración del modelo.

La configuración del modelo define las entradas y salidas del modelo, la lógica de inferencia y las suposiciones sobre las entradas y salidas del modelo. Los flujos de trabajo de aprendizaje profundo de código abierto existentes definen la configuración estándar de entrada y salida y la lógica de inferencia. ArcGIS admite este conjunto de configuraciones predefinidas:

TensorFlow

  • ObjectDetectionAPI
  • DeepLab

Keras

  • MaskRCNN

Si usó una de las configuraciones predefinidas, escriba el nombre de la configuración en el archivo .emd. Si entrenó el modelo de aprendizaje profundo con una configuración personalizada, debe describir por completo las entradas y salidas en el archivo .emd o en el archivo de Python personalizado.

ModelType

El tipo de modelo.

  • ImageClassification: para clasificar píxeles
  • ObjectDetection: para detectar objetos o entidades
  • ObjectClassification: para clasificar objetos y entidades

ModelFile

La ruta a un archivo de modelo de aprendizaje profundo entrenado. El formato de archivo depende del marco del modelo. Por ejemplo, en TensorFlow, el archivo de modelo es un archivo .pb.

Descripción

Proporcione información sobre el modelo. La información del modelo puede incluir cualquier cosa para describir el modelo que haya entrenado. Entre los ejemplos se incluyen el número y el nombre del modelo, la hora a la que se creó el modelo, la precisión de rendimiento, etc.

InferenceFunction

(Opcional)

La ruta de la función de inferencia.

Una función de inferencia comprende el archivo de datos del modelo entrenado y proporciona la lógica de inferencia. Existen seis funciones de inferencia compatibles con las herramientas de geoprocesamiento de aprendizaje profundo de ArcGIS Pro:

  • Detectar objetos para TensorFlow
  • Clasificar píxeles para TensorFlow
  • Detectar objetos para Keras
  • Detectar objetos para PyTorch
  • Clasificar objetos para PyTorch
Si usó una de las funciones de inferencia anteriores, no hay necesidad de especificarlo en el archivo .emd. Si entrena el modelo con una configuración de modelo de aprendizaje profundo que todavía no es compatible, o si requiere una lógica de inferencia especial, se necesita una función de inferencia personalizada (un módulo de Python) además del modelo entrenado. En este caso, defina InferenceFunction con la ruta del módulo de Python. Es posible ubicar un archivo de módulo de Python de inferencia en cualquier lugar al que pueda acceder ArcGIS Pro.

SensorName

(Opcional)

El nombre del sensor utilizado para capturar las imágenes a partir de las que se generaron las muestras de entrenamiento.

RasterCount

(Opcional)

El número de rásteres utilizados para generar las muestras de entrenamiento.

BandList

(Opcional)

La lista de bandas utilizadas en las imágenes de origen

ImageHeight

(Opcional)

El número de filas de la imagen que se está clasificando o procesando.

ImageWidth

(Opcional)

El número de columnas de la imagen que se está clasificando o procesando.

ExtractBands

(Opcional)

Los índices o nombres de banda que se extraerán de las imágenes de entrada.

Clases

(Opcional)

Información adicional sobre los objetos o categorías de las clases de salida.

DataRange

(Opcional)

El rango de valores de datos si se realizó el escalado o la normalización durante el procesamiento previo.

ModelPadding

(Opcional)

La cantidad de relleno que se debe agregar a las imágenes de entrada para las inferencias.

BatchSize

(Opcional)

El número de muestras de entrenamiento que se van a utilizar en cada iteración del modelo.

PerProcessGPUMemoryFraction

(Opcional)

La fracción de memoria de GPU que se desea asignar a cada iteración del modelo. El valor predeterminado es 0,95 o 95 por ciento.

MetaDataMode

(Opcional)

El formato de las etiquetas de metadatos utilizadas para los chips de imagen.

ImageSpaceUsed

(Opcional)

El tipo de sistema de referencia utilizado para entrenar el modelo.

  • MAP_SPACE
  • PIXEL_SPACE

WellKnownBandNames

(Opcional)

Los nombres asignados a cada banda de entrada, en orden de índice de banda. Se puede hacer referencia a las bandas mediante estos nombres en otras herramientas.

AllTileStats

Las estadísticas de cada banda en los datos de entrenamiento.

A continuación, se muestra un ejemplo de un archivo de definición de modelo (.emd) que usa una configuración de modelo estándar:

{
    "Framework": "TensorFlow",
    "ModelConfiguration": "ObjectDetectionAPI",
    "ModelFile":"C:\\ModelFolder\\ObjectDetection\\tree_detection.pb",
    "ModelType":"ObjectionDetection",
    "ImageHeight":850,
    "ImageWidth":850,
    "ExtractBands":[0,1,2],
    "Classes" : [
      {
        "Value": 0,
        "Name": "Tree",
        "Color": [0, 255, 0]
      }
    ]
}

A continuación encontrará un ejemplo de un archivo de definición de modelo (.emd) con más parámetros opcionales en la configuración:

{
    "Framework": "PyTorch",
    "ModelConfiguration": "FasterRCNN",
    "ModelFile":"C:\\ModelFolder\\ObjectDetection\\river_detection.pb",
    "ModelType":"ObjectionDetection",
				"Description":"This is a river detection model for  imagery",
    "ImageHeight":448,
    "ImageWidth":448,
    "ExtractBands":[0,1,2,3],
				"DataRange":[0.1, 1.0],
				"ModelPadding":64,
				"BatchSize":8,
				"PerProcessGPUMemoryFraction":0.8,
				"MetaDataMode" : "PASCAL_VOC_rectangles",
				"ImageSpaceUsed" : "MAP_SPACE",
    "Classes" : [
      {
        "Value": 1,
        "Name": "River",
        "Color": [0, 255, 0]
      }
    ],
				"InputRastersProps" : {
						"RasterCount" : 1,
						"SensorName" : "Landsat 8",
						"BandNames" : [
								"Red",
								"Green",
								"Blue",
								"NearInfrared"
						]
				},
				"AllTilesStats" : [
      {
      		"BandName" : "Red",
      		"Min" : 1,
      		"Max" : 60419,
      		"Mean" : 7669.720049855654,
      		"StdDev" : 1512.7546387966217
      },
      {
      		"BandName" : "Green",
      		"Min" : 1,
      		"Max" : 50452,
      		"Mean" : 8771.2498195125681,
      		"StdDev" : 1429.1063589515179
      },
      {
      		"BandName" : "Blue",
      		"Min" : 1,
      		"Max" : 47305,
      		"Mean" : 9306.0475897744163,
      		"StdDev" : 1429.380049936676
      },
      {
      		"BandName" : "NearInfrared",
      		"Min" : 1,
      		"Max" : 60185,
      		"Mean" : 17881.499184561973,
      		"StdDev" : 5550.4055277121679
      }
    ],
}

Paquete de modelo de aprendizaje profundo

Un paquete de modelo de aprendizaje profundo (.dlpk) contiene los archivos y datos necesarios para ejecutar herramientas de inferencia de aprendizaje profundo para la detección de objetos o la clasificación de imágenes. El paquete se puede cargar en su portal como un elemento DLPK y utilizarse como entrada para las herramientas de análisis de ráster de aprendizaje profundo.

Los paquetes de modelos de aprendizaje profundo deben contener un archivo de definición de modelo de Esri (.emd) y un archivo de modelo entrenado. La extensión de archivo del modelo entrenado depende del marco que se usó para entrenar al modelo. Por ejemplo, si entrenó su modelo mediante TensorFlow, el archivo del modelo es un archivo .pb, mientras que un modelo entrenado con Keras genera un archivo .h5. En función del marco del modelo y de las opciones que haya usado para entrenar el modelo, es posible que necesite incluir una función ráster de Python (.py) o archivos adicionales. Puede incluir varios archivos de modelo entrenados en un mismo paquete de modelo de aprendizaje profundo.

La mayoría de los paquetes se pueden abrir en cualquier versión de ArcGIS Pro. De forma predeterminada, el contenido de un paquete se almacena en la carpeta <User Documents>\ArcGIS\Packages. Puede cambiar esta ubicación en las Opciones de descarga y uso compartido. La funcionalidad del paquete que no sea compatible con la versión de ArcGIS Pro que se utiliza para consumir el paquete no estará disponible.

Para ver o editar las propiedades de un paquete .dlpk o para agregar o eliminar archivos de su paquete .dlpk, haga clic con el botón derecho en el paquete .dlpk del panel Catálogo y haga clic en Propiedades.

Abrir paquete de aprendizaje profundo en el panel Catálogo

Las propiedades incluyen esta información:

  • Entrada: el archivo .emd, archivo de modelo entrenado y cualquier archivo adicional que pueda ser necesario para ejecutar las herramientas de inferencia.
  • Marco: el marco de aprendizaje profundo utilizado para entrenar el modelo.
  • ModelConfiguration: el tipo de entrenamiento de modelo realizado (detección de objetos, clasificación de píxeles o clasificación de entidades).
  • Descripción: una descripción del modelo. Es opcional y editable.
  • Resumen: un breve resumen del modelo. Es opcional y editable.
  • Etiquetas: cualquier etiqueta utilizada para identificar el paquete. Resulta útil para elementos del paquete .dlpk almacenados en su portal.

Propiedades del paquete de aprendizaje profundo

Cualquier propiedad que se edite en la ventana Propiedades se actualiza al hacer clic en Aceptar. Si se accede al elemento del paquete .dlpk desde su portal en el panel Catálogo, el elemento del portal se actualiza.

Para obtener más información sobre cómo crear un paquete .dlpk, consulte Compartir un paquete de modelo de aprendizaje profundo.

Recursos para desarrolladores

Además de las herramientas de geoprocesamiento y los flujos de trabajo disponibles en ArcGIS Pro, también puede realizar tareas de aprendizaje profundo en scripts y notebooks. Si está trabajando en API REST de ArcGIS, utilice las tareas de aprendizaje profundo disponibles con el servicio de análisis de rásterTareas de servicio de análisis de ráster. Estas tareas equivalen a las herramientas de geoprocesamiento disponibles, pero permiten el procesamiento distribuido según la configuración de procesamiento.

Si está trabajando en ArcGIS API for Python, dispone de muchas tareas de aprendizaje profundo adicionales con el módulo arcgis.learn en el sitio web de la API de ArcGIS for Python.

Temas relacionados