Open Source Robotics

Una colección curada de proyectos, herramientas y software de robótica de código abierto de alta calidad.

Perspective-n-Point

  • También llamado: PnP
  • Categoría: Sensing › Perception outputs
  • Etiquetas: pose-estimation, computer-vision, projective-geometry, 3d-perception, localization

El problema de encontrar la pose de una cámara calibrada respecto a un objeto a partir de n puntos 3D conocidos del objeto y sus proyecciones 2D en una imagen.

Definición

Perspective-n-Point (PnP) busca la rotación y la traslación entre una cámara y un objeto cuando se conocen las coordenadas 3D de n puntos del objeto, se han encontrado sus posiciones de píxel 2D en una imagen y se conocen los parámetros intrínsecos de la cámara. Como los puntos 3D están en unidades métricas, la solución es una pose métrica completa, sin ambigüedad de escala, a partir de una sola imagen. El mismo problema aparece tanto si la cámara se localiza a sí misma respecto a un mapa como si estima la pose de un objeto que tiene delante.

Tres correspondencias son el mínimo. El problema P3P tiene hasta cuatro soluciones válidas, así que se usa un cuarto punto para elegir la correcta. Con más puntos, el problema queda sobredeterminado y el ruido puede promediarse. EPnP, de Lepetit, Moreno-Noguer y Fua (2009), resuelve el caso general en un tiempo lineal en n expresando los puntos como combinaciones de cuatro puntos de control virtuales. Los pipelines prácticos suelen combinar un solucionador mínimo dentro de RANSAC, para descartar correspondencias erróneas, con un refinamiento no lineal final que minimiza el error de reproyección, por ejemplo con Levenberg-Marquardt. Las funciones solvePnP y solvePnPRansac de OpenCV implementan estos pasos.

PnP es una etapa final habitual de los estimadores de pose aprendidos. Redes como DOPE predicen las posiciones en la imagen de las esquinas de la caja envolvente 3D de un objeto y de su centroide, y PnP convierte esos puntos clave en una pose de 6-DoF usando las dimensiones conocidas del objeto y los parámetros intrínsecos de la cámara. Mantener la geometría fuera de la red significa que el mismo modelo funciona con otra cámara. La precisión depende de la dispersión y la profundidad de los puntos: cuando todos los puntos están muy juntos o en un plano pequeño lejos de la cámara, la pose queda mal condicionada y puede saltar entre dos soluciones parecidas, una ambigüedad conocida con los marcadores fiduciales cuadrados pequeños.

Por qué importa

PnP es el puente estándar entre las detecciones 2D y la pose 3D. El seguimiento de marcadores fiduciales, la localización visual respecto a un mapa, la realidad aumentada y la estimación de la pose de objetos basada en puntos clave para el agarre dependen de él.

Aplicaciones clave

  • Estimación de la pose de 6-DoF de objetos a partir de puntos clave
  • Seguimiento de marcadores fiduciales con AprilTag y ArUco
  • Localización de la cámara respecto a un mapa 3D
  • Inicialización de la odometría visual y del SLAM
  • Superposiciones de realidad aumentada y seguimiento de la cámara

En la práctica

Un robot de agarre usa una red de puntos clave entrenada con imágenes sintéticas para detectar las ocho esquinas y el centroide de la caja envolvente 3D de una caja de cereales conocida. Para cada detección, los nueve píxeles predichos y los puntos 3D correspondientes, obtenidos de las dimensiones de la caja, se pasan junto con la matriz intrínseca de la cámara a un solucionador PnP con RANSAC, que descarta los puntos clave que no concuerdan con el resto y refina la pose minimizando el error de reproyección. La pose, en el sistema de la cámara, se transforma al sistema de la base del robot con la calibración mano-ojo y se envía al planificador de agarres. El equipo rechaza las poses cuyo error medio de reproyección supera unos pocos píxeles, lo que filtra la mayoría de los casos en que una esquina estaba ocluida y se predijo mal.

Ideas erróneas comunes

  • PnP necesita datos de profundidad — recupera una pose métrica a partir de una sola imagen RGB, dados puntos 3D conocidos y los parámetros intrínsecos
  • Tres puntos dan una pose única — P3P puede devolver hasta cuatro soluciones, así que se necesitan más puntos para desambiguar
  • Más puntos siempre compensan las correspondencias erróneas — los valores atípicos desvían a los solucionadores de mínimos cuadrados, así que se necesitan RANSAC o funciones de pérdida robustas
  • PnP es lo mismo que ICP — PnP alinea puntos 3D con observaciones 2D en la imagen; ICP alinea dos conjuntos de puntos 3D

Quién debería saberlo

  • Ingenieros de visión por computador y de percepción robótica
  • Desarrolladores de estimación de pose para el agarre
  • Investigadores de SLAM y localización visual
  • Ingenieros que trabajan con marcadores fiduciales

Tecnologías relacionadas

  • EPnP
  • P3P
  • RANSAC
  • OpenCV solvePnP
  • AprilTag

Términos relacionados

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

Proyectos relacionados

  • 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

Este sitio web requiere JavaScript. Por favor, habilite JavaScript para explorar nuestros proyectos de robótica.