Skip To Content

Aprendizaje profundo en análisis de ráster

ArcGIS Image Server permite usar métodos de clasificación de aprendizaje automático o estadístico para clasificar imágenes de teledetección. El aprendizaje profundo es un tipo de aprendizaje automático 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 y, a continuación, se etiquetan con la herramienta Etiquetar objetos para aprendizaje profundo y se convierten a un formato que se pueda usar en el marco del aprendizaje profundo. Estas muestras de entrenamiento se utilizan para entrenar el modelo con la herramienta de análisis de ráster Entrenar modelo de aprendizaje profundo o ArcGIS API for Python. 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 permite evaluar 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 la herramienta Etiquetar objetos para aprendizaje profundo de ArcGIS Pro y use la herramienta de análisis de ráster Exportar datos de entrenamiento para aprendizaje profundo de API REST de ArcGIS o ArcGIS API for Python para preparar los datos para el científico de datos.

Elemento 2 de flujo de trabajo

Entrene un aprendizaje profundo con la herramienta de análisis de ráster Entrenar modelo de aprendizaje profundo. Puede utilizar también la API REST de ArcGIS para entrenar el modelo con un marco de aprendizaje profundo. El paquete de aprendizaje profundo de salida (*.dlpk), que consiste en el archivo de definición del modelo y el modelo de aprendizaje profundo entrenado o el script de Python, se comparte en su portal como un elemento de .dlpk.

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.

Con el elemento .dlpk en el portal, ejecute 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.

Características y capacidades

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

  • Usar redes neuronales convolucionales para clasificar imágenes y detectar objetos.
  • Usar un modelo de aprendizaje profundo para clasificar píxeles de imágenes, detectar o clasificar objetos como aviones, árboles, vehículos, masas de agua, edificios y plataformas de pozos petrolíferos.
  • Integrar marcos de modelo de aprendizaje profundo externos, incluidos PyTorch, Keras y TensorFlow.
  • Procesar una colección de rásteres durante la inferencia del modelo 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 las potentes GPU en cada nodo del servidor, si es posible.
  • Puede usar varias GPU por nodo de servidor para ejecutar un trabajo de inferencia de aprendizaje profundo con las configuraciones de modelo predefinidas en ArcGIS, que incluyen la API de detección de objetos de TensorFlow y DeepLab, Keras MaskRCNN y PyTorch fastai Single Shot Detector.
  • Si el ráster de entrada viene con el espacio de mapa apropiado para la transformación del espacio de imagen, los chips de imágenes de entrenamiento se pueden exportar en el espacio de imágenes en la herramienta Exportar datos de entrenamiento para aprendizaje profundo.

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. El modelo de aprendizaje profundo se puede entrenar en ArcGIS utilizando la herramienta de análisis de ráster Entrenar modelo de aprendizaje profundo o arcgis.learn de ArcGIS API for Python. El modelo de aprendizaje profundo también se puede entrenar fuera de ArcGIS utilizando una API de aprendizaje profundo de terceros. Una vez entrenado el modelo, el elemento .dlpk se agrega a ArcGIS Enterprise y está listo para las tareas de inferencia del modelo. Ejecute las herramientas de análisis de ráster para detectar y clasificar objetos o clasificar píxeles desde Map Viewer Classic, ArcGIS API for Python, API REST de ArcGIS o ArcGIS Pro. Un analista con experiencia en modelos de aprendizaje profundo y clasificación de imágenes de ArcGIS puede completar todo el flujo de trabajo de aprendizaje profundo.

También se proporciona una aplicación de configuración de aprendizaje profundo independiente, que instala las API adecuadas del marco de aprendizaje profundo (TensorFlow, Keras, PyTorch y todas las demás bibliotecas Python requeridas) en el entorno arcgispro-py3 predeterminado de ArcGIS Image Server. Es requisito previo para ejecutar tareas de aprendizaje profundo en ArcGIS Image Server.

Consulte la documentación de Ayuda para saber cómo configurar e implementar ArcGIS Enterprise para el análisis de ráster. Consulte los pasos adicionales para configurar su servidor de Análisis de ráster para utilizar varias GPU por nodo de servidor.

  1. Cree y exporte muestras de entrenamiento.
    1. Use la herramienta Etiquetar objetos para aprendizaje profundo 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 la herramienta de análisis de ráster Entrenar modelo de aprendizaje profundo. Los usuarios también pueden entrenar modelos de aprendizaje profundo utilizando arcgis.learn de ArcGIS API for Python o las API de marco de aprendizaje profundo de terceros.
    2. Si el modelo de aprendizaje profundo se entrena con la herramienta de análisis de ráster Entrenar modelo de aprendizaje profundo, el resultado será un elemento del paquete de modelo de aprendizaje profundo publicado en el portal. El paquete de modelo de aprendizaje profundo (.dlpk) se puede consumir directamente en el siguiente paso.
    3. Si se utiliza una API de marco de aprendizaje profundo de terceros para entrenar el modelo, los usuarios deben actualizar el archivo .emd con el nombre del marco de aprendizaje profundo, la configuración del modelo, otras propiedades opcionales y, opcionalmente, una función ráster de Python personalizada para la inferencia del modelo. 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 Classic, ArcGIS API for Python, API REST de ArcGIS o ArcGIS Pro.
    1. Use las herramientas de análisis de ráster Detectar objetos con aprendizaje profundo, Clasificar píxeles con aprendizaje profundo o Clasificar objetos 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 Classic 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.
      Nota:

      El marco del modelo de aprendizaje profundo debe estar instalado en los equipos del servicio de Análisis de ráster para 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

Marco

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

Se admiten los siguientes marcos de aprendizaje profundo:

  • TensorFlow
  • Keras
  • PyTorch

PythonInferenceFunctionPython

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

  • ObjectDetectionAPI
  • DeepLab

Keras

  • MaskRCNN
  • KerasClassifier

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
  • ObjectClassification: para clasificar 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 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.

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.

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.

Puede compartir un paquete de aprendizaje profundo directamente desde ArcGIS Pro. 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 obtener más información, consulte Agregar archivos como elementos. 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.

Nota:

Debe comprimir todos los archivos incluidos en el paquete de modelo de aprendizaje profundo en el nivel de la carpeta raíz.