카테고리 없음

컴퓨터 비전 공부하기(3D Vision - Triangulation)

zmo 2024. 12. 15. 02:55

오늘 알아볼 내용은 Triangulation에 대해서 Triangulation이 어떤 상황에서 사용하기에 3D Vision에 사용되며 어떠한 수학적 개념을 가지고 있는지 알아볼 예정이다.(이번주는 바빠서 자세히 파고들지 못했다)

먼저 Triangulation란 컴퓨터 비전 및 3D 재구성에서 사용되는 중요한 기법으로, 여러 시점에서 관찰한 2D 이미지 데이터를 바탕으로 3D 공간에서의 점의 위치를 계산하는 과정이다. 이를 통해 카메라가 관찰한 장면의 3D 구조를 추정할 수 있다.

 

오늘 알아보기

Triangulation의 구조(?)는 어떠할까?

Triangulation의 수학적 개념 알아보기

- 투영 방정식

- 선형 시스템 구성

- 최소 자승법

- SVD를 이용한 해 찾기

정리하기

 


 

Triangulation의 구조(?)는 어떠할까?

  1. 시점(Viewpoint)이 필요함
    • 당연히 3D구조를 파악하기 위해서는 최소 두 개 이상의 서로 다른 시점에서 같은 3D 점이 관찰되어야 합니다. 이러한 시점의 차이는 스테레오 카메라 시스템 또는 동적 카메라 움직임을 통해 확보할수 있다.
  2. 2D 이미지 좌표:
    • 각 시점에서 관찰된 점의 위치는 2D 이미지 좌표 (픽셀 좌표)로 표현된다. 이 정보와 카메라 매개변수(내부 및 외부 매트릭스)를 사용하여 3D 공간으로 역추적하는 방식이다.
  3. 기하학적 관계:
    • 카메라의 투영 모델(핀홀 카메라 모델)을 활용하여 3D 점이 2D 평면에 투영되는 수학적 관계를 모델링할수 있다.
    • 삼각측량은 각 시점에서 생성되는 광선(ray)이 교차하는 지점을 계산하는 것이다.

Triangulation의 수학적 개념 알아보기

투영 방정식

Triangulation은 3D 점 X = [X, Y, Z, 1]ᵀ와 카메라 매트릭스 Pᵢ를 이용하여 2D 이미지 점 xᵢ = [uᵢ, vᵢ, 1]ᵀ를 계산하는 과정을 포함합니다.

다음과 같은 투영 방정식을 따릅니다

xᵢ = PᵢX

여기서

  • Pᵢ: 3×4 카메라 투영 매트릭스 (내부 매개변수와 외부 매개변수의 조합)3×4
  • X: 3D 공간에서의 점 (동차 좌표)

을 의미합니다.

선형 시스템 구성

각 카메라 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 값을 계산합니다.

SVD를 이용한 해 찾기

과잉 결정된 선형 시스템에서 해를 구하기 위해 특이값 분해(Singular Value Decomposition, SVD등)를 사용합니다. 행렬 A의 SVD를 계산하면

A = UΣVᵀ

여기서

  • U, Σ, V: SVD 분해의 결과
  • X는 V의 마지막 열 벡터로 계산됩니다.V

과잉 결정이란 방정식이 미지수보다 많아 모든 방정식을 동시에 만족하는 정확한 해가 존재하지 않을 수 있는 상황을 의미합니다.

 

정리하기

위의 내용을 간단하게 정리하면 2D 데이터를 가지고 3D 공간에서 물체를 재현해야 할때 물체의 꼭짓점등 특이점을 사용하고, 이 특이점을 3D공간에 배열하려고 할때 점의 위치를 계산하는 방법이 Triangulation 이다. 그중 과잉 결정등으로 인해 3D 값을 정확히 계산하기 어려울수도 있으며 최대한 근사한 값을 찾아내는 것이 최소 자승법이라 할수 있다.