Objekte mit einem vortrainierten Deep-Learning-Modell erkennen
Das Projekt einrichten und die Daten erkunden
Zunächst laden Sie das Projekt herunter, das alle Daten für dieses Lernprogramm enthält, und öffnen es in ArcGIS Pro.
- Laden Sie das Paket Palm_Tree_Detection herunter.
Die Datei mit dem Namen Palm_Tree_Detection.ppkx wird auf den Computer heruntergeladen.
Hinweis:
Eine .ppkx-Datei ist ein ArcGIS Pro-Projektpaket und kann Karten, Daten und weitere Dateien, die Sie in ArcGIS Pro öffnen können, enthalten. Weitere Informationen zum Verwalten von .ppkx-Dateien erhalten Sie in einer Anleitung zu ArcGIS Pro-Projektpaketen (PPKX-Dateien).
- Suchen Sie die heruntergeladene Datei auf Ihrem Computer. Doppelklicken Sie auf Palm_Tree_Detection.ppkx, um das Projekt in ArcGIS Pro zu öffnen. Wenn Sie dazu aufgefordert werden, melden Sie sich mit Ihrem ArcGIS-Konto an.
Hinweis:
Wenn Sie über keinen Zugriff auf ArcGIS Pro oder über kein ArcGIS-Organisationskonto verfügen, informieren Sie sich über die Optionen für den Zugriff auf die Software.
Eine auf das Dorf Kolovai auf der Insel Tonga von Tongatapu zentrierte Karte wird angezeigt. Auf der topografischen Grundkarte wird ein Bild-Layer angezeigt.
- Vergrößern Sie die Ansicht, und schwenken Sie, um die Bilddaten zu untersuchen.
Schauen Sie sich die zahllosen Palmen in der gesamten Landschaft an.
Die Bilddaten wurden durch eine Drohne erfasst und orthorektifiziert, um die Verzerrungen zu entfernen. Es handelt sich um hochauflösende Bilder (jedes Pixel entspricht einer Fläche von 9 mal 9 Zentimetern auf dem Boden), die Palmen und weitere Features recht deutlich zeigen. Sie liegen im TIFF-Format mit den drei Bändern Rot, Grün und Blau vor, wodurch ein Bild in natürlichen Farben entsteht.
Wollte man alle Palmen in diesem Bild manuell identifizieren, dann wäre dies eine sehr zeitaufwendige Aufgabe. Stattdessen sollten Sie Deep Learning verwenden, um sie automatisch zu erkennen.
Palmen mit einem vortrainierten Deep-Learning-Modell erkennen
Sie möchten Deep Learning verwenden, um Palmen in den Bilddaten zu erkennen. Wenn Ihnen kein Deep-Learning-Modell zur Verfügung steht, müssen Sie zunächst ein Modell von Grund auf trainieren und ihm zahlreiche Beispiele bereitstellen, um ihm zu zeigen, was eine Palme ist. Leistungsfähige Modelle müssen möglicherweise mit Zehntausenden von Beispielen trainiert werden. Alternativ können Sie ein bereits trainiertes Modell verwenden. Ein solches Modell werden Sie abrufen und auf Ihre Bilddaten anwenden.
Hinweis:
Die Verwendung der Deep-Learning-Werkzeuge in ArcGIS Pro setzt voraus, dass Sie die richtigen Deep-Learning-Bibliotheken auf Ihrem Computer installiert haben. Falls Sie diese Dateien nicht installiert haben, speichern Sie Ihr Projekt, schließen Sie ArcGIS Pro, und führen Sie die unter Auf Deep Learning in ArcGIS Pro vorbereiten beschriebenen Schritte aus. In diesen Anweisungen erfahren Sie neben weiteren nützlichen Tipps, wie Sie überprüfen können, ob Ihr Computer die Hardware- und Softwareanforderungen zum Ausführen von Deep-Learning-Workflows erfüllt. Anschließend können Sie Ihr Projekt erneut öffnen und mit dem Lernprogramm fortfahren.
Öffnen Sie zuerst das Werkzeug Objekte mit Deep Learning erkennen.
- Klicken Sie auf dem Menüband auf der Registerkarte Ansicht in der Gruppe Fenster auf Geoverarbeitung.
- Geben Sie im Bereich Geoverarbeitung im Suchfeld den Text Objekte mit Deep Learning erkennen ein. Klicken Sie in der Liste der Ergebnisse auf das Werkzeug Objekte mit Deep Learning erkennen, um es zu öffnen.
- Legen Sie die folgenden Parameterwerte für Objekte mit Deep Learning erkennen fest:
- Wählen Sie für Eingabe-Raster die Option Kolovai_imagery.tif aus.
- Geben Sie für Ausgabe der erkannten Objekte den Text Detected_Palm_Trees ein.
- Klicken Sie für Modelldefinition auf die Schaltfläche Durchsuchen.
Jetzt können Sie das vortrainierte Modell "Palm Tree Detection" aus dem ArcGIS Living Atlas of the World abrufen.
Hinweis:
ArcGIS Living Atlas of the World ist die Sammlung verlässlicher GIS-Daten von Esri. Sie enthält eine wachsende Bibliothek mit über 50 vortrainierten Deep-Learning-Modellen zum Erkennen verschiedener Objekte von Gebäuden über Schiffen bis hin zu den Grenzen der Felder in der Landwirtschaft.
- Klicken Sie im Fenster Modelldefinition unter Portal auf Living Atlas. Geben Sie im Suchfeld den Text Palm Tree Detection ein. Wählen Sie Palm Tree Detection aus, und klicken Sie auf OK.
Hinweis:
Sie können mehr über das Modell "Palm Tree Detection" erfahren, indem Sie es auf der ArcGIS Living Atlas-Site abrufen. Sie erfahren zum Beispiel, dass dieses Modell zum Erkennen von Palmen in hochauflösenden Bilddaten (5 bis 15 Zentimeter), wie zum Beispiel Drohnenbilddaten, vorgesehen ist. Diese Bilddaten sollten die Bänder Rot, Grün und Blau (RGB) enthalten. Für Ihre Bilddaten ist dieses Modell gut geeignet.
Nachdem Sie das Deep-Learning-Modell ausgewählt haben, werden die Modellargumente automatisch geladen.
- Lassen Sie unter Argumente alle Standardwerte unverändert.
Zwei Argumente sind von besonderem Interesse:
- Threshold: Ein Schwellenwert von 0,5 bedeutet, dass ein erkanntes Objekt nur dann zum Ausgabe-Dataset hinzugefügt wird, wenn das Modell mit einer Konfidenz von mindestens 50 Prozent vermutet, dass das Objekt tatsächlich eine Palme ist. Der optimale Schwellenwert lässt sich nur durch Ausprobieren ermitteln.
- Batch_size: Die Deep-Learning-Objekterkennung kann nicht in einem Durchlauf am gesamten Bild durchgeführt werden. Das Werkzeug schneidet das Bild stattdessen in kleine Stücke, die als Bildschnipsel bezeichnet werden. Eine Batch-Größe von 4 bedeutet, dass das Werkzeug vier Bildschnipsel auf einmal verarbeitet. Wenn bei der Ausführung des Werkzeugs eine Fehlermeldung zu nicht ausreichendem Speicher angezeigt wird, verfügt der Computer möglicherweise nicht über genug Speicher für diese Verarbeitungsebene. In diesem Fall sollten Sie den Wert des Argumentes batch_size für die Batch-Größe von 4 auf 2 oder sogar 1 verringern. Das Verringern dieses Wertes wirkt sich nicht auf die Qualität des Modells, sondern nur auf die Effizienz des Erkennungsprozesses aus.
Hier sollten Sie die Standardwerte für diese Argumente unverändert lassen.
Manchmal erkennt das Modell ein Objekt mehr als einmal. Non Maximum Suppression (NMS) ist ein optionaler Prozess, der einige der erkannten Objekte unterdrückt, wenn sie als Duplikate identifiziert wurden. Das Objekt, das mit der höchsten Konfidenz erkannt wurde, bleibt erhalten, und die anderen Objekte werden entfernt. In der folgenden Beispielabbildung wurde die Palme zweimal erkannt. Mit NMS bleibt nur ein erkanntes Objekt erhalten.
- Aktivieren Sie das Kontrollkästchen neben Non Maximum Suppression.
- Geben Sie für Max. Überlappungsrate den Wert 0,5 ein.
- Der Parameter Max. Überlappungsrate bestimmt, wie groß die Überlappung zwischen zwei erkannten Objekten sein muss, damit sie als Duplikate betrachtet werden und für die Anwendung von NMS infrage kommen. Ein Wert von 0,5 bedeutet, dass die Überlappung mindestens 50 Prozent groß sein muss. Da in der folgenden Beispielabbildung die Überlappung zwischen den zwei erkannten Objekten kleiner als 50 Prozent ist, stellen sie nicht dasselbe Objekt dar, und NMS wird nicht angewendet.
- Der Parameter Max. Überlappungsrate bestimmt, wie groß die Überlappung zwischen zwei erkannten Objekten sein muss, damit sie als Duplikate betrachtet werden und für die Anwendung von NMS infrage kommen. Ein Wert von 0,5 bedeutet, dass die Überlappung mindestens 50 Prozent groß sein muss. Da in der folgenden Beispielabbildung die Überlappung zwischen den zwei erkannten Objekten kleiner als 50 Prozent ist, stellen sie nicht dasselbe Objekt dar, und NMS wird nicht angewendet.
- Klicken Sie auf die Registerkarte Umgebung.
- Wählen Sie für Prozessortyp die Option GPU aus.
Hinweis:
In diesem Lernprogramm wird davon ausgegangen, dass der Computer über die empfohlenen GPU-Funktionen verfügt. Wenn Sie keine GPU haben, können Sie den Prozess mit der CPU ausführen. Die Verarbeitung der Daten dauert dann jedoch länger. Wählen Sie in diesem Fall die Option "CPU" aus.
Jetzt könnten Sie das Werkzeug ohne weitere Änderungen ausführen: Es würde Palmen im gesamten Bild Kolovai_imagery.tif erkennen. Dies könnte je nach Spezifikation des Computers 20 Minuten bis eine Stunde in Anspruch nehmen. Damit dieses Lernprogramm nicht zu lang wird, erkennen Sie nur Palmen in einem kleinen Teil des Eingabebildes.
- Klicken Sie auf dem Menüband auf der Registerkarte Karte in der Gruppe Navigieren auf Lesezeichen, und wählen Sie Detection area aus.
Die Karte wird auf einen kleineren Bereich von Kolovai gezoomt.
- Klicken Sie im Bereich Geoverarbeitung auf der Registerkarte Umgebungen unter Verarbeitungsausdehnung auf die Schaltfläche Aktuelle Anzeigeausdehnung.
Die Koordinaten Oben, Links, Rechts und Unten werden so aktualisiert, dass sie der aktuellen Ausdehnung auf der Karte entsprechen.
- Übernehmen Sie alle anderen Standardwerte, und klicken Sie auf Ausführen.
Sie können den Fortschritt unter der Schaltfläche Ausführen beobachten, und über Details anzeigen weitere Informationen aufrufen.
Nach ein paar Minuten wird der Ergebnis-Layer Detected_Palm_Trees im Bereich Inhalt und auf der Karte angezeigt. Dies ist ein Feature-Layer, in dem jedes Polygon eine Palme darstellt.
Tipp:
Wenn eine Fehlermeldung zu nicht ausreichendem Speicher angezeigt wird, dann sollten Sie den Wert des Argumentes batch_size für die Batch-Größe von 4 auf 2 oder sogar 1 verringern und den Prozess erneut ausführen.
Sie haben mit einem vortrainierten Deep-Learning-Modell erfolgreich Palmen in einem Bereich von Kolovai erkannt.
Hinweis:
Die Farbe wird nach dem Zufallsprinzip zugewiesen und kann daher variieren.
Dem Ergebnis-Layer einen Style zuweisen und ihn überprüfen
Sie sollten den Style des Layers Detected_Palm_Trees ändern und ihn überprüfen.
- Klicken Sie im Bereich Inhalt auf das Symbol Detected_Palm_Trees, um den Bereich Symbolisierung anzuzeigen.
- Klicken Sie ggf. im Bereich Symbolisierung auf die Registerkarte Eigenschaften.
- Legen Sie unter Darstellung die folgenden Parameter fest:
- Wählen Sie als Farbe die Einstellung Keine Farbe aus.
- Wählen Sie für Umrissfarbe ein helles Gelb wie beispielsweise Sonnengelb aus.
- Wählen Sie für Umrissbreite den Wert 2 Pkt aus.
- Klicken Sie auf Übernehmen.
Der Layer wird mit der neuen Symbolisierung dargestellt.
- Vergrößern Sie die Ansicht der Karte, und sehen Sie sich den Layer Detected_Palm_Trees genauer an.
Sie können feststellen, dass das Modell die meisten Palmen erfolgreich erkannt hat und dass es nur sehr wenige falsch-positive Ergebnisse gibt. Dies sind die Stellen, an denen das Modell irrtümlicherweise eine Palme gefunden hat, die es dort nicht gibt.
- Sie können das Werkzeug Objekte mit Deep Learning erkennen auch noch einmal bei einer anderen Ausdehnung Ihrer Wahl oder am gesamten Bild ausführen. Zoomen und schwenken Sie dazu die Karte auf die neue Ausdehnung auf der Karte, und klicken Sie auf Aktuelle Anzeigeausdehnung auf der Registerkarte Umgebungen. Klicken Sie dann auf Ausführen.
Hinweis:
Die Ausführung des Werkzeugs am gesamten Bild nimmt in Abhängigkeit von den technischen Daten des Computers mindestens 40 Minuten in Anspruch.
Als Alternative wurde eine Karte, die den Ergebnis-Layer für die gesamte Ausdehnung zeigt, in Ihr Projekt eingefügt. Um sie anzuzeigen, navigieren Sie zum Bereich Katalog, erweitern Karten, klicken mit der rechten Maustaste auf Map_results und wählen Öffnen aus.
Im gesamten Bild wurden mehr als 12.500 Palmen erkannt.
- Sie können gern noch etwas experimentieren, indem Sie einige der Argumente und Parameter, wie zum Beispiel Schwellenwert und Max. Überlappungsrate ändern.
- Klicken Sie auf der Symbolleiste für den Schnellzugriff auf die Schaltfläche Speichern, um das Projekt zu speichern.
Ein vortrainiertes Modell auf Ihre Bilddaten anwenden
Um ein vortrainiertes Deep-Learning-Modell auf Ihre eigenen Daten anzuwenden, können Sie zuerst den Workflow verwenden, den Sie in diesem Lernprogramm kennengelernt haben. Dies ist die einfachste Methode, mit der Sie möglicherweise sehr schnell Ergebnisse hoher Qualität erhalten.
Es könnte natürlich auch sein, dass Sie mit Ihren ersten Ergebnissen nicht ganz zufrieden sind. In diesem Fall können als Nächstes mehrere verschiedene Methoden verwendet werden. Die wichtigsten Möglichkeiten, die Sie haben, sind:
- Modifizieren Sie Ihre Bilddaten, um sicherzustellen, dass sie den Erwartungen des vortrainierten Modells besser entsprechen (wenn zum Beispiel das Modell an RGB-Bilddaten trainiert wurde, dann sollten Ihre Bilddaten im Gegensatz zu Infrarot oder anderen Spektralbändern nur die Bänder Rot, Grün und Blau enthalten).
- Trainieren Sie das Deep-Learning-Modell an Beispielen aus Ihren eigenen Daten weiter.
Weitere Informationen zu diesen leistungsstarken Ansätzen finden Sie im Lernprogramm Ein Deep-Learning-Modell mit Transfer Learning verbessern.
In diesem Lernprogramm haben Sie das Deep Learning mit einem vortrainierten Modell aus ArcGIS Living Atlas zum Erkennen von Palmen in einem Bild verwendet. Der resultierende Feature-Layer kann verwendet werden, um die Anzahl der Palmen in der gesamten Region zu schätzen, um die landwirtschaftlichen Methoden zu überwachen oder um die zu erwartende Produktion zu bewerten.
Weitere Lernprogramme finden Sie in der Lernprogrammgalerie.