ArcGIS Pro
Aprendizaje profundo con consejos y trucos de ArcGIS Pro: Parte 2
Por Rami Alouta y Kate Hess
En esta publicación, proporcionaremos sugerencias y trucos para utilizar los modelos de aprendizaje profundo previamente entrenados de Esri, comenzando por garantizar que sus imágenes sean adecuadas para el aprendizaje profundo. Luego, desglosaremos los parámetros de entrada para Detectar objetos mediante la herramienta de geoprocesamiento Deep Learning, para que pueda realizar ajustes inteligentes y optimizar la ejecución del modelo para su entorno de procesamiento y datos.
La Parte 1 de esta serie de blogs (Aprendizaje profundo con consejos y trucos de ArcGIS Pro: Parte 1) cubrió cómo configurar su entorno para realizar el aprendizaje profundo. En este punto, debería tener una GPU compatible con CUDA, una versión reciente de ArcGIS Pro y el marco de aprendizaje profundo para ArcGIS Pro instalados. Si estuviéramos implementando el aprendizaje profundo desde cero, el siguiente paso sería extraer de cientos a miles de muestras de capacitación. Pero con los modelos de aprendizaje profundo previamente entrenados y disponibles públicamente de Esri, podemos comenzar a identificar características en nuestras imágenes con una herramienta en ArcGIS Pro. Hay modelos listos para usar disponibles para la extracción de huellas de edificios, extracción de carreteras, clasificación de cobertura terrestre, detección de asentamientos humanos y más. Cualquier persona que tenga una suscripción a ArcGIS Online puede ver y descargar los modelos disponibles desde ArcGIS Living Atlas.
Para utilizar las herramientas de inferencia en ArcGIS Pro, trabajaremos con la siguiente lista de verificación:
- Descargar un paquete de modelo de aprendizaje profundo (dlpk)
- Confirma que tus imágenes son adecuadas para el aprendizaje profundo
- Determine la resolución de sus imágenes
- Revise los parámetros de entrada para Detectar objetos usando la herramienta de geoprocesamiento Deep Learning
- Ejecute Detectar objetos con la herramienta de geoprocesamiento Deep Learning
Definiciones clave
.emd: Definición del modelo de Esri
TensorFlow: TensorFlow es una plataforma de código abierto de extremo a extremo para el aprendizaje automático. Tiene un ecosistema integral y flexible de herramientas, bibliotecas y recursos comunitarios que permite a los investigadores impulsar el estado de la técnica en ML y a los desarrolladores crear e implementar fácilmente aplicaciones impulsadas por ML. (tensorflow.org)
Keras: Keras es una biblioteca de software de código abierto que proporciona una interfaz Python para redes neuronales artificiales. Keras actúa como una interfaz para la biblioteca de TensorFlow.
.pb: extensión de archivo del modelo de aprendizaje profundo de TensorFlow
.h5: extensión de archivo del modelo de aprendizaje profundo de Keras
.py: secuencia de comandos de Python
GeoAi: inteligencia artificial geográfica
Dlpk: paquete de aprendizaje profundo de Esri
CNN: redes neuronales convolucionales
Mask R-CNN: Mask RCNN es una red neuronal profunda destinada a resolver el problema de segmentación de instancias en el aprendizaje automático o la visión por computadora. En otras palabras, puede separar diferentes objetos en una imagen o un video. Le da una imagen, le da los cuadros delimitadores de objetos, clases y máscaras. (Comprensión simple de Mask RCNN, Xiang Zhang 22 de abril de 2018)
Época: el número de épocas es un hiperparámetro que define el número de veces que el algoritmo de aprendizaje funcionará en todo el conjunto de datos de entrenamiento (Diferencia entre un lote y una época en una red neuronal, Jason Brownlee, 20 de julio de 2018)
Descargar el paquete del modelo de aprendizaje profundo
Un paquete de modelo de aprendizaje profundo (.dlpk) contiene los archivos y los 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 puede cargarse en su portal como un elemento DLPK y usarse como entrada para 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 utilizó para entrenar el modelo. Por ejemplo, si entrenó su modelo con TensorFlow, el archivo de modelo será un archivo .pb, mientras que un modelo entrenado con Keras generará un archivo .h5. Según el marco del modelo y las opciones que utilizó para entrenar su modelo, es posible que deba incluir una función ráster de Python (.py) o archivos adicionales. Puede incluir varios archivos de modelos entrenados en un único paquete de modelos de aprendizaje profundo. (Tenga en cuenta que una próxima publicación de blog de esta serie cubrirá cómo entrenar su propio modelo).
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 <Documentos de usuario> \ ArcGIS \ Packages. Puede cambiar esta ubicación en las opciones Compartir y descargar. La funcionalidad del paquete que no es compatible con la versión de ArcGIS Pro que se utiliza para consumir el paquete no está disponible.
La forma más sencilla de encontrar los modelos listos para usar de Esri es a través del panel de catálogo en ArcGIS Pro:
· Abrir un proyecto de ArcGIS Pro nuevo o existente
· Navegar al panel de catálogo
· Haga clic en Portal
· Seleccione el icono de Living Atlas
· Escriba dlpk en la barra de búsqueda y presione enter
Una lista de dlpks disponibles públicamente se mostrará en los resultados de su búsqueda. Para ver, descargar o revisar las propiedades de un .dlpk, o para agregar o eliminar archivos de su .dlpk, haga clic con el botón derecho en el .dlpk en el panel Catálogo y haga clic en Propiedades.

Las propiedades incluyen la siguiente información:
- Entrada: el archivo .emd, el 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 del modelo realizado (detección de objetos, clasificación de píxeles o clasificación de características).
- Descripción: una descripción del modelo. Esto es opcional y editable.
- Resumen: un breve resumen del modelo. Esto es opcional y editable.
- Etiquetas: cualquier etiqueta utilizada para identificar el paquete. Esto es útil para los elementos del paquete .dlpk almacenados en su portal.

Cualquier propiedad que se edite en la ventana Propiedades se actualiza al hacer clic en Aceptar. Si se accede al elemento .dlpk desde su portal en el panel Catálogo, el elemento del portal se actualiza.
Tenga en cuenta que Esri proporciona .dlpks listos para usar que puede usar en su flujo de trabajo de aprendizaje profundo. Se pueden encontrar en la sección dlpk en Living Atlas de Esri.
Confirma que tus imágenes son adecuadas para el aprendizaje profundo
Para obtener el mejor resultado de un flujo de trabajo de inferencia, primero debe inspeccionar visualmente sus imágenes. Los modelos de aprendizaje profundo están optimizados para detectar características que puede ver con sus ojos. En esta parte del blog, nos centraremos en un tema candente en GeoAI: detección de edificios. Cubriremos la resolución de imágenes requerida para el paquete de aprendizaje profundo de Esri Building Footprint Extraction - EE. UU., Pero estos consejos son relevantes para cualquier modelo de aprendizaje profundo.
Primero, confirme que puede ubicar visualmente edificios en sus imágenes sin procesar. A modo de ejemplo, la siguiente imagen muestra algunos edificios en Chipre.

Determine la resolución de sus imágenes
El paquete de aprendizaje profundo Building Footprint Extraction - EE. UU. Está diseñado para trabajar con imágenes de alta resolución (30–50 cm). Para determinar la resolución de sus imágenes:
- En su proyecto de ArcGIS Pro, inserte un mapa si aún no lo ha hecho.
- Arrastre y suelte su imagen en el marco del mapa.
- Seleccione su imagen en la tabla de contenido, luego busque las propiedades de la imagen.
- Vaya a la pestaña Origen y expanda Información ráster.
- Localice el tamaño de celda X y el tamaño de celda Y en la información de ráster
- Si el tamaño de celda es igual o menor que 0,5, puede continuar con el dlpk de extracción de huella de edificio.
- De lo contrario, es posible que deba seguir uno de los siguientes flujos de trabajo:
- Entrenando tu propio modelo. Puede encontrar más información en Entrenar modelo de aprendizaje profundo.
- Adquiera nuevas imágenes con mayor resolución.
- Comprobación de la resolución de la imagen

Siga el enlace Building Footprint Extraction - EE. UU. Para descargar el paquete. Esri proporciona una variedad de otros paquetes de aprendizaje profundo que se pueden encontrar en ArcGIS Living Atlas of the World. Tenga en cuenta que el modelo descargado utiliza la arquitectura del modelo Mask R-CNN implementada mediante ArcGIS API for Python.
Comprender los parámetros para la inferencia.
Con todos los requisitos previos cubiertos, profundicemos en los parámetros de la herramienta de geoprocesamiento Detectar objetos mediante aprendizaje profundo. Un elemento clave de este proceso es comprender los diferentes parámetros que vienen con la herramienta:
- Relleno
- Tamaño del lote
- Umbral
- Devolver bbox
Comprender estos parámetros le permitirá realizar ajustes inteligentes y obtener la salida más precisa posible.
Tenga en cuenta que ningún enfoque de aprendizaje profundo le dará resultados 100 por ciento precisos, pero ajustar los parámetros de su modelo e iterar a través del proceso puede optimizar la precisión de su modelo. A continuación, analizaremos la importancia de cada parámetro y cómo ajustar las entradas en función de sus imágenes y su entorno.
Relleno
El primer parámetro es el relleno del modelo. El relleno es el área de borde desde la cual el modelo descartará las detecciones, ya que tienden a ser edificios truncados que abarcan múltiples mosaicos durante la inferencia. Pasamos por encima de la región acolchada, de modo que los edificios que se descartan porque se encuentran en el borde en una pasada de la inferencia del modelo se detectan en la segunda pasada de la inferencia cuando se encuentran en el centro de las baldosas debido a este paso. Esto significa que, con el parámetro de relleno ajustado, el modelo ajustará el paso de cada mosaico a medida que ejecuta el flujo de trabajo de inferencia. Por ejemplo, si introducimos un relleno de 32 px (píxeles) en un modelo que está haciendo inferencias de mosaicos de 128 px, el modelo avanzará el mosaico por 32 px dentro de los 4 bordes del mosaico. Si el centroide de la característica detectada está dentro del mosaico acolchado, pasará como un edificio en este ejemplo.

Si es nuevo en el aprendizaje profundo, no dude en dejar el valor predeterminado de relleno.
Si desea experimentar con la herramienta para ver el efecto de cambiar el relleno, intente ejecutar la herramienta en áreas pequeñas con un relleno establecido en diferentes múltiplos de 8. En el gráfico siguiente, estamos demostrando cómo se trata un relleno de 64 px al hacer inferencias.

Relleno en ArcGIS Pro
Por ejemplo, si el valor predeterminado es 32 px, intente ejecutar la herramienta con rellenos de 24 px y 16 px y compare los resultados. Consulte las imágenes a continuación para ver la salida de un modelo ejecutado con un relleno de 32 px (en verde) frente a 8 px (en violeta).


Tamaño del lote
El tamaño de lote es un término utilizado en el aprendizaje automático y se refiere a la cantidad de mosaicos de imágenes que la GPU puede procesar a la vez mientras realiza inferencias. Las imágenes se cortan en mosaicos durante la inferencia, y el número de mosaicos que la GPU puede inferencia en un lote se denomina tamaño de lote. Si se encuentra con errores de memoria insuficiente con la herramienta, debe reducir el tamaño del lote.
El tamaño de lote que su computadora puede manejar dependerá de la GPU disponible en su máquina. Para determinar el tamaño de lote óptimo, es posible que deba ejecutar la herramienta varias veces en una pequeña extensión geográfica mientras monitorea las métricas de su GPU. Comience su prueba con un tamaño de lote pequeño y aumente el número a medida que avanza para maximizar el uso de RAM de la GPU. Cubriremos cómo monitorear el uso de RAM de su GPU en la sección "Ejecutar la herramienta de geoprocesamiento Detectar objetos mediante aprendizaje profundo" a continuación.
Umbral
Los modelos de predicción generan un nivel de confianza para cada característica (es decir, edificio) que detectan. El parámetro de umbral establece el nivel mínimo de confianza que se incluirá en la salida. Por ejemplo, si establece el umbral en 0.9, se eliminará cualquier característica en la que el modelo tenga menos del 90% de confianza. Otro enfoque es ejecutar el modelo con un umbral más bajo que su objetivo final y luego establecer una consulta de definición en la capa de entidades de salida utilizando el atributo de confianza para mostrar solo las entidades por encima de un cierto umbral de confianza.
Devolver cuadro delimitador (return_bbox)
El cuadro delimitador de retorno es un parámetro booleano con una entrada Verdadero o Falso. Si es Verdadero, la herramienta de geoprocesamiento Detectar objetos mediante aprendizaje profundo devolverá un cuadro delimitador alrededor de la característica detectada en lugar de la característica en sí.
Ejecute Detectar objetos mediante aprendizaje profundo
Ahora que está familiarizado con los parámetros de la herramienta Detectar objetos mediante aprendizaje profundo, está listo para comenzar el proceso de inferencia:
- En la pestaña Análisis de la cinta principal, haga clic en Herramientas.
- En Buscar herramientas, escriba Detectar objetos mediante aprendizaje profundo y abra la herramienta.
- Complete los parámetros de la siguiente manera:
- Ráster de entrada: introduzca sus imágenes de alta resolución.
- Objeto detectado de salida: especifique una ubicación de salida para las características detectadas.
- Definición de modelo: importe el archivo dlpk descargado anteriormente.
- padding: 32 (Ver detalles arriba o dejar el predeterminado)
- batch_size: 16 (Deje el valor predeterminado si tiene una GPU Nvidia RTX 5000 o equivalente. Disminuya el tamaño del lote si se encuentra con errores de memoria insuficiente de CUDA).
- umbral: 9 (consulte los detalles arriba o deje el valor predeterminado)
- return_bboxes: False (vea los detalles arriba o deje el valor predeterminado)
- Marque la supresión no máxima Esta opción es esencial para fusionar las características detectadas superpuestas.
- Deje los demás parámetros como predeterminados. No ejecute la herramienta todavía.

· Haga clic en la pestaña Entornos
· Si está tratando de determinar el tamaño de lote óptimo para su entorno, amplíe una pequeña extensión de su imagen donde pueda ver alrededor de una docena de edificios y luego configure la Extensión de procesamiento en Extensión de visualización actual. Si está seguro del tamaño de su lote, deje la configuración predeterminada de Extensión de procesamiento.
· En Tipo de procesador, elija GPU.
· ID de GPU: 0 (para obtener más información sobre esta configuración, consulte la sección de la Parte 1 de esta serie de blogs sobre la instalación de CUDA).
· Ejecute la herramienta.

Detectar objetos mediante variables de entorno de la herramienta de geoprocesamiento de aprendizaje profundo
Para determinar el tamaño de lote óptimo para su GPU como se mencionó anteriormente, siga estos pasos mientras se ejecuta la herramienta:
- Abra la ventana del símbolo del sistema.
- Escriba nvidia-smi y presione Entrar.
- En la sección Uso de memoria, si ve que hay algo de memoria que no se está usando, aumente el tamaño de su lote. Si ve que el uso de memoria está al máximo y la herramienta falla, disminuya el tamaño de su lote.

Ahora que sabe cómo ajustar los parámetros para completar la inferencia en ArcGIS Pro, puede iterar hasta que esté satisfecho con el resultado del modelo. En la próxima publicación de blog de esta serie, tomaremos este resultado y usaremos las herramientas de análisis espacial de ArcGIS Pro para refinar aún más su resultado, incluida la detección y eliminación de irregularidades y características mal identificadas.
Sobre los autores
Rami es ingeniero de soluciones en el equipo del gobierno nacional que brinda apoyo a organizaciones globales sin fines de lucro y equipos de administración de tierras fuera de la oficina de Rotterdam. Tiene más de 5 años de experiencia en SIG y ha estado trabajando con Esri desde 2016 como ingeniero de configuración de plataforma con servicios profesionales fuera de la oficina de Dubai. Es licenciado en Arquitectura del Paisaje por la Universidad Americana de Beirut.
Kate es ingeniera de soluciones en el equipo de gobierno nacional de Esri. Con base en Washington DC, tiene experiencia en teledetección y ciencias ambientales. Actualmente, Kate apoya a las Oficinas Nacionales de Estadísticas fuera de los EE. UU., Ayudándolas a modernizar sus operaciones de censos y estadísticas utilizando SIG.