Skip To Content

Configurar ArcGIS Image Server para realizar análisis de ráster de aprendizaje profundo

ArcGIS Image Server ofrece un conjunto de herramientas de aprendizaje profundo con flujos de trabajo integrales para clasificar y detectar objetos en imágenes. Dichas herramientas permiten generar datasets de muestra de entrenamiento y exportarlos a un marco de aprendizaje profundo para desarrollar un modelo de aprendizaje profundo. Después, podrá llevar a cabo flujos de trabajo de inferencia de datos, como la clasificación de imágenes y la detección de objetos.

Nota:

Para sacar partido al procesamiento de GPU en un sitio del servidor de análisis de ráster de varios equipos con Windows, es necesario que haya al menos una GPU disponible en cada nodo de servidor del sitio. No se requiere ninguna tarjeta de GPU para ejecutar las herramientas de aprendizaje profundo en su implementación de análisis de ráster de ArcGIS Image Server. Si el equipo servidor de análisis de ráster no cuenta con ninguna tarjeta de GPU, las herramientas se pueden ejecutar en la CPU. En el equipo servidor de análisis de ráster solo con CPU, los usuarios deben instalar el build Math Kernel Library (MKL) de las bibliotecas de Python de aprendizaje profundo concretamente para los paquetes TensorFlow y PyTorch.

En 10.8, el análisis de ráster de inferencia de aprendizaje profundo puede usar varias GPU al mismo tiempo en un solo equipo.

Nota:

El análisis de ráster en un entorno de ArcGIS Image Server puede utilizar los módulos de Python para TensorFlow, PyTorch, CNTK y Keras con GPU. La utilización de varias GPU por nodo de servidor es aplicable a algunas configuraciones de modelo de aprendizaje profundo predefinidas en ArcGIS. Incluyen TensorFlow (ObjectDetectionAPI y DeepLab), Keras (MaskRCNN) y PyTorch.

Agregar compatibilidad para el aprendizaje profundo a una implementación de análisis de ráster de Windows

Después de configurar su implementación de análisis de ráster, siga los pasos que aparecen a continuación para instalar los recursos de Python de aprendizaje profundo en un entorno de Windows. Si tiene un sitio de ArcGIS Image Server con varios nodos, repita estos pasos en cada nodo del servidor.

La cuenta de SO que use para estos pasos debe ser la misma que la cuenta que instaló ArcGIS Image Server.

  1. Si desea usar las GPU para su flujo de trabajo de análisis de ráster de aprendizaje profundo, instale los controladores de GPU de NVIDIA adecuados.
  2. Examine el entorno de Python predeterminado que proporciona su instalación de ArcGIS Server. Esta instalación de Python predeterminada está en C:\Program Files\ArcGIS\Server\framework\runtimes\ArcGIS\bin\Python.
  3. Active el entorno de Python predeterminado, arcgispro-py3. En la carpeta C:\Program Files\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts, escriba el comando .\proenv.bat.
  4. Clone un nuevo entorno de Python a partir del entorno de Python predeterminado, arcgispro-py3. Escriba el comando conda create --name DeepLearningEnv --clone arcgispro-py3.

    Puede especificar un nuevo nombre de entorno de Python de aprendizaje profundo, por ejemplo, "DeepLearningEnv"

  5. Active el nuevo entorno de Python. Escriba el comando activate DeepLearningEnv. Una vez activado el nuevo entorno de Python, se muestra el nuevo nombre del entorno al inicio de la ruta: (DeepLearningEnv) C:\Program Files\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts\
  6. Instale todas las bibliotecas de Python de aprendizaje profundo necesarias. En la carpeta C:\Program Files\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts, escriba los comandos:
    1. conda install tensorflow-gpu=1.14.0
    2. conda install keras-gpu=2.2.4
    3. conda install scikit-image=0.15.0
    4. conda install Pillow=6.1.0
    5. conda install fastai=1.0.54
    6. conda install pytorch=1.1.0
    7. conda install libtiff=4.0.10
  7. Cuando se hayan instalado todos los módulos de Python que sean necesarios, ejecute el script por lotes de proswap para cambiar el entorno predeterminado de Python 3.6 que utiliza el servicio de análisis de ráster al entorno nuevo. Escriba el comando .\proswap.bat -n DeepLearningEnv.
  8. Repita los pasos del 3 al 7 en cada equipo de su sitio de ArcGIS Image Server.
  9. Reinicie su ArcGIS Image Server para el Análisis de ráster una vez instalados correctamente los paquetes de Python de aprendizaje profundo.

Agregar compatibilidad para el aprendizaje profundo a una implementación de análisis de ráster de Linux

Después de configurar su implementación de análisis de ráster, siga los pasos que aparecen a continuación para instalar los recursos de Python de aprendizaje profundo en un entorno de Linux. Si tiene un sitio de ArcGIS Image Server con varios nodos, repita estos pasos en cada nodo del servidor.

La cuenta de SO que use para estos pasos debe ser la misma que la cuenta de servicio para ArcGIS Image Server.

  1. Si va a usar las GPU para su flujo de trabajo de análisis de ráster de aprendizaje profundo, instale los controladores de GPU de NVIDIA adecuados.
  2. Abra un terminal como el usuario que instaló ArcGIS Image Server.
  3. Ejecute los comandos siguientes para los flujos de trabajo de análisis de ráster de aprendizaje profundo. Primero, clonará un entorno de Python nuevo a partir del entorno de Python predeterminado, arcgispro-py3. Después, cambiará al entorno de Python clonado e instalará todas las bibliotecas de aprendizaje profundo requeridas.
    1. source /<Directorio de instalación de ArcGIS>/server/framework/etc/arcenv
    2. unset LD_PRELOAD
    3. wine cmd /c "C:/Archivos de programa/arcgis/server/framework/runtime/ArcGIS/bin/Python/Scripts/conda.exe" create --name DeepLearningEnv --clone arcgispro-py3

      Puede especificar un nuevo nombre de entorno de Python de aprendizaje profundo, por ejemplo, "DeepLearningEnv"

    4. wine cmd /c "C:/Archivos de programa/arcgis/server/framework/runtime/ArcGIS/bin/Python/Scripts/conda.exe" proswap -n DeepLearningEnv
    5. wine cmd /c "C:/Archivos de programa/arcgis/server/framework/runtime/ArcGIS/bin/Python/Scripts/conda.exe" install tensorflow-gpu=1.14.0
    6. wine cmd /c "C:/Archivos de programa/arcgis/server/framework/runtime/ArcGIS/bin/Python/Scripts/conda.exe" install keras-gpu=2.2.4
    7. wine cmd /c "C:/Archivos de programa/arcgis/server/framework/runtime/ArcGIS/bin/Python/Scripts/conda.exe" install scikit-image=0.15.0
    8. wine cmd /c "C:/Archivos de programa/arcgis/server/framework/runtime/ArcGIS/bin/Python/Scripts/conda.exe" install Pillow=6.1.0
    9. wine cmd /c "C:/Archivos de programa/arcgis/server/framework/runtime/ArcGIS/bin/Python/Scripts/conda.exe" install fastai=1.0.54
    10. wine cmd /c "C:/Archivos de programa/arcgis/server/framework/runtime/ArcGIS/bin/Python/Scripts/conda.exe" install pytorch=1.1.0
    11. wine cmd /c "C:/Archivos de programa/arcgis/server/framework/runtime/ArcGIS/bin/Python/Scripts/conda.exe" install libtiff=4.0.10
  4. Repita el paso 3 en cada equipo de su sitio de ArcGIS Image Server.
  5. Reinicie su ArcGIS Image Server para el Análisis de ráster una vez instalados correctamente los paquetes de Python de aprendizaje profundo.

Uso de GPU

En 10.8, varias instancias de servicio pueden usar la GPU en cada nodo del servidor. La cantidad máxima de instancias por equipo del servicio RasterProcessingGPU debe estar establecida según el número de tarjetas GPU instaladas y destinadas a la computación de aprendizaje profundo en cada equipo, el valor predeterminado es 1.

Precaución:
No aumente el número máximo de instancias por equipo para este servicio si solo hay una tarjeta GPU por equipo.

Compruebe los valores mínimo y máximo del número de instancias en ArcGIS Server Manager. Vaya a Servicios > Administrar servicios > RasterProcessingGPU y haga clic en RasterProcessingGPU para ir a la página de edición. En la pestaña Agrupación, compruebe los valores mínimo y máximo del número de instancias. El número mínimo y máximo predeterminado de instancias por equipo es 1. Para utilizar varias GPU por equipo, la cantidad máxima de instancias por equipo debe modificarse para que sea igual a la cantidad de tarjetas GPU instaladas por equipo. Por ejemplo, si cada equipo servidor tiene dos GPU, el número máximo de instancias por equipo debe cambiarse a 2. Haga clic en Guardar y Reiniciar para aplicar los cambios.

Configuración de GPU de procesamiento de ráster

La cantidad mínima de instancias por equipo del servicio RasterProcessingGPU se establece en 1 como valor predeterminado. Si solo hay una tarjeta de GPU disponible para cada nodo de servidor, puede que tenga que reiniciar el servicio RasterProcessingGPU si desea ejecutar inferencias de modelo de manera secuencial entre distintos marcos de aprendizaje profundo. Por ejemplo, envíe el primer trabajo para la inferencia del modelo TensorFlow; una vez terminado, reinicie el servicio RasterProcessingGPU y, después, envíe el segundo trabajo para la inferencia del modelo PyTorch.

Todas las solicitudes de sus flujos de trabajo de análisis de ráster de aprendizaje profundo incluyen un parámetro de entorno processorType. Asegúrese de que este parámetro especifique adecuadamente si se debe usar CPU o GPU al realizar solicitudes. El parámetro de entorno processorType está definido en la interfaz de la herramienta o función ráster en ArcGIS Pro, Map Viewer, ArcGIS REST API o ArcGIS API for Python.