Open Source Robotics

Uma coleção selecionada de projetos, ferramentas e software de robótica de código aberto de alta qualidade.

Perspective-n-Point

  • Também chamado: PnP
  • Categoria: Sensing › Perception outputs
  • Tags: pose-estimation, computer-vision, projective-geometry, 3d-perception, localization

O problema de encontrar a pose de uma câmera calibrada em relação a um objeto a partir de n pontos 3D conhecidos dele e de suas projeções 2D em uma imagem.

Definição

Perspective-n-Point (PnP) busca a rotação e a translação entre uma câmera e um objeto quando as coordenadas 3D de n pontos do objeto são conhecidas, suas posições de pixel 2D em uma imagem foram encontradas e os parâmetros intrínsecos da câmera são conhecidos. Como os pontos 3D estão em unidades métricas, a solução é uma pose métrica completa, sem ambiguidade de escala, a partir de uma única imagem. O mesmo problema aparece tanto quando a câmera está se localizando em relação a um mapa quanto quando estima a pose de um objeto à sua frente.

Três correspondências são o mínimo. O problema P3P tem até quatro soluções válidas, então um quarto ponto é usado para escolher a correta. Com mais pontos, o problema fica sobredeterminado e o ruído pode ser promediado. O EPnP, de Lepetit, Moreno-Noguer e Fua (2009), resolve o caso geral em tempo linear em n expressando os pontos como combinações de quatro pontos de controle virtuais. Pipelines práticos normalmente combinam um solucionador mínimo dentro do RANSAC, para rejeitar correspondências erradas, com um refinamento não linear final que minimiza o erro de reprojeção, por exemplo com Levenberg-Marquardt. As funções solvePnP e solvePnPRansac do OpenCV implementam essas etapas.

O PnP é uma etapa final comum de estimadores de pose aprendidos. Redes como a DOPE preveem as posições na imagem dos cantos da caixa delimitadora 3D de um objeto e do seu centroide, e o PnP transforma esses pontos-chave em uma pose de 6-DoF usando as dimensões conhecidas do objeto e os parâmetros intrínsecos da câmera. Manter a geometria fora da rede significa que o mesmo modelo funciona com uma câmera diferente. A precisão depende do espalhamento e da profundidade dos pontos: quando todos os pontos estão muito próximos ou em um plano pequeno longe da câmera, a pose fica mal condicionada e pode alternar entre duas soluções parecidas, uma ambiguidade conhecida com marcadores fiduciais quadrados pequenos.

Por que importa

O PnP é a ponte padrão entre detecções 2D e pose 3D. O rastreamento de marcadores fiduciais, a localização visual em relação a um mapa, a realidade aumentada e a estimativa de pose de objetos baseada em pontos-chave para preensão dependem dele.

Principais aplicações

  • Estimativa de pose de 6-DoF de objetos a partir de pontos-chave
  • Rastreamento de marcadores fiduciais com AprilTag e ArUco
  • Localização da câmera em relação a um mapa 3D
  • Inicialização de odometria visual e SLAM
  • Sobreposições de realidade aumentada e rastreamento da câmera

Na prática

Um robô de preensão usa uma rede de pontos-chave treinada com imagens sintéticas para detectar os oito cantos e o centroide da caixa delimitadora 3D de uma caixa de cereal conhecida. Para cada detecção, os nove pixels previstos e os pontos 3D correspondentes, obtidos das dimensões da caixa, são passados com a matriz intrínseca da câmera a um solucionador PnP com RANSAC, que descarta os pontos-chave que discordam do restante e refina a pose minimizando o erro de reprojeção. A pose, no referencial da câmera, é transformada para o referencial da base do robô com a calibração mão-olho e enviada ao planejador de preensão. A equipe rejeita poses cujo erro médio de reprojeção fica acima de poucos pixels, o que filtra a maioria dos casos em que um canto estava ocluído e foi mal previsto.

Equívocos comuns

  • O PnP precisa de dados de profundidade — ele recupera a pose métrica a partir de uma única imagem RGB, dados pontos 3D conhecidos e os parâmetros intrínsecos
  • Três pontos dão uma pose única — o P3P pode retornar até quatro soluções, então são necessários mais pontos para desambiguar
  • Mais pontos sempre corrigem correspondências ruins — solucionadores de mínimos quadrados são desviados por outliers, então RANSAC ou funções de perda robustas são necessários
  • PnP é o mesmo que ICP — o PnP alinha pontos 3D a observações 2D na imagem; o ICP alinha dois conjuntos de pontos 3D

Quem deve saber

  • Engenheiros de visão computacional e de percepção robótica
  • Desenvolvedores de estimativa de pose para preensão
  • Pesquisadores de SLAM e localização visual
  • Engenheiros que trabalham com marcadores fiduciais

Tecnologias relacionadas

  • EPnP
  • P3P
  • RANSAC
  • OpenCV solvePnP
  • AprilTag

Termos relacionados

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

Projetos 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 site requer JavaScript. Por favor, habilite o JavaScript para explorar nossos projetos de robótica.