재투영 오류의 정의

재투영 오류는 3D 공간에서 추정된 카메라 파라미터를 사용하여 2D 이미지 평면에 투영된 점들과 실제 관측된 점들 사이의 차이를 나타낸다. 이는 카메라 캘리브레이션의 정확성을 평가하는 중요한 지표로 사용된다.

재투영 오류는 다음과 같이 정의된다. 주어진 3D 점 \mathbf{X}_i = (X_i, Y_i, Z_i)와 카메라 파라미터(내부 및 외부 파라미터)를 사용하여 2D 이미지 평면에 투영된 점 \mathbf{x}_i = (x_i, y_i)가 있고, 이때 실제 관측된 2D 점을 \hat{\mathbf{x}}_i = (\hat{x}_i, \hat{y}_i)라고 할 때, 재투영 오류는 다음과 같이 계산된다:

\mathbf{e}_i = \hat{\mathbf{x}}_i - \mathbf{x}_i

즉, \mathbf{e}_i는 실제 관측된 2D 점과 모델을 통해 예측된 2D 점 사이의 차이를 나타낸다. 이 차이는 이미지 평면 상에서의 픽셀 단위 거리로 측정된다.

재투영 오류의 수식적 표현

재투영 오류는 각 관측점에 대해 정의되며, N개의 관측점이 주어진다면 전체 재투영 오류는 모든 점에 대한 평균 제곱 오차로 표현할 수 있다:

E = \frac{1}{N} \sum_{i=1}^{N} \left( \hat{x}_i - x_i \right)^2 + \left( \hat{y}_i - y_i \right)^2

이를 벡터 표현으로 확장하면, 다음과 같이 간결하게 표현할 수 있다:

E = \frac{1}{N} \sum_{i=1}^{N} \|\hat{\mathbf{x}}_i - \mathbf{x}_i\|^2

여기서, \|\hat{\mathbf{x}}_i - \mathbf{x}_i\|는 2D 이미지 좌표 상에서의 유클리드 거리이다. 이 오류 값은 카메라 파라미터 최적화 과정에서 최소화되어야 하며, 이를 통해 캘리브레이션의 정확성을 높일 수 있다.

재투영 과정

재투영 과정은 3D 점을 2D 이미지 평면으로 투영하는 과정으로, 카메라 모델에 따라 다르게 표현된다. 핀홀 카메라 모델을 기준으로 설명하면, 3D 점 \mathbf{X}_i = (X_i, Y_i, Z_i)는 먼저 카메라 좌표계로 변환되고, 그 다음 2D 이미지 좌표계로 투영된다.

먼저, 3D 점 \mathbf{X}_i를 외부 파라미터(회전 행렬 \mathbf{R}과 변환 벡터 \mathbf{t})를 사용하여 카메라 좌표계로 변환한다:

\mathbf{X}'_i = \mathbf{R}\mathbf{X}_i + \mathbf{t}

그 다음, 내부 파라미터를 적용하여 이미지 평면으로 투영한다. 내부 파라미터 행렬 \mathbf{K}를 사용하여 2D 좌표로 변환된 점 \mathbf{x}_i는 다음과 같이 표현된다:

\mathbf{x}_i = \mathbf{K} \begin{bmatrix} X'_i \\ Y'_i \\ Z'_i \end{bmatrix}

여기서 \mathbf{K}는 카메라의 내부 파라미터를 포함하는 행렬로, 일반적으로 다음과 같은 형태를 갖는다:

\mathbf{K} = \begin{bmatrix} f_x & 0 & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{bmatrix}

여기서 f_xf_y는 초점 거리, c_xc_y는 이미지 센터 좌표를 나타낸다.

재투영 오류의 상세 설명

재투영 과정이 완료되면, 2D 이미지 평면에 투영된 점 \mathbf{x}_i = (x_i, y_i)와 실제 이미지에서 측정된 점 \hat{\mathbf{x}}_i = (\hat{x}_i, \hat{y}_i) 사이의 차이를 계산하여 재투영 오류를 구할 수 있다.

재투영 오류는 각 3D 점마다 계산되며, 이를 통해 전체 카메라 파라미터 세트에 대한 캘리브레이션 정확도를 평가할 수 있다. 보통 이 오류는 최적화 과정에서 사용되며, 주어진 카메라 파라미터를 계속 수정하여 재투영 오류를 최소화하는 방향으로 최적화한다.

최적화 문제로서의 재투영 오류

재투영 오류를 최소화하는 문제는 비선형 최적화 문제로 정의된다. 주어진 카메라 파라미터 세트 \theta (내부 파라미터와 외부 파라미터 모두 포함)를 사용하여 각 관측점에 대해 재투영 오류 \mathbf{e}_i(\theta)를 계산한 후, 이 오류들의 합을 최소화하는 방식이다.

이 최적화 문제는 다음과 같이 정의된다:

\min_{\theta} \sum_{i=1}^{N} \|\hat{\mathbf{x}}_i - \mathbf{x}_i(\theta)\|^2

이때 \mathbf{x}_i(\theta)는 파라미터 \theta에 의해 계산된 재투영 점이고, \hat{\mathbf{x}}_i는 실제 관측된 점이다.

이 문제는 Levenberg-Marquardt 알고리즘이나 Gauss-Newton 방법과 같은 비선형 최적화 알고리즘을 사용하여 해결된다. 최적화 과정에서 카메라의 내부 및 외부 파라미터가 수정되며, 반복적인 계산을 통해 재투영 오류를 최소화한다.

재투영 오류의 시각화

재투영 오류는 시각적으로 분석할 수도 있다. 보통 이미지에 관측된 점과 투영된 점을 함께 표시하여 오류를 시각적으로 확인할 수 있다. 이를 통해 특정 구간에서 오류가 큰지, 특정 영역에서 왜곡이 심한지 확인할 수 있다. 예를 들어, 관측된 점 \hat{\mathbf{x}}_i와 재투영된 점 \mathbf{x}_i 사이의 픽셀 단위 거리를 화살표로 표현하여 시각적 피드백을 제공한다.

이러한 시각적 표현은 캘리브레이션 오류를 쉽게 파악할 수 있도록 도와주며, 캘리브레이션 결과의 품질을 평가할 수 있는 중요한 도구로 사용된다.

재투영 오류의 개선

재투영 오류를 최소화하기 위해서는 여러 가지 방법을 고려할 수 있다. 가장 기본적인 방법은 최적화 알고리즘을 적용하는 것이지만, 추가적으로 다음과 같은 개선점을 적용할 수 있다:

이와 같은 방법을 통해 캘리브레이션의 정확성을 높이고, 재투영 오류를 최소화할 수 있다.