Punktwolke mithilfe des trainierten Modells klassifizieren (3D Analyst)

Zusammenfassung

Klassifiziert eine Punktwolke mit einem Deep-Learning-Modell.

Verwendung

  • Für dieses Werkzeug müssen Deep-Learning-Frameworks installiert sein.

    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 aufweisen wie die Trainingsdaten, auf deren Basis das Klassifizierungsmodell entwickelt wurde. Wenn für das trainierte Modell z. B. das Intensitätsattribut verwendet wurde, muss die verarbeitete Punktwolke ebenfalls Intensitätswerte enthalten. 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.

  • Das Modell wird trainiert, um Punktwolkendaten zu verarbeiten, die in Blöcken einer bestimmten Größe vorliegen und eine bestimmte Anzahl von Punkten sowie eine bestimmte Gruppe von Attributen enthalten. Die Eingabepunktwolke wird durch die Aufteilung in vom Modell definierte Blöcke verarbeitet. Es können jederzeit mehrere Blöcke verarbeitet werden. Die gemeinsam verarbeiteten Blöcke werden als Batch bezeichnet. Über die Batch-Größe wird gesteuert, wie viele Computerressourcen bei der Inferenzierung belegt werden. Die CPU kann zur Verarbeitung der Punktwolke herangezogen werden, die Inferenzierung wird mit einer CUDA-fähigen NVIDIA-Grafikkarte jedoch effizienter durchgeführt. Sie können festlegen, wie viele Blöcke gleichzeitig verarbeitet werden, um den belegten GPU-Speicher zu begrenzen, indem Sie einen Wert im Parameter Batch-Größe angeben. Achten Sie darauf, dass die angegebene Batch-Größe die Computerressourcen nicht übersteigt. Der verfügbare GPU-Speicher vor und während der Ausführung des Werkzeugs kann über das NVIDIA-Dienstprogramm System Management Interface (SMI) überwacht werden. Dabei handelt es sich um ein Befehlszeilenprogramm, das automatisch mit dem NVIDIA-Treiber für die GPU installiert wird. Diese Anwendung verfolgt die GPU-Auslastung. Wenn Sie festlegen möchten, wie viel Speicher während der Ausführung des Werkzeugs verfügbar bleiben soll, werten Sie eine Teilmenge der Punktwolkendaten mit einer kleinen Batchgröße aus und erhöhen Sie diesen Wert schrittweise, bis die gewünschte Auslastung erreicht ist. Alternativ können Sie das Werkzeug selbst die Auslastung des GPU-Speichers automatisch maximieren lassen.

  • Der Parameter Bezugsfläche muss angegeben werden, wenn das Eingabemodell mit relativen Höhenattributen trainiert wurde. Die Raster-Oberfläche dient als Referenzhöhe, von der relative Höhen für jeden Punkt interpoliert werden. Das Modell erhält auf diese Weise weitere Informationen, mit denen sich Objekte besser unterscheiden lassen. Die für diesen Parameter bereitgestellte Raster-Oberfläche sollte denselben Datentyp wie das Raster aufweisen, das in den Trainingsdaten zum Erstellen des Modells verwendet wurde. In den meisten Fällen handelt es sich hierbei um ein Raster, das aus Punkten mit Bodenklassifizierung erstellt wurde. Aus den Punkten mit Bodenklassifizierung im LAS-Dataset kann mit dem Werkzeug LAS-Dataset in Raster eine Raster-Oberfläche generiert werden, indem ein Bodenfilter angewendet wird. 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.

  • Wenn das Eingabemodell mit Punkten aus bestimmten Klassen trainiert und diese aus den Trainingsdaten ausgeschlossen wurden, stellen Sie mithilfe des Parameters Ausgeschlossene Klassencodes sicher, dass diese Punkte aus der Gruppe von Punkten ausgeschlossen werden, die von diesem Modell evaluiert werden. Durch den Ausschluss von Klassen, die keinen nützlichen Kontext für die Ziele eines bestimmten Modells bieten, reduziert sich die Anzahl der ausgewerteten Punkte. Auf diese Weise kann das Modell schneller trainiert und angewendet werden. So haben Punkte, die Gebäude darstellen, normalerweise keine Relevanz für Punkte, die Objekte wie Ampeln, Stromleitungen oder Autos darstellen. Gebäudepunkte können auch zuverlässig mit dem Werkzeug Gebäude aus LAS klassifizieren klassifiziert werden. Wenn Punkte der Klasse 6, die Gebäude darstellt, in den Trainingsdaten für die Erstellung des Modells ausgeschlossen wurden, müssen von der Eingabepunktwolke ebenfalls die Gebäudepunkte klassifiziert und in diesem Werkzeug ausgeschlossen werden.

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 URL 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 Anzahl der Punktwolken-Datenblöcke, die während des Inferenzprozesses gleichzeitig verarbeitet werden. Im Allgemeinen führt eine größere Batch-Größe zu einer schnelleren Datenverarbeitung. Achten Sie jedoch darauf, dass die Batch-Größe die Computerressourcen nicht übersteigt. Bei Verwendung der GPU ist der verfügbare GPU-Speicher der häufigste Grund für eine Begrenzung der Batch-Größe auf ein Maß, das vom Computer verarbeitet werden kann. Der durch einen bestimmten Block belegte Speicher hängt von der Blockpunktgrenze des Modells und den erforderlichen Punktattributen ab. Um den verfügbaren GPU-Speicher zu ermitteln und wenn Sie weitere Informationen zum Bewerten der GPU-Speicherbelegung benötigen, rufen Sie das SMI-Befehlszeilentool von NVIDIA auf, das in den Verwendungsmöglichkeiten beschrieben wird.

Bei bestimmten Architekturen wird die optimale Batch-Größe berechnet, wenn keine Batch-Größe angegeben wurde. Bei Verwendung der GPU ist die optimale Batch-Größe davon abhängig, wie viel Speicher von einem bestimmten Datenblock belegt wird und wie viel GPU-Speicher bei Ausführung des Werkzeugs frei verfügbar ist. Wenn die CPU für Inferenzierung verwendet wird, erfolgt die Verarbeitung jedes Blocks in einem CPU-Thread. Die optimale Batch-Größe wird so berechnet, dass sie die Hälfte der verfügbaren, nicht verwendeten CPU-Threads belegt.

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 URL 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 Anzahl der Punktwolken-Datenblöcke, die während des Inferenzprozesses gleichzeitig verarbeitet werden. Im Allgemeinen führt eine größere Batch-Größe zu einer schnelleren Datenverarbeitung. Achten Sie jedoch darauf, dass die Batch-Größe die Computerressourcen nicht übersteigt. Bei Verwendung der GPU ist der verfügbare GPU-Speicher der häufigste Grund für eine Begrenzung der Batch-Größe auf ein Maß, das vom Computer verarbeitet werden kann. Der durch einen bestimmten Block belegte Speicher hängt von der Blockpunktgrenze des Modells und den erforderlichen Punktattributen ab. Um den verfügbaren GPU-Speicher zu ermitteln und wenn Sie weitere Informationen zum Bewerten der GPU-Speicherbelegung benötigen, rufen Sie das SMI-Befehlszeilentool von NVIDIA auf, das in den Verwendungsmöglichkeiten beschrieben wird.

Bei bestimmten Architekturen wird die optimale Batch-Größe berechnet, wenn keine Batch-Größe angegeben wurde. Bei Verwendung der GPU ist die optimale Batch-Größe davon abhängig, wie viel Speicher von einem bestimmten Datenblock belegt wird und wie viel GPU-Speicher bei Ausführung des Werkzeugs frei verfügbar ist. Wenn die CPU für Inferenzierung verwendet wird, erfolgt die Verarbeitung jedes Blocks in einem CPU-Thread. Die optimale Batch-Größe wird so berechnet, dass sie die Hälfte der verfügbaren, nicht verwendeten CPU-Threads belegt.

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)

Im folgenden Beispiel 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