Priceless
[VSLAM]핀홀카메라 투영 본문
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 |