SolvePnP

David8·2023년 1월 26일
0

solvePnP

  1. Represent camera motion
    1. translation
      1. 카메라가 3차원 공간에서 이동한 경우, 이동량을 translation
      2. 3차원점 (x, y, x)에서 (x', y', z')으로 이동 --> translation은 vector = (x'-x, y'-y, z'-z)
    2. rotation
      1. 카메라 x, y, z에서 회전한 경우
    3. pose estimation
      1. solvePnP는 카메라의 이러한 pose를 추정
        1. 카메라 고정 --> 물체 pose 추정
        2. 물체 고정 --> 카메라 pose 추정
  2. pose estimation시 필요한 정보
    1. 2d coordinates of a few points
      1. 2차원 이미지 상의 점 (x,y)
    2. 3d locations of the same points
      1. 2차원 이미지에 대응하는 3차원 상의 점 (x,y,z)
      2. wordl coordinates 라고도 불림
    3. intrinsic parameters of the camera
      1. 초점 거리(focal lenght of camera)
      2. optical center in the image
      3. radial distortion
  3. pose estimation 표현 방법
    1. 카메라의 pose(rotation, translation)을 알고 있다고 가정할 때 --> world coordination의 점 p(U,V,W)를 수식을 통해 camera coordinates의 점(x,y,z)로 투영 가능
      1. r: rotation, t: translation
    2. camera coordinate로부터 image coordinates 구할 수 있음
      1. focal length(초점 거리): 렌즈 중심에서 이미지 센서 거리
      2. optical center: 렌즈의 중심점
        1. principal center: image plane의 센터
    3. 위의 두 식을 이용하여 rotation과 translation 예측 가능

      2차원 좌표, world coordinate, camera coordinate, 카메라 내부 패러미터를 알면 translation과 rotation을 알 수 있음 --> 카메라 위치를 알 수 있음

  4. orb slam에서 solvePnP 사용
    1. tracking 부분에서 intial pose estimation 단계에서 카메라 위치 추정을 위해 사용
      1. 영상에서 추출한 ORB feature를 기반으로 카메라 위치 추정
      2. 기존의 map 정보(3d)와 extract orb로 얻은 특징점(2D)정보를 가지고 이동한 값을 찾음

0개의 댓글