Pixel klassifizieren

Mit der Image Analyst-Lizenz verfügbar.

Mit dem Werkzeug Pixel mit Deep Learning klassifizieren können Sie Pixel in Bilddaten klassifizieren. Das Werkzeug führt ein trainiertes Deep-Learning-Modell auf einem Eingabe-Raster zur Erstellung eines klassifizierten Rasters aus, wobei jedem Pixel eine Klassenbeschriftung zugewiesen ist. Ein typisches Anwendungsbeispiel für die Pixelklassifizierung ist die Klassifizierung der Bodenbedeckung. In dem Bild unten sehen Sie ein Beispiel für die Klassifizierung der Bodenbedeckung.

Beispiel einer Pixelklassifizierung

Ein typischer Workflow zur Pixelklassifizierung mit Deep-Learning besteht aus drei Hauptschritten:

  1. Erstellen und exportieren Sie Trainingsgebiete. Erstellen Sie Trainingsgebiete im Bereich Objekte für Deep Learning beschriften, und konvertieren Sie die Gebiete mit dem Werkzeug Trainingsdaten für Deep Learning exportieren in Deep-Learning-Trainingsdaten.
  2. Trainieren Sie das Deep-Learning-Modell. Verwenden Sie das Werkzeug Deep-Learning-Modell trainieren, um mithilfe der im vorausgehenden Schritt erstellten Trainingsgebiete ein Modell zu trainieren.
  3. Führen Sie die Inferenzierung durch. Verwenden Sie das Werkzeug Pixel mit Deep Learning klassifizieren. Verwenden Sie das Modell, das Sie in Schritt 2 erstellt haben.

Weitere Beispiele, die unterstützten Metadatenformate und Modelltyparchitekturen finden Sie unter Deep-Learning-Modellarchitekturen.

Trainingsgebiete erstellen und exportieren

Erstellen Sie ein Trainingsschema und Trainingsgebiete, und exportieren Sie die Trainingsdaten.

Wenn in einem Raster-Dataset oder in einer Feature-Class Trainingsgebiete vorhanden sind, können Sie das Werkzeug Trainingsdaten für Deep Learning exportieren verwenden und mit dem Abschnitt "Deep-Learning-Modell trainieren" weiter unten fortfahren.

  1. Erstellen Sie ein Trainingsschema.
    1. Fügen Sie das Bild, das zum Generieren der Trainingsgebiete verwendet werden soll, einer Karte hinzu.
    2. Wählen Sie das hinzugefügte Bild im Bereich Inhalt aus.
    3. Klicken Sie auf die Registerkarte Bilddaten.
    4. Klicken Sie auf Deep Learning Tools, und klicken Sie auf Objekte für Deep Learning beschriften.

      Der Bereich Bildklassifizierung wird mit einem leeren Schema angezeigt.

    5. Klicken Sie im Bereich Bildklassifizierung mit der rechten Maustaste auf Neues Schema, und klicken Sie auf Eigenschaften bearbeiten.

      Neues Schema bearbeiten

    6. Geben Sie einen Namen für das Schema an.

      Schemanamen bearbeiten

    7. Klicken Sie auf Speichern.
  2. Neue Klasse zum Schema hinzufügen.
    1. Klicken Sie mit der rechten Maustaste auf das Schema, das Sie erstellt haben, und wählen Sie Neue Klasse hinzufügen aus.
    2. Geben Sie einen Namen für die Klasse ein.

      Bereich "Neue Klasse hinzufügen"

    3. Geben Sie einen Wert für die Klasse ein.

      Der Wert darf nicht 0 sein.

    4. Wählen Sie optional eine Farbe für die Klasse aus.
    5. Klicken Sie auf OK.

      Die Klasse wird dem Schema im Bereich Bildklassifizierung hinzugefügt.

    6. Wiederholen Sie optional die Schritte 2a bis 2e, um weitere Klassen hinzuzufügen.
  3. Erstellen Sie Trainingsgebiete.
    1. Wählen Sie im Bereich Bildklassifizierung die Klasse aus, für die Sie ein Trainingsgebiet erstellen möchten.
    2. Wählen Sie ein Zeichenwerkzeug aus, wie z. B. Polygon.

      Werkzeug "Polygon"

    3. Zeichnen Sie ein Polygon um die Pixel, die die von Ihnen erstellte Klasse darstellen sollen.

      Beispielpolygone

      Der Gruppe Beschriftete Objekte im Bereich Bildklassifizierung wird ein neuer Datensatz hinzugefügt.

    4. Wiederholen Sie die Schritte 3a bis 3c, um für alle Klassen in dem Schema Trainingsgebiete zu erstellen.

      Trainingsgebiete

  4. Wenn Sie die Stichproben erstellt haben, klicken Sie im Bereich Bildklassifizierung auf Speichern.

    Schaltfläche "Speichern"

    1. Navigieren Sie im Fenster Aktuelles Trainingsgebiet speichern zu der Geodatabase.
    2. Geben Sie einen Namen für die Feature-Class ein, und klicken Sie auf Speichern.

    Bevor Sie das Modell trainieren können, müssen Sie die Trainingsgebiete als Bildschnipsel exportieren. Ein Bildschnipsel ist ein kleines Bild, das ein oder mehrere zu erkennende Objekte enthält. Für die Klassen in dem Schema wird für jedes Trainingsgebiet ein Bildschnipsel erstellt und beschriftet.

  5. Klicken Sie im Bereich Bildklassifizierung auf die Registerkarte Trainingsdaten exportieren.
    1. Geben Sie den Wert für den Ausgabeordner ein.

      Dies sind Pfad und Name des Ordners, in dem die ausgegebenen Bildschnipsel und Metadaten gespeichert werden.

    2. Wählen Sie optional den Wert Metadatenformat aus.

      Am besten eignet sich als Format für die Multiband-Raster-Eingabe die Option Klassifizierte Kacheln. Wenn die Eingabe ein multidimensionales Raster ist und Sie die Modellarchitektur PSETAE verwenden möchten, geben Sie die Option RCNN-Masken an.

    3. Klicken Sie auf Ausführen, um die Trainingsdaten zu exportieren.

Registerkarte "Trainingsdaten exportieren"

Deep-Learning-Modell trainieren

Das Werkzeug Deep-Learning-Modell trainieren verwendet die beschrifteten Bildschnipsel, um die Kombinationen von Pixeln in jedem Bild zu bestimmen, die das Objekt darstellen. Sie verwenden diese Trainingsgebiete, um ein Deep-Learning-Modell zu trainieren. Im Werkzeug sind nur die Parameter Eingabe-Trainingsdaten und Ausgabemodell erforderlich.

Wenn Sie die Trainingsdaten eingeben, wird basierend auf dem Wert Metadatenformat ein angemessener Wert für den Modelltyp bestimmt. Wenn Sie beispielsweise das Metadatenformat Klassifizierte Kacheln angeben, wird die Option U-Net für den Parameter Modelltyp angegeben. Die Dropdown-Liste Modelltyp wird auch mit den Modelltypen aktualisiert, die das Metadatenformat Klassifizierte Kacheln unterstützen.

Dropdown-Liste "Modelltyp"

Führen Sie zum Trainieren eines Deep-Learning-Modells die folgenden Schritte aus:

  1. Öffnen Sie das Werkzeug Deep-Learning-Modell trainieren.
  2. Navigieren Sie für den Parameter Eingabe-Trainingsdaten zu dem Trainingsdatenordner, in dem die Bildschnipsel gespeichert sind, und wählen Sie diesen aus.
  3. Geben Sie für den Parameter Ausgabemodell den Dateipfad und den Namen des Ordners an, in dem das Ausgabemodell nach dem Training gespeichert werden soll.
  4. Geben Sie optional einen Wert für den Parameter Max. Epochen an.

    Eine Epoche ist ein kompletter Durchlauf des Trainings-Datasets. Während jeder Epoche wird das im Ordner "imagechips" gespeicherte Training-Dataset einmal vorwärts und einmal rückwärts durch das neuronale Netz geschickt. Für die initiale Überprüfung werden in der Regel 20 bis 50 Epochen verwendet. Der Standardwert ist 20. Wenn das Modell weiter verbessert werden kann, können Sie es mit demselben Werkzeug erneut trainieren.

  5. Sie können den Parameterwert Modelltyp in der Dropdown-Liste ändern.

    Der Modelltyp bestimmt den Deep-Learning-Algorithmus und das neuronale Netzwerk, die zum Trainieren des Modells verwendet werden, wie z. B. die Modellarchitektur U-Net-Modell. Weitere Informationen zu Modellen finden Sie unter Deep-Learning-Modelle in ArcGIS Pro. Dokumentationsbeispiele, die unterstützten Metadaten und Informationen zur Modellarchitektur finden Sie unter Deep-Learning-Modellarchitekturen.

  6. Ändern Sie optional den Parameterwert Modellargumente.

    Der Parameter Modellargumente wird mit den Informationen aus der Modelldefinition befüllt. Diese Argumente sind unterschiedlich, je nachdem, welche Modellarchitektur angegeben wurde. Eine Liste der von dem Werkzeug unterstützten Modellargumente ist im Parameter Modellargumente verfügbar.

  7. Legen Sie optional den Parameterwert Batch-Größe fest.

    Dieser Parameter legt die Anzahl der Trainingsgebiete fest, die gleichzeitig trainiert werden. Der Wert für die Batch-Größe kann durch verschiedene Faktoren bestimmt werden, z. B. die Anzahl der Bildschnipsel, den GPU-Speicher (sofern eine GPU verwendet wird) und die Lernrate, wenn ein benutzerdefinierter Wert verwendet wird. In der Regel werden mit der standardmäßigen Batch-Größe gute Ergebnisse erzielt.

  8. Geben Sie optional den Parameterwert Lernrate an.

    Ist kein Wert angegeben, wird die optimale Lernrate während des Trainingsprozesses aus der Lernkurve extrahiert.

  9. Geben Sie optional den Parameterwert Backbone-Modell an.

    Der Standardwert basiert auf der Modellarchitektur. Sie können das standardmäßige Backbone-Modell in der Dropdown-Liste ändern.

  10. Geben Sie optional den Parameterwert Vortrainiertes Modell an.

    Für ein vortrainiertes Modell mit ähnlichen Klassen kann ein Finetuning durchgeführt werden, um es auf das neue Modell abzustimmen. Das vortrainierte Modell muss mit dem gleichen Modelltyp und dem gleichen Backbone-Modell trainiert worden sein, das für das Training des neuen Modells verwendet wird.

  11. Ändern Sie optional den Parameterwert Prozentsatz für Validierung.

    Dies ist der Prozentsatz der Trainingsgebiete, der zum Überprüfen des Modells verwendet werden soll. Dieser Wert ist abhängig von unterschiedlichen Faktoren, beispielsweise von der Anzahl der Trainingsgebiete und der Modellarchitektur. Im Allgemeinen ist bei einer kleinen Trainingsdatenmenge eine Validierung von 10 bis 20 Prozent angemessen. Bei einer großen Menge an Trainingsdaten, z. B. bei mehreren Tausend Trainingsgebieten, ist ein geringerer Prozentsatz von 2 bis 5 Prozent der Daten geeignet. Der Standardwert ist 10.

  12. Aktivieren Sie optional den Parameter Beenden, wenn sich das Modell nicht mehr verbessert.

    Wenn diese Option aktiviert ist, wird das Modelltraining beendet, wenn sich das Modell nicht mehr verbessert, und zwar unabhängig vom angegebenen Wert für Max. Epochen. Diese Option ist standardmäßig aktiviert.

  13. Aktivieren Sie optional den Parameter Modell fixieren.

    Dieser Parameter gibt an, ob die Backbone-Layer im vorab trainierten Modell fixiert werden sollen, sodass die Gewichtungen und Verzerrungen wie ursprünglich vorgesehen beibehalten werden. Wenn Sie diesen Parameter aktivieren, werden die Backbone-Layer fixiert, und die vordefinierten Gewichtungen und Verzerrungen werden im Parameter Backbone-Modell nicht geändert. Bei Deaktivierung dieser Option werden die Backbone-Layer nicht fixiert, und die Gewichtungen und Verzerrungen des Parameterwertes Backbone-Modell können geändert werden, um sie an die Trainingsgebiete anzupassen. Die Verarbeitung dauert zwar länger, führt aber in der Regel zu besseren Ergebnissen. Diese Option ist standardmäßig aktiviert.

  14. Klicken Sie auf Ausführen, um das Training zu starten.

Werkzeug "Deep-Learning-Modell trainieren"

Inferenzierung durchführen

Mithilfe des resultierenden Deep-Learning-Modells führen Sie die Pixelklassifizierung an einem Bild durch. Inferenzierung ist der Prozess, bei dem Informationen, die während des Deep-Learning-Trainingsprozesses erlernt wurden, zur Klassifizierung ähnlicher Pixel in dem Bild verwendet werden. Verwenden Sie das Werkzeug Pixel mit Deep Learning klassifizieren, da Sie einen Objektklassifizierungs-Workflow durchführen.

  1. Öffnen Sie das Werkzeug Pixel mit Deep Learning klassifizieren.
  2. Navigieren Sie für den Parameter Eingabe-Raster zu den Eingabe-Raster-Daten, die Sie klassifizieren möchten, und wählen Sie sie aus.

    Bei der Eingabe kann es sich um ein einzelnes Raster-Dataset, mehrere Raster in einem Mosaik-Dataset, einen Image-Service, einen Bildordner oder eine Feature-Class mit Bildanlagen handeln.

  3. Geben Sie für den Parameter Ausgabe-Raster-Dataset einen Namen für das Ausgabe-Dataset an.

    Das Ausgabe-Dataset enthält alle gültigen Pixel, denen in dem Eingabebild eine Klassenbeschriftung zugewiesen ist.

  4. Geben Sie den Wert für die Modelldefinition an (*.emd oder *.dlpk).

    Dies ist die Modelldatei, die die Ausgabe des Trainings enthält. Dies ist die Ausgabe des Abschnitts zum Trainieren von Deep Learning.

  5. Übernehmen Sie für den Parameter Argumente die Standardwerte oder ändern Sie sie.

    Der Parameter Argumente wird mit den Informationen aus dem Parameter Modelldefinition befüllt. Diese Argumente sind unterschiedlich, je nachdem, welche Modellarchitektur angegeben wurde. In diesem Beispiel wird die Modellarchitektur U-Net verwendet, sodass die folgenden Argumente befüllt werden.

    1. padding: Die Anzahl von Pixeln am Rahmen von Bildkacheln, aus denen Vorhersagen für benachbarte Kacheln verschmolzen werden. Erhöhen Sie den Wert, um die Ausgabe zu glätten. Dadurch werden Artefakte reduziert. Der Maximalwert für Padding ist die Hälfte des Wertes für die Kachelgröße.
    2. batch_size: Die Anzahl der in den einzelnen Schritten der Modellinferenz verarbeiteten Bildkacheln. Dieser Wert hängt von der Speichergröße der Grafikkarte ab.
    3. predict_background: Gibt an, ob der Hintergrund klassifiziert wird. Wenn "true" festlegt ist, wird auch die Hintergrundklasse klassifiziert.
    4. test_time_augmentation: Beim Erstellen von Vorhersagen wird Test-Time Augmentation durchgeführt. Wenn "true" festgelegt ist, werden die Vorhersagen für gekippte und gedrehte Varianten des Eingabebildes in der endgültigen Ausgabe zusammengeführt.
  6. Klicken Sie zum Starten der Inferenzierung auf Ausführen.

    Werkzeug "Pixel mit Deep Learning klassifizieren"

Das resultierende klassifizierte Raster sehen Sie unten.

Ergebnis der Pixelklassifizierung

Verwandte Themen