Open Source Robotics

Una raccolta curata di progetti, strumenti e software di robotica open source di alta qualità per la comunità della robotica.

Perspective-n-Point

  • Detto anche: PnP
  • Categoria: Sensing › Perception outputs
  • Tag: pose-estimation, computer-vision, projective-geometry, 3d-perception, localization

Il problema di trovare la posa di una telecamera calibrata rispetto a un oggetto a partire da n punti 3D noti dell'oggetto e dalle loro proiezioni 2D in un'immagine.

Definizione

Perspective-n-Point (PnP) cerca la rotazione e la traslazione tra una telecamera e un oggetto quando sono note le coordinate 3D di n punti dell'oggetto, sono state trovate le loro posizioni 2D in pixel in un'immagine e sono noti i parametri intrinseci della telecamera. Poiché i punti 3D sono in unità metriche, la soluzione è una posa metrica completa, senza ambiguità di scala, da una sola immagine. Lo stesso problema si presenta sia quando la telecamera si localizza rispetto a una mappa sia quando stima la posa di un oggetto davanti a sé.

Tre corrispondenze sono il minimo. Il problema P3P ha fino a quattro soluzioni valide, quindi si usa un quarto punto per scegliere quella giusta. Con più punti il problema è sovradeterminato e il rumore può essere mediato. EPnP, di Lepetit, Moreno-Noguer e Fua (2009), risolve il caso generale in tempo lineare in n esprimendo i punti come combinazioni di quattro punti di controllo virtuali. Le pipeline pratiche combinano di solito un risolutore minimo all'interno di RANSAC, per scartare le corrispondenze sbagliate, con un raffinamento non lineare finale che minimizza l'errore di riproiezione, per esempio con Levenberg-Marquardt. Le funzioni solvePnP e solvePnPRansac di OpenCV implementano questi passaggi.

PnP è uno stadio finale comune degli stimatori di posa appresi. Reti come DOPE prevedono le posizioni nell'immagine degli spigoli del bounding box 3D di un oggetto e del suo centroide, e PnP trasforma questi keypoint in una posa a 6-DoF usando le dimensioni note dell'oggetto e i parametri intrinseci della telecamera. Tenere la geometria fuori dalla rete significa che lo stesso modello funziona con una telecamera diversa. L'accuratezza dipende dalla dispersione e dalla profondità dei punti: quando tutti i punti sono vicini tra loro o su un piccolo piano lontano dalla telecamera, la posa diventa mal condizionata e può alternarsi tra due soluzioni simili, un'ambiguità nota con i piccoli marker fiduciali quadrati.

Perché è importante

PnP è il ponte standard tra rilevamenti 2D e posa 3D. Il tracciamento dei marker fiduciali, la localizzazione visiva rispetto a una mappa, la realtà aumentata e la stima della posa degli oggetti basata su keypoint per la presa si basano tutti su di esso.

Applicazioni principali

  • Stima della posa a 6-DoF di oggetti a partire da keypoint
  • Tracciamento di marker fiduciali con AprilTag e ArUco
  • Localizzazione della telecamera rispetto a una mappa 3D
  • Inizializzazione dell'odometria visiva e dello SLAM
  • Sovrapposizioni di realtà aumentata e tracciamento della telecamera

In pratica

Un robot di presa usa una rete di keypoint addestrata su immagini sintetiche per rilevare gli otto spigoli e il centroide del bounding box 3D di una scatola di cereali nota. Per ogni rilevamento, i nove pixel previsti e i corrispondenti punti 3D ricavati dalle dimensioni della scatola vengono passati, insieme alla matrice intrinseca della telecamera, a un risolutore PnP con RANSAC, che scarta i keypoint in disaccordo con gli altri e raffina la posa minimizzando l'errore di riproiezione. La posa, nel sistema di riferimento della telecamera, viene trasformata nel sistema di riferimento della base del robot con la calibrazione mano-occhio e inviata al pianificatore della presa. Il team scarta le pose il cui errore medio di riproiezione supera pochi pixel, il che filtra la maggior parte dei casi in cui uno spigolo era occluso ed è stato previsto male.

Idee sbagliate comuni

  • PnP richiede dati di profondità — ricava una posa metrica da una sola immagine RGB, dati punti 3D noti e i parametri intrinseci
  • Tre punti danno una posa unica — P3P può restituire fino a quattro soluzioni, quindi servono più punti per disambiguare
  • Più punti correggono sempre le corrispondenze sbagliate — i risolutori ai minimi quadrati vengono deviati dagli outlier, quindi servono RANSAC o funzioni di perdita robuste
  • PnP è la stessa cosa di ICP — PnP allinea punti 3D a osservazioni 2D nell'immagine; ICP allinea due insiemi di punti 3D

Chi dovrebbe saperlo

  • Ingegneri di visione artificiale e percezione robotica
  • Sviluppatori di stima della posa per la presa
  • Ricercatori di SLAM e localizzazione visiva
  • Ingegneri che lavorano con marker fiduciali

Tecnologie correlate

  • EPnP
  • P3P
  • RANSAC
  • OpenCV solvePnP
  • AprilTag

Termini correlati

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

Progetti correlati

  • 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

Questo sito richiede JavaScript. Attiva JavaScript per esplorare i nostri progetti di robotica open source.