Punktwolken-Objekterkennungsmodell trainieren (3D Analyst)

Zusammenfassung

Trainiert ein Objekterkennungsmodell für Punktwolken mithilfe von Deep Learning.

Verwendung

  • Für dieses Werkzeug muss Deep Learning Essentials installiert sein. Darin werden mehrere Lösungen für neuronale Netzwerke bereitgestellt, zu denen neurale Architekturen zum Klassifizieren von Punktwolken gehören.

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

  • Der Einsatz eines vortrainierten Modells im Trainingsprozess ist hilfreich. Dies gilt insbesondere, wenn Ihre Zeit, Ihre Daten oder Ihre Rechenressourcen beschränkt sind. Vortrainierte Modelle verringern die Notwendigkeit eines intensiven Trainings und bieten einen zuverlässigen Ausgangspunkt, um schnell ein nützliches Modell zu erstellen. Zum Verwenden eines vortrainierten Modells müssen die neuen Trainingsdaten mit dem vortrainierten Modell kompatibel sein. Dies bedeutet, dass die neuen Trainingsdaten dieselben Attribute und Objektcodes wie die Trainingsdaten aufweisen müssen, aus denen das vortrainierte Modell erstellt wurde. Wenn Objektcodes in den Trainingsdaten nicht mit den Codes im vortrainierten Modell übereinstimmen, müssen die Objektcodes der Trainingsdaten entsprechend neu zugeordnet werden.

  • Das Punktwolken-Objekterkennungsmodell kann nur mit einer CUDA-fähigen NVIDIA-Grafikkarte trainiert werden. Wenn die Umgebung Prozessortyp nicht auf einen Computer mit CUDA-fähigen Grafikkarten festgelegt ist, wird für das Training die Karte mit der optimalsten Hardware verwendet. Geben Sie andernfalls Grafikkarten an, die in der Umgebungseinstellung GPU-ID zugewiesen werden können.

  • Die folgenden Kennwerte werden während des Trainingsprozesses gemeldet:

    • Epoche: Die Nummer der Epoche, mit der das Ergebnis verknüpft ist
    • Trainingsverlust: Das Ergebnis der Entropieverlustfunktion, deren Durchschnitt für die Trainingsdaten ermittelt wurde
    • Validierungsverlust: Das Ergebnis der Entropieverlustfunktion, die bei der Anwendung des in der Epoche mit den Validierungsdaten trainierten Modells bestimmt wurde
    • Durchschnittliche Genauigkeit: Der Anteil der Punkte in den Validierungsdaten, die von dem in der Epoche trainierten Modell richtig klassifiziert wurden (True Positives), im Verhältnis zu allen Punkten in den Validierungsdaten

    Ein Modell mit geringem Trainingsverlust, jedoch hohem Validierungsverlust hat eine Überanpassung der Trainingsdaten zum Ergebnis. Dabei erkennt das Modell Muster aus Artefakten in den Trainingsdaten, sodass mit dem Modell keine guten Ergebnisse für die Validierungsdaten erzielt werden. Ein Modell mit hohem Trainingsverlust und hohem Validierungsverlust führt zu einer Unteranpassung der Trainingsdaten. Dadurch werden Muster nicht ausreichend effektiv erlernt, um ein brauchbares Modell zu erzeugen.

    Weitere Informationen zur Ergebnisauswertung beim Trainieren von Punktwolken

  • Es wird ein Ordner erstellt, in dem die Kontrollpunktmodelle gespeichert werden. Dabei handelt es sich um Modelle, die am Ende jeder Epoche erstellt werden. Der Ordnername für Kontrollpunkte beginnt mit dem gleichen Namen wie das Modell und endet mit dem Suffix .checkpoints. Er wird im Parameterwert Speicherort des Ausgabemodells gespeichert.

Parameter

BeschriftungErläuterungDatentyp
Eingabe-Trainingsdaten

Die Trainingsdaten für die Punktwolken-Objekterkennung (*.pcotd-Datei), mit denen das Modell trainiert wird.

File
Speicherort des Ausgabemodells

Ein vorhandener Ordner, in dem das neue Verzeichnis mit dem Deep-Learning-Modell gespeichert wird.

Folder
Name des Ausgabemodells

Der Name der ausgegebenen Esri Modelldefinitionsdatei (*.emd), des Deep-Learning-Pakets (*.dlpk) und des Verzeichnisses, das zur Speicherung der Dateien erstellt wird.

String
Definitionsdatei des vortrainierten Modells
(optional)

Das vortrainierte Objekterkennungsmodell, das optimiert wird. Wird ein vortrainiertes Modell angegeben, müssen die Eingabe-Trainingsdaten dieselben Angaben für Attribute und maximale Anzahl an Punkten aufweisen wie die Trainingsdaten, aus denen das Modell erstellt wurde.

File
Architektur
(optional)

Gibt die Architektur an, die zum Trainieren des Modells verwendet wird.

  • Sparsely Embedded Convolutional DetectionDie SECOND-Architektur (Sparsely Embedded CONvolutional Detection) wird verwendet. Dies ist die Standardeinstellung.
String
Attributauswahl
(optional)

Gibt die Punktattribute an, die beim Trainieren des Modells zusammen mit den Klassifizierungscodes verwendet werden. Nur die Attribute, die in den Punktwolken-Trainingsdaten vorhanden sind, stehen zur Verfügung. Standardmäßig werden keine zusätzlichen Attribute einbezogen.

  • IntensitätVerwendet wird der Messwert der Magnitude aus der Rückgabe des LIDAR-Impulses.
  • RückgabenummerVerwendet wird die Ordinalposition des Punktes, der aus einem bestimmten LIDAR-Impuls abgerufen wird.
  • Anzahl an RückgabenVerwendet wird die Gesamtzahl der LIDAR-Rückgaben, die in dem Impuls, der mit einem bestimmten Punkt verknüpft ist, als Punkte identifiziert wurden.
  • Rotes BandDer Wert des roten Bandes aus einer Punktwolke mit Farbinformationen wird verwendet.
  • Grünes BandDer Wert des grünen Bandes aus einer Punktwolke mit Farbinformationen wird verwendet.
  • Blaues BandDer Wert des blauen Bandes aus einer Punktwolke mit Farbinformationen wird verwendet.
  • Nahinfrarot-BandDer Wert des nahinfraroten Bandes aus einer Punktwolke mit Farbinformationen wird verwendet.
  • Relative HöheDie relative Höhe jedes Punktes in Bezug auf eine Bezugsfläche, in der Regel ein DEM der unbebauten Erdoberfläche, wird verwendet.
String
Minimale Anzahl an Punkten pro Block
(optional)

Die minimale Anzahl an Punkten, die in einem bestimmten Block vorhanden sein müssen, damit er beim Modelltraining verwendet wird. Die Standardeinstellung ist 0.

Long
Objektcodes neu zuordnen
(optional)

Definiert, wie Objektcodes vor dem Training des Deep-Learning-Modells neuen Werten neu zugeordnet werden.

  • Aktueller Code: Der Objektcodewert in den Trainingsdaten
  • Neu zugeordneter Code: Der Objektcodewert, in den der vorhandene Code geändert wird

Value Table
Relevante Objektcodes
(optional)

Die Objektcodes, die zum Filtern der Objekte in den Trainingsdaten verwendet werden. Wenn Objektcodes angegeben werden, werden die nicht enthaltenen Objekte ignoriert.

Long
Nur Blöcke trainieren, die Objekte enthalten
(optional)

Gibt an, ob das Modell nur mit Blöcken trainiert wird, die Objekte enthalten, oder mit allen Blöcken, also auch solchen, die keine Objekte enthalten.

  • Aktiviert: Das Modell wird nur mit Blöcken trainiert, die Objekte enthalten. Die zur Validierung verwendeten Daten werden nicht geändert.
  • Deaktiviert: Das Modell wird mit allen Blöcken trainiert, auch solchen, die keine Objekte enthalten. Dies ist die Standardeinstellung.
Boolean
Objektbeschreibungen
(optional)

Die Beschreibungen für jeden Objektcode in den Trainingsdaten.

  • Objektcode: Der Objektcodewert, der vom Modell erlernt wurde
  • Beschreibung: Das vom Klassencode beschriebene Objekt

Value Table
Kriterien für die Modellauswahl
(optional)

Gibt die statistische Grundlage für die Bestimmung des finalen Modells an.

  • ValidierungsverlustDas Modell, das bei Anwendung der Entropieverlustfunktion auf die Validierungsdaten das niedrigste Ergebnis aufweist, wird verwendet.
  • Durchschnittliche GenauigkeitDas Modell, das den größten Anteil an Punkten in den Validierungsdaten, die von dem in der Epoche trainierten Modell richtig klassifiziert wurden (True Positives), im Verhältnis zu allen Punkten in den Validierungsdaten erreicht, wird verwendet. Dies ist die Standardeinstellung.
String
Maximale Anzahl an Epochen
(optional)

Gibt an, wie oft der Datenblock vorwärts und rückwärts durch das neuronale Netzwerk geleitet wird. Die Standardeinstellung ist 25.

Long
Lernratenstrategie
(optional)

Gibt an, wie sich die Lernrate während des Trainings verändert.

  • Lernrate mit einem ZyklusDie Lernrate durchläuft die einzelnen Epochen mithilfe der Fast.AI-Implementierung der 1cycle-Technik für das Training neuronaler Netzwerke zur Verbesserung des Trainings von Convolutional Neural Networks. Dies ist die Standardeinstellung.
  • Feste LernrateDiese Lernrate wird während des gesamten Trainingsprozesses verwendet.
String
Lernrate
(optional)

Die Rate, mit der vorhandene Informationen durch neu erworbene Informationen überschrieben werden. Ist kein Wert angegeben, wird die optimale Lernrate während des Trainingsprozesses aus der Lernkurve extrahiert. Dies ist die Standardeinstellung.

Double
Batch-Größe
(optional)

Die Anzahl an Trainingsdatenblöcken, die jeweils zu einem bestimmten Zeitpunkt verarbeitet werden. Die Standardeinstellung ist 2.

Long
Training beenden, wenn sich das Modell nicht mehr verbessert
(optional)

Gibt an, ob das Modelltraining beendet wird, wenn der im Parameter Kriterien für die Modellauswahl angegebene Kennwert nach fünf aufeinanderfolgenden Epochen keine weitere Verbesserung registriert.

  • Aktiviert: Das Modelltraining wird beendet, wenn sich das Modell nicht mehr verbessert.
  • Deaktiviert: Das Modelltraining wird fortgesetzt, bis die maximale Anzahl an Epochen erreicht wird. Dies ist die Standardeinstellung.
Boolean
Architektureinstellungen
(optional)

Die Architektureinstellungen können geändert werden, um die Trainingsergebnisse zu verbessern.

  • Option: Die architekturspezifischen Optionen, die geändert werden können.
    • Voxel-Breite: Die X- und Y-Dimensionen des beim Training verwendeten Voxels. Der entsprechende Wert wird in der linearen Einheit Meter angegeben und kann als Double-Wert ausgedrückt werden.
    • Voxel-Höhe: Die Z-Dimension des beim Training verwendeten Voxels. Der entsprechende Wert wird in der linearen Einheit Meter angegeben und kann als Double-Wert ausgedrückt werden.
    • Voxel-Punktgrenze: Die Anzahl von Punkten in einem bestimmten Voxel. Der entsprechende Wert muss ein positiver Ganzzahlwert sein. Wenn kein Wert angegeben wird, wird diese Grenze auf Basis der Blockgröße und der Blockpunktgrenze der Trainingsdaten im Trainingsprozess berechnet.
    • Maximale Anzahl von Trainings-Voxels: Die maximale Anzahl von Voxels, die in den Trainingsdaten verwendet werden können. Der entsprechende Wert muss ein positiver Ganzzahlwert sein. Wenn kein Wert angegeben wird, wird diese Grenze beim Training berechnet.
    • Maximale Anzahl von Validierungs-Voxels: Die maximale Anzahl von Voxels, die in den Validierungsdaten verwendet werden können. Der entsprechende Wert muss ein positiver Ganzzahlwert sein. Wenn kein Wert angegeben wird, wird diese Grenze beim Training berechnet.
  • Wert: Der Wert, der der geänderten Option entspricht.

Value Table

Abgeleitete Ausgabe

BeschriftungErläuterungDatentyp
Ausgabemodell

Das Ausgabe-Objekterkennungsmodell, das erzeugt wird.

File
Ausgabe-Epochenstatistiken

Die Ausgabe-ASCII-Tabelle, die die Epochenstatistiken enthält, die während des Trainingsprozesses abgerufen wurden.

Text File

arcpy.ddd.TrainPointCloudObjectDetectionModel(in_training_data, out_model_location, out_model_name, {pretrained_model}, {architecture}, {attributes}, {min_points}, {remap_objects}, {target_objects}, {train_blocks}, {object_descriptions}, {model_selection_criteria}, {max_epochs}, {learning_rate_strategy}, {learning_rate}, {batch_size}, {early_stop}, {architecture_settings})
NameErläuterungDatentyp
in_training_data

Die Trainingsdaten für die Punktwolken-Objekterkennung (*.pcotd-Datei), mit denen das Modell trainiert wird.

File
out_model_location

Ein vorhandener Ordner, in dem das neue Verzeichnis mit dem Deep-Learning-Modell gespeichert wird.

Folder
out_model_name

Der Name der ausgegebenen Esri Modelldefinitionsdatei (*.emd), des Deep-Learning-Pakets (*.dlpk) und des Verzeichnisses, das zur Speicherung der Dateien erstellt wird.

String
pretrained_model
(optional)

Das vortrainierte Objekterkennungsmodell, das optimiert wird. Wird ein vortrainiertes Modell angegeben, müssen die Eingabe-Trainingsdaten dieselben Angaben für Attribute und maximale Anzahl an Punkten aufweisen wie die Trainingsdaten, aus denen das Modell erstellt wurde.

File
architecture
(optional)

Gibt die Architektur an, die zum Trainieren des Modells verwendet wird.

  • SECDDie SECOND-Architektur (Sparsely Embedded CONvolutional Detection) wird verwendet. Dies ist die Standardeinstellung.
String
attributes
[attributes,...]
(optional)

Gibt die Punktattribute an, die beim Trainieren des Modells zusammen mit den Klassifizierungscodes verwendet werden. Nur die Attribute, die in den Punktwolken-Trainingsdaten vorhanden sind, stehen zur Verfügung. Standardmäßig werden keine zusätzlichen Attribute einbezogen.

  • INTENSITYVerwendet wird der Messwert der Magnitude aus der Rückgabe des LIDAR-Impulses.
  • RETURN_NUMBERVerwendet wird die Ordinalposition des Punktes, der aus einem bestimmten LIDAR-Impuls abgerufen wird.
  • NUMBER_OF_RETURNSVerwendet wird die Gesamtzahl der LIDAR-Rückgaben, die in dem Impuls, der mit einem bestimmten Punkt verknüpft ist, als Punkte identifiziert wurden.
  • REDDer Wert des roten Bandes aus einer Punktwolke mit Farbinformationen wird verwendet.
  • GREENDer Wert des grünen Bandes aus einer Punktwolke mit Farbinformationen wird verwendet.
  • BLUEDer Wert des blauen Bandes aus einer Punktwolke mit Farbinformationen wird verwendet.
  • NEAR_INFRAREDDer Wert des nahinfraroten Bandes aus einer Punktwolke mit Farbinformationen wird verwendet.
  • RELATIVE_HEIGHTDie relative Höhe jedes Punktes in Bezug auf eine Bezugsfläche, in der Regel ein DEM der unbebauten Erdoberfläche, wird verwendet.
String
min_points
(optional)

Die minimale Anzahl an Punkten, die in einem bestimmten Block vorhanden sein müssen, damit er beim Modelltraining verwendet wird. Die Standardeinstellung ist 0.

Long
remap_objects
[remap_objects,...]
(optional)

Definiert, wie Objektcodes vor dem Training des Deep-Learning-Modells neuen Werten neu zugeordnet werden.

  • Aktueller Code: Der Objektcodewert in den Trainingsdaten
  • Neu zugeordneter Code: Der Objektcodewert, in den der vorhandene Code geändert wird

Value Table
target_objects
[target_objects,...]
(optional)

Die Objektcodes, die zum Filtern der Objekte in den Trainingsdaten verwendet werden. Wenn Objektcodes angegeben werden, werden die nicht enthaltenen Objekte ignoriert.

Long
train_blocks
(optional)

Gibt an, ob das Modell nur mit Blöcken trainiert wird, die Objekte enthalten, oder mit allen Blöcken, also auch solchen, die keine Objekte enthalten.

  • OBJECT_BLOCKSDas Modell wird nur mit Blöcken trainiert, die Objekte enthalten. Die zur Validierung verwendeten Daten werden nicht geändert.
  • ALL_BLOCKSDas Modell wird mit allen Blöcken trainiert, auch solchen, die keine Objekte enthalten. Dies ist die Standardeinstellung.
Boolean
object_descriptions
[object_descriptions,...]
(optional)

Die Beschreibungen für jeden Objektcode in den Trainingsdaten.

  • Objektcode: Der Objektcodewert, der vom Modell erlernt wurde
  • Beschreibung: Das vom Klassencode beschriebene Objekt

Value Table
model_selection_criteria
(optional)

Gibt die statistische Grundlage für die Bestimmung des finalen Modells an.

  • VALIDATION_LOSSDas Modell, das bei Anwendung der Entropieverlustfunktion auf die Validierungsdaten das niedrigste Ergebnis aufweist, wird verwendet.
  • AVERAGE_PRECISIONDas Modell, das den größten Anteil an Punkten in den Validierungsdaten, die von dem in der Epoche trainierten Modell richtig klassifiziert wurden (True Positives), im Verhältnis zu allen Punkten in den Validierungsdaten erreicht, wird verwendet. Dies ist die Standardeinstellung.
String
max_epochs
(optional)

Gibt an, wie oft der Datenblock vorwärts und rückwärts durch das neuronale Netzwerk geleitet wird. Die Standardeinstellung ist 25.

Long
learning_rate_strategy
(optional)

Gibt an, wie sich die Lernrate während des Trainings verändert.

  • ONE_CYCLEDie Lernrate durchläuft die einzelnen Epochen mithilfe der Fast.AI-Implementierung der 1cycle-Technik für das Training neuronaler Netzwerke zur Verbesserung des Trainings von Convolutional Neural Networks. Dies ist die Standardeinstellung.
  • FIXEDDiese Lernrate wird während des gesamten Trainingsprozesses verwendet.
String
learning_rate
(optional)

Die Rate, mit der vorhandene Informationen durch neu erworbene Informationen überschrieben werden. Ist kein Wert angegeben, wird die optimale Lernrate während des Trainingsprozesses aus der Lernkurve extrahiert. Dies ist die Standardeinstellung.

Double
batch_size
(optional)

Die Anzahl an Trainingsdatenblöcken, die jeweils zu einem bestimmten Zeitpunkt verarbeitet werden. Die Standardeinstellung ist 2.

Long
early_stop
(optional)

Gibt an, ob das Modelltraining beendet wird, wenn der im Parameter model_selection_criteria angegebene Kennwert nach fünf aufeinanderfolgenden Epochen keine weitere Verbesserung registriert.

  • EARLY_STOPDas Modelltraining wird beendet, wenn sich das Modell nicht mehr verbessert.
  • NO_EARLY_STOPDas Modelltraining wird fortgesetzt, bis die maximale Anzahl an Epochen erreicht wird. Dies ist die Standardeinstellung.
Boolean
architecture_settings
[architecture_settings,...]
(optional)

Die Architektureinstellungen können geändert werden, um die Trainingsergebnisse zu verbessern.

  • Option: Die architekturspezifischen Optionen, die geändert werden können.
    • VOXEL_WIDTH: Die X- und Y-Dimensionen des beim Training verwendeten Voxels. Der entsprechende Wert wird in der linearen Einheit Meter angegeben und kann als Double-Wert ausgedrückt werden.
    • VOXEL_HEIGHT: Die Z-Dimension des beim Training verwendeten Voxels. Der entsprechende Wert wird in der linearen Einheit Meter angegeben und kann als Double-Wert ausgedrückt werden.
    • VOXEL_POINT_LIMIT: Die Anzahl von Punkten in einem bestimmten Voxel. Der entsprechende Wert muss ein positiver Ganzzahlwert sein. Wenn kein Wert angegeben wird, wird diese Grenze auf Basis der Blockgröße und der Blockpunktgrenze der Trainingsdaten im Trainingsprozess berechnet.
    • MAX_TRAINING_VOXELS: Die maximale Anzahl von Voxels, die in den Trainingsdaten verwendet werden können. Der entsprechende Wert muss ein positiver Ganzzahlwert sein. Wenn kein Wert angegeben wird, wird diese Grenze beim Training berechnet.
    • MAX_VALIDATION_VOXELS: Die maximale Anzahl von Voxels, die in den Validierungsdaten verwendet werden können. Der entsprechende Wert muss ein positiver Ganzzahlwert sein. Wenn kein Wert angegeben wird, wird diese Grenze beim Training berechnet.
  • Wert: Der Wert, der der geänderten Option entspricht.

Value Table

Abgeleitete Ausgabe

NameErläuterungDatentyp
out_model

Das Ausgabe-Objekterkennungsmodell, das erzeugt wird.

File
out_epoch_stats

Die Ausgabe-ASCII-Tabelle, die die Epochenstatistiken enthält, die während des Trainingsprozesses abgerufen wurden.

Text File

Codebeispiel

TrainPointCloudObjectDetectionModel: Beispiel (eigenständiges Skript)

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

import arcpy

arcpy.env.workspace = "D:/Deep_Learning_Workspace"
arcpy.ddd.TrainPointCloudObjectDetectionModel("Cars.pcotd", "D:/DL_Models", "Cars", 
    attributes=["INTENSITY", "RETURN_NUMBER", "NUMBER_OF_RETURNS", "RELATIVE_HEIGHT"],
    object_descriptions=[[31, "Cars"]], train_blocks="OBJECT_BLOCKS",
    model_selection_criteria="AVERAGE_PRECISION", max_epochs=10)

Umgebungen