1. What is Camera Calibration?
카메라 캘리브레이션은 카메라의 영상 좌표와 실제 장면의 기하 구조를 연결하는 파라미터를 구하는 과정입니다. 이 장에서는 캘리브레이션이 필요한 이유와 추정되는 파라미터, 그리고 그 결과가 mono 및 stereo NRV DVS 시스템에서 어떻게 쓰이는지 설명합니다.
카메라는 3차원 장면에서 들어오는 빛을 2차원 영상 좌표로 변환합니다. 하지만 이 변환은 완벽하지 않습니다. 렌즈는 빛을 굴절시키고, 센서는 고유한 크기와 픽셀 배열을 가지며, 광학 중심도 영상의 정중앙과 정확히 일치하지 않을 수 있습니다. 캘리브레이션은 이러한 카메라별 특성을 구해 영상 속 좌표를 더 정확한 기하 정보로 해석할 수 있게 합니다.
따라서 캘리브레이션은 단순히 영상을 보기 좋게 보정하는 작업이 아니라 정확한 측정을 위한 기반입니다. 카메라 모델을 알고 있으면 소프트웨어가 예측 가능한 기하 오차를 보정하고, 한 대 또는 여러 대의 카메라에서 얻은 관측값을 일관된 좌표계로 연결할 수 있습니다.
1.1 Basic Concept of Camera Calibration
모든 카메라는 렌즈와 센서 특성이 조금씩 다릅니다. 같은 모델의 제품이라도 제조 공차, 렌즈 장착 상태, 센서 정렬 차이로 인해 결과가 달라질 수 있습니다. 이 때문에 촬영된 영상이 실제 장면을 완벽한 비율로 옮긴 결과라고 볼 수는 없습니다.
카메라 캘리브레이션은 해당 카메라가 영상을 만드는 방식을 수치 파라미터로 표현합니다. 일반적으로 기하 구조를 알고 있는 패턴을 여러 위치와 각도에서 관측한 뒤, 패턴의 실제 구조와 영상에서 측정된 좌표를 비교합니다. 이렇게 구한 파라미터를 사용하면 이상적인 영상 기하와 카메라가 출력한 좌표 사이를 안정적으로 변환할 수 있습니다.
1.2 Why Camera Calibration is Needed
렌즈 왜곡은 캘리브레이션이 필요한 이유를 가장 쉽게 보여 주는 현상입니다. 특히 영상 가장자리에서는 직선이 휘어 보이거나, 같은 물체라도 화면 안의 위치에 따라 모양이 조금씩 달라질 수 있습니다. 이는 무작위 잡음이 아니라 위치에 따라 반복되는 체계적인 오차입니다.
이런 왜곡은 물체의 겉모양도 바꿉니다. 영상 중앙에서는 정상에 가깝게 보이던 물체가 가장자리에서는 늘어나거나 눌리고, 휘어 보일 수 있습니다. 그러면 같은 물체라도 위치에 따라 검출기의 반응이 달라져 검출 일관성과 정확도가 떨어집니다.
보정하지 않은 오차는 후속 처리에도 그대로 전달됩니다. 검출된 물체의 중심이 실제 위치에서 벗어나고, stereo 영상의 대응점이 같은 선에 놓이지 않으며, 깊이 추정 오차도 커질 수 있습니다. 정확한 물체 검출, 위치 추정, stereo matching, 치수 측정 또는 깊이 계산이 필요한 시스템이라면 캘리브레이션이 필요합니다.
Corresponding points must lie on the same epipolar line
카메라 두 대를 나란히 설치했다고 해서 두 영상이 자동으로 정확히 정렬되는 것은 아닙니다. 각 카메라의 내부 특성이 다르고, 높이·pitch·roll 방향에 작은 장착 오차가 있으면 같은 장면의 점이 좌우 영상에서 서로 다른 세로 위치에 나타납니다.
Stereo calibration은 두 카메라 사이의 관계를 추정합니다. 이어서 epipolar rectification을 적용하면 좌우 영상의 대응점이 같은 수평 epipolar line 위에 오도록 정렬됩니다. 그러면 stereo matching의 탐색 범위를 주로 수평 방향으로 제한할 수 있어 disparity와 깊이 추정이 더 안정적입니다.
1.3 Parameters Estimated in Mono and Stereo Calibration
캘리브레이션의 결과는 보정된 영상 하나가 아닙니다. 먼저 카메라 시스템을 설명하는 수치 파라미터를 구하고, 이후 보정에 사용할 수 있도록 저장합니다. 필요한 출력 항목은 카메라 한 대를 사용하는지, stereo pair를 사용하는지에 따라 달라집니다.
한 대의 카메라가 들어오는 빛을 영상 또는 이벤트 좌표로 변환하는 방식을 추정합니다.
Camera matrix K
초점 거리 fx, fy와 주점 cx, cy.
Distortion vector D
방사 왜곡 계수 k1, k2, k3…와 접선 왜곡 계수 p1, p2.
단일 영상의 왜곡을 제거하거나 개별 픽셀 및 이벤트 좌표를 보정할 때 사용합니다.
Left and right camera models
KL, DL 및 KR, DR.
Relative pose R, T
한 카메라 좌표계에서 다른 카메라 좌표계로의 회전과 이동을 나타냅니다.
Baseline ‖T‖
두 카메라 중심 사이의 실제 거리이며, 캘리브레이션 패턴과 같은 단위를 사용합니다.
Derived stereo geometry
Essential matrix E, fundamental matrix F, rectification transform을 포함합니다.
Epipolar 정렬, stereo matching, disparity 및 깊이 추정에 사용합니다.
1.4 Applying Calibration Parameters: Undistortion and Rectification
Calibration과 rectification은 밀접하게 연결되어 있지만 같은 작업은 아닙니다. Calibration은 캘리브레이션 데이터에서 카메라 파라미터를 구하는 과정이고, undistortion 또는 rectification은 그 파라미터를 실제 영상·측정값·이벤트 좌표에 적용해 보정 좌표를 만드는 과정입니다.
Calibration calculates the parameters; rectification applies them.
- Calibration
- Camera matrix와 왜곡 계수를 구하며, stereo 시스템에서는 두 카메라의 상대 pose도 함께 추정합니다. 보통 오프라인에서 실행하고, 렌즈·초점·센서·카메라 장착 상태가 바뀌면 다시 수행합니다. 직접적인 출력은 파라미터 집합입니다.
- Undistortion / rectification
- 추정한 파라미터를 실제 입력 데이터에 적용합니다. Mono 카메라에서는 주로 렌즈 왜곡을 제거합니다. Stereo pair에서는 좌우 영상을 다시 매핑해 대응점이 같은 수평 epipolar line 위에 오도록 맞춥니다.
온라인 인식 시스템에서 calibration 자체를 매 프레임 실행할 필요는 없습니다. 실시간으로 반복 적용되는 부분은 입력 데이터에 대한 correction 또는 rectification mapping입니다.
영상에 undistortion을 적용하면 직선이어야 하는 구조가 화면 전체에서 더 일관되게 표현되도록 픽셀을 재배치합니다. 이렇게 얻은 결과는 분석에 더 적합한 기하 구조를 갖습니다. 선택한 출력 범위에 따라 가장자리 일부가 잘리거나, 원본 픽셀이 대응되지 않는 빈 영역이 생길 수 있습니다.
캘리브레이션은 센서가 촬영하지 못한 세부 정보를 복원하지 않습니다. 알려진 기하 변환을 제공하고, undistortion 또는 rectification이 그 변환을 적용해 후속 알고리즘이 더 정확한 좌표를 사용하도록 합니다.
1.5 Calibration for Mono and Stereo NRV DVS Systems
NRV DVS는 mono 또는 stereo 구성으로 사용합니다. 여기서 NRV DVS는 센싱 장치를 가리키고, “mono”와 “stereo”는 카메라 구성 방식을 뜻합니다. 즉, NRV DVS calibration이 mono와 stereo와 별개인 세 번째 방식은 아닙니다. Mono calibration은 NRV DVS 한 대로, stereo calibration은 NRV DVS 두 대로 진행합니다.
Mono NRV DVS 시스템은 하나의 렌즈와 센서에서 출력되는 좌표를 보정하기 위한 카메라 모델을 구합니다. Stereo NRV DVS 시스템은 좌우 NRV DVS의 카메라 모델을 각각 구한 뒤, 두 장치의 상대 pose와 baseline을 추가로 추정합니다. 이 stereo 파라미터를 epipolar rectification에 사용하면 stereo matching과 깊이 계산 전에 좌우 카메라의 대응 구조를 같은 수평 epipolar line에 맞출 수 있습니다.