Open Source Robotics

Eine kuratierte Sammlung hochwertiger Open-Source-Robotikprojekte, Werkzeuge und Software für die Robotik-Community.

Perspective-n-Point

  • Auch genannt: PnP
  • Kategorie: Sensing › Perception outputs
  • Schlagwörter: pose-estimation, computer-vision, projective-geometry, 3d-perception, localization

Das Problem, die Pose einer kalibrierten Kamera relativ zu einem Objekt aus n bekannten 3D-Punkten darauf und ihren 2D-Projektionen in einem Bild zu bestimmen.

Definition

Perspective-n-Point (PnP) fragt nach Rotation und Translation zwischen einer Kamera und einem Objekt, wenn die 3D-Koordinaten von n Punkten auf dem Objekt bekannt sind, ihre 2D-Pixelpositionen in einem Bild gefunden wurden und die intrinsischen Kameraparameter bekannt sind. Da die 3D-Punkte in metrischen Einheiten vorliegen, ist die Lösung eine vollständige metrische Pose ohne Skalenmehrdeutigkeit, aus einem einzigen Bild. Dasselbe Problem tritt auf, ob die Kamera sich selbst gegenüber einer Karte lokalisiert oder die Pose eines Objekts vor ihr schätzt.

Drei Korrespondenzen sind das Minimum. Das P3P-Problem hat bis zu vier gültige Lösungen, daher wird ein vierter Punkt verwendet, um die richtige auszuwählen. Mit mehr Punkten ist das Problem überbestimmt, und Rauschen kann gemittelt werden. EPnP von Lepetit, Moreno-Noguer und Fua (2009) löst den allgemeinen Fall in einer in n linearen Zeit, indem es die Punkte als Kombinationen von vier virtuellen Kontrollpunkten ausdrückt. Praktische Pipelines kombinieren meist einen minimalen Löser innerhalb von RANSAC, um falsche Korrespondenzen auszusortieren, mit einer abschließenden nichtlinearen Verfeinerung, die den Rückprojektionsfehler minimiert, zum Beispiel mit Levenberg-Marquardt. solvePnP und solvePnPRansac in OpenCV implementieren diese Schritte.

PnP ist ein verbreitetes Back-End für gelernte Posenschätzer. Netze wie DOPE sagen die Bildpositionen der Ecken der 3D-Bounding-Box eines Objekts und seines Schwerpunkts vorher, und PnP macht aus diesen Keypoints mithilfe der bekannten Abmessungen des Objekts und der intrinsischen Kameraparameter eine 6-DoF-Pose. Bleibt die Geometrie außerhalb des Netzes, funktioniert dasselbe Modell auch mit einer anderen Kamera. Die Genauigkeit hängt von der Punktverteilung und der Tiefe ab: Liegen alle Punkte dicht beieinander oder auf einer kleinen Ebene weit von der Kamera entfernt, wird die Pose schlecht konditioniert und kann zwischen zwei ähnlichen Lösungen umspringen, eine bekannte Mehrdeutigkeit bei kleinen quadratischen Passermarken.

Warum es wichtig ist

PnP ist die Standardbrücke von 2D-Detektionen zur 3D-Pose. Tracking von Passermarken, visuelle Lokalisierung gegenüber einer Karte, Augmented Reality und keypointbasierte Objektposenschätzung zum Greifen beruhen alle darauf.

Wichtige Anwendungen

  • 6-DoF-Objektposenschätzung aus Keypoints
  • Tracking von Passermarken mit AprilTag und ArUco
  • Kameralokalisierung gegenüber einer 3D-Karte
  • Initialisierung von visueller Odometrie und SLAM
  • Augmented-Reality-Overlays und Kameratracking

In der Praxis

Ein Greifroboter verwendet ein auf synthetischen Bildern trainiertes Keypoint-Netz, um die acht Ecken und den Schwerpunkt der 3D-Bounding-Box einer bekannten Müslischachtel zu erkennen. Für jede Detektion werden die neun vorhergesagten Pixel und die passenden 3D-Punkte aus den Schachtelmaßen zusammen mit der intrinsischen Matrix der Kamera an einen RANSAC-PnP-Löser übergeben, der Keypoints verwirft, die nicht zu den übrigen passen, und die Pose durch Minimierung des Rückprojektionsfehlers verfeinert. Die Pose im Kamerakoordinatensystem wird mit der Hand-Auge-Kalibrierung ins Basiskoordinatensystem des Roboters transformiert und an den Griffplaner gesendet. Das Team verwirft Posen, deren mittlerer Rückprojektionsfehler über einigen Pixeln liegt, was die meisten Fälle herausfiltert, in denen eine Ecke verdeckt war und schlecht vorhergesagt wurde.

Häufige Missverständnisse

  • PnP braucht Tiefendaten — es bestimmt die metrische Pose aus einem einzigen RGB-Bild, sofern 3D-Punkte und intrinsische Parameter bekannt sind
  • Drei Punkte ergeben eine eindeutige Pose — P3P kann bis zu vier Lösungen liefern, daher sind mehr Punkte zur Auflösung der Mehrdeutigkeit nötig
  • Mehr Punkte gleichen falsche Korrespondenzen immer aus — Kleinste-Quadrate-Löser werden von Ausreißern abgelenkt, daher sind RANSAC oder robuste Verlustfunktionen erforderlich
  • PnP ist dasselbe wie ICP — PnP richtet 3D-Punkte an 2D-Bildbeobachtungen aus; ICP richtet zwei 3D-Punktmengen aneinander aus

Wer das wissen sollte

  • Ingenieure für Computer Vision und Roboterwahrnehmung
  • Entwickler von Posenschätzung für das Greifen
  • Forschende in SLAM und visueller Lokalisierung
  • Ingenieure, die mit Passermarken arbeiten

Verwandte Technologien

  • EPnP
  • P3P
  • RANSAC
  • OpenCV solvePnP
  • AprilTag

Verwandte Begriffe

  • Camera Intrinsics
  • SE(3)
  • Extrinsic Calibration
  • Visual Odometry
  • Iterative Closest Point
  • SLAM

Verwandte Projekte

  • Cartographer: Google's real-time 2D and 3D SLAM system for multi-platform robotics
  • Nav2: ROS 2 navigation stack with path planning and obstacle avoidance for mobile robots
  • pySLAM: Hybrid Python/C++ visual SLAM pipeline with classic and deep-learning front-ends
  • AprilTag: The standard visual fiducial marker system for robot localization and pose estimation
  • MRPT: Comprehensive C++ toolkit for mobile robotics, SLAM, and sensor-based navigation
  • GLIM: GPU-accelerated 3D lidar SLAM framework for any range sensor, from AIST

Diese Website benötigt JavaScript. Bitte aktivieren Sie JavaScript, um unsere Open-Source-Robotikprojekte zu erkunden.