[컴퓨터비전개론] Camera Calibration - Intrinsic & Extrinsic Parameters, Homography

 

카메라 캘리브레이션 탐구: 3D 세상을 2D 이미지로 번역하는 법

디지털 이미지가 우리 삶 깊숙이 들어온 오늘날, 카메라는 단순한 빛 기록 장치를 넘어섰다. 카메라는 본질적으로 3차원 공간의 정보를 2차원 이미지 평면에 투영하는 복잡한 변환기이다. 이 변환 과정에서 발생하는 기하학적 특성과 광학적 왜곡을 정밀하게 이해하고 보정하는 중요한 과정이 바로 카메라 캘리브레이션(Camera Calibration)이다. 마치 정밀 과학 장비가 정확한 측정을 위해 주기적인 교정을 필요로 하듯, 컴퓨터 비전 시스템에서 카메라의 정확한 파라미터를 확보하는 것은 3D 재구성, 객체 추적, 증강 현실 등 수많은 응용 기술의 성능을 좌우하는 근본적인 작업이다.

이번 시간에는 카메라 캘리브레이션의 근본적인 개념부터 시작하여, 카메라 모델을 구성하는 핵심 파라미터들은 무엇인지, 그리고 이 파라미터들을 어떻게 체계적으로 알아낼 수 있는지 그 여정을 함께 따라가 보겠다. 복잡한 수식보다는 전체적인 개념의 흐름에 집중하여 이 복잡한 과정의 핵심 원리를 명확히 이해하는 것을 목표로 한다.


1. 카메라, 3D를 2D로 담는 마법의 상자 💡

카메라가 세상을 포착하는 방식은 가장 기본적으로 핀홀 카메라 모델(Pinhole Camera Model)로 근사하여 설명할 수 있다. 아주 작은 구멍(핀홀)을 통해 들어온 빛이 반대편 스크린(이미지 평면)에 상을 맺는 원리이다. 3차원 공간에 존재하는 한 점 (X, Y, Z)은 이 핀홀을 통과하면서 이미지 평면 위의 한 점 (x, y)으로 투영된다.

Camera Model & Parameter

이 투영 관계에서 핵심은 3D 공간상의 점의 깊이(Z 값, 카메라로부터의 거리)와 카메라 내부의 고유한 특성인 초점 거리(f)가 이미지에 맺히는 위치를 결정한다는 점이다. 간단히 말해, 3D 좌표 (X, Y, Z)는 초점 거리 f와 깊이 Z에 따라 스케일링되어 2D 이미지 좌표 (x, y)로 변환된다. 예를 들어, 이상적인 핀홀 모델에서 이미지 평면이 핀홀 앞에 있다고 가정하면, 이미지에 맺힌 점의 x 좌표는 대략 x = f * (X/Z) 와 같은 관계로 표현될 수 있다. 즉, 카메라로부터 멀리 있는(Z가 큰) 물체일수록 이미지에는 작게, 가까이 있는(Z가 작은) 물체일수록 크게 나타나는 현상을 수학적으로 설명하는 것이다.




2. 카메라의 비밀 코드: 내재(Intrinsic) & 외재(Extrinsic) 파라미터 🔑

카메라의 3D-2D 투영 과정을 완벽하게 기술하고 이해하기 위해서는 크게 두 가지 종류의 파라미터가 필요하다. 바로 내재 파라미터(Intrinsic Parameters)외재 파라미터(Extrinsic Parameters)이다.


2.1. 내재 파라미터 (Intrinsic Parameters): 카메라 자체의 DNA

내재 파라미터는 카메라 자체의 내부적인, 고유한 특성을 나타내는 값들이다. 렌즈의 초점 거리, 이미지 센서의 물리적인 특성 등 카메라가 제조될 때 결정되는 값들이지만, 동일 모델의 카메라라도 개별 장치마다 미세한 차이가 있을 수 있고 시간이 지남에 따라 변할 수도 있다. 그래서 정확한 컴퓨터 비전 응용을 위해서는 캘리브레이션을 통해 이 실제 값들을 찾아내야 한다.

주요 내재 파라미터는 다음과 같다.

  • 초점 거리 (Focal length, fx, fy): 렌즈 중심에서 이미지 센서(이미지 평면)까지의 거리이다. 이미지 센서 픽셀의 가로, 세로 크기가 다를 수 있어 보통 x축 방향의 초점 거리(fx)와 y축 방향의 초점 거리(fy)로 구분한다.
  • 주점 (Principal point, Cx, Cy): 렌즈의 광학적 중심축이 이미지 평면과 만나는 점의 좌표이다. 이상적으로는 이미지 센서의 정중앙이지만, 실제로는 미세하게 어긋나 있을 수 있다.
  • 비대칭 계수 (Skew parameter): 이미지 센서의 x축과 y축이 완벽하게 직교하지 않을 때 발생하는 비대칭 정도를 나타낸다. 대부분의 현대 카메라에서는 이 값이 거의 0에 가깝다.
  • (나중에 다룰) 왜곡 계수 (Distortion parameters): 렌즈의 광학적 불완전성으로 인해 발생하는 이미지 왜곡을 보정하기 위한 값들이다.
Focal Length / Principal Points

이러한 내재 파라미터들은 마치 카메라 내부의 설계도와 같이, 카메라 좌표계에 표현된 3D 점이 최종적으로 이미지 센서의 2D 픽셀 좌표로 어떻게 변환되는지를 정의하는 행렬 (흔히 카메라 행렬 M으로 표현)을 구성한다.



2.2. 외재 파라미터 (Extrinsic Parameters): 카메라의 세상 속 위치와 자세

외재 파라미터는 카메라 자체가 아닌, 카메라가 3차원 공간상에서 어떤 위치에 어떤 방향으로 놓여 있는지를 나타내는 정보이다. 이는 우리가 기준으로 삼는 절대적인 좌표계(보통 월드 좌표계 또는 객체 좌표계라고 부른다)에 대해 카메라가 상대적으로 어떻게 배치되어 있는지를 기술한다.

주요 외재 파라미터는 다음과 같다.

  • 회전 (Rotation, R): 월드 좌표계를 기준으로 카메라 좌표계가 얼마나 회전해 있는지를 나타내는 3x3 행렬이다.
  • 이동 (Translation, t): 월드 좌표계의 원점에서 카메라 좌표계의 원점까지 얼마나 떨어져 있는지를 나타내는 3x1 벡터이다.

이 외재 파라미터들은 마치 카메라의 GPS와 나침반 정보와 같이, 월드 좌표계에 있는 3D 점을 카메라의 시점에서 바라본 3D 점으로 변환하는 역할을 한다 (이를 강체 변환(Rigid Transformation) 행렬 W로 표현 가능).


종합: 3D에서 2D로의 여정

결국, 월드 좌표계의 한 3D 점 Q는 다음과 같은 여정을 거쳐 2D 이미지 평면 위의 점 q로 투영된다.

  1. 월드 좌표계의 점 Q가 외재 파라미터(W = [R|t])를 만나 카메라 좌표계의 3D 점 P로 변환된다. (세상 속 물체가 카메라 시점으로 들어옴)
  2. 카메라 좌표계의 점 P가 내재 파라미터 행렬(M)을 만나 이미지 평면의 2D 점 q로 투영된다. (카메라 내부를 거쳐 이미지 센서에 맺힘)
3D-2D Projection

이를 하나의 식으로 개념적으로 표현하면 q = s * M * W * Q 와 같이 나타낼 수 있다. 여기서 s는 스케일링 인자이다. 이처럼 내재 파라미터와 외재 파라미터가 합쳐져 3D 공간과 2D 이미지 사이의 완전한 투영 관계를 설명한다.




3. 완벽한 이미지를 향한 여정: 렌즈 왜곡 (Distortion) 보정 렌즈왜곡

앞서 설명한 핀홀 카메라 모델은 이상적인 상황을 가정한 것이다. 하지만 실제 카메라의 렌즈는 완벽한 구형이 아니거나 여러 장의 렌즈 조합으로 구성되고, 제조 과정에서의 미세한 오차 등으로 인해 이미지에 왜곡(Distortion)을 발생시킨다. 마치 어안렌즈로 찍은 사진처럼 가장자리가 휘어 보이거나, 직선이 곡선처럼 보이는 현상들이 바로 이 왜곡 때문이다.

주요 왜곡 유형은 다음과 같다.

  • 방사 왜곡 (Radial Distortion): 렌즈의 곡률 때문에 주로 발생하며, 이미지 중심에서 멀어질수록 왜곡이 심해지는 특징이 있다. 물체가 볼록하게 보이거나(barrel distortion) 오목하게 보이는(pincushion distortion) 형태로 나타난다.
    Radial Distortion

  • 접선 왜곡 (Tangential Distortion): 렌즈와 이미지 센서 평면이 완벽하게 평행하지 않을 때, 즉 조립 오차로 인해 발생한다. 이미지가 한쪽으로 미세하게 쏠리거나 기울어져 보이는 형태로 나타난다.
    Tangential Distortion

정확한 카메라 캘리브레이션은 이러한 왜곡 현상을 수학적으로 모델링하고, 그 모델의 파라미터(왜곡 계수 k1, k2, k3..., p1, p2...)들까지 찾아내는 과정을 포함한다. 이 왜곡 계수들도 카메라 고유의 특성이므로 내재 파라미터의 일부로 취급된다.




4. 카메라 파라미터, 어떻게 알아낼까? (캘리브레이션 과정 개요) 🎯

그렇다면 이 복잡한 내재 파라미터(왜곡 계수 포함)와 외재 파라미터는 어떻게 알아낼 수 있을까? 일반적으로는 정확한 기하학적 구조를 이미 알고 있는 특정 패턴(예: 체스보드 패턴, 원형 그리드 패턴)을 여러 다른 각도와 위치에서 카메라로 촬영한 이미지를 이용한다.

Camera Calibration Process

4.1. 평면 패턴과 호모그래피(Homography)의 마법

특히 체스보드처럼 평평한 평면 패턴을 사용하는 경우, 이 패턴이 놓인 3D 공간상의 평면(예: Z=0 평면) 위의 점들과, 이 점들이 카메라 이미지 평면에 투영된 2D 점들 사이에는 특별한 기하학적 관계가 성립한다. 이 관계를 호모그래피(Homography)라고 부르며, 3x3 행렬 H로 표현된다.

쉽게 말해, 호모그래피 H는 하나의 평면에서 다른 평면으로의 2D-to-2D 투영 변환 규칙이라고 생각할 수 있다. 이 호모그래피 행렬 H 안에는 놀랍게도 카메라의 내재 파라미터(M)와 (해당 이미지를 촬영할 때의) 외재 파라미터(R, t의 일부)에 대한 정보가 함께 섞여 있다. 개념적으로 H ≈ M * [r1, r2, t] 와 같은 관계를 가진다 (여기서 r1, r2는 회전 행렬 R의 특정 열벡터, t는 이동 벡터이다).

How to Find Projection

4.2. 숨겨진 파라미터 찾기: 호모그래피 분해

캘리브레이션 과정은 다음과 같이 진행된다.

  1. 패턴 이미지 촬영: 체스보드 패턴을 다양한 각도와 거리에서 여러 장 촬영한다.
  2. 특징점 검출: 각 이미지에서 체스보드의 코너점과 같이 명확한 특징점들의 2D 이미지 좌표를 정확하게 검출한다. 이 점들의 3D 월드 좌표는 우리가 체스보드 패턴의 크기를 알고 있으므로 이미 알려져 있다.
  3. 호모그래피 계산: 각 이미지에 대해, 알려진 3D 평면 위의 점들과 이미지 위의 2D 점들 사이의 대응 관계로부터 호모그래피 행렬 H를 계산한다. 최소 4쌍의 점이 있으면 H를 구할 수 있지만, 보통 더 많은 점을 사용하여 정확도를 높인다.
  4. 내재/외재 파라미터 분리: 이렇게 얻은 여러 개의 호모그래피 행렬 H들을 수학적으로 분석하고, 회전 행렬이 가지는 고유한 제약 조건(열벡터들이 서로 직교하고 크기가 1이어야 함) 등을 활용하여 H 안에 섞여 있던 내재 파라미터 행렬 M과 각 이미지별 외재 파라미터 R, t를 분리해낸다. 이 과정에서 여러 이미지로부터 얻은 정보를 종합하여 M을 구성하는 초점 거리(fx, fy), 주점(Cx, Cy) 등을 추정한다.
Homography


4.3. 왜곡 계수 추정 및 최종 다듬기

기본적인 내재 파라미터(M)와 외재 파라미터(R, t)의 초기값을 얻고 나면, 다음으로 렌즈 왜곡을 모델링하는 왜곡 계수(k1, k2, p1, p2 등)를 추정한다. 이는 이상적인 핀홀 모델에 따른 투영점과 실제 이미지에서 관측된 왜곡된 점 사이의 관계를 이용하여 계산한다.

캘리브레이션 과정은 종종 반복적으로 수행되어 결과의 정확도를 높인다. 초기 파라미터로 왜곡 계수를 찾고, 이 왜곡 계수를 이용하여 이미지 점들을 보정한 후, 보정된 점들을 사용하여 다시 내재/외재 파라미터를 더욱 정밀하게 계산하는 방식으로 최적화를 진행한다.


4.4. 얼마나 잘 되었을까? 재투영 오차 (Reprojection Error)

캘리브레이션이 얼마나 잘 수행되었는지 평가하는 중요한 지표는 재투영 오차(Reprojection Error)이다. 이는 다음과 같은 방식으로 계산된다.

  1. 캘리브레이션을 통해 얻은 카메라 파라미터(내재 M, 외재 W, 왜곡 계수)를 사용한다.
  2. 알려진 3D 체스보드 패턴의 점들을 이 파라미터들을 이용해 다시 2D 이미지 평면으로 투영시킨다. (계산된 2D 투영점 q')
  3. 이렇게 계산된 2D 투영점 q'과, 실제 이미지에서 검출했던 원래의 2D 특징점 q 사이의 거리(오차)를 모든 점에 대해 계산한다.
  4. 이 오차들의 평균이나 총합이 바로 재투영 오차이다.
Reprojcetion Error

이 재투영 오차가 작을수록 우리가 찾은 카메라 파라미터가 실제 카메라의 특성을 정확하게 반영하고 있다는 의미이다. 일반적으로 이 오차를 최소화하는 방향으로 파라미터 최적화가 이루어진다.




5. 캘리브레이션의 중요성 및 활용 ✨

정확한 카메라 캘리브레이션은 2D 이미지 정보로부터 3D 공간상의 객체의 크기, 위치, 방향 등을 정밀하게 계산하는 데 있어 필수적인 선행 작업이다. 예를 들어, 내재 파라미터를 이미 알고 있는 카메라가 있다면, 몇 개의 3D-2D 대응점만으로도 현재 카메라의 3D 공간상 위치와 자세(외재 파라미터)를 매우 빠르고 정확하게 추정할 수 있다 (이를 Perspective-n-Point (PnP) 문제라고 한다).

Detect extrinsic parameter with only small marker

이는 증강 현실(AR)에서 가상 객체를 실제 화면에 정확히 올려놓거나, 로봇이 주변 환경을 인식하고 자율적으로 움직이는 로봇 내비게이션, 공장에서 제품의 결함을 검사하는 산업 검사 시스템 등 수많은 첨단 컴퓨터 비전 응용 분야에서 실시간 3D 인식을 가능하게 하는 핵심 기술이다.




결론

카메라 캘리브레이션은 3D로 가득 찬 우리 세계와, 그 세계를 담아내는 2D 이미지 사이의 복잡한 변환 관계를 풀어내는 정교한 과정이다. 카메라 고유의 특성을 나타내는 내재 파라미터와 3D 공간에서의 카메라 위치 및 자세를 나타내는 외재 파라미터를 정확하게 파악함으로써, 우리는 비로소 이미지에 담긴 3차원 정보를 정량적으로 분석하고 활용할 수 있게 된다.

호모그래피와 같은 기하학적 도구를 활용하여 알려진 패턴 이미지로부터 이 파라미터들을 추출하고, 렌즈 왜곡 보정을 통해 실제 카메라의 비선형적 특성까지 모델링하는 일련의 과정은 컴퓨터 비전의 기초를 다지는 핵심 기술이다. 이 심층적인 이해를 바탕으로 다양한 비전 문제에 접근한다면, 더욱 견고하고 정확한 시스템을 설계하고 구현하는 데 큰 도움이 될 것이라 확신한다.



추천글:

[컴퓨터비전개론] Object Recognition - Template Matching, Fourier Descriptor

[컴퓨터비전개론] Convolutional Neural Network (CNN)

[컴퓨터비전개론] Overview of 3D Computer Vision - Homogeneous Transformation Matrix (HTM)

hyeon_B

안녕하세요! AI 기술을 이용해 더 나은 세상을 만들어 나가고 싶은 과기원생 Hyeon이라고 합니다. 저는 앞으로 인공지능 시대에는 지식을 '활용'하는 능력이 중요해질 것이라고 생각합니다. 대부분의 일들은 인공지능이 뛰어난 모습을 보이지만, 인공지능은 데이터로 부터 연관관계를 학습하기 때문에 지식들을 새로 통합해서 활용하는 능력이 부족합니다. 인공지능이 뉴턴 전에 만들어졌다면 사과가 떨어지는 이유에 대답하지 못했을 것이고, 아인슈타인 전에 만들어졌다면 중력이 어떻게 생기는지 설명하지 못했을 것입니다. 따라서 앞으로 우리는 '본질'을 탐구하고 그 본질로부터 다른 곳에 적용하며 인공지능을 현명하게 활용해야 할 것입니다. 함께 인공지능 시대를 준비합시다!

댓글 쓰기

다음 이전

POST ADS1

POST ADS 2