Mit der Image Analyst-Lizenz verfügbar.
Nach der Veränderung zwischen zwei Bildern aus zwei Zeiträumen können Sie mit dem Werkzeug Veränderung mit Deep Learning erkennen suchen. Das Werkzeug erstellt ein klassifiziertes Raster, das die Veränderungen zeigt. Das Bild unten zeigt drei Bilder: ein Bild aus Zeitraum eins, ein Bild aus Zeitraum zwei und die Veränderung zwischen ihnen.
Ein typischer Workflow zur Veränderungserkennung mit Deep-Learning besteht aus drei Hauptschritten:
- 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.
- 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.
- Führen Sie die Inferenzierung durch. Verwenden Sie das Werkzeug Veränderung mit Deep Learning erkennen. 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.
- Erstellen Sie ein Trainingsschema. Dieses Schema dient als Legende, sodass es alle Klassen in dem Deep-Learning-Workflow umfassen muss.
- Fügen Sie das Bild, das zum Generieren der Trainingsgebiete verwendet werden soll, einer Karte hinzu.
- Wählen Sie das hinzugefügte Bild im Bereich Inhalt aus.
- Klicken Sie auf die Registerkarte Bilddaten.
- 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.
- Klicken Sie im Bereich Bildklassifizierung mit der rechten Maustaste auf Neues Schema, und klicken Sie auf Eigenschaften bearbeiten.
- Geben Sie in das Textfeld Name einen Namen für das Schema ein.
- Klicken Sie auf Speichern.
- Neue Klasse zum Schema hinzufügen.
- Klicken Sie mit der rechten Maustaste auf das Schema, das Sie erstellt haben, und wählen Sie Neue Klasse hinzufügen aus.
- Geben Sie einen Namen für die Klasse in das Textfeld Name ein.
- Geben Sie einen Wert für die Klasse ein.
Der Wert darf nicht 0 sein.
- Wählen Sie optional eine Farbe für die Klasse aus.
- Klicken Sie auf OK.
Die Klasse wird dem Schema im Bereich Bildklassifizierung hinzugefügt.
- Wiederholen Sie optional die Schritte 2a bis 2e, um weitere Klassen hinzuzufügen.
- Erstellen Sie Trainingsgebiete.
Diese Trainingsgebiete zeigen die Änderungsflächen zwischen den beiden Bildern, mit denen Sie das Deep-Learning-Modell trainieren können.
- Wählen Sie im Bereich Bildklassifizierung die Klasse aus, für die Sie ein Trainingsgebiet erstellen möchten.
- Wählen Sie ein Zeichenwerkzeug aus, wie z. B. Polygon.
- Zeichnen Sie ein Polygon um die Pixel, die die von Ihnen erstellte Klasse darstellen sollen.
Die Polygone können sich überlappen; wenn Sie sich bei einem Objekt jedoch nicht sicher sind, beziehen Sie es nicht in die Trainingsgebiete ein. In der Gruppe Beschriftete Objekte des Bereichs Bildklassifizierung wird ein neuer Palmendatensatz hinzugefügt.
- Wiederholen Sie die Schritte 3a bis 3c, um für jede Klassen in dem Schema Trainingsgebiete zu erstellen.
Es wird empfohlen, eine statistisch signifikante Anzahl von Trainingsgebieten zu erfassen, um jede Klasse in dem Schema darzustellen.
- Wenn Sie die Trainingsgebiete erstellt haben, klicken Sie im Bereich Bildklassifizierung auf Speichern.
- Navigieren Sie im Fenster Aktuelles Trainingsgebiet speichern zu der Geodatabase.
- Geben Sie einen Namen für die Feature-Class ein, und klicken Sie auf Speichern.
- Schließen Sie den Bereich Bildklassifizierung.
- Öffnen Sie das Werkzeug Trainingsdaten für Deep Learning exportieren, damit Sie die Trainingsgebiete als Bildschnipsel exportieren können.
Ein Bildschnipsel ist ein kleines Bild, das ein oder mehrere zu erkennende Objekte enthält. Die Bildschnipsel werden zum Trainieren des Deep-Learning-Modells verwendet.
- Geben Sie den Wert Eingabe-Raster an.
Im Allgemeinen ist dies das früheste Bild vor etwaigen Veränderungen.
- Geben Sie den Wert Zusätzliches Eingabe-Raster an.
Im Allgemeinen ist dies das letzte Bild nach den Änderungen.
- Geben Sie den Wert Eingabe-Feature-Class oder Klassifiziertes Eingabe-Raster oder Eingabetabelle an.
Dies ist die Datei mit den Trainingsgebieten der beschrifteten Objekte, die Sie erstellt haben.
- Geben Sie den Wert Klassenwertefeld an.
Dies ist die für die Änderungen angegebene Label-Feature-Class. Die Feature-Class enthält ein Feld mit dem Namen ClassValue, den Sie verwenden können.
- 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.
- Optional können Sie einen Wert für den Parameter Metadatenformat angeben.
Am besten eignet sich zur Erkennung der Veränderung das Metadatenformat Klassifizierte Kacheln.
- Klicken Sie auf Ausführen, um die Trainingsdaten zu exportieren.
- Geben Sie den Wert Eingabe-Raster an.
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.
Da die Eingabe-Trainingsdaten auf dem Wert Metadatenformat basieren, wird standardmäßig ein angemessener Wert für den Modelltyp zugewiesen. Das Werkzeug aktualisiert auch die Dropdown-Liste Modelltyp mit den entsprechenden Modelltypen, die das angegebene Metadatenformat unterstützen. Die Parameter Batch-Größe, Modellargumente und Backbone-Modell werden basierend auf dem Wert Modelltyp befüllt. Anschließend wird mit dem Ausgabemodell die Veränderung zwischen den beiden Bildern inferenziert.
- Öffnen Sie das Werkzeug Deep-Learning-Modell trainieren.
- Navigieren Sie für den Parameter Eingabe-Trainingsdaten zu dem Trainingsdatenordner, in dem die Bildschnipsel gespeichert sind, und wählen Sie diesen aus.
- 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.
- 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.
- Sie können auch den Wert 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 Architektur Change Detector. 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.
- Ä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.
- 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.
- Geben Sie optional den Parameterwert Lernrate an.
Ist kein Wert angegeben, wird die optimale Lernrate während des Trainingsprozesses aus der Lernkurve extrahiert.
- 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.
- 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.
- Ä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.
- 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.
- 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.
- Klicken Sie auf Ausführen, um das Training zu starten.
Inferenzierung durchführen
Inferenzierung ist der Prozess, bei dem Informationen, die während des Deep-Learning-Trainingsprozesses erlernt wurden, zur Klassifizierung ähnlicher Pixel und Objekte in dem Bild verwendet werden. Mit dem resultierenden Deep-Learning-Modell führen Sie die Erkennung von Veränderungen zwischen zwei Raster-Bildern durch. Verwenden Sie das Werkzeug Veränderung mit Deep Learning erkennen, da Sie einen Veränderungserkennungs-Workflow durchführen.
- Öffnen Sie das Werkzeug Veränderung mit Deep Learning erkennen.
- Navigieren Sie für den Parameter Von-Raster zu dem Bild aus Zeitraum eins, dem Referenzbild, und geben Sie es an.
- Navigieren Sie für den Parameter In-Raster zu dem Bild aus Zeitraum zwei, dem aktuelleren Bild, und geben Sie es an.
- Geben Sie für den Parameter Klassifiziertes Ausgabe-Raster den Namen für das Ausgabe-Raster ein.
Das klassifizierte Ausgabe-Raster enthält Pixelwerte von 0 und 1, wobei 0 für keine Veränderung und 1 für Veränderung steht.
Der Parameter Argumente wird mit den Informationen aus dem Wert Modelldefinition befüllt. Diese Argumente sind je nach Modellarchitektur unterschiedlich. In diesem Beispiel wird die Modellarchitektur Change Detector verwendet, sodass die Argumente padding und batch_size befüllt werden.
- Übernehmen Sie die Standardwerte für den Parameter Argumente oder bearbeiten Sie sie.
- 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.
- batch_size: Die Anzahl der in den einzelnen Schritten der Modellinferenz verarbeiteten Bildkacheln. Dieser Wert hängt von der Speichergröße der Grafikkarte ab.
- Klicken Sie zum Starten der Inferenzierung auf Ausführen.