Skip To Content

Konfigurieren von ArcGIS Image Server für Deep-Learning-Raster-Analysen

ArcGIS Image Server stellt eine Reihe von Deep-Learning-Werkzeugen mit umfassenden Workflows zum Klassifizieren und Erkennen von Objekten in Bilddaten bereit. Mit diesen Werkzeugen können Sie Trainingsgebiet-Datasets generieren und in ein Deep-Learning-Framework exportieren, um ein Deep-Learning-Modell zu entwickeln. Anschließend können Sie Dateninferenz-Workflows wie Bildklassifizierung und Objekterkennung durchführen.

Hinweis:

Damit Sie die GPU-Verarbeitung auf einer Raster-Analyse-Server-Site mit mehreren Computern unter Windows nutzen können, muss auf jedem Serverknoten der Site mindestens eine GPU verfügbar sein. Es ist keine GPU-Karte erforderlich, um die Deep-Learning-Werkzeuge für Ihre Raster-Analyse-Bereitstellung von ArcGIS Image Server auszuführen. Wenn im Raster-Analyse-Servercomputer keine GPU-Karte vorhanden ist, können die Werkzeuge mit der CPU ausgeführt werden. Für einen Raster-Analyse-Servercomputer, wo nur die CPU verwendet wird, muss der MKL-Build (Math Kernel Library) der Deep-Learning-Python-Bibliotheken speziell für TensorFlow- und PyTorch-Pakete installiert werden.

In Version 10.8 können in Inferenz-Raster-Analysen für Deep-Learning mehrere GPUs gleichzeitig auf einem Computer verwendet werden.

Hinweis:

Für Raster-Analysen in einer ArcGIS Image Server-Umgebung können die Python-Module von TensorFlow, PyTorch, CNTK und Keras mit GPUs verwendet werden. Die Verwendung mehrerer GPUs pro Serverknoten kann für einige Deep-Learning-Modellkonfigurationen angewendet werden, die in ArcGIS vordefiniert sind. Dazu gehören TensorFlow (ObjectDetectionAPI und DeepLab), Keras (MaskRCNN) und PyTorch.

Zusätzliche Unterstützung für Deep Learning in einer Raster-Analyse-Bereitstellung unter Windows

Nachdem Sie die Raster-Analyse-Bereitstellung konfiguriert haben, führen Sie die folgenden Schritte aus, um die Python-Ressourcen für Deep Learning in einer Windows-Umgebung zu installieren. Wenn Sie über eine ArcGIS Image Server-Site mit mehreren Knoten verfügen, wiederholen Sie diese Schritte für jeden Serverknoten.

Das für diese Schritte verwendete Betriebssystemkonto muss mit dem für die Installation von ArcGIS Image Server verwendeten Konto identisch sein.

  1. Wenn Sie für den Deep-Learning-Raster-Analyse-Workflow GPUs verwenden möchten, müssen Sie die entsprechenden GPU-Treiber von NVIDIA installieren.
  2. Navigieren Sie zur standardmäßigen Python-Umgebung, die im ArcGIS Server-Setup enthalten ist. Dieses standardmäßige Python-Setup befindet sich unter C:\Program Files\ArcGIS\Server\framework\runtimes\ArcGIS\bin\Python.
  3. Aktivieren Sie die standardmäßige Python-Umgebung "arcgispro-py3". Geben Sie im Ordner C:\Program Files\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts den Befehl .\proenv.bat ein.
  4. Klonen Sie aus der standardmäßigen Python-Umgebung arcgispro-py3 eine neue Python-Umgebung. Geben Sie den Befehl conda create --name DeepLearningEnv --clone arcgispro-py3 ein.

    Sie können einen neuen Namen für die Deep-Learning-Python-Umgebung angeben, z. B. DeepLearningEnv.

  5. Aktivieren Sie die neue Python-Umgebung. Geben Sie den Befehl activate DeepLearningEnv ein. Nach der Aktivierung wird der Name der neuen Python-Umgebung am Anfang des Pfades angezeigt: (DeepLearningEnv) C:\Program Files\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts\.
  6. Installieren Sie alle erforderlichen Deep-Learning-Python-Bibliotheken. Geben Sie im Ordner C:\Program Files\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts die folgenden Befehle ein:
    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. Führen Sie nach der Installation aller notwendigen Python-Module das Batch-Skript proswap aus, um die vom Raster-Analyse-Service verwendete Python-3.6-Standardumgebung durch die neue Umgebung zu ersetzen. Geben Sie den Befehl .\proswap.bat -n DeepLearningEnv ein.
  8. Wiederholen Sie die Schritte 3 bis 7 für jeden Computer der ArcGIS Image Server-Site.
  9. Starten Sie Ihren ArcGIS Image Server für die Raster-Analyse neu, nachdem die Deep-Learning-Python-Pakete erfolgreich installiert wurden.

Zusätzliche Unterstützung für Deep Learning in einer Raster-Analyse-Bereitstellung unter Linux

Nachdem Sie die Raster-Analyse-Bereitstellung konfiguriert haben, führen Sie die folgenden Schritte aus, um die Python-Ressourcen für Deep-Learning in einer Linux-Umgebung zu installieren. Wenn Sie über eine ArcGIS Image Server-Site mit mehreren Knoten verfügen, wiederholen Sie diese Schritte für jeden Serverknoten.

Das für diese Schritte verwendete Betriebssystemkonto muss mit dem Service-Konto für ArcGIS Image Server identisch sein.

  1. Wenn Sie für den Deep-Learning-Raster-Analyse-Workflow GPUs verwenden, müssen Sie die entsprechenden GPU-Treiber von NVIDIA installieren.
  2. Öffnen Sie ein Terminal als der Benutzer, der ArcGIS Image Server installiert hat.
  3. Führen Sie die unten stehenden Befehle für Deep-Learning-Raster-Analyse-Workflows aus. Zuerst klonen Sie aus der standardmäßigen Python-Umgebung "arcgispro-py3" eine neue Python-Umgebung. Anschließend wechseln Sie zur geklonten Python-Umgebung und installieren alle erforderlichen Deep-Learning-Bibliotheken.
    1. source /<ArcGIS-Installationsverzeichnis>/server/framework/etc/arcenv
    2. unset LD_PRELOAD
    3. wine cmd /c "C:/Programme/arcgis/server/framework/runtime/ArcGIS/bin/Python/Scripts/conda.exe" create --name DeepLearningEnv --clone arcgispro-py3

      Sie können einen neuen Namen für die Deep-Learning-Python-Umgebung angeben, z. B. DeepLearningEnv.

    4. wine cmd /c "C:/Programme/arcgis/server/framework/runtime/ArcGIS/bin/Python/Scripts/conda.exe" proswap -n DeepLearningEnv
    5. wine cmd /c "C:/Programme/arcgis/server/framework/runtime/ArcGIS/bin/Python/Scripts/conda.exe" install tensorflow-gpu=1.14.0
    6. wine cmd /c "C:/Programme/arcgis/server/framework/runtime/ArcGIS/bin/Python/Scripts/conda.exe" install keras-gpu=2.2.4
    7. wine cmd /c "C:/Programme/arcgis/server/framework/runtime/ArcGIS/bin/Python/Scripts/conda.exe" install scikit-image=0.15.0
    8. wine cmd /c "C:/Programme/arcgis/server/framework/runtime/ArcGIS/bin/Python/Scripts/conda.exe" install Pillow=6.1.0
    9. wine cmd /c "C:/Programme/arcgis/server/framework/runtime/ArcGIS/bin/Python/Scripts/conda.exe" install fastai=1.0.54
    10. wine cmd /c "C:/Programme/arcgis/server/framework/runtime/ArcGIS/bin/Python/Scripts/conda.exe" install pytorch=1.1.0
    11. wine cmd /c "C:/Programme/arcgis/server/framework/runtime/ArcGIS/bin/Python/Scripts/conda.exe" install libtiff=4.0.10
  4. Wiederholen Sie Schritt 3 für jeden Computer der ArcGIS Image Server-Site.
  5. Starten Sie Ihren ArcGIS Image Server für die Raster-Analyse neu, nachdem die Deep-Learning-Python-Pakete erfolgreich installiert wurden.

Nutzung von GPUs

In Version 10.8 kann die GPU auf einem Serverknoten von mehreren Service-Instanzen verwendet werden. Die maximale Anzahl Instanzen pro Computer für den RasterProcessingGPU-Service sollte gemäß der Anzahl der installierten GPU-Karten auf den einzelnen Computern festgelegt werden, die für Deep-Learning-Berechnungen vorgesehen sind. Die Standardeinstellung lautet 1.

Vorsicht:
Erhöhen Sie die maximale Anzahl an Instanzen pro Computer für diesen Service nicht, wenn pro Computer nur eine GPU-Karte installiert ist.

Überprüfen Sie die Werte für die minimale und maximale Anzahl an Instanzen im ArcGIS Server Manager. Navigieren Sie zu Services > Services verwalten > RasterProcessingGPU, und klicken Sie auf RasterProcessingGPU, um zur Bearbeitungsseite zu gelangen. Überprüfen Sie auf der Registerkarte Pooling die Werte für die minimale und maximale Anzahl an Instanzen. Die minimale und maximale Anzahl von Instanzen pro Computer lautet standardmäßig 1. Um mehrere GPUs pro Computer zu verwenden, sollte für die maximale Anzahl an Instanzen pro Computer die Anzahl der installierten GPU-Karten pro Computer eingegeben werden. Wenn auf dem Servercomputer beispielsweise zwei GPUs installiert sind, sollte die maximale Anzahl an Instanzen pro Computer zu 2 geändert werden. Klicken Sie auf Speichern und Neu starten, um die Änderungen zu übernehmen.

Einrichten von GPUs für die Raster-Verarbeitung

Die minimale Anzahl der Instanzen pro Computer des RasterProcessingGPU-Service ist auf 1 als Standardwert festgelegt. Wenn für jeden Serverknoten nur eine GPU-Karte verfügbar ist und Sie Modellinferenzen nacheinander in unterschiedlichen Deep-Learning-Frameworks ausführen möchten, müssen Sie möglicherweise den RasterProcessingGPU-Service neu starten. Übermitteln Sie z. B. den ersten Auftrag für die TensorFlow-Modellinferenz, und starten Sie nach der Übermittlung den Service "RasterProcessingGPU" neu. Übermitteln Sie dann den zweiten Auftrag für die PyTorch-Modellinferenz.

Jede Anforderung in Ihren Deep-Learning-Raster-Analyse-Workflows enthält den Umgebungsparameter processorType. Stellen Sie sicher, dass anhand dieses Parameters ordnungsgemäß festgelegt ist, ob beim Senden von Anforderungen CPU oder GPU verwendet werden soll. Der Umgebungsparameter processorType wird im Werkzeug oder in der Raster-Funktionsschnittstelle in ArcGIS Pro, Map Viewer, ArcGIS REST API oder ArcGIS API for Python festgelegt.