3D Object Detection
Bei der 3D-Objekterkennung wird jedes Objekt mit einem 3D-Rahmen umgeben, der seine Position, Größe und Ausrichtung in Metern angibt. Sensoren, Methoden, Benchmarks und ein Beispiel für einen Rahmen.
Die 3D-Objekterkennung findet Objekte in einer Szene und legt um jedes eine 3D-Begrenzungsbox, also einen Quader. So werden Position, Größe und Ausrichtung in realen Maßeinheiten angegeben. Die standardmäßige 2D-Objekterkennung gibt eine Begrenzungsbox in Bildpixeln aus. Ein 3D-Detektor gibt an, wie weit ein Auto in Metern entfernt ist, wie lang und breit es ist und in welche Richtung es zeigt. Diese Informationen benötigen selbstfahrende Autos, Lieferroboter und Roboterarme in Lagerhallen, um Bewegungen zu planen und Zusammenstöße zu vermeiden.
Beschreibung einer 3D-Box#
Die meisten 3D-Detektoren geben für jedes Objekt sieben Zahlen sowie eine Klasse und einen Konfidenzwert aus: den Mittelpunkt der Box (x, y, z), Länge, Breite und Höhe sowie die Ausrichtung oder den Gierwinkel um die vertikale Achse. Roll- und Nickwinkel werden als null angenommen, weil Autos, Menschen und die meisten Gegenstände in Innenräumen aufrecht stehen. Fahrdatensätze wie nuScenes erfassen außerdem die Geschwindigkeit jedes Objekts. Aus den sieben Zahlen acht Eckpunkte zu berechnen, ist der erste Schritt, um eine Box in ein Bild zu zeichnen oder ihre Überlappung mit einer anderen Box zu berechnen.
import numpy as np
# Eine 3D-Box: Mittelpunkt (m), Größe (m) und Ausrichtung um die vertikale z-Achse (rad)
center = np.array([12.0, -3.0, 0.9])
length, width, height = 4.5, 1.9, 1.6
yaw = np.pi / 6
# Acht Eckpunkte der Box vor der Drehung, bezogen auf ihren Mittelpunkt
signs = np.array([[sx, sy, sz] for sx in (1, -1) for sy in (1, -1) for sz in (1, -1)])
corners = signs * [length / 2, width / 2, height / 2]
# Die Box um ihre Ausrichtung drehen und anschließend zum Mittelpunkt verschieben
c, s = np.cos(yaw), np.sin(yaw)
rotation = np.array([[c, -s, 0], [s, c, 0], [0, 0, 1]])
corners = corners @ rotation.T + center
print(corners.round(2))Die acht ausgegebenen Zeilen sind die Eckpunkte einer autobahn großen Box, deren Mittelpunkt 12 Meter entlang der x-Achse liegt und die um 30 Grad gedreht ist. Vier Punkte liegen bei z = 1.7 m auf Höhe des Dachs, vier bei z = 0.1 m am Boden.
Sensoren und Methoden#
Für die 3D-Erkennung wird Tiefe benötigt, die Systeme aus drei Arten von Eingaben gewinnen. LiDAR-Scanner messen Entfernungen direkt mithilfe von Laserimpulsen und erzeugen eine Punktwolke der Szene. LiDAR-Detektoren teilen den Raum in 3D-Voxel auf und gruppieren Punkte zu vertikalen Säulen, wie es PointPillars macht. Anschließend verarbeiten sie diese als Vogelperspektivbild mit schnellen 2D-Faltungen oder arbeiten direkt mit den Rohpunkten.
Kamerabasierte Verfahren leiten die Tiefe aus Bildern ab. Bei einer einzelnen Kamera bleibt die Tiefe uneindeutig, weil ein kleines Objekt in der Nähe genauso aussehen kann wie ein großes Objekt in der Ferne. Monokulare Detektoren lernen daher, die Tiefe anhand der Objektgröße und des Szenenkontexts zu schätzen. Mehrkamerasysteme wie BEVFormer projizieren Merkmale aus mehreren umliegenden Ansichten in ein gemeinsames Raster aus der Vogelperspektive. Kamera-Pipelines können außerdem 2D-Boxen von YOLO26 mit einem YOLO26-Tiefenmodell kombinieren. Dieses Modell sagt für jedes Pixel einer einzelnen RGB-Aufnahme eine Tiefenkarte in Metern voraus und schätzt damit, wie weit jedes erkannte Objekt entfernt ist.
Sensorfusion kombiniert die präzise Geometrie des Lidars mit den Farben und Texturen von Kamerabildern. BEVFusion führt die Merkmale beider Sensoren in einem gemeinsamen Raum aus der Vogelperspektive zusammen.
3D-Erkennung und verwandte Aufgaben im Vergleich#
- Tiefenschätzung: Sagt für jedes Pixel eine Entfernung voraus, ohne die Szene in Objekte oder Klassen aufzuteilen.
- Rotierte Begrenzungsboxen: Gedrehte 2D-Boxen auf der Bildebene, die häufig bei Luftbildern verwendet werden und der Draufsicht auf eine 3D-Box ähneln.
- 3D-Rekonstruktion: Rekonstruiert die vollständige Geometrie einer Szene, etwa als Netz oder Punktwolke, ohne einzelne Objekte zu beschriften.
Anwendungen und Herausforderungen#
Autonome Fahrzeuge verwenden die 3D-Erkennung, um Autos, Fußgänger und Radfahrer in ihrer Umgebung zu lokalisieren und ihre Wege vorherzusagen. Roboter in Lagerhallen und der Logistik nutzen sie, um Position und Ausrichtung von Kartons vor dem Greifen zu bestimmen. Schwierige Fälle sind entfernte und kleine Objekte, von denen nur wenige Lidar-Punkte erfasst werden, teilweise verdeckte Objekte, mit der Entfernung zunehmende Fehler bei der monokularen Tiefenschätzung und die Kosten der Annotation, da Annotierende jeden Quader für das Training in 3D anpassen müssen.
Bewertung von 3D-Detektoren#
Die Bewertung überträgt Schnittmenge über Vereinigungsmenge (IoU) und mittlere durchschnittliche Präzision (mAP) auf drei Dimensionen. Der 3D-Benchmark von KITTI verlangt eine 3D-Box-IoU von 0,7 für Autos und 0,5 für Fußgänger und Radfahrer. Seit 2019 wird die Präzision an 40 statt 11 Recall-Positionen gemittelt. Der nuScenes-Benchmark ordnet Vorhersagen Beschriftungen anhand des Abstands zwischen ihren Mittelpunkten auf der Bodenebene zu und mittelt die AP über Schwellenwerte von 0,5, 1, 2 und 4 Metern. Der nuScenes-Erkennungswert (NDS) kombiniert diese mAP, gewichtet mit 5, mit fünf Werten zu Fehlern bei Translation, Skalierung, Ausrichtung, Geschwindigkeit und Attributen, die jeweils mit 1 gewichtet werden.










