Skip To Content

Aprendizaje profundo en análisis de ráster

ArcGIS Image Server permite usar métodos de clasificación de aprendizaje de máquina o estadístico para clasificar imágenes de teledetección. El aprendizaje profundo es un tipo de aprendizaje de máquina que se basa en varias capas de procesamiento no lineal para la identificación de entidades y el reconocimiento de los patrones descritos en un modelo. Los modelos de aprendizaje profundo se pueden integrar en ArcGIS Image Server para detectar objetos y clasificar imágenes. Las muestras de entrenamiento de entidades u objetos de interés se generan en ArcGIS Pro con herramientas del administrador de muestras de entrenamiento de clasificación, después, se convierten a un formato que se pueda usar en el marco de aprendizaje profundo. Estas muestras de entrenamiento se usan para entrenar el modelo con un marco de aprendizaje profundo de terceros por parte de científicos de datos o de imágenes. El modelo entrenado, junto con el archivo de definición de modelo (y, opcionalmente, un archivo de script de función ráster de Python) se empaqueta y comparte como elemento de paquete de aprendizaje profundo (dlpk), que después se usa para ejecutar las herramientas de inferencia de análisis de ráster. Las herramientas de inferencia o bien extraen entidades específicas o clasifican los píxeles de las imágenes. El elemento dlpk se puede usar varias veces como entrada de las herramientas de análisis de ráster, lo que facilita la evaluación de varias imágenes de distintas ubicaciones y periodos de tiempo después de haber entrenado el modelo.

Flujo de trabajo de aprendizaje profundo

Elemento 1 de flujo de trabajo

Cree muestras de entrenamiento con el Administrador de muestras de entrenamiento de ArcGIS Pro y use la herramienta de análisis de ráster Exportar datos de entrenamiento para aprendizaje profundo de ArcGIS REST API o ArcGIS API for Python para preparar los datos para el científico de datos.

Elemento 2 de flujo de trabajo

El científico de datos usa los datos de entrenamiento para desarrollar modelos con un marco de aprendizaje profundo de terceros.

Elemento 3 de flujo de trabajo

El científico de datos proporciona un paquete de aprendizaje profundo, que consta del archivo de definición de modelo, el modelo entrenado o el script de Python al entorno de análisis de ráster de ArcGIS Image Server.

Elemento 4 de flujo de trabajo

Cree un elemento de paquete de aprendizaje profundo (.dlpk) y compártalo en el portal. Con el elemento dlpk, ejecute la herramienta Detectar objetos con aprendizaje profundo o la herramienta Clasificar píxeles con aprendizaje profundo para generar una salida.

Elemento 5 de flujo de trabajo

Puede utilizar la ArcGIS API for Python para entrenar el modelo con un marco de aprendizaje profundo.

Características y capacidades

Gracias a las herramientas de análisis de ráster de aprendizaje profundo podrá aprovechar más funciones que las que ofrecen las técnicas de clasificación de aprendizaje de máquina estándar.

  • Usar redes neuronales convolucionales para clasificar imágenes.
  • Usar un modelo de aprendizaje profundo para clasificar píxeles de imágenes o para detectar objetos como aviones, árboles, vehículos, masas de agua y plataformas de pozos petrolíferos.
  • Integrar marcos de modelo de aprendizaje profundo externos, incluidos Keras, TensorFlow, CNTK y PyTorch.
  • 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 objetos detectados para usarlos en flujos de trabajo o análisis adicionales.
  • Las herramientas de inferencia de aprendizaje profundo pueden usar la CPU para el procesamiento distribuido o usar la potente GPU en cada nodo del servidor, si es posible.

Primeros pasos con el aprendizaje profundo

La creación y exportación de muestras de entrenamiento se realiza en ArcGIS por parte de un analista de imágenes experto, puesto que se necesita un gran conocimiento sobre flujos de trabajo de clasificación de imágenes. Un científico de datos (o alguien con experiencia en el entrenamiento de modelos de aprendizaje profundo) entrena el modelo de aprendizaje profundo fuera de ArcGIS con un marco de aprendizaje profundo. Cuando se haya entrenado el modelo y se haya definido en un archivo de definición de modelo .emd de Esri, comparta un elemento dlpk en Portal for ArcGIS y ejecute herramientas de análisis de ráster para detectar objetos o clasificar píxeles de Map Viewer, ArcGIS API for Python, ArcGIS REST API o ArcGIS Pro. En algunos casos, es posible que un analista complete los tres pasos si tiene experiencia con modelos de aprendizaje profundo y clasificación de imágenes de ArcGIS.

Necesitará instalar la ArcGIS API for Python de marco de aprendizaje profundo adecuada (TensorFlow, CNTK, PyTorch o Keras) en el entorno de Python 3 de ArcGIS Server; de lo contrario, se producirá un error al agregar el elemento dlpk a la herramienta. La información de marco adecuada se obtiene del creador del archivo de definición de modelo de Esri.

Consulte la documentación del marco para obtener ayuda con la instalación. Consulte la documentación de Ayuda para saber cómo configurar e implementar ArcGIS Enterprise para el análisis de ráster.

  1. Cree y exporte muestras de entrenamiento.
    1. Use el Administrador de muestras de entrenamiento de ArcGIS Pro 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 análisis de ráster Exportar datos de formación para aprendizaje profundo para convertir las imágenes de origen y las muestras de entrenamiento en datos de entrenamiento de aprendizaje profundo. Es posible que las imágenes de origen sean un servicio de imágenes. La salida de la herramienta es la cadena de caracteres del data store en el que se van a almacenar los chips de imagen de salida, las etiquetas y los archivos de metadatos. Una salida adicional de la herramienta consiste en un archivo .emd de plantilla para que el científico de datos lo rellene.
  2. Entrene el modelo de aprendizaje profundo.
    1. Use los chips de imagen generados en el paso 1 anterior para entrenar un modelo con un marco de aprendizaje profundo como TensorFlow, CNTK, PyTorch o Keras.
    2. Actualice el archivo .emd con el nombre del marco de aprendizaje profundo, la configuración del modelo y otras propiedades opcionales. Para obtener información sobre los parámetros obligatorios y opcionales del archivo .emd, consulte la sección Archivo de definición de modelo de Esri que aparece a continuación.
  3. Ejecute las herramientas de análisis de ráster de inferencia de Map Viewer, ArcGIS API for Python, ArcGIS REST API o ArcGIS Pro.
    1. Use las herramientas de análisis de ráster Detectar objetos con aprendizaje profundo o Clasificar píxeles con aprendizaje profundo para procesar las imágenes. Si su modelo de entrenamiento incorporaba funciones ráster de Python personalizadas con variables adicionales, como el relleno o un umbral de confianza para afinar la sensibilidad, estas variables aparecerán en el cuadro de diálogo de la herramienta de análisis de ráster de ArcGIS Pro o Map Viewer 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.

      La herramienta Detectar objetos con aprendizaje profundo genera una clase de entidad que muestra los objetos que detecta el modelo, y la herramienta Clasificar píxeles con aprendizaje profundo genera un ráster clasificado.

      Nota:

      El marco del modelo de aprendizaje profundo debe estar instalado en los equipos del servicio de análisis de ráster a fin de ejecutar las herramientas de inferencia, puesto que la lógica de inferencia está integrada en la API de Python del marco y se necesita para el cómputo.

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.

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

Framework

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

Se admiten tres marcos de aprendizaje profundo:

  • TensorFlow
  • CNTK
  • Keras
  • PyTorch

InferenceFunction

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. Existen flujos de trabajo de aprendizaje profundo de código abierto que definen la configuración estándar de entrada y salida y la lógica de inferencia. ArcGIS admite un conjunto de configuraciones predefinidas:

TensorFlow

CNTK

Keras

PyTorch

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, tendrá que describir por completo las entradas y salidas en el archivo .emd o en el archivo de Python personalizado.

ModelFile

La ruta a un archivo de modelo de aprendizaje profundo entrenado. Muchos formatos de archivo de marco de modelo se basan en búferes de protocolo, por lo que el modelo de aprendizaje profundo entrenado es un archivo .pb, pero también se admiten otros formatos de archivo.

ModelType

El tipo de modelo. Puede ser uno de los siguientes:

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

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 análisis de ráster de aprendizaje profundo de ArcGIS:

  • Detectar objetos para TensorFlow
  • Clasificar píxeles para TensorFlow
  • Detectar objetos para CNTK
  • Clasificar píxeles para CNTK
  • Detectar objetos para Keras
  • Detectar 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.

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.

Classes

(Opcional)

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

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":"tree_detection.pb",
    "ModelType":"ObjectionDetection",
    "ImageHeight":850,
    "ImageWidth":850,
    "ExtractBands":[0,1,2],
    "Classes" : [
      {
        "Value": 0,
        "Name": "Tree",
        "Color": [0, 255, 0]
      }
    ]
}

Elemento de paquete de aprendizaje profundo (dlpk)

Las herramientas de análisis de ráster de aprendizaje profundo requieren un paquete de modelo de aprendizaje profundo (dlpk) como entrada. Un paquete de modelo de aprendizaje profundo está formado por el archivo JSON de definición de modelo de Esri (.emd), el archivo de modelo binario de aprendizaje profundo y, opcionalmente, la función ráster de Python que se debe utilizar.

Cuando tenga listos todos los componentes, es posible comprimir todos los archivos en un archivo .zip y cargar dicho archivo .zip al portal como elemento dlpk. Para más información, consulte Agregar archivos desde el equipo. También puede cambiar la extensión del archivo .zip a .dlpk para que, al agregar un elemento, el tipo de elemento dlpk se detecte automáticamente.