[2023-07-11] 3. Camera Projection
핀홀카메라 투영
Camera obscura to modern camera
바늘 구멍 사진기(Camera obscura)
- 빛이 전혀 통하지 않은 폐쇄된 공간을 만들고 바늘 구멍을 뚫고 빛을 안으로 들어오게 하면 반대편의 상을 맺음
- 이를 통해 2D 이미지를 구할 수 있었음 -> 2D 이미지를 측량해서 3D 세상과 비교 -> 3D to 2D Mapping 관계에 대한 수식으로 발전
- 빛은 직선으로 이동한다는 원리와 상이 맺히는 것(3D 공간의 정보가 2D 이미지(상)으로 투영됨)을 이용함
현대 카메라 (Modern Camera)
- 바늘 구멍 사진기와 같은 원리가 적용됨
- Light Control(빛의 양 조절)
- Hardware-level pre-processing : Exposure, Aperture(조리개)
- Electronic Post Processing : ISO gain, Normalization
- Focal Point(초점)
- Lens
Camera Projection
- 3D World 에서 2D Image로 Transformation
- X : 3D World Coordinate Points
- P : Projection Matrix
- x : 2D Image Coordinate Points
Projection Steps
- World Coordinate System(3D) -> Camera Coordinate System(3D) -> Image Coordinate System(2D)
World Coordinate (3D) -> Camera Coordinate (3D)
- Rigid body motion
- Rotation : 3 x 3 Matrix(SO(3))
- Tranlsation : 3 x 1 Vector
- Transformation : 4 x 4 Matrix(SE(3))
- World 3D Point에 SE(3)를 곱하면 Camera 3D Point가 됨
Camera Coordinate (3D) -> Image Coordinate (2D)
- Principal axis
- Image plane
- p
- x_im
원래라면 상이 뒤집혀야 하는 것 아닌가요?
- 실제로는 상이 뒤집혀서 맺히지만 Vision이나 Graphics에서는 관용적으로 다음과 같이 표현함
X_im의 값은 어떻게 구할 수 있을까?
- Camera Frame의 모습을 2D 단면적으로 확인해보면 아래와 그림과 같음 (X가 화면을 뚫고 들어가는 단면)
- 삼각형의 닮음을 이용해서 X_im 값을 구할 수 있음
- 삼각형 (X_c, C, Z) 과 삼각형 (X_im, C, P) 과 닮음
- 이미지의 중앙이 (0, 0) 값을 갖고 있으므로 좌측 상단이 (0, 0) 값을 가질 수 있게 중앙을 옮겨야 함
- K Matrix(Intrinsic Matrix)를 다음과 같이 구할 수 있음 (아래의 수식 역순)
- Intrinsic Matrix는 카메라 시점에서 본 3D Point를 2D Image 상에 맺히게 함
2가지 steps을 합치게 되면..
- World Frame으로 표현된 3D Point인 X_w에 World2Camera Rigid Body를 적용하여 Camera Frame으로 3D Point인 X_c 로 표현
- X_c에 카메라 K Matrix를 적용하여 Image Pixel인 x_im을 표현함
-
따라서 K Matrix * [R t] Matrix * X_w가 됨
- Intrinsic : K Matrix
-
Extrinsic : [R t] Matrix