Deep Learning

LiDAR: Beispiel mit Anleitung

Erfahren Sie, wie Sie Punktwolkendaten laden, Datensätze vorverarbeiten, Netze definieren und trainieren sowie Detektionen generieren.

Zum Einstieg:

  1. Code herunterladen
  2. Code in MATLAB öffnen
  3. Befolgen Sie die unten aufgeführten Schritte.

Sie haben keinen Zugriff?

Dauer:
15 bis 30 Minuten
Stufe:
Einsteiger/Mittelstufe

Sie brauchen eine Auffrischung? Absolvieren Sie das kostenfreie interaktive Tutorial.

Schritt 1

Laden von Punktwolkendaten und entsprechenden Kennzeichnungen

Mithilfe eines tiefen neuronalen Netzes können Sie eine Mehrklassen-Objekterkennung auf Punktwolkendaten erkunden. In diesem Beispiel wird das PointPillars-Netz betrachtet, das Objekte in der Punktwolke erkennen und ausgerichtete Begrenzungsrahmen um sie herum anordnen kann.

  • Erstellen Sie Datastores für die Verwaltung der Daten.
  • Erstellen Sie einen fileDatastore, um mithilfe der pcread-Funktion die PCD-Dateien aus dem angegebenen Pfad zu laden.
  • Laden Sie Begrenzungsrahmen-Kennzeichnungen mithilfe der boxLabelDatastore-Funktion für Ground-Truth-Kennzeichnungen.

Wichtige Punkte:

  • In dieser Demo wird eine Punktwolke aus der Vorderansicht statt einer Punktwolke in Vollansicht verwendet. Dieser Ansatz bietet zwei Vorteile: (1) schnelleres Training und schnellere Ausführung und (2) bessere Leistung des Netzes für durchschnittliche Ausrichtung, Ähnlichkeit und Genauigkeit.

Schritt 2

Vorverarbeiten von Datensätzen

Sie sind nun bereit, Datensätze aufzuteilen und verschiedene Verstärkungstechniken kennenzulernen.

  • Teilen Sie den Datensatz in Trainings- und Testsätze auf.
  • Führen Sie die Ground Truth Data Augmentation durch, bei der jeder Punktwolke zufällig eine feste Anzahl an Objekten der Klasse „Fahrzeug“ hinzugefügt wird. Das folgende Bild zeigt 70 % der Daten für Training und den Rest für Tests. Diese Technik ermöglicht eine Verbesserung der Genauigkeit des Netzes während des Trainings, indem die Größe des Trainingsdatensatzes synthetisch erhöht wird.
  • Probieren Sie Data-Augmentation-Techniken wie Spiegeln, Skalieren, Drehen und Übersetzen von Punktwolken aus.
  • Sehen Sie sich die Ausgabe an.

Wichtige Punkte:

  • In diesem Beispiel wird ein kleiner Datensatz mit sehr wenigen Frames zur Demonstration des Workflows verwendet. Trainieren Sie das Netz mit einem größeren Datensatz, um bessere Ergebnisse zu erzielen.

Schritt 3

Definieren von Netzen

Beginnen Sie mit der Definition Ihrer Rahmen, der Säulen für das PointPillars-Netz und des PointPillars-Netzes.

  • Definieren Sie Rahmen.
  • Definieren Sie die Anzahl der Säulen für das PointPillars-Netz.
  • Nutzen Sie die PointPillar-Objekterkennungsfunktion zur Erstellung eines PointPillar-Objekterkennungsnetzes.

Schritt 4

Trainieren von Netzen

Nachdem Sie das Netz definiert haben, trainieren Sie das Modell auf dem Trainingsdatensatz.

  • Legen Sie neue Trainingsparameter fest.
  • Verwenden Sie die trainedPointPillarsObjectDetector-Funktion zum Trainieren von PointPillars.
  • Laden Sie einen vortrainierten Objektdetektor, wenn Sie kein Modell von Grund auf trainieren möchten.

Wichtige Punkte:

  • Das Training ist der zeitaufwendigste Schritt in einem Deep-Learning-Workflow. Alternativ können Sie Objekte in der Punktwolke mithilfe eines vortrainierten Modells erkennen.

Schritt 5

Generieren von Detektionen

Verwenden Sie zum Abschluss das trainierte Netz, um Objekte in den Testdaten zu erkennen und die Punktwolke mit Begrenzungsrahmen darzustellen.

  • Lesen Sie die Punktwolke aus den Testdaten.
  • Nutzen Sie die detect-Funktion auf der Testpunktwolke, um die vorhergesagten Begrenzungsrahmen und Konfidenzwerte zu erhalten.
  • Bilden Sie die erkannte Ausgabepunktwolke mit Begrenzungsrahmen ab. Die grünen Begrenzungsrahmen stellen Fahrzeuge in der Ausgabepunktwolke dar.

Befolgen Sie die Anleitungsvideos für LiDAR:

Sehen Sie sich unter den nachstehenden Links weitere LiDAR-Aufgaben an oder machen Sie sich mit ähnlichen Anwendungen weiter mit Deep Learning vertraut.

Johanna Pingel

Wenden Sie sich an Johanna, Deep-Learning-Expertin bei MathWorks