오늘 알아볼 내용은 Triangulation에 대해서 Triangulation이 어떤 상황에서 사용하기에 3D Vision에 사용되며 어떠한 수학적 개념을 가지고 있는지 알아볼 예정이다.(이번주는 바빠서 자세히 파고들지 못했다)
먼저 Triangulation란 컴퓨터 비전 및 3D 재구성에서 사용되는 중요한 기법으로, 여러 시점에서 관찰한 2D 이미지 데이터를 바탕으로 3D 공간에서의 점의 위치를 계산하는 과정이다. 이를 통해 카메라가 관찰한 장면의 3D 구조를 추정할 수 있다.
오늘 알아보기
Triangulation의 구조(?)는 어떠할까?
Triangulation의 수학적 개념 알아보기
- 투영 방정식
- 선형 시스템 구성
- 최소 자승법
- SVD를 이용한 해 찾기
정리하기
Triangulation은 3D 점 X = [X, Y, Z, 1]ᵀ와 카메라 매트릭스 Pᵢ를 이용하여 2D 이미지 점 xᵢ = [uᵢ, vᵢ, 1]ᵀ를 계산하는 과정을 포함합니다.
다음과 같은 투영 방정식을 따릅니다
xᵢ = PᵢX
여기서
을 의미합니다.
각 카메라 i에 대해 투영 방정식은 2개의 선형 방정식을 생성합니다
uᵢ(p₃ᵀX) &= p₁ᵀX \\ vᵢ(p₃ᵀX) &= p₂ᵀX
이를 단순화하면 다음과 같은 형태의 선형 시스템으로 표현할 수 있습니다.
AX = 0
여기서 A는 모든 시점의 방정식을 결합한 행렬입니다.
실제 2D 이미지 좌표 xᵢ와 예측된 좌표 간의 차이를 최소화하기 위해, 에러 함수 E(X)를 정의합니다
E(X) = ∑ᵢ ∥xᵢ - PᵢX∥²
이 최적화 문제를 풀어 가장 적합한 X 값을 계산합니다.
과잉 결정된 선형 시스템에서 해를 구하기 위해 특이값 분해(Singular Value Decomposition, SVD등)를 사용합니다. 행렬 A의 SVD를 계산하면
A = UΣVᵀ
여기서
과잉 결정이란 방정식이 미지수보다 많아 모든 방정식을 동시에 만족하는 정확한 해가 존재하지 않을 수 있는 상황을 의미합니다.
위의 내용을 간단하게 정리하면 2D 데이터를 가지고 3D 공간에서 물체를 재현해야 할때 물체의 꼭짓점등 특이점을 사용하고, 이 특이점을 3D공간에 배열하려고 할때 점의 위치를 계산하는 방법이 Triangulation 이다. 그중 과잉 결정등으로 인해 3D 값을 정확히 계산하기 어려울수도 있으며 최대한 근사한 값을 찾아내는 것이 최소 자승법이라 할수 있다.