Perspective-n-Point
- Aussi appelé: PnP
- Catégorie: Sensing › Perception outputs
- Mots-clés: pose-estimation, computer-vision, projective-geometry, 3d-perception, localization
Le problème qui consiste à trouver la pose d'une caméra calibrée par rapport à un objet à partir de n points 3D connus de cet objet et de leurs projections 2D dans une image.
Définition
Perspective-n-Point (PnP) consiste à trouver la rotation et la translation entre une caméra et un objet lorsque les coordonnées 3D de n points de l'objet sont connues, que leurs positions en pixels 2D dans une image ont été trouvées et que les paramètres intrinsèques de la caméra sont connus. Comme les points 3D sont en unités métriques, la solution est une pose métrique complète sans ambiguïté d'échelle, à partir d'une seule image. Le même problème se pose que la caméra se localise par rapport à une carte ou qu'elle estime la pose d'un objet placé devant elle.
Trois correspondances sont le minimum. Le problème P3P a jusqu'à quatre solutions valides, si bien qu'un quatrième point sert à choisir la bonne. Avec davantage de points, le problème est surdéterminé et le bruit peut être moyenné. EPnP, de Lepetit, Moreno-Noguer et Fua (2009), résout le cas général en un temps linéaire en n en exprimant les points comme combinaisons de quatre points de contrôle virtuels. Les chaînes pratiques combinent généralement un solveur minimal à l'intérieur de RANSAC, pour rejeter les correspondances erronées, avec un raffinement non linéaire final qui minimise l'erreur de reprojection, par exemple avec Levenberg-Marquardt. Les fonctions solvePnP et solvePnPRansac d'OpenCV mettent en œuvre ces étapes.
PnP est une étape finale courante des estimateurs de pose appris. Des réseaux comme DOPE prédisent les positions dans l'image des coins de la boîte englobante 3D d'un objet et de son centroïde, et PnP transforme ces points clés en une pose à 6-DoF à l'aide des dimensions connues de l'objet et des paramètres intrinsèques de la caméra. Garder la géométrie hors du réseau permet au même modèle de fonctionner avec une autre caméra. La précision dépend de la dispersion des points et de la profondeur : lorsque tous les points sont proches les uns des autres ou sur un petit plan éloigné de la caméra, la pose devient mal conditionnée et peut basculer entre deux solutions semblables, une ambiguïté connue avec les petits marqueurs fiduciaires carrés.
Pourquoi c'est important
PnP est le pont standard entre les détections 2D et la pose 3D. Le suivi de marqueurs fiduciaires, la localisation visuelle par rapport à une carte, la réalité augmentée et l'estimation de pose d'objets par points clés pour la préhension en dépendent tous.
Applications principales
- Estimation de pose d'objets à 6-DoF à partir de points clés
- Suivi de marqueurs fiduciaires avec AprilTag et ArUco
- Localisation de caméra par rapport à une carte 3D
- Initialisation de l'odométrie visuelle et du SLAM
- Superpositions de réalité augmentée et suivi de caméra
En pratique
Un robot de préhension utilise un réseau de points clés entraîné sur des images synthétiques pour détecter les huit coins et le centroïde de la boîte englobante 3D d'une boîte de céréales connue. Pour chaque détection, les neuf pixels prédits et les points 3D correspondants tirés des dimensions de la boîte sont transmis, avec la matrice intrinsèque de la caméra, à un solveur PnP RANSAC, qui écarte les points clés en désaccord avec les autres et affine la pose en minimisant l'erreur de reprojection. La pose, exprimée dans le repère de la caméra, est transformée dans le repère de base du robot grâce à la calibration main-œil, puis envoyée au planificateur de prise. L'équipe rejette les poses dont l'erreur de reprojection moyenne dépasse quelques pixels, ce qui élimine la plupart des cas où un coin était occulté et mal prédit.
Idées reçues
- PnP a besoin de données de profondeur — il retrouve une pose métrique à partir d'une seule image RGB, étant donné des points 3D connus et les paramètres intrinsèques
- Trois points donnent une pose unique — P3P peut renvoyer jusqu'à quatre solutions, donc davantage de points sont nécessaires pour lever l'ambiguïté
- Plus de points corrigent toujours les mauvaises correspondances — les solveurs aux moindres carrés sont déviés par les valeurs aberrantes, donc RANSAC ou des pertes robustes sont nécessaires
- PnP est la même chose qu'ICP — PnP aligne des points 3D sur des observations 2D dans l'image ; ICP aligne deux ensembles de points 3D
Qui devrait le savoir
- Ingénieurs en vision par ordinateur et en perception robotique
- Développeurs d'estimation de pose pour la préhension
- Chercheurs en SLAM et en localisation visuelle
- Ingénieurs qui travaillent avec des marqueurs fiduciaires
Technologies associées
- EPnP
- P3P
- RANSAC
- OpenCV solvePnP
- AprilTag
Termes associés
Projets associés
- 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