Range Image
- Auch genannt: range view, spherical range image
- Kategorie: Sensing › Perception outputs
- Schlagwörter: lidar, 3d-perception, semantic-segmentation, point-cloud, data-representation
Ein 2D-Bild eines 3D-Entfernungsscans, in dem jedes Pixel die entlang einer Strahlrichtung gemessene Entfernung speichert, wodurch der Scan ein Bildraster für schnelle Verarbeitung erhält.
Definition
Ein Entfernungsbild (Range Image) speichert einen 3D-Scan als 2D-Array, in dem jedes Pixel einer Blickrichtung entspricht und die entlang dieser Richtung gemessene Entfernung enthält. Bei einem rotierenden Mehrstrahl-LiDAR entsprechen die Zeilen meist den Laserstrahlen, also den Elevationswinkeln, und die Spalten den Azimutwinkeln um die Rotationsachse, sodass jeder Punkt durch eine sphärische Projektion seiner Richtung platziert wird. Zusätzliche Kanäle enthalten oft die x-, y- und z-Koordinaten, die Intensität des Echos und eine Gültigkeitsmaske.
Die Bildanordnung macht Nachbarschaftsbeziehungen günstig. Punkte, die im Bild nahe beieinanderliegen, liegen meist auch im Raum nahe beieinander, sodass Normalen, Kanten, Bodensegmentierung und Clustering mit einfachen Bildoperationen statt mit Nächste-Nachbarn-Suchen in 3D berechnet werden können. Außerdem können damit gewöhnliche 2D-Faltungsnetze LiDAR-Daten verarbeiten: Netze wie SqueezeSeg und RangeNet++ labeln jedes Pixel, und die Labels werden anschließend auf die 3D-Punkte zurückprojiziert. SuMa und SuMa++ verwenden Entfernungsbilder aus einem anderen Grund: Sie rendern die Surfel-Karte in dieselbe Bildanordnung, sodass neue Scans über die Pixelposition mit der Karte assoziiert werden können.
Die Projektion hat ihren Preis. Fallen mehrere Punkte in ein Pixel, wird nur einer behalten, meist der nächstgelegene, sodass manche Punkte nachträglich anhand ihrer Nachbarn gelabelt werden müssen. Pixel ohne Echo, etwa von Himmel, Glas oder absorbierenden Oberflächen, müssen maskiert werden. An Objektgrenzen können die Nachbarn eines Pixels auf Oberflächen liegen, die in der Tiefe weit auseinanderliegen, wodurch Labels zwischen Vorder- und Hintergrund verlaufen; RangeNet++ ergänzt eine k-Nächste-Nachbarn-Bereinigung in 3D, um dies zu verringern. Ein Entfernungsbild unterscheidet sich von einem Tiefenbild (Depth Image) einer Kamera in Projektion und Wert: Eine Tiefenkamera verwendet eine Lochkameraprojektion und speichert meist die Entfernung entlang der optischen Achse, während ein LiDAR-Entfernungsbild Winkelkoordinaten verwendet und die Entfernung entlang jedes Strahls speichert.
Warum es wichtig ist
Entfernungsbilder verwandeln dünn besetzte, ungeordnete LiDAR-Punktwolken in ein dichtes Raster, das schnelle Bildalgorithmen und Faltungsnetze verarbeiten können. Viele Echtzeit-Pipelines für LiDAR-Segmentierung, Odometrie und Kompression beruhen darauf.
Wichtige Anwendungen
- Semantische Segmentierung von LiDAR-Scans mit 2D-Netzen
- Projektive Datenassoziation in LiDAR-SLAM
- Bodenentfernung und Hindernis-Clustering
- Normalen- und Kantenschätzung für Merkmale der LiDAR-Odometrie
- Kompression und Speicherung von LiDAR-Daten
In der Praxis
Ein Team für autonomes Fahren muss jeden LiDAR-Punkt in Echtzeit als Straße, Auto, Fußgänger oder Vegetation labeln. Es projiziert jeden Scan in ein Entfernungsbild mit einer Zeile pro Laser und einer festen Anzahl von Spalten und speichert Entfernung, x, y, z und Intensität in fünf Kanälen. Ein 2D-Segmentierungsnetz sagt pro Pixel eine Klasse voraus, die Labels werden auf die Punkte zurückprojiziert, und eine Nächste-Nachbarn-Abstimmung in 3D korrigiert Punkte, die durch die Projektion weggefallen sind oder an Objektkanten falsch gelabelt wurden. Dasselbe Entfernungsbild wird nachgelagert für die Bodenentfernung und für das Clustering von Hindernissen nach zusammenhängenden Pixelbereichen wiederverwendet.
Häufige Missverständnisse
- Ein Entfernungsbild ist dasselbe wie ein Tiefenbild einer Kamera — die Projektion ist winkelbasiert statt Lochkamera, und die Pixel speichern die Entfernung entlang des Strahls statt entlang der optischen Achse
- Die Projektion behält jeden Punkt — Punkte, die sich ein Pixel teilen, werden verworfen, daher müssen die Labels auf sie zurückübertragen werden
- Benachbarte Pixel sind immer benachbarte Oberflächen — an Tiefensprüngen können benachbarte Pixel weit auseinanderliegen, was zum Verlaufen der Labels führt
- Entfernungsbilder eignen sich nur für rotierende LiDARs — jeder Sensor mit einem regelmäßigen Raster von Strahlrichtungen, einschließlich mancher Solid-State-LiDARs, lässt sich so speichern
Wer das wissen sollte
- Ingenieure für LiDAR-Wahrnehmung
- Segmentierungsteams im autonomen Fahren
- Entwickler von SLAM und Odometrie
- Machine-Learning-Ingenieure, die mit 3D-Daten arbeiten
Verwandte Technologien
- RangeNet++
- SqueezeSeg
- Sphärische Projektion (Spherical Projection)
- Vogelperspektiven-Projektion (Bird's-Eye-View Projection)
- Semantic KITTI
Verwandte Begriffe
Verwandte Projekte
- Open3D: Modern library for 3D point cloud processing, mesh operations, and 3D machine learning
- oomwoo: Open-source DIY robot vacuum: 3D-printed, ROS2 + 2D LiDAR, fully local.
- PCL: Industry-standard C++ library for point cloud processing in robotics perception
- Cartographer: Google's real-time 2D and 3D SLAM system for multi-platform robotics
- OpenDroneMap: Open-source photogrammetry toolkit that turns drone images into maps and 3D models
- FAST-LIVO2: Fast, direct LiDAR-inertial-visual odometry from HKU-MARS, published in IEEE T-RO