Punktwolken-Trainingsdaten vorbereiten (3D Analyst)

Zusammenfassung

Generiert die Daten, die zum Trainieren und Validieren eines Punktwolken-Klassifizierungsmodells verwendet werden.

Verwendung

  • Überprüfen Sie die Eingabepunktwolke, um sicherzustellen, dass die Punkte für die relevanten Objekte richtig klassifiziert sind. Die Qualität des Klassifizierungsmodells hängt von der Qualität der Daten ab, die zum Trainieren und Validieren verwendet werden. Wenn die Klassifizierung der Punktwolke optimiert werden muss, könnten Sie die Punktklassifizierung interaktiv bearbeiten.

    Weitere Informationen zur interaktiven Bearbeitung der LAS-Klassifizierung

  • Die Punktwolken-Trainingsdaten werden von einem Verzeichnis mit der Erweiterung .pctd und zwei Unterverzeichnissen definiert. Eines enthält die Daten, die zum Trainieren des Klassifizierungsmodells verwendet werden, und das andere enthält die Daten, die zum Validieren des trainierten Modells verwendet werden. Eine Eingabepunktwolke muss immer angegeben werden, da sie die Quelle der zum Trainieren verwendeten Daten darstellt. Die Trainingsgrenze kann definiert werden, um die zum Trainieren exportierten Punkte zu begrenzen. Die Validierungsdaten sind ebenfalls erforderlich und können auf folgende Weise angegeben werden:

    • Geben Sie eine Validierungspunktwolke an. Dieses Dataset muss einen anderen Satz von Punkten referenzieren als die Eingabepunktwolke.
    • Geben Sie eine Validierungspunktwolke mit einer Validierungsgrenze an. Dadurch werden die Validierungsdaten aus dem Teil der Validierungspunktwolke erstellt, der mit der Validierungsgrenze überlappt.
    • Geben Sie eine Trainingsgrenze und eine Validierungsgrenze ohne eine Validierungspunktwolke an. Dadurch werden die Trainingsdaten aus den Teilen der Eingabepunktwolke erstellt, die die Trainingsgrenze überschneiden, und die Validierungspunktwolke wird aus den Teilen der Eingabepunktwolke erstellt, die die Validierungsgrenze überschneiden. Die Grenz-Features müssen einander nicht überlappen.
  • Die Eingabe-Punktwolke sollte eine einigermaßen gleichmäßige Punktdichte aufweisen. Werten Sie die Punktwolke aus, um festzustellen, ob sie Positionen mit einer höheren Punktdichte enthält, z. B. Gebiete, die durch Einmessungen sich überschneidender Fluglinien oder terrestrische Scanner im Stillstand erfasst wurden. Bei einem LIDAR-Luftbild mit überlappenden Fluglinien kann das Werkzeug LAS-Überlappung klassifizieren verwendet werden, um die überlappenden Punkte zu markieren und eine konsistentere Punktverteilung zu erreichen. Andere Typen von Punktwolken mit Hot-Spots, die das notwendige Ausmaß der Stichprobe überschreiten, können mit dem Werkzeug LAS ausdünnen auf eine regelmäßige Verteilung ausgedünnt werden.

  • Punkte in der Punktwolke können anhand ihrer Klassencodes aus den Trainingsdaten ausgeschlossen werden, um die Performance beim Training des Modells zu verbessern, indem die Menge der zu verarbeitenden Punkte reduziert wird. Die ausgeschlossenen Punkte sollten zu Klassen gehören, die leicht klassifiziert werden können und nicht unbedingt einen angemessenen Kontext für die Objekte bieten, für die das Modell trainiert wird. Ziehen Sie in Erwägung, Punkte herauszufiltern, die als Überlappung oder Rauschen klassifiziert werden. Klassifizierte Bodenpunkte können auch herausgefiltert werden, wenn bei der Generierung der Trainingsdaten die Höhe über dem Boden berechnet wird.

  • In die Trainingsdaten können Informationen zur Bezugshöhe aufgenommen werden, um ein weiteres Attribut für den Trainingsprozess zu erhalten. Dies geschieht durch die Angabe eines Rasters im Parameter Bezugsoberfläche. Dieses Raster wird verwendet, um für jeden überlappenden Punkt das Attribut für die relative Höhe abzuleiten. Das Attribut wird berechnet, indem die durch bilineare Interpolation aus dem Raster ermittelte Höhe vom Z-Wert subtrahiert wird. Diese Informationen können bei der Unterscheidung von Objekten helfen, die einen bestimmten Bereich relativer Höhen von der Raster-Oberfläche aufweisen. Außerdem schaffen sie eine weitere Basis für das neuronale Netzwerk, um Richtungsbeziehungen abzuleiten. Wenn beispielsweise beim Training für Stromleitungen ein Geländehöhenraster als Bezugsfläche verwendet wird, fallen die Stromleitungspunkte wahrscheinlich in einen bestimmten Bereich relativer Höhen über dem Boden. Wenn die Bezugshöhe von der Geländehöhe abhängig ist, kann sie außerdem als Vorwand dienen, Bodenpunkte aus den Trainingsdaten auszuschließen, falls diese keinen nützlichen Kontext für die Identifizierung der relevanten Objekte liefern. Das neuronale Netzwerk versucht, die Klassifizierung aller Daten zu erlernen, die ihm während des Trainings zur Verfügung gestellt werden. Da mit dem Werkzeug Boden aus LAS klassifizieren eine qualitativ hochwertige Bodenklassifizierung erreicht werden kann, ist es nicht erforderlich, das neuronale Netzwerk dahingehend zu trainieren, dass es Bodenpunkte identifizieren und von anderen Klassen unterscheiden kann. Bodenpunkte, die normalerweise durch Klasse 2 und gelegentlich auch durch Klasse 8 und Klasse 20 dargestellt werden, können ausgeschlossen werden, indem sie im Parameter Ausgeschlossene Klassencodes aufgelistet werden. In diesem Fall werden die Trainingsdaten schneller vom neuronalen Netzwerk verarbeitet, da Bodenpunkte in der Regel etwa die Hälfte aller Punkte ausmachen, die bei einer LIDAR-Vermessung erfasst werden.

  • Aus einer Teilmenge von LAS-Punkten (z. B. Punkten mit Bodenklassifizierung) kann die Raster-Oberfläche erstellt werden, die als Eingabe für den Parameter Bezugsoberfläche verwendet wird. Hierzu wird das LAS-Dataset gefiltert und das Werkzeug LAS-Dataset in Raster verwendet. Die gewünschte Teilmenge von Punkten des LAS-Datasets kann gefiltert werden. Dazu wird eine Kombination aus Klassifizierungscodes, Rückgabewerten und Klassifizierungs-Flags verwendet. Die Punktfilter können über das Eigenschaftendialogfeld des LAS-Dataset-Layers oder mit dem Werkzeug LAS-Dataset-Layer erstellen angewendet werden. Mit dem Werkzeug Punktwolke in Raster kann auch eine Raster-Oberfläche aus einem Punktwolken-Szenen-Layer erstellt werden.

  • Der Parameter Ausgeschlossene Klassencodes kann verwendet werden, um mit Klassencodes verknüpfte Punkte auszuschließen, die keinen nützlichen Ableitungskontext zur Identifizierung von relevanten Objekten liefern. Wenn sie weggelassen werden, lässt sich die Anzahl der zu evaluierenden Punkte reduzieren, wodurch wiederum der Trainingsprozess beschleunigt wird. So spielen zum Beispiel als Gebäude klassifizierte Punkte normalerweise keine Rolle für das Training eines Klassifizierungsmodells für Objekte wie Verkehrsampeln, Stromleitungen oder andere Ressourcen. Gebäudepunkte können auch zuverlässig mit dem Werkzeug Gebäude aus LAS klassifizieren klassifiziert werden. Durch die Angabe von Klasse 6 (Gebäude) als ausgeschlossene Klasse werden die Gebäudepunkte aus den Trainingsdaten ausgeschlossen. Für jede Punktwolke, die ein mit ausgeschlossenen Klassen trainiertes Modell verwendet, sollten diese Klassen vor der Anwendung des Modells klassifiziert werden. Außerdem sollten diese Klassen im Parameter Ausgeschlossene Klassencodes der Werkzeuge Punktwolke mithilfe des trainierten Modells klassifizieren und Punktwolken-Trainingsdaten evaluieren aufgelistet werden, damit das Modell seine Klassifizierung anhand einer Punktwolke ableiten kann, die mit den Eigenschaften der Daten übereinstimmt, die für das Training des Modells verwendet wurden.

  • Die Blockpunktgrenze sollte die Blockgröße und den durchschnittlichen Punktabstand der Daten widerspiegeln. Die Anzahl der Punkte in einem bestimmten Block kann mit dem Werkzeug LAS-Punkt-Statistiken als Raster evaluieren mit der Option Punktanzahl des Parameters Methode und der gewünschten Blockgröße als Zellengröße des Ausgaberasters approximiert werden. Ein Bildhistogramm dieses Rasters kann die Verteilung der Punkte pro Block im Dataset veranschaulichen. Wenn das Histogramm eine große Anzahl von Blöcken mit großer Varianz zeigt, kann dies auf das Vorhandensein von unregelmäßigen Beispieldaten hinweisen, die potenzielle Hot-Spots von dichten Punktesammlungen enthalten. Enthält ein Block mehr Punkte als die Blockpunktgrenze, wird dieser Block mehrfach erstellt, um sicherzustellen, dass alle seine Punkte in den Trainingsdaten vertreten sind. Wenn beispielsweise die Punktgrenze bei 10.000 Punkten liegt und ein bestimmter Block 22.000 Punkte enthält, werden drei Blöcke mit 10.000 Punkten erstellt, um eine einheitliche Referenzpunkterfassung in jedem Block zu gewährleisten. Eine Blockpunktgrenze, die deutlich höher ist als die nominale Punktzahl der meisten Blöcke, sollte ebenfalls vermieden werden. Bei einigen Architekturen werden die Daten einem Upsampling unterzogen, sodass sie die Punktgrenze erreichen. Verwenden Sie daher eine Blockgröße und eine Blockpunktgrenze, die nahe an der erwarteten Punktzahl liegt und die meisten Blöcke in den Trainingsdaten abdeckt. Sobald die Trainingsdaten erstellt sind, wird im Meldungsfenster des Werkzeugs ein Histogramm angezeigt, und ein Bild davon wird im Ordner mit den Trainings- und Validierungsdaten gespeichert. Dieses Histogramm kann überprüft werden, um festzustellen, ob eine geeignete Kombination aus Blockgröße und Punktgrenze festgelegt wurde. Wenn die Werte eine suboptimale Punktgrenze anzeigen, führen Sie das Werkzeug mit einem geeigneteren Wert für den Parameter Blockpunktgrenze erneut aus.

  • Vergewissern Sie sich, dass die Ausgabe an einen Speicherort geschrieben wird, an dem genügend Speicherplatz für die Trainingsdaten verfügbar ist. Dieses Werkzeug erstellt teilweise überlappende Blöcke von unkomprimierten HDF5-Dateien, die jeden Punkt in vier Blöcken replizieren. In Blöcken, die die maximale Punktegrenze überschreiten, können einige Punkte mehr als viermal dupliziert werden. Die resultierenden Trainingsdaten können mindestens dreimal so viel Speicherplatz belegen wie die Quelldaten der Punktwolke.

Parameter

BeschriftungErläuterungDatentyp
Eingabepunktwolke

Die Punktwolke, die zum Erstellen der Trainingsdaten verwendet wird, und möglicherweise auch die Validierungsdaten, wenn keine Validierungspunktwolke bereitgestellt wurde. In diesem Fall müssen die Trainingsgrenze und die Validierungsgrenze definiert werden.

LAS Dataset Layer; File
Blockgröße

Der Durchmesser jedes Trainingsdatenblocks, der aus der Eingabe-Punktwolke erstellt wird. Als allgemeine Regel gilt, dass die Blockgröße ausreichen muss, um die relevanten Objekte mit ihrem Kontext zu erfassen.

Linear Unit
Ausgabe-Trainingsdaten

Der Speicherort und Name der Ausgabe-Trainingsdaten (*.pctd-Datei).

File
Trainings-Grenz-Features
(optional)

Die Polygon-Features, die die Teilmenge der Punkte aus der Eingabe-Punktwolke abgrenzen, die für das Training des Modells verwendet wird. Dieser Parameter ist erforderlich, wenn der Parameterwert Validierungspunktwolke nicht angegeben ist.

Feature Layer
Validierungspunktwolke
(optional)

Die Punktwolke, die zur Validierung des Deep-Learning-Modells während des Trainingsprozesses verwendet wird. Dieses Dataset muss einen anderen Satz von Punkten referenzieren als die Eingabe-Punktwolke, um die Qualität des trainierten Modells zu gewährleisten. Wenn keine Validierungspunktwolke bereitgestellt wird, kann die Eingabe-Punktwolke zur Definition der Trainings- und Validierungs-Datasets verwendet werden, indem Polygon-Feature-Classes für die Parameter Trainings-Grenz-Features und Validierungs-Grenz-Features bereitgestellt werden.

LAS Dataset Layer; File
Validierungs-Grenz-Features
(optional)

Die Polygon-Features, die die Teilmenge der Punkte abgrenzen, die für die Validierung des Modells während des Trainingsprozesses verwendet wird. Wenn keine Validierungspunktwolke bereitgestellt wird, werden die Punkte aus der Eingabe-Punktwolke verwendet, und für den Parameter Trainings-Grenz-Features ist ein Polygon erforderlich.

Feature Layer
Blöcke nach Klassencode filtern
(optional)

Die Klassencodes, die zur Begrenzung der exportierten Trainingsdatenblöcke verwendet werden. Alle Punkte in den Blöcken, die mindestens einen der für diesen Parameter aufgeführten Werte enthalten, werden exportiert, mit Ausnahme der Klassen, die im Parameter Ausgeschlossene Klassencodes angegeben sind, und der Punkte, die als "Ausgeschlossen" gekennzeichnet sind. Es kann ein beliebiger Wert im Bereich von 0 bis 255 angegeben werden.

Value Table
Blockpunktgrenze
(optional)

Die maximale Anzahl von Punkten, die in jedem Block der Trainingsdaten zulässig ist. Wenn ein Block eine größere Anzahl von Punkten enthält als dieser Wert, werden mehrere Blöcke für eine Position erstellt, um sicherzustellen, dass alle Punkte beim Trainieren verwendet werden. Der Standardwert ist 8.192.

Long
Bezugsoberfläche
(optional)

Die Raster-Oberfläche, die zum Angeben der relativen Höhe für die einzelnen Punkte in den Punktwolkendaten verwendet werden soll. Punkte, die sich mit dem Raster nicht überlappen, werden bei der Analyse weggelassen.

Raster Layer
Ausgeschlossene Klassencodes
(optional)

Die Klassencodes, die von den Trainingsdaten ausgeschlossen werden. Hier kann ein beliebiger Wert im Bereich von 0 bis 255 angegeben werden.

Long

arcpy.ddd.PreparePointCloudTrainingData(in_point_cloud, block_size, out_training_data, {training_boundary}, {validation_point_cloud}, {validation_boundary}, {class_codes_of_interest}, {block_point_limit}, {reference_height}, {excluded_class_codes})
NameErläuterungDatentyp
in_point_cloud

Die Punktwolke, die zum Erstellen der Trainingsdaten verwendet wird, und möglicherweise auch die Validierungsdaten, wenn keine Validierungspunktwolke bereitgestellt wurde. In diesem Fall müssen die Trainingsgrenze und die Validierungsgrenze definiert werden.

LAS Dataset Layer; File
block_size

Der Durchmesser jedes Trainingsdatenblocks, der aus der Eingabe-Punktwolke erstellt wird. Als allgemeine Regel gilt, dass die Blockgröße ausreichen muss, um die relevanten Objekte mit ihrem Kontext zu erfassen.

Linear Unit
out_training_data

Der Speicherort und Name der Ausgabe-Trainingsdaten (*.pctd-Datei).

File
training_boundary
(optional)

Die Polygon-Features, die die Teilmenge der Punkte aus der Eingabe-Punktwolke abgrenzen, die für das Training des Modells verwendet wird. Dieser Parameter ist erforderlich, wenn der Parameterwert validation_point_cloud nicht angegeben ist.

Feature Layer
validation_point_cloud
(optional)

Die Quelle der Punktwolke, die zur Validierung des Deep-Learning-Modells verwendet wird. Dieses Dataset muss einen anderen Satz von Punkten referenzieren als die Eingabe-Punktwolke, um die Qualität des trainierten Modells zu gewährleisten. Wenn keine Validierungspunktwolke bereitgestellt wird, kann die Eingabe-Punktwolke zur Definition der Trainings- und Validierungs-Datasets verwendet werden, indem Polygon-Feature-Classes für die Parameter training_boundary und validation_boundary bereitgestellt werden.

LAS Dataset Layer; File
validation_boundary
(optional)

Die Polygon-Features, die die Teilmenge der Punkte abgrenzen, die für die Validierung des Modells während des Trainingsprozesses verwendet wird. Wenn keine Validierungspunktwolke bereitgestellt wird, werden die Punkte aus der Eingabe-Punktwolke verwendet, und für den Parameter training_boundary ist ein Polygon erforderlich.

Feature Layer
class_codes_of_interest
[class_codes_of_interest,...]
(optional)

Die Klassencodes, die zur Begrenzung der exportierten Trainingsdatenblöcke verwendet werden. Alle Punkte in den Blöcken, die mindestens einen der für diesen Parameter aufgeführten Werte enthalten, werden exportiert, mit Ausnahme der Klassen, die im Parameter excluded_class_codes angegeben sind, und der Punkte, die als "Ausgeschlossen" gekennzeichnet sind. Es kann ein beliebiger Wert im Bereich von 0 bis 255 angegeben werden.

Value Table
block_point_limit
(optional)

Die maximale Anzahl von Punkten, die in jedem Block der Trainingsdaten zulässig ist. Wenn ein Block eine größere Anzahl von Punkten enthält als dieser Wert, werden mehrere Blöcke für eine Position erstellt, um sicherzustellen, dass alle Punkte beim Trainieren verwendet werden. Der Standardwert ist 8.192.

Long
reference_height
(optional)

Die Raster-Oberfläche, die zum Angeben der relativen Höhe für die einzelnen Punkte in den Punktwolkendaten verwendet werden soll. Punkte, die sich mit dem Raster nicht überlappen, werden bei der Analyse weggelassen.

Raster Layer
excluded_class_codes
[excluded_class_codes,...]
(optional)

Die Klassencodes, die von den Trainingsdaten ausgeschlossen werden. Hier kann ein beliebiger Wert im Bereich von 0 bis 255 angegeben werden.

Long

Codebeispiel

PreparePointCloudTrainingData: Beispiel (Python-Fenster)

Im folgenden Beispiel wird die Verwendung dieses Werkzeugs im Python-Fenster veranschaulicht:

import arcpy
arcpy.env.workspace = 'C:/data'
arcpy.ddd.PreparePointCloudTrainingData('training_source.lasd', '35 Meters', 'vegetation_training.pctd', 
                                        validation_point_cloud='validation_source.lasd', 
                                        class_codes_of_interest=[14, 15], block_point_limit=12000,
                                        reference_height='Ground_Elevation.tif', 
                                        excluded_class_codes=[2, 6, 8, 9, 20])

Lizenzinformationen

  • Basic: Erfordert 3D Analyst
  • Standard: Erfordert 3D Analyst
  • Advanced: Erfordert 3D Analyst

Verwandte Themen