Open Source Robotics

고품질 오픈소스 로봇 프로젝트, 도구 및 소프트웨어의 엄선된 컬렉션.

Perspective-n-Point

  • 다른 이름: PnP
  • 카테고리: Sensing › Perception outputs
  • 태그: pose-estimation, computer-vision, projective-geometry, 3d-perception, localization

물체 위의 알려진 n개 3D 점과 그 점들의 이미지상 2D 투영으로부터, 캘리브레이션된 카메라의 물체에 대한 자세를 구하는 문제.

정의

Perspective-n-Point(PnP)는 물체 위 n개 점의 3D 좌표가 알려져 있고, 이미지에서 그 점들의 2D 픽셀 위치를 찾았으며, 카메라 내부 파라미터가 알려져 있을 때, 카메라와 물체 사이의 회전과 이동을 구하는 문제이다. 3D 점이 미터 단위이므로, 해는 단 한 장의 이미지로부터 스케일 모호성 없는 완전한 미터 단위 자세가 된다. 카메라가 지도에 대해 자기 위치를 추정하든, 앞에 있는 물체의 자세를 추정하든 같은 문제가 나타난다.

최소 세 개의 대응이 필요하다. P3P 문제는 유효한 해가 최대 네 개이므로, 네 번째 점으로 올바른 해를 고른다. 점이 더 많으면 문제는 과결정되고 잡음을 평균할 수 있다. Lepetit, Moreno-Noguer, Fua(2009)의 EPnP는 점들을 네 개의 가상 제어점의 결합으로 표현해 일반적인 경우를 n에 선형인 시간에 푼다. 실용 파이프라인은 보통 잘못된 대응을 걸러 내기 위해 RANSAC 안에서 최소 솔버를 쓰고, 예를 들어 Levenberg-Marquardt로 재투영 오차를 최소화하는 최종 비선형 정제와 결합한다. OpenCV의 solvePnP와 solvePnPRansac이 이 단계들을 구현한다.

PnP는 학습 기반 자세 추정기의 흔한 후단이다. DOPE 같은 네트워크는 물체의 3D 경계 상자 꼭짓점과 무게중심의 이미지 위치를 예측하고, PnP는 물체의 알려진 치수와 카메라 내부 파라미터를 이용해 그 키포인트를 6-DoF 자세로 바꾼다. 기하를 네트워크 밖에 두면 같은 모델을 다른 카메라에서도 쓸 수 있다. 정확도는 점의 분포와 깊이에 달려 있다. 모든 점이 서로 가깝게 모여 있거나 카메라에서 먼 작은 평면 위에 있으면 자세의 조건수가 나빠지고 비슷한 두 해 사이를 오갈 수 있는데, 이는 작은 정사각형 피두셜 마커에서 알려진 모호성이다.

중요한 이유

PnP는 2D 검출에서 3D 자세로 가는 표준적인 다리이다. 피두셜 마커 추적, 지도에 대한 시각적 위치 추정, 증강 현실, 파지를 위한 키포인트 기반 물체 자세 추정이 모두 PnP에 의존한다.

주요 응용

  • 키포인트로부터 6-DoF 물체 자세 추정
  • AprilTag와 ArUco를 이용한 피두셜 마커 추적
  • 3D 지도에 대한 카메라 위치 추정
  • 시각 주행거리계와 SLAM 초기화
  • 증강 현실 오버레이와 카메라 추적

실제 사례

한 파지 로봇이 합성 이미지로 훈련한 키포인트 네트워크를 사용해, 알려진 시리얼 상자의 3D 경계 상자 꼭짓점 8개와 무게중심을 검출한다. 각 검출마다 예측된 픽셀 9개와 상자 치수로부터 얻은 대응 3D 점들을 카메라의 내부 파라미터 행렬과 함께 RANSAC PnP 솔버에 넘기면, 솔버는 나머지와 맞지 않는 키포인트를 버리고 재투영 오차를 최소화해 자세를 정제한다. 카메라 좌표계의 자세는 핸드-아이 캘리브레이션으로 로봇 베이스 좌표계로 변환되어 파지 계획기로 보내진다. 팀은 평균 재투영 오차가 몇 픽셀을 넘는 자세를 기각하는데, 이렇게 하면 꼭짓점이 가려져 잘못 예측된 경우 대부분이 걸러진다.

흔한 오해

  • PnP에는 깊이 데이터가 필요하다 — 알려진 3D 점과 내부 파라미터가 주어지면 단일 RGB 이미지로부터 미터 단위 자세를 복원한다
  • 세 점이면 자세가 하나로 정해진다 — P3P는 해를 최대 네 개까지 낼 수 있으므로 모호성을 없애려면 점이 더 필요하다
  • 점이 많으면 잘못된 대응이 항상 해결된다 — 최소 제곱 솔버는 이상치에 끌려가므로 RANSAC이나 강건 손실이 필요하다
  • PnP는 ICP와 같다 — PnP는 3D 점을 2D 이미지 관측에 정렬하고, ICP는 두 3D 점 집합을 정렬한다

알아야 할 사람

  • 컴퓨터 비전 및 로봇 인식 엔지니어
  • 파지를 위한 자세 추정 개발자
  • SLAM 및 시각적 위치 추정 연구자
  • 피두셜 마커를 다루는 엔지니어

관련 기술

  • EPnP
  • P3P
  • RANSAC
  • OpenCV solvePnP
  • AprilTag

관련 용어

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

관련 프로젝트

  • 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

이 웹사이트는 JavaScript가 필요합니다. 오픈소스 로봇 프로젝트를 탐색하려면 JavaScript를 활성화하세요.