Was ist eine Punktwolke?
Als Punktwolke bezeichnet man eine Sammlung von Datenpunkten im dreidimensionalen Raum. Jeder Punkt entspricht den X-, Y- und Z-Koordinaten eines Ortes auf der Oberfläche eines realen Objekts und alle Punkte zusammen bilden die gesamte Oberfläche ab. Punktwolken werden typischerweise von LiDAR-Scannern und Stereo- oder Time-of-Flight-Kameras (TOF) erzeugt.
Je nach Art der Daten lassen sich Punktwolken in zwei Kategorien einteilen:
Organisierte Punktwolken
- Organisierte Daten in Zeilen und Spalten wie in Bilddaten
- Format: M x N x C, mit M gleich der Anzahl an Zeilen, N gleich der Anzahl an Spalten und C gleich der Anzahl an Kanälen
- Sensoren wie Stereokameras und Time-of-Flight-Kameras erzeugen in der Regel organisierte Punktwolken
- Enthalten Informationen über die Beziehung zwischen benachbarten Punkten
Unorganisierte Punktwolken
- Nicht in Zeilen und Spalten organisiert
- Format: MxC, wobei M die Anzahl der Punkte in der Punktwolke und C die Anzahl der Kanäle darstellt
- Klassische LiDAR-Sensoren erzeugen unorganisierte Punktwolken
- Eine unorganisierte Punktwolke kann durch Projektion auf eine Kugel in eine organisierte Punktwolke umgewandelt werden (z. B. mithilfe der MATLAB Konversionsfunktion pcorganize).
Die Verarbeitung von Punktwolken wird in der Robotik und in autonomen Systemen für Wahrnehmungs- und Navigationsaufgaben eingesetzt. Darüber hinaus lässt sie sich auch für Augmented-Reality- (AR) und Virtual-Reality-Anwendungen (VR) nutzen. MATLAB® bietet Tools und Referenzanwendungen, die die Punktwolken-Verarbeitung unterstützen, insbesondere in der Lidar Toolbox™ und der Computer Vision Toolbox™.
Typische Workflows und Aufgaben mit MATLAB
Lesen, Schreiben und Streamen von Punktwolken
MATLAB stellt Reader für gängige Dateiformate wie pcd, ply, pcap, las/laz und ibeo-Datencontainer zur Verfügung. Zudem lassen sich LiDAR-Daten von Velodyne- und Ouster-LiDAR-Sensoren live übertragen.
Erstellen von synthetischen LiDAR-Daten
Erstellen Sie synthetische LiDAR-Daten, die echte LiDAR-Sensoren imitieren, und testen Sie Ihren Workflow, noch bevor Sie ihn in der Praxis umsetzen.
Vorverarbeitung von Daten
Wenden Sie Vorverarbeitungsalgorithmen wie Downsampling, Medianfilter, Transformationen an, extrahieren Sie Merkmale aus 3D-Punktwolken und richten Sie diese aus.
Kalibrierung von LiDAR-Kameras
Ermitteln Sie die Transformation zwischen Kamera und LiDAR in Ihrem System. Mit dieser Transformation können Sie nun LiDAR-Daten auf Kameradaten projizieren und umgekehrt.
Durchführung von Objekterkennungen und semantischer Segmentierung
Erkennen Sie Objekte oder segmentieren Sie Punktwolken mithilfe von Deep-Learning-Algorithmen.
Erstellen von Karten und Ortung von Fahrzeugen
Führen Sie Registrierungen, die Erstellung von Karten und SLAM mithilfe einer Reihe von Punktwolken durch.
Bereitstellung auf CPUs und Grafikkarten
Die Verarbeitungsworkflows der LiDAR-Daten können als C/C++ oder CUDA-Code auf der Zielhardware bereitgestellt werden.
Details dazu finden Sie bei der Lidar Toolbox™ und Computer Vision Toolbox™.
Beispiele und Erläuterungen
Siehe auch: Verarbeitung von 3D-Bildern, Affine Abbildung, Digitale Bildverarbeitung, Bildanalyse, Bildverarbeitung und Computer Vision, Bildrekonstruktion, Bildregistrierung, Bildsegmentierung, Schwellenwertbestimmung in Bildern, Bildtransformation, Objekterkennung, RANSAC, Stereosicht, SLAM (simultane Lokalisierung und Kartierung), Drohnenvermessung