Skip To Content

Configurer ArcGIS Image Server pour l’analyse raster d’apprentissage profond

ArcGIS Image Server offre une suite d’outils d’apprentissage profond avec des processus détaillés qui permettent de classer et de détecter des objets dans l’imagerie. Ces outils permettent de générer des jeux de données d’échantillon d'apprentissage et de les exporter dans une structure d’apprentissage profond en vue de développer un modèle d’apprentissage profond. Vous pouvez ensuite exécuter différents processus sur les données, tels que la classification d’images et la détection d’objets.

Remarque :

Pour tirer parti du traitement GPU sur un site de serveur d’analyses raster multi-machines fonctionnant sous Windows, il est nécessaire qu’au moins un GPU soit disponible sur chaque nœud de serveur du site. Une carte GPU n’est pas requise pour exécuter les outils d’apprentissage profond sur votre déploiement d’analyses raster de ArcGIS Image Server. Si le serveur d’analyses raster ne dispose pas d’une carte GPU, les outils peuvent être exécutés sur le processeur. Si le serveur d’analyses raster ne dispose que d’un CPU, les utilisateurs doivent installer la bibliothèque MKL (Math Kernel Library) version des bibliothèques Python d'apprentissage profond spécifiquement conçue pour les paquetages TensorFlow et Pytorch.

Dans la version 10.8, l’analyse raster d’apprentissage profond peut utiliser plusieurs GPU simultanément sur une seule machine.

Remarque :

L’analyse raster dans un environnement ArcGIS Image Server peut utiliser les modules Python TensorFlow, PyTorch, CNTK et Keras avec les GPU. L’utilisation de plusieurs GPU par nœud de serveur est applicable à certaines configurations de modèle d’apprentissage profond prédéfinies dans ArcGIS. Elles incluent Tensorflow (ObjectDetectionAPI et DeepLab), Keras (MaskRCNN) et PyTorch.

Ajouter la prise en charge de l’apprentissage profond dans un déploiement d’analyse raster Windows

Une fois que vous avez configuré votre déploiement d’analyse raster, procédez comme suit pour installer les ressources Python d’apprentissage profond dans un environnement Windows. Si votre site ArcGIS Image Server comporte plusieurs nœuds, répétez ces étapes sur chaque nœud de serveur.

Le compte de système d’exploitation que vous utilisez pour réaliser ces étapes doit être le même que celui utilisé pour installer ArcGIS Image Server.

  1. Si vous pensez utiliser les GPU pour votre processus d’analyse raster d’apprentissage profond, installez les pilotes GPU NVIDIA appropriés.
  2. Accédez à l’environnement Python par défaut fourni avec votre configuration ArcGIS Server. Cette configuration Python par défaut se trouve dans C:\Program Files\ArcGIS\Server\framework\runtimes\ArcGIS\bin\Python.
  3. Activez l’environnement Python par défaut arcgispro-py3. Dans le dossier C:\Program Files\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts, saisissez la commande .\proenv.bat.
  4. Clonez un nouvel environnement Python à partir de l’environnement Python par défaut arcgispro-py3. Saisissez la commande, conda create --name DeepLearningEnv --clone arcgispro-py3

    Vous pouvez spécifier un nouveau nom d’environnement Python d’apprentissage profond, tel que « DeepLearningEnv »  

  5. Activez le nouvel environnement Python. Saisissez la commande, activate DeepLearningEnv Une fois le nouvel environnement Python activé, son nom s’affiche au début du chemin : (DeepLearningEnv) C:\Program Files\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts\
  6. Installez toutes les bibliothèques Python d’apprentissage profond requises. Dans le dossier C:\Program Files\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts, saisissez les commandes :
    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. Une fois tous les modules Python requis installés, exécutez le script par lot proswap pour remplacer l’environnement Python 3.6 par défaut utilisé par le service d’analyse raster par le nouvel environnement. Saisissez la commande, .\proswap.bat -n DeepLearningEnv
  8. Répétez les étapes 3 à 7 sur chaque machine du site ArcGIS Image Server.
  9. Redémarrez votre ArcGIS Image Server pour l’analyse raster après avoir installé les paquetages Python d’apprentissage profond.

Ajouter la prise en charge de l’apprentissage profond à un déploiement d’analyse raster Linux

Une fois que vous avez configuré votre déploiement d’analyse raster, procédez comme suit pour installer les ressources Python d’apprentissage profond dans un environnement Linux. Si votre site ArcGIS Image Server comporte plusieurs nœuds, répétez ces étapes sur chaque nœud de serveur.

Le compte de système d’exploitation que vous utilisez pour réaliser ces étapes doit être le compte de service pour ArcGIS Image Server.

  1. Si vous pensez utiliser les GPU pour votre processus d’analyse raster d’apprentissage profond, installez les pilotes GPU NVIDIA appropriés.
  2. Ouvrez un terminal sous l’identité de l’utilisateur qui a installé ArcGIS Image Server.
  3. Exécutez les commandes suivantes pour les processus d'analyse raster d’apprentissage profond. Vous allez tout d’abord cloner un nouvel environnement Python à partir de l’environnement Python par défaut arcgispro-py3. Vous basculerez ensuite vers le nouvel environnement Python cloné et vous installerez toutes les bibliothèques d’apprentissage profond requises.
    1. source /<ArcGIS install directory>/server/framework/etc/arcenv
    2. unset LD_PRELOAD
    3. wine cmd /c "C:/Program Files/arcgis/server/framework/runtime/ArcGIS/bin/Python/Scripts/conda.exe" create --name DeepLearningEnv --clone arcgispro-py3

      Vous pouvez spécifier un nouveau nom d’environnement Python d’apprentissage profond, tel que « DeepLearningEnv »

    4. wine cmd /c "C:/Program Files/arcgis/server/framework/runtime/ArcGIS/bin/Python/Scripts/conda.exe" proswap -n DeepLearningEnv
    5. wine cmd /c "C:/Program Files/arcgis/server/framework/runtime/ArcGIS/bin/Python/Scripts/conda.exe" install tensorflow-gpu=1.14.0
    6. wine cmd /c "C:/Program Files/arcgis/server/framework/runtime/ArcGIS/bin/Python/Scripts/conda.exe" install keras-gpu=2.2.4
    7. wine cmd /c "C:/Program Files/arcgis/server/framework/runtime/ArcGIS/bin/Python/Scripts/conda.exe" install scikit-image=0.15.0
    8. wine cmd /c "C:/Program Files/arcgis/server/framework/runtime/ArcGIS/bin/Python/Scripts/conda.exe" install Pillow=6.1.0
    9. wine cmd /c "C:/Program Files/arcgis/server/framework/runtime/ArcGIS/bin/Python/Scripts/conda.exe" install fastai=1.0.54
    10. wine cmd /c "C:/Program Files/arcgis/server/framework/runtime/ArcGIS/bin/Python/Scripts/conda.exe" install pytorch=1.1.0
    11. wine cmd /c "C:/Program Files/arcgis/server/framework/runtime/ArcGIS/bin/Python/Scripts/conda.exe" install libtiff=4.0.10
  4. Répétez l’étape 3 sur chaque machine de votre site ArcGIS Image Server.
  5. Redémarrez votre ArcGIS Image Server pour l’analyse raster après avoir installé les paquetages Python d’apprentissage profond.

Utilisation des GPU

Dans la version 10.8, plusieurs instances du service peuvent utiliser le GPU sur chaque nœud de serveur. Le nombre maximum d’instances par machine du service RasterProcessingGPU doit toujours être défini sur le nombre de cartes GPU installées et prévues pour le calcul d’apprentissage profond sur chaque machine. Par défaut, la valeur est 1.

Attention :
N’augmentez pas le nombre maximal d’instances par machine pour ce service si une carte GPU existe par machine.

Vérifiez les valeurs des nombres minimum et maximum d’instances dans ArcGIS Server Manager. Accédez à Services > Manage Services (Gérer des services) > RasterProcessingGPU, puis cliquez sur RasterProcessingGPU pour accéder à la page de mise à jour. Sur l’onglet Pooling (Groupage) vérifiez les valeurs des nombres minimum et maximum d’instances. Le nombre minimum et maximum d’instances par machine est égal à 1. Pour utiliser plusieurs GPU par machine, le nombre maximum d’instances par machine doit être modifié pour correspondre au nombre de cartes GPU installées sur chaque machine. Si, par exemple, chaque machine serveur possède deux GPU, le nombre maximum d’instances par machine doit être redéfini sur 2. Cliquez sur Save (Enregistrer) et Restart (Redémarrer) pour que la modification prenne effet.

Configuration du traitement raster du GPU

Le nombre minimum d’instances par machine du service RasterProcessingGPU est défini sur 1 par défaut. S’il n’existe qu’une carte GPU par nœud de serveur, il se peut que vous deviez redémarrer le service RasterProcessingGPU si vous souhaitez exécuter les inférences de modèle de manière séquentielle sur différentes structures d’apprentissage profond. Par exemple, envoyez la première tâche pour l’inférence de modèle TensorFlow, une fois celle-ci terminée, redémarrez le service RasterProcessingGPU, puis envoyez la deuxième tâche pour l’inférence de modèle PyTorch.

Chaque requête dans vos processus d’analyse raster d’apprentissage profond comprend un paramètre d’environnement processorType. Vérifiez que ce paramètre indique correctement si le processeur (CPU) ou l’unité de traitement graphique (GPU) doivent être utilisés lors de l’émission des requêtes. Le paramètre d’environnement processorType est défini dans l’outil ou l’interface de la fonction raster dans ArcGIS Pro, Map Viewer, ArcGIS REST API ou ArcGIS API for Python.