Punktwolke mithilfe des trainierten Modells klassifizieren (3D Analyst)

Zusammenfassung

Klassifiziert eine Punktwolke mithilfe eines PointCNN-Klassifizierungsmodells.

Verwendung

  • Dieses Werkzeug verwendet die PointCNN-Implementierung mit Deep-Learning-Umgebungen.

    Informationen zum Einrichten des Computers für Deep-Learning-Frameworks in ArcGIS Pro finden Sie unter Installieren von Deep-Learning-Frameworks for ArcGIS.

  • Durch das Werkzeug werden alle Punkte in der Eingabepunktwolke standardmäßig klassifiziert. Wenn vorhandene Klassencodes in der Eingabepunktwolke ordnungsgemäß klassifiziert sind, schließen Sie solche Punkte von einer Änderung aus, indem Sie mithilfe der Parameter Verarbeitung vorhandener Klassencodes und Vorhandene Klassencodes angeben, welche Klassencodes bearbeitet bzw. beibehalten werden sollen.

    Weitere Informationen zur Klassifizierung einer Punktwolke mit Deep Learning

  • Die Eingabepunktwolke muss dieselben Attribute mit ähnlichen Wertebereichen aufweisen wie die Trainingsdaten, auf deren Basis das Klassifizierungsmodell entwickelt wurde. Wenn für das trainierte Modell z. B. das Intensitätsattribut mit einem bestimmten Wertebereich verwendet wurde, muss die Punktwolke Intensitätswerte enthalten, die im selben Bereich liegen. Außerdem sollten Punktdichte und -verteilung den Daten ähneln, die zum Trainieren des Modells verwendet wurden.

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

  • Der Parameter Bezugsoberfläche ist eine erforderliche Eingabe bei der Verwendung eines Klassifizierungsmodells, das mit Informationen zur Bezugshöhe trainiert wurde. Das für diesen Parameter angegebene 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 mit Klassen verknüpft sind, die einen bestimmten Bereich relativer Höhen von der Raster-Oberfläche aufweisen. Wenn das Modell mit Informationen zur relativen Höhe trainiert wird, sollte die als Eingabe für die Klassifizierung angegebene Raster-Oberfläche auf demselben Punkttyp basieren. Wenn das Raster, das für die Einbeziehung der relativen Höhe während des Trainings verwendet wurde, auf Punkten mit Bodenklassifizierung basierte, geben Sie denselben Raster-Typ für dieses Werkzeug an. Für LAS-Datasets, die Vermessungen im Freien darstellen, sind Punkte mit Bodenklassifizierung aus derselben Punktwolke die üblichste Quelle für Informationen zur relativen Höhe. Aus den Punkten mit Bodenklassifizierung kann eine Raster-Oberfläche erstellt werden, indem das LAS-Dataset aus den Layer-Eigenschaften gefiltert und das Werkzeug LAS-Dataset in Raster verwendet wird. Wenn das Werkzeug in Python verwendet wird, kann vor der Erstellung des Rasters das Werkzeug LAS-Dataset-Layer erstellen zum Filtern nach den gewünschten Punkten verwendet werden. Mit dem Werkzeug Punktwolke in Raster kann auch eine Bodenoberfläche aus einem Punktwolken-Szenen-Layer erstellt werden. Raster-Oberflächen, die nicht aus der Eingabepunktwolke stammen, können ebenfalls verwendet werden. Allerdings müssen Sie sicherstellen, dass die Z-Werte im Raster mit den Z-Werten in der Punktwolke übereinstimmen.

Parameter

BeschriftungErläuterungDatentyp
Zielpunktwolke

Die Punktwolke, die klassifiziert wird.

LAS Dataset Layer
Eingabe-Modelldefinition

Die Eingabe-Modelldefinitionsdatei von Esri (*.emd) oder das Deep-Learning-Paket (*.dlpk), die bzw. das zur Klassifizierung der Punktwolke verwendet wird. Es kann auch eine Webadresse für ein Deep-Learning-Paket verwendet werden, das unter ArcGIS Online oder ArcGIS Living Atlas veröffentlicht wird.

File; String
Zielklassifizierung

Die Klassencodes aus dem trainierten Modell, die zur Klassifizierung der Eingabepunktwolke verwendet werden. Standardmäßig werden alle Klassen aus dem Eingabemodell verwendet, es sei denn, es wird eine Teilmenge angegeben.

String
Verarbeitung vorhandener Klassencodes
(optional)

Gibt an, wie editierbare Punkte aus der Eingabepunktwolke definiert werden.

  • Alle Punkte bearbeiten
  • Ausgewählte Punkte bearbeiten
  • Ausgewählte Punkte beibehalten
String
Vorhandene Klassencodes
(optional)

Die Klassen, deren Punkte bearbeitet werden oder deren ursprüngliche Klassencodebezeichnung je nach Wert des Parameters Verarbeitung vorhandener Klassencodes beibehalten wird.

Long
Statistiken berechnen
(optional)

Gibt an, ob für die vom .las-Dataset referenzierten LAS-Dateien Statistiken berechnet werden. Durch das Berechnen von Statistiken wird ein räumlicher Index für jede .las-Datei bereitgestellt, wodurch sich die Analyse- und Darstellungs-Performance verbessert. Ferner werden durch Statistiken die Filter- und Symbolisierungsverfahren verbessert, da die Anzeige von LAS-Attributen, beispielsweise Klassifizierungscodes und Rückgabeinformationen, auf die in der .las-Datei vorhandenen Werte begrenzt wird.

  • Aktiviert: Es werden Statistiken berechnet. Dies ist die Standardeinstellung.
  • Deaktiviert – Es werden keine Statistiken berechnet.
Boolean
Verarbeitungsbegrenzung

Die Polygongrenze, die die Teilmenge der Punkte in der Eingabepunktwolke definiert, die bearbeitet werden sollen. Punkte außerhalb der Grenz-Features werden nicht ausgewertet.

Feature Layer
Pyramide aktualisieren
(optional)

Gibt an, ob die LAS-Dataset-Pyramide aktualisiert wird, nachdem die Klassencodes geändert wurden.

  • Aktiviert: Die LAS-Dataset-Pyramide wird aktualisiert. Dies ist die Standardeinstellung.
  • Nicht aktiviert: Die LAS-Dataset-Pyramide wird nicht aktualisiert.
Boolean
Bezugsoberfläche
(optional)

Die Raster-Oberfläche, die zum Angeben der relativen Höhe für jeden Punkt in den Punktwolkendaten verwendet wird. Punkte, die nicht mit dem Raster überlappen, werden bei der Analyse nicht berücksichtigt.

Raster Layer
Ausgeschlossene Klassencodes
(optional)

Die von der Verarbeitung ausgeschlossenen Klassencodes. Es kann ein beliebiger Wert im Bereich von 0 bis 255 angegeben werden.

Long
Batch-Größe
(optional)

Die Punktwolken-Datenblöcke, die während des Inferenzprozesses gleichzeitig vom neuronalen Netzwerk verarbeitet werden. Wenn kein Wert angegeben wird, wird die optimale Batch-Größe auf Basis des verfügbaren GPU-Speichers berechnet. Die von einem bestimmten Block verwendete GPU-Speichermenge hängt von der Blockpunktgrenze und den Punktwolkenattributen ab, die vom Modell benötigt werden.

Long

Abgeleitete Ausgabe

BeschriftungErläuterungDatentyp
Ausgabepunktwolke

Die Punktwolke, die durch das Deep-Learning-Modell klassifiziert wurde.

Feature Layer

arcpy.ddd.ClassifyPointCloudUsingTrainedModel(in_point_cloud, in_trained_model, output_classes, {in_class_mode}, {target_classes}, {compute_stats}, boundary, {update_pyramid}, {reference_height}, {excluded_class_codes}, {batch_size})
NameErläuterungDatentyp
in_point_cloud

Die Punktwolke, die klassifiziert wird.

LAS Dataset Layer
in_trained_model

Die Eingabe-Modelldefinitionsdatei von Esri (*.emd) oder das Deep-Learning-Paket (*.dlpk), die bzw. das zur Klassifizierung der Punktwolke verwendet wird. Es kann auch eine Webadresse für ein Deep-Learning-Paket verwendet werden, das unter ArcGIS Online oder ArcGIS Living Atlas veröffentlicht wird.

File; String
output_classes
[output_classes,...]

Die Klassencodes aus dem trainierten Modell, die zur Klassifizierung der Eingabepunktwolke verwendet werden. Standardmäßig werden alle Klassen aus dem Eingabemodell verwendet, es sei denn, es wird eine Teilmenge angegeben.

String
in_class_mode
(optional)

Gibt an, wie editierbare Punkte aus der Eingabepunktwolke definiert werden.

  • EDIT_ALLAlle Punkte in der Eingabepunktwolke werden bearbeitet. Dies ist die Standardeinstellung.
  • EDIT_SELECTEDEs werden nur Punkte bearbeitet, für die im Parameter target_classes Klassencodes angegeben wurden; alle anderen Punkte bleiben unverändert.
  • PRESERVE_SELECTEDPunkte, für die im Parameter target_classes Klassencodes angegeben wurden, bleiben erhalten; alle anderen Punkte werden bearbeitet.
String
target_classes
[target_classes,...]
(optional)

Die Klassen, deren Punkte bearbeitet werden oder deren ursprüngliche Klassencodebezeichnung je nach Wert des Parameters in_class_mode beibehalten wird.

Long
compute_stats
(optional)

Gibt an, ob für die vom .las-Dataset referenzierten LAS-Dateien Statistiken berechnet werden. Durch das Berechnen von Statistiken wird ein räumlicher Index für jede .las-Datei bereitgestellt, wodurch sich die Analyse- und Darstellungs-Performance verbessert. Ferner werden durch Statistiken die Filter- und Symbolisierungsverfahren verbessert, da die Anzeige von LAS-Attributen, beispielsweise Klassifizierungscodes und Rückgabeinformationen, auf die in der .las-Datei vorhandenen Werte begrenzt wird.

  • COMPUTE_STATSEs werden Statistiken berechnet. Dies ist die Standardeinstellung.
  • NO_COMPUTE_STATSEs werden keine Statistiken berechnet.
Boolean
boundary

Die Polygongrenze, die die Teilmenge der Punkte in der Eingabepunktwolke definiert, die bearbeitet werden sollen. Punkte außerhalb der Grenz-Features werden nicht ausgewertet.

Feature Layer
update_pyramid
(optional)

Gibt an, ob die LAS-Dataset-Pyramide aktualisiert wird, nachdem die Klassencodes geändert wurden.

  • UPDATE_PYRAMIDDie LAS-Dataset-Pyramide wird aktualisiert. Dies ist die Standardeinstellung.
  • NO_UPDATE_PYRAMIDDie LAS-Dataset-Pyramide wird nicht aktualisiert.
Boolean
reference_height
(optional)

Die Raster-Oberfläche, die zum Angeben der relativen Höhe für jeden Punkt in den Punktwolkendaten verwendet wird. Punkte, die nicht mit dem Raster überlappen, werden bei der Analyse nicht berücksichtigt.

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

Die von der Verarbeitung ausgeschlossenen Klassencodes. Es kann ein beliebiger Wert im Bereich von 0 bis 255 angegeben werden.

Long
batch_size
(optional)

Die Punktwolken-Datenblöcke, die während des Inferenzprozesses gleichzeitig vom neuronalen Netzwerk verarbeitet werden. Wenn kein Wert angegeben wird, wird die optimale Batch-Größe auf Basis des verfügbaren GPU-Speichers berechnet. Die von einem bestimmten Block verwendete GPU-Speichermenge hängt von der Blockpunktgrenze und den Punktwolkenattributen ab, die vom Modell benötigt werden.

Long

Abgeleitete Ausgabe

NameErläuterungDatentyp
out_point_cloud

Die Punktwolke, die durch das Deep-Learning-Modell klassifiziert wurde.

Feature Layer

Codebeispiel

ClassifyPointCloudUsingTrainedModel – Beispiel (eigenständiges Skript)

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

import arcpy
arcpy.env.workspace = 'C:/data/'
arcpy.ddd.ClassifyPointCloudUsingTrainedModel('2018_survey.lasd', 'electrical_infrastructure_classification.emd', 
                                              [14, 15], 'EDIT_SELECTED', [0,1])

Lizenzinformationen

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

Verwandte Themen