Open Source Robotics

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

Camera Intrinsics

  • 다른 이름: intrinsic parameters, intrinsic matrix
  • 카테고리: Foundations & spatial maths › Frames & transforms
  • 태그: camera-calibration, computer-vision, projective-geometry, sensors, 3d-perception

카메라 좌표계의 3D 점을 픽셀 좌표로 사상하는 카메라의 내부 파라미터로, 초점 거리, 주점, 렌즈 왜곡이 여기에 해당한다.

정의

카메라 내부 파라미터(camera intrinsics)는 카메라가 자기 좌표계 안의 3D 점에서 온 빛을 어떻게 픽셀 위치로 바꾸는지를 기술하는 파라미터이다. 핀홀 모델에서 이들은 3×3 행렬 K에 모이며, K에는 픽셀 단위로 표현한 초점 거리 fx와 fy, 광축이 이미지와 만나는 주점 (cx, cy), 그리고 때로는 거의 모든 최신 센서에서 0인 비대칭(skew) 항이 들어 있다. 카메라 좌표계의 점 (X, Y, Z)는 픽셀 u = fx·X/Z + cx, v = fy·Y/Z + cy로 투영된다. 실제 렌즈는 왜곡을 더하는데, 보통 Brown-Conrady 모델의 방사 방향 및 접선 방향 계수로 모델링하거나, 광각 렌즈에는 전용 어안 모델로 모델링한다.

내부 파라미터는 캘리브레이션으로 추정한다. Zhang(2000)이 도입한 일반적인 방법은 체커보드 같은 평면 타깃을 여러 방향에서 촬영하고, 재투영 오차를 최소화해 K와 왜곡 계수를 구한다. OpenCV, MATLAB, ROS의 카메라 캘리브레이션 도구는 모두 이 방식을 따른다. 깊이 카메라에 저장된 공장 캘리브레이션은 그대로 써도 될 만큼 좋은 경우가 많지만, 추측하지 말고 장치에서 읽어 와야 한다. 내부 파라미터는 해상도, 크롭, 줌, 때로는 초점에 따라 바뀌므로, 캘리브레이션은 그것을 수행한 이미지 모드에서만 유효하다.

내부 파라미터는 로봇이나 월드에 대해 카메라가 어디에 있는지를 기술하는 외부 파라미터(extrinsics)와 다르다. 둘을 합치면 월드 점에서 픽셀로 가는 전체 투영이 된다. 로봇은 내부 파라미터를 어디에서나 사용한다. 깊이 픽셀을 점군으로 역투영하고, Perspective-n-Point로 이미지 키포인트에서 물체 자세를 복원하고, 특징 매칭 전에 이미지 왜곡을 보정하고, 실제 카메라와 일치하는 합성 훈련 이미지를 렌더링하는 데 쓰인다. 내부 파라미터를 학습 모델 밖에 두고 이후의 기하학적 단계에서 적용하면, 같은 네트워크를 다른 카메라에서도 쓸 수 있다.

중요한 이유

픽셀과 실제 세계의 기하를 연결하는 모든 측정은 내부 파라미터에 의존한다. 이 값에 오차가 있으면 점군이 왜곡되고, 자세 추정이 편향되며, 시뮬레이션 이미지와 실제 이미지 사이의 일치가 깨진다. 따라서 정확한 내부 파라미터는 대부분의 로봇 비전의 전제 조건이다.

주요 응용

  • 깊이 이미지를 점군으로 역투영
  • PnP를 이용한 물체 및 카메라 자세 추정
  • 특징 추적과 시각 주행거리계 전의 이미지 왜곡 보정
  • 실제 카메라와 일치하는 합성 훈련 데이터 렌더링
  • 스테레오 정렬과 깊이 추정

실제 사례

한 팀이 파지 시스템의 RGB-D 카메라를 해상도가 다른 다른 카메라로 바꾼다. 키포인트 검출기는 픽셀 좌표를 출력하고, 자세는 카메라 행렬을 이용한 PnP로 복원된다. 재훈련하는 대신, 사용 중인 정확한 스트림 해상도에 대한 새 카메라의 내부 파라미터를 드라이버에서 읽어 오고, 왜곡을 보정한 이미지를 검출기에 넘기며, PnP 단계의 K를 갱신한다. 간단한 확인으로 알려진 물체의 3D 모델을 추정된 자세로 이미지에 재투영하는데, 모서리가 한두 픽셀 이내로 맞으면 파라미터가 맞다는 것이 확인된다. 나중에 속도를 위해 이미지를 절반으로 축소할 때는 fx, fy, cx, cy도 절반으로 줄인다.

흔한 오해

  • K의 초점 거리는 밀리미터 단위의 렌즈 초점 거리이다 — 픽셀 단위로 표현되며 센서 픽셀 크기와 이미지 해상도에 따라 달라진다
  • 이미지 크기를 바꾸거나 크롭해도 내부 파라미터는 그대로이다 — 크기를 조정하면 초점 거리와 주점이 바뀌고, 크롭하면 주점이 이동한다
  • 주점은 항상 정확히 이미지 중심이다 — 보통 가깝지만 몇 픽셀 이상 벗어날 수 있다
  • 로보틱스에서는 렌즈 왜곡을 무시해도 된다 — 왜곡은 이미지 가장자리 근처와 광각 렌즈에서 가장 중요하며, 보정하지 않으면 오차가 클 수 있다

알아야 할 사람

  • 로봇 비전 및 인식 엔지니어
  • 조작에 RGB-D 카메라를 쓰는 개발자
  • 합성 훈련 데이터를 생성하는 연구자
  • 사영 기하학을 배우는 로봇공학 학생

관련 기술

  • OpenCV calibrateCamera
  • ROS camera_calibration
  • 핀홀 카메라 모델(Pinhole Camera Model)
  • Brown-Conrady 왜곡 모델(Brown-Conrady Distortion Model)
  • Kannala-Brandt 어안 모델(Kannala-Brandt Fisheye Model)

관련 용어

  • Extrinsic Calibration
  • Perspective-n-Point
  • RGB Camera
  • Depth Camera
  • Point Cloud
  • Coordinate Frame

관련 프로젝트

  • 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
  • Gazebo: Industry-standard open-source robotics simulator with multi-physics and ROS integration
  • PULP-Dronet: Visual navigation for nano-drones with CNN inference onboard a PULP processor.
  • OpenWeedLocator: Low-cost Raspberry Pi weed detector that uses computer vision for precision spot spraying

동영상

  • Intrinsic and Extrinsic Matrices | Camera Calibration: First Principles of Computer Vision
  • Linear Camera Model | Camera Calibration: First Principles of Computer Vision

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