Erkennen von Objekten

Mit der Image Analyst-Lizenz verfügbar.

Um Objekte in Eingabebilddaten zu erkennen, verwenden Sie das Werkzeug Objekte mit Deep Larning erkennen, das umgebende Rechtecke um Objekte oder Features in einem Bild generiert, um ihre Position zu identifizieren. Das folgende Bild ist ein Beispiel, in dem Palmen mithilfe von Deep-Learning-Werkzeugen erkannt werden.

Palmen ermitteln

Ein typischer Workflow zur Objekterkennung 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. Inferenzierung durchführen: Verwenden Sie das Werkzeug Objekte mit Deep Learning erkennen. Verwenden Sie das Modell, das Sie in Schritt 2 erstellt haben.

Es wird empfohlen, eine Analyse zur Qualitätskontrolle durchzuführen und die Ergebnisse zu überprüfen, wenn der Objekterkennungs-Workflow abgeschlossen ist. Wenn Sie mit den Ergebnissen nicht zufrieden sind, können Sie das Modell verbessern, indem Sie weitere Trainingsgebiete hinzufügen und den Workflow erneut durchführen. Verwenden Sie zur Unterstützung bei der Überprüfung der Ergebnisse den Bereich Attribute. Verwenden Sie zur Unterstützung bei der Validierung der Genauigkeit der Ergebnisse das Werkzeug Genauigkeit für die Objekterkennung berechnen.

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.

    Das Schema wird im Bereich Bildklassifizierung umbenannt, und Sie können Klassen hinzufügen.

  2. Neue Klasse zum Schema hinzufügen.
    1. Klicken Sie mit der rechten Maustaste auf das Schema, das Sie erstellt haben, und klicken Sie auf Neue Klasse hinzufügen.

      Option "Neue Klasse hinzufügen"

    2. Geben Sie einen Namen für die Klasse ein.

      Name der neuen Klasse

    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 ein Zeichenwerkzeug aus, z. B. den Kreis, und zeichnen Sie eine Grenze um ein Objekt.

      Werkzeug "Kreis"

      Beispiel: Palme
      Dieses Palmen-Trainingsgebiet wurde mit dem Werkzeug Kreis erstellt.

      Wenn Sie sich bei einem Objekt nicht sicher sind, beziehen Sie es nicht ein. Grenzen dürfen sich überlappen.

    2. Verwenden Sie die Zeichenwerkzeuge, um weitere Features auszuwählen.

      Da im endgültigen Modell die Größe der von Ihnen identifizierten Objekte berücksichtigt wird, können Sie Objekte verschiedener Größen auswählen.

      Trainingsgebiete
      Diese Trainingsgebiete wurden in verschiedenen Flächen erstellt und weisen unterschiedliche Größen auf, um eine Reihe unterschiedlicher Gebiete zu zeigen.

  4. Wenn Sie die Trainingsgebiete 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.

  5. Klicken Sie im Bereich Bildklassifizierung auf die Registerkarte Trainingsdaten exportieren, und gehen Sie folgendermaßen vor:
    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. Geben Sie optional den Wert für Maskenpolygon an.

      Dabei handelt es sich um eine Polygon-Feature-Class zur Abgrenzung der Fläche, in der Bildschnipsel erstellt werden können. Es werden nur Bildschnipsel erstellt, die vollständig innerhalb des Polygons liegen.

    3. Wählen Sie optional den Wert Bildformat für die Schnipsel aus.

      Folgende Formate werden unterstützt: TIFF, PNG, JPEG und MRF.

    4. Geben Sie optional Werte für Kachelgröße X und Kachelgröße Y an.

      Dabei handelt es sich um die X- und die Y-Dimension der Bildschnipsel. In der Regel werden mit den Standardwerten gute Ergebnisse erzielt. Im Allgemeinen wird für beide Dimensionen dieselbe Größe festgelegt.

    5. Geben Sie optional Werte für Schritt X und Schritt Y an.

      Dies ist die Entfernung für die Verschiebung in X- und Y-Richtung bei Erstellung des nächsten Bildschnipsels. Wenn der Schritt der Kachelgröße entspricht, gibt es keine Überlappung. Wenn der Schritt der halben Kachelgröße entspricht, gibt es eine Überlappung von 50 Prozent.

    6. Geben Sie optional einen Wert für den Rotationswinkel an.

      Der Bildschnipsel wird um den angegebenen Winkel gedreht, um weitere Bildschnipsel zu erstellen. Für jeden Winkel wird ein weiterer Bildschnipsel erstellt, bis der Bildschnipsel vollständig gedreht wurde. Wenn Sie beispielsweise einen Rotationswinkel von 45 Grad festlegen, werden acht Bildschnipsel erstellt. Diese Bildschnipsel werden für die folgenden Winkel erstellt: 45, 90, 135, 180, 225, 270 und 315 Grad.

    7. Wählen Sie optional den Wert für das Bezugssystem aus.

      Dabei handelt es sich um das Bezugssystem, mit dem das Eingabebild interpretiert wird. Die verfügbaren Optionen lauten Kartenraum und Pixelraum. Bei "Kartenraum" wird ein kartenbasiertes Koordinatensystem verwendet. Dies ist die Standardeinstellung, wenn für das Eingabe-Raster ein Raumbezug definiert ist. Bei "Pixelraum" wird ein Bildraum-Koordinatensystem ohne Drehung oder Verzerrung verwendet. Die Option Pixelraum wird empfohlen, wenn es sich bei den Eingabe-Bilddaten um ausgerichtete oder Schrägluft-Bilddaten handelt. Das angegebene Bezugssystem muss mit dem Bezugssystem übereinstimmen, das für das Training des Deep-Learning-Modells verwendet wurde.

    8. Optional können Sie das Kontrollkästchen NoFeature-Kacheln ausgeben aktivieren.

      Wenn diese Option aktiviert ist, werden alle Bildschnipsel einschließlich solcher, die keine Trainingsgebiete erfassen, exportiert. Wenn diese Option deaktiviert ist, werden nur Bildschnipsel, die Trainingsgebiete erfassen, exportiert. Diese Option ist standardmäßig deaktiviert.

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

      Für die Objekterkennung werden die Metadatenformate beschriftete Kacheln, Pascal Visual Object Classes und RCNN-Masken unterstützt.

    10. 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.

Da die Eingabe-Trainingsdaten auf dem Wert Metadatenformat basieren, wird standardmäßig ein angemessener Wert für den Modelltyp zugewiesen. Wenn Sie beispielsweise im Exportprozess das Metadatenformat Pascal Visual Objects Classes angegeben haben, lautet der Wert für den Modelltyp Single Shot Detector. Die Dropdown-Liste Modelltyp wird außerdem mit den Modelltypen aktualisiert, die das Metadatenformat "Pascal Visual Objects Classes" unterstützen. Die Parameter Batch-Größe, Modellargumente und Backbone-Modell werden basierend auf dem Wert Modelltyp befüllt.

  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, z. B. die Option Single Shot Detector (SSD). 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.

Das folgende Bild zeigt den Bereich Deep-Learning-Modell trainieren mit Single Shot Detector (Objekterkennung) als Modelltyp.

Parameter des Werkzeugs "Deep-Learning-Modell trainieren"

Inferenzierung durchführen

Verwenden Sie zum Inferenzieren das resultierende Deep-Learning-Modell, um neue Daten zu analysieren. Inferenzierung ist der Prozess, bei dem Informationen, die während des Deep-Learning-Trainingsprozesses erlernt wurden, zur Erkennung ähnlicher Features in den Datasets verwendet werden. Sie verwenden das Werkzeug Objekte mit Deep Learning erkennen, da Sie einen Objekterkennungs-Workflow durchführen.

  1. Öffnen Sie das Werkzeug Objekte mit Deep Learning erkennen.
  2. Navigieren Sie für das Eingabe-Raster zu den Eingabe-Raster-Daten, in denen Sie nach Objekten suchen 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 unter Ausgabe der erkannten Objekte den Namen der Ausgabe-Feature-Class ein.

    Diese Ausgabe-Feature-Class enthält Geometrien, die die im Eingabebild erkannten Objekte umkreisen.

  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. Der Parameter Argumente wird mit den Informationen aus dem Parameterwert Modelldefinition befüllt. Diese Argumente sind unterschiedlich, je nachdem, welche Modellarchitektur verwendet wird. In diesem Beispiel wird das Modell Single Shot Detector verwendet, nach dem die folgenden Argumente befüllt werden. Sie können die Standardwerte übernehmen oder bearbeiten.

    Diese Argumente sind unterschiedlich, je nachdem, welche Modellarchitektur verwendet wird. In diesem Beispiel wird das Modell Single Shot Detector verwendet, nach dem die folgenden Argumente befüllt werden. Sie können die Standardwerte übernehmen oder bearbeiten.

    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. threshold: Erkennungen, deren Konfidenzwert höher als dieser Betrag ist, sind im Ergebnis enthalten. Zulässige Werte liegen zwischen 0 und 1,0.
    3. batch_size: Die Anzahl der in den einzelnen Schritten der Modellinferenz verarbeiteten Bildkacheln. Dieser Wert hängt von der Speichergröße der Grafikkarte ab.
    4. nms_overlap: Die maximale Überlappungsrate für zwei überlappende Features, die als Verhältnis von der Schnittfläche zur Vereinigungsfläche definiert ist. Die Standardeinstellung ist 0.1.
    5. exclude_pad_detections: Wenn "true" ausgewählt ist, filtert das Werkzeug potenziell gekürzte Erkennungen in der Nähe der Kanten im aufgefüllten Bereich von Bildschnipseln.
    6. 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. Aktivieren Sie wahlweise das Kontrollkästchen Nicht-Maxima-Unterdrückung.

    Wenn dieses Kontrollkästchen aktiviert ist, werden erkannte doppelte Objekte aus der Ausgabe entfernt, und Sie müssen Angaben zu den folgenden drei Parametern machen:

    1. Feld für die Konfidenzpunktzahl: Der Name des Feldes in der Feature-Class, das die Konfidenzpunktzahlen enthält, die von der Objekterkennungsmethode als Ausgabe verwendet werden.
    2. Klassenwertefeld: Der Name des Klassenwertefeldes in der Eingabe-Feature-Class.
    3. Max. Überlappungsrate: Die maximale Überlappungsrate für zwei überlappende Features, die als Verhältnis von Schnittfläche zu Vereinigungsfläche definiert ist.
  7. Klicken Sie zum Starten der Inferenzierung auf Ausführen.

    Parameter des Werkzeugs "Objekte mit Deep Learning erkennen"

In dem folgenden Ergebnisbild sind die erkannten Palmen durch ein umgebendes Polygon gekennzeichnet.

Ergebnis der Palmenerkennung

Ein detailliertes Beispiel einer Objekterkennung finden Sie unter Den Gesundheitszustand von Palmen mithilfe von Deep Learning bewerten.

Verwandte Themen