Punktwolken-Trainingsdaten vorbereiten (3D Analyst)

Zusammenfassung

Generiert die Daten, die zum Trainieren und Validieren eines PointCNN-Modells für die Klassifizierung einer Punktwolke 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 optional 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.
  • Exportieren Sie beim Trainieren des Punktwolken-Klassifizierungsmodells die Trainings- und Validierungsdaten mit einer Blockgröße, die das Objekt, das klassifiziert wird, und den umgebenden Kontext ausreichend erfasst. Die Blockgröße muss nicht das gesamte Objekt erfassen, sofern es ausreichend umgebende Daten gibt, um den erforderlichen Kontext zu erhalten, der zum Erreichen einer angemessenen Klassifizierung erforderlich ist. Wenn ein Block mehr Punkte enthält als die angegebene Punktgrenze, werden für eine Position mehrere Blöcke erstellt. Wenn der Wert für den Parameter Blockpunktgrenze z. B 10.000 beträgt und ein Block 22.000 Punkte enthält, werden drei Blöcke mit 10.000 Punkten erstellt, um in jedem Block eine einheitliche Referenzpunkterfassung sicherzustellen. Einige Punkte werden in zwei Blöcken wiederholt, aber alle Punkte werden in zumindest einen Block aufgenommen.

  • Die Verwendung einer Blockgröße und einer Blockpunktgrenze, die zur Erstellung vieler Blöcke führen, die die Punktgrenze überschreiten, sollte vermieden werden. Eine Annäherung an die Anzahl der Punkte in einer bestimmten Blockgröße ist mit dem Werkzeug LAS-Punkt-Statistiken als Raster möglich, indem ein Ausgabe-Raster generiert wird, bei dem die Option Punktanzahl für den Parameter Methode verwendet wird. Dieses Raster sollte eine Zellengröße aufweisen, die mit der gewünschten Blockgröße übereinstimmt. Sie können das Bildhistogramm dieses Rasters untersuchen, um einen Eindruck von der Anzahl der Blöcke zu erhalten, die unterhalb einer bestimmten Blockgröße liegen, und die Punktgrenze entsprechend anpassen.

    Der Wert des Parameters Blockpunktgrenze muss auch die dedizierte GPU-Speicherkapazität des Computers berücksichtigen, der zum Trainieren des Deep-Learning-Modells verwendet wird. Die Speicherzuweisung beim Trainieren hängt von der Anzahl der Attribute, die zum Trainieren des Modells verwendet werden, von der Anzahl der Punkte in einem bestimmten Block und von der Gesamtanzahl der Blöcke ab, die in einem bestimmten Iterations-Batch verarbeitet werden. Wenn für das effektive Trainieren des Modells eine größere Blockgröße zusammen mit einer höheren Punktgrenze erforderlich ist, kann die Batch-Größe im Trainingsschritt verringert werden, damit mehr Punkte verarbeitet werden können.

  • Stellen Sie sicher, dass die Ausgabe in einen Speicherort mit ausreichend Speicherplatz für die Trainingsdaten geschrieben wird. Dieses Werkzeug erstellt teilweise überlappende Blöcke von nicht komprimierten HDF5-Dateien, die jeden Punkt in vier Blöcken replizieren. In Blöcken, die die maximale Punktgrenze überschreiten, können einige Punkte mehr als viermal dupliziert werden. Für die resultierenden Trainingsdaten kann mindestens dreimal mehr Speicherplatz erforderlich sein als für die Quell-Punktwolkendaten.

  • Wenn der Raumbezug der Eingabepunktwolke kein projiziertes Koordinatensystem verwendet, kann mithilfe der Umgebung Ausgabe-Koordinatensystem ein projiziertes Koordinatensystem definiert werden, das bei der Klassifizierung seiner Punkte verwendet wird.

Parameter

BeschriftungErläuterungDatentyp
Eingabepunktwolke

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

LAS Dataset Layer; File
Blockgröße

Die zweidimensionale Breite und Höhe der einzelnen HDF5-Kacheln, die aus der Eingabepunktwolke erstellt wurden. Eine allgemeine Regel ist, dass die Blockgröße ausreichen muss, um die relevanten Objekte und den umgebenden Kontext zu erfassen.

Linear Unit
Ausgabe-Trainingsdaten

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

File
Trainingsgrenzen-Features
(optional)

Die Grenzpolygone, mit denen die Teilmenge der Punkte aus der Eingabepunktwolke markiert wird, die zum Trainieren des Deep-Learning-Modells verwendet wird.

Feature Layer
Validierungspunktwolke
(optional)

Die Quelle der Punktwolke, die zum Validieren des Deep-Learning-Modells verwendet wird. Dieses Dataset muss einen anderen Satz von Punkten referenzieren als die Eingabepunktwolke, um die Qualität des trainierten Modells sicherzustellen. Wenn keine Validierungspunktwolke angegeben wird, müssen Werte für die Parameter Trainingsgrenzen-Features und Validierungsgrenzen-Features bereitgestellt werden.

LAS Dataset Layer; File
Validierungsgrenzen-Features
(optional)

Die Polygon-Features, mit denen die Teilmenge der Punkte skizziert wird, die zum Validieren des trainierten Modells verwendet werden soll. Wenn keine Validierungspunktwolke angegeben wird, stammen die Punkte aus der Eingabepunktwolke.

Feature Layer
Relevante Klassencodes
(optional)

Die Klassencodes, mit denen die exportierten Trainingsdatenblöcke auf die begrenzt werden, die die angegebenen Werte enthalten. Alle Punkte im Block werden für jeden Block exportiert, der mindestens einen der in diesem Parameter aufgeführten Klassencodes enthält.

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

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})
NameErläuterungDatentyp
in_point_cloud

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

LAS Dataset Layer; File
block_size

Die zweidimensionale Breite und Höhe der einzelnen HDF5-Kacheln, die aus der Eingabepunktwolke erstellt wurden. Eine allgemeine Regel ist, dass die Blockgröße ausreichen muss, um die relevanten Objekte und den umgebenden Kontext zu erfassen.

Linear Unit
out_training_data

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

File
training_boundary
(optional)

Die Grenzpolygone, mit denen die Teilmenge der Punkte aus der Eingabepunktwolke markiert wird, die zum Trainieren des Deep-Learning-Modells verwendet wird.

Feature Layer
validation_point_cloud
(optional)

Die Quelle der Punktwolke, die zum Validieren des Deep-Learning-Modells verwendet wird. Dieses Dataset muss einen anderen Satz von Punkten referenzieren als die Eingabepunktwolke, um die Qualität des trainierten Modells sicherzustellen. Wenn keine Validierungspunktwolke angegeben wird, müssen Werte für die Parameter training_boundary und validation_boundary bereitgestellt werden.

LAS Dataset Layer; File
validation_boundary
(optional)

Die Polygon-Features, mit denen die Teilmenge der Punkte skizziert wird, die zum Validieren des trainierten Modells verwendet werden soll. Wenn keine Validierungspunktwolke angegeben wird, stammen die Punkte aus der Eingabepunktwolke.

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

Die Klassencodes, mit denen die exportierten Trainingsdatenblöcke auf die begrenzt werden, die die angegebenen Werte enthalten. Alle Punkte im Block werden für jeden Block exportiert, der mindestens einen der in diesem Parameter aufgeführten Klassencodes enthält.

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

Long

Codebeispiel

PreparePointCloudTrainingData – Beispiel (Python-Fenster)

Anhand des folgenden Beispiels wird die Verwendung dieses Werkzeugs im Python-Fenster veranschaulicht.

import arcpy
arcpy.env.workspace = 'C:/data'
arcpy.ddd.PreparePointCloudTrainingData('training_source.lasd', '20 Meters', 'vegetation_training.pctd', 
                                        validation_point_cloud='validation_source.lasd')

Lizenzinformationen

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

Verwandte Themen