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 Bezugsoberfläche ist erforderlich, wenn das Eingabemodell mit relativen Höhenattributen trainiert wurde. Die Raster-Oberfläche wird als Referenzhöhe verwendet, von der aus die relativen Höhen für jeden Punkt interpoliert werden. Dadurch erhält das Modell zusätzliche Informationen, die zur besseren Unterscheidung der Objekte verwendet werden können. Die für diesen Parameter angegebene Raster-Oberfläche sollte denselben Datentyp repräsentieren wie das Raster, das in den Trainingsdaten verwendet wurde, mit denen das Modell erstellt wurde. In den meisten Fällen handelt es sich um ein Raster, das aus klassifizierten Bodenpunkten erstellt wird. Aus den klassifizierten Bodenpunkten im LAS-Dataset kann eine Raster-Oberfläche generiert werden, indem ein Bodenfilter angewendet und das Werkzeug LAS-Dataset in Raster verwendet wird. Eine Bodenoberfläche kann auch mit dem Werkzeug Punktwolke in Raster aus einem Punktwolken-Szenen-Layer generiert werden. Raster-Oberflächen, die nicht aus der Eingabe-Punktwolke generiert wurden, können auch verwendet werden. In diesem Fall müssen Sie aber sicherstellen, dass die Z-Werte im Raster mit den richtigen Z-Werten in der Punktwolke korrespondieren.

  • Wenn das Eingabemodell mit Punkten aus bestimmten Klassen trainiert wurde, die aus den Trainingsdaten ausgeschlossen wurden, verwenden Sie den Parameter Ausgeschlossene Klassencodes, um sicherzustellen, dass diese Punkte nicht in den für dieses Modell ausgewerteten Punkten enthalten sind. Durch den Ausschluss von Klassen, die keinen nützlichen Kontext für die Ziele eines bestimmten Modells bieten, wird die Anzahl der auszuwertenden Punkte verringert, was die Geschwindigkeit des Trainings und der Anwendung des Modells erhöht. So sind beispielsweise Punkte, die Gebäude darstellen, in der Regel für Punkte irrelevant, die Objekte wie Ampeln, Stromleitungen oder Autos repräsentieren. Gebäudepunkte können auch mit dem Werkzeug Gebäude aus LAS klassifizieren zuverlässig klassifiziert werden. Wenn Punkte mit der Klasse 6, die Gebäude darstellt, in den Trainingsdaten, die zur Erstellung des Modells verwendet wurden, ausgeschlossen wurden, muss die Eingabe-Punktwolke auch Gebäudepunkte klassifizieren und von diesem Werkzeug ausschließen.

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 sollen. 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, wie zum Beispiel 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 werden soll, nachdem die Klassencodes geändert wurden.

  • Aktiviert: Die LAS-Dataset-Pyramide wird aktualisiert. Dies ist die Standardeinstellung.
  • Deaktiviert: Die LAS-Dataset-Pyramide wird nicht aktualisiert.
Boolean
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 der Verarbeitung ausgeschlossen werden sollen. Hier 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 sollen. 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, wie zum Beispiel 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 werden soll, 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 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 der Verarbeitung ausgeschlossen werden sollen. Hier 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