Pinhole Camera Model

 

"First Person Camera World"

- 눈이 세계 정중앙에 위치한다고 가정

- (0, 0) 에 위치

- 모든 것은 나에 대해 상대적으로 측정됨

- 오른쪽이 x축, 아래가 y축, 오른손 엄지 세웠을 때 정면이 z축

 

- z축 방향으로 focal length(f) 만큼 떨어진 위치에 canvas를 둠

- 3D 세계에서 한 지점을 2D로 가져오려면 shrinking하게 되는데, 그것이 얼마나 멀리 있는지와 관련됨

- Z로 shrink하고 (멀어질수록 z가 커지므로, 멀리 있을수록 더 shrink하게 됨), f로 magnify함 (focal length 커질수록 더 magnify됨)

- image plane의 크기는 고정되어 있으므로, focal length 를 늘리면 field of view는 좁아지게 됨

 

중요한 질문들

1) where is the optical center of projection? where am i oriented?

2) how far is the focal length? 

 

 

Focal Length and Dolly Zoom Effect

"focal length"

--> "zooming"

 

optical center와 focal length는 동시에 변화한다

: focal length를 바꿀 때 optical center(center of projection)도 함께 이동한다

 

Intrinsic Camera Parameter

image plane 에서 보이는 좌표계(x', y')를 동차좌표계로 확장시키기

- 그로써 point infinity, line infinity를 쉽게 표현할 수 있게 됨

 

- x', y'를 가져다가 image space에서 (x', y', 1)의 동차좌표로 재표현

- 위 point를 z(camera까지의 거리)로 곱한 값 = focal length * x, y, in the 3D space

- 위 내용을 행렬곱으로 나타낼 수 있음

 

(step 1)

- 3D의 좌표는 (x, y, z) + 1 --> 4차원 벡터

- 3X4 크기로 된 transformation 행렬을 곱한다

     - 첫 3X3은 diagoanl 형태를 띤다 : f, f, 1

     - 마지막 열은 모두 0으로 되어 있음

- 2D image plane의 3차원 벡터는 2D poing (x', y', 1)의 동차좌표계에 상응한다

- image space (x', y', 1) * z 는 3D space에 ray를 형성하는데, 이 ray는 3D point들과 교차한다

x : the image represents a point

P : camera projection matrix

X : 3D vector written down in a homogeneous coordinate in the 4D space

 

 

(step 2)

convert optical measurements (mm) to pixel coordinates (defined by matrixes)

- matrix 형태로 나타낸 이미지 : 원점 (0, 0)은 일반적으로 좌측최상단

- image plane 중앙의 optical image : 오른쪽 가리키는 x, 아래 가리키는 y

- optical world의 중심(center) = optical axis going from our eye to the image plane

--> image plane 에 수직, image plane에 닿는 point를 "principal point(주점)"라고 부름 

 

canvas image 위 (0,0) 에서 상쇄하기

optical world에서 principal point를 왼쪽 상단으로 이동시킴 --> transformation of shift

 

- optical world의 측정값을 pixel의 크기로 나눔

simple linear transformation, shift from the principle point to the upper left corner followed by a scale factor

--> matrix transformation 형태로 표현

- 3x3 행렬

     - ax, ay : scaling factor --> 픽셀의 크기와 관련

     - px, py : principal point --> 이상적으로는 이미지 정중앙이미나 실제로는 아닐 때가 많음

- 렌즈 및 카메라 높이로 인해 image plane과 카메라가 이상적인 평행을 이루지 않을 수도 있음

     --> s(slant factor) 로 표현됨

 

optical ray에서 pixel ray으로의 변환 + focal length = combined calibration matrix

- magnification(focal length) & magnification(pixel size)

- marix K : 3x3 으로 된 calibration matrix

 

[camera projection equation for 1st person camera config]

- 1st person camera view에서 측정된 3D 공간 points (내가 있는 곳이 원점, x축 오른쪽 ..)

--> 동차좌표계에서 4D 좌표 형식으로 표현됨

--> 3x3 모양 행렬로 곱하게 됨

(3D 좌표를 가져다가 3D로 내리되 ideal image plane - 2D space 에 있도록 함)

(이후 ideal image plane 이 camera calibration matrix를 활용해 pixel 도메인으로 변환)

--> 2D image이지만 동차좌표 3D ray를 표현하고 있음

- 거리 z 로 곱하면 완전히 동일하게 된다

 

[정리]

- 1st person camera projection matrix is a transformation of a 3D world in the 1st person measurements('나'), shrinking from a 3D space down to a 2D space

- the transformation components : camera calibration, scaling factor, principal point

--> [I 0]로 된 간단한 행렬식: 다른 reference center로 이동할수록 [I 0] 변화

 

- 행렬식을 더 단순화시킬 수 있음

     - XYZ 좌표의 점들을 self reference center로 가져와서, 바로 camera calibration matrix(K)로 곱한다

     --> 3D ray 로 변환됨 = image plane 위 동차좌표로 표현됨

 

[camera calibratnio matrix K]

three factors

- scaling factor : focal length change &size of the pixel conversions

- optical ray : ideally image centre

- skew/slant factor : if tilted

'인공지능 > pose estimation' 카테고리의 다른 글

How to Compute Intrinsics from Vanishing Points  (0) 2022.05.11
3D World to First Person Transformation  (0) 2022.05.10
Rotations and Translations  (0) 2022.05.09
Point-line Duality  (0) 2022.05.09
Perspective Projection  (0) 2022.05.06
복사했습니다!