Konsla Hobby

konsla99 님의 블로그 입니다.

Computer Vision/캘리브레이션

카메라 캘리브레이션 (Camera Calibration) 이론

Konsla99 2025. 10. 19. 23:03

개요

카메라 캘리브레이션은 영상처리 CV분야에서 필수 과정입니다.
본 문서는 카메라 캘리브레이션의 개념, 
내/외부 파라미터, 카메라 핀홀 모델, 툴 에대한 
이론적 배경을 정리합니다.

목차


카메라 캘리브레이션이란

카메라의 파리미터를 추정하는 과정을 카메라 캘리브레이션이라고 한다.

실제 사람이 인식하는 세상은 3차원, 하지만 카메라가 인식하는 것은 2차원 이미지.
3차원 점들이 2D이미지 상에서 어디에 맺히는지 2D이미지와 3D공간의 관계를 모델링하고
이미지에서 왜곡된 부분을 보정하는데 중요한 역할을 한다.

정리:

  • 사진의 2D 점들과 실제 공간상의 3D좌표간의 관계를 매핑하는것
  • 이 관계는 카메라의 내/외부 파라미터에 의해 결정된다.
  • 이 파라미터를 찾는 과정을 camera calibration이라 한다.

intrinsic Parameters

카메라렌즈와 센서 위치에 의해 결정되는 항목

  • 이미지 패널의 이동
  • 이미지 패널의 기울기
  • 이미지 패널의 크기변화

에 대한 파라미터다. 

초점거리 (focal length)

  • 카메라 렌즈의 초점 거리로 , 이미지 센서 (CCD, CMOS..)와 렌즈 사이의 거리
  • 카메라 모델에서 초점거리(f) 는 픽셀 단위로 표현
  • $f_x$ , $f_y$ 로 표현한다
    • 이미지 센서의 물리적인 셀 간격이 가로 세로가 다를 수 있기 때문

주점 (principal point)

  • 이미지 센서의 중심점, 일반적으로 이미지의 중심과 일치한다.
  • 카메라 렌즈의 중심에서 이미지 센서에 내린 수선의 발의 영상 좌표
  • 영상 중심점과는 다른 의미다. (광축이 어긋날 수 있기 떄문에)
  • $c_x$ , $c_y$ 로 표현한다.

왜곡 계수 (distortion coefficients)

Note

  • 렌즈 왜곡으로 인한 이미지 왜곡을 나타내는 파라미터
  • 일반적으로 방사왜곡, 접선왜곡으로 나눌 수 있다.
  • 최근 카메라는  skew 에러가 거의 없어 비대칭 계수까지 고려하지 않음
  • skew_c = tan $a$
    • 이미지 센서 cell array의 y축이 기울어진 정도

Extrinsic Parameters

카메라 외부 파라미터는 카메라의 위치와 방향을 3D공간에서 정의한다.

  • 3D공간 내에서 카메라가 어디에 위치(translation)하는지
  • 3D공간 내에서 카메라가 어디를 바라고보고(Rotation) 있는지

즉 회전행렬과 이동 벡터로 구성된다.

회전 행렬 (rotation matrix)

  • 회전 행렬은 카메라의 회전 상태를 나타낸다.
  • 3X3크기의 행렬로 표현되며, 카메라가 실제 좌표계에서 어떻게 회전되어 있는지를 알 수 있다.

이동 벡터(Traslation Vector)

  • 카메라의 위치를 나타내며, 실제 좌표계->카메라 좌표계로 평행 이동을 표현
  • 3D공간에서 카메라의 원점을 특정 위치로 이동시키는 역할

외부 파라미터의 활용

실제 좌표 -> 카메라 좌표계로 변환

$P_c = R \cdot\ P_w + T$

  • 월드좌표계에서 주어진 3D 점 $P_w$ 를 카메라 좌표계로 변환하려면, 외부 파라미터를 사용해 위와 같이 계산할 수 있다.
  • $P_c$는 카메라 좌표계에서 포인트 위치

카메라 좌표 -> 이미지 평면 투영

  • 변환된 점 $P_c$를 이미지 평면으로 투영하려면, 내부 파라미터를 적용
  • 이과정이 카메라 모델의 핵심이며, 외부 파라미터가 이 과정의 첫 단계에서 중요하다.

Coordinate System

3D 좌표계

Camera Coordinate System

  • 카메라의 위치가 원점이 되는 좌표계
  • X,Y,,Z에 해당
  • Image Plane은 원점 기준 Z축 (optic axis) 초점거리 만큼 떨어진 위치에 위치

World Coordinate System

  • 다양한 좌표계간 관계를 설명하기 위해 사용되는 좌표계
  • 1개의 임의의 원점을 정의
  • U, V, W에 해당
  • 해당 좌표계를 기준으로 서로의 관계를 확인 할 수 있다.

동일한 좌표라도 좌표계에 따라 다른 좌표값을 갖는다.

2D좌표계

Image(Film) Coordinate System

  • 주점이 원점이 되는 2D 좌표계

Pixel Coordinate System

  • 이미지 처리/저장에 사용되는 좌표계
  • OpenCV는 좌상단이 원점
  • OpenGL은 좌하단이 원점

카메라 파라미터 추정 방법

대응점 추출

카메라 파라미터를 추정하기 위해서는, 3D공간의 점이 2D이미지에서 어떻게 보이는지를 표현하는 대응점이 필요하다. 다음과 같은 방법을 사용해 대응점을 추출할 수 있다.

  • 캘리브레이션 패턴 활용
    • 체커보드, 원형 그리드 같은 패턴을 통해 좌표간 대응 추출
  • 특징점 매칭 
    • 이미지의 추출한 특징점을 3D모델이나 다른 이미지의 특징점들과 매칭해 추출
  • 자연환경 활용
    • 주변 환경의 구조와 위치기반으로 대응점 추출
    • 사전의 환경의 3D모델 혹은 SLAM같은 기법이 필요

파라미터 추정

대응점을 얻으면, 카메라 파라미트를 추정하기 위해 비선형 최적화 방법이 필요

  • 핀홀 카메라 모델 적용 
    • 대응점들을 통해 카메라의 기본 투영 모델을 적용해 3D=>2D모델링
  • 최적화 알고리즘
    • 비선형 최적화 알고리즘을 사용
    • 모델이 예측한 2D위치와 실제2D위치간의 오차를 최소화 하는 방향으로 조정

왜곡 보정

카메라 렌즈의 왜곡으로 인핸 왜곡은
왜곡 계수를 사용해 이미지를 보정한다.

카메라 파라미터 활용 예시

대응점을 사용해 카메라 파라미터를 구할 수 있다,
카메라 영상은 3D point를 2D에 프로젝션하여 얻어진다.
핀홀 카메라 모델에서 이러한 변환 관계는 아래와 같이 모델링 된다.

  • X, Y, Z  : 월드 좌표계 상의 3D 점
  • [R|t] : 월드 좌표계를 카메라 좌표계로 변환시키기 위한 회전/이동 변환 행렬 - Extrinsic camera parameters
  • A : 카메라 내부 파라미터 행렬 - Intrinsic camera parameters

* A와 [R|t]를 합쳐 camera matrix 또는 projection matrix 라 부름

반응형
END