Priceless

[VSLAM]핀홀카메라 투영 본문

SLAM/Visual SLAM

[VSLAM]핀홀카메라 투영

Hyun__ 2023. 11. 23. 22:43

VSLAM과 Geometry 기반 컴퓨터비전을 하기 위해서 camera projection의 원리를 이해하는 것이 중요하다

Camera obscura to Modern camera

과거부터 현재의 카메라까지

Camera obscura(바늘 구멍 사진기)

빛이 통하지 않은 곳에 작은 구멍을 뚫어 투영시킨다

이를 통해 3D 공간을 2D로 변환할 수 있었다

 

사용된 원리는 두 가지이다

빛은 직선으로 이동한다. 그래서 상이 반대로 맺힌다

상맺힘. 3d 공간의 정보가 2d 이미지로 상이 맺힌다

 

 

Modern camera

직선으로 이동하는 빛을 모으기 위해 렌즈를 통해 빛을 모은다

조리개 값을 통해 빛을 모으는 정도를 조절하고

노출 시간을 통해 빛을 모으는 시간을 조절한다

 

상맺힘에 정보가 부족하다면 SW로 후처리가 가능하다

 

Camera projection

수학적 원리

3D 공간을 2D 이미지로 mapping

Projection steps

World coordinate system(3D) -> Camera coordinate system(3D)

world frame을 camera frame으로 옮긴다

바늘 구멍으로 옮긴다

강체의 움직임을 아래와 같이 나타낼 수 있다

물체의 위치를 표현하는 방식을

물체와 카메라의 상대적인 거리만으로 표현할 수 있다

Camera coordinate(3D) -> Image coordinate(2D)

가상의 이미지 plane이 앞에 존재한다

카메라의 중점으로부터 camera coordinate의 점을 plane에 사영한 결과가 이미지로 나타난다

 

 

상맺히는 과정이 기존의 바늘구멍 카메라와는 다르게 똑바로 맺힌다

이는 가운데 점인 focal point를 기준으로 대칭한 결과이다

훨씬 이해하기 쉽기 때문에 관용적으로 이렇게 표현한다

 

 

 닮은 꼴을 이용해 이미지에 나타나는 크기를 계산할 수 있다

 

 

3D 정보를 2D로 표현하는 행렬이다

이를 픽셀마다 저장하기 위해 계산해야 한다

이미지의 중점으로부터 좌측 위로 옮겨 0,0으로 한다(principle point)

 

이를 모두 구현한 행렬은 다음과 같다

 

전반적 과정

우선 world to camera 변환 행렬 Xc

그 다음 camera to pixel 변환 행렬 Xim

 

카메라 내부 파라미터를 나타내는 intrinsic K 행렬

카메라와 world에 대한 파라미터를 나타내는 extrinsic [R|t] 행렬

전체 과정을 하나의 이미지와 수식으로 나타내면 아래와 같다

'SLAM > Visual SLAM' 카테고리의 다른 글

[VSLAM]RANSAC  (1) 2023.11.28
[VSLAM]Epipolar Geometry  (1) 2023.11.27
[VSLAM]특징점 기술의 역사  (1) 2023.11.25
[VSLAM]카메라 센서의 구조  (0) 2023.11.24
[VSLAM] 동차좌표계(Homogeneous Coordinates)  (1) 2023.11.23