Image Plane to Image Sensor Mapping
Image Plane에서의 coordinate $x_i, y_i$는
- $\text{mm}$ 단위를 가지며
- "결과 image"의 coordinate라고 생각할 수 있다.
하지만 계산의 용이성 때문에 $x_i, y_i$ 보다는
normalized image plane의 coordinate $x_n, y_n$ 이 많이 사용된다.
또한, 현재 카메라는
- pixel로 구성된 plane sensor를 사용하고,
- 결과 이미지들도 digital image로 pixel기반이기 때문에,
실제 우리가 image에서 사용하는 coordinate 는 거의 대부분
pixel 기반의 u-v coordinate (or pixel coordinate) 가 된다.
다음 그림은 image plane coordinate와 sensor coordinate 를 나타냄: 같은 plane을 대상으로 다르게 표현한 것!
위의 image plane으로부터 normalized image plane을 거친 sensor plane의 각 coordinate간의 관계는 다음과 같음.
$$ u = m_x x_i +u_o= m_x f x_n + u_o= m_x f \frac{x_c}{z_c} + u_o\\ v = m_y y_i + v_o= m_y f y_n +v_o = m_y f \frac{y_c}{z_c} +v_o \\ u_o = o_x = m_x f \hat{x}_i, v_o = o_y = m_y f \hat{y}_i$$
- $u, v$ : 카메라의 sensor 의 index라고도 볼 수 있는 sensor coordinate (or image sensor coordinate)
- $m_x, m_y$ : the pixel density (pixel/mm) in x and y direction, respectively.
- camera sensor가 항상 square라는 보장이 없기 때문에 $m_x, m_y$를 따로 지정.
- 오늘날 대부분의 경우 unit asepct ratio를 가져서 $m_x = m_y$임.
- $f_x = m_x f, f_y = m_y f$로 간략하게 표기하는 경우가 많고,
이들은 Camera의 intrinsic parameters에 속함.
- $\hat{x}_i, \hat{y}_i$ : image plane의 전체넓이와 높이의 1/2.
- $o_x, o_y, u_o, v_o$ : sensor coordinate에서의 센터
- $x_n, y_n$ : x and y coordinate on the normalized image plane.
- $x_c, y_c, z_c$ : the camera coordinates
analog film image를 digitization한 것과도 비슷하다고 볼 수 있음.
위의 관계에서 camear coordinate와 image coordinate와의 관계는 perspective projection 으로 설명됨
2024.07.06 - [Programming/DIP] - [CV] Perspective Projection (원근 투영법): Camera to Image
주의할 점은
optical axis가 통과하는 $o_x,o_y$를 image plane에서는 origin으로 사용하지만,
u-v coordinate에서는 left-top의 pixel을 origin으로 삼는다는 차이점이 있다.
optical axis가 통과하는 principal point $o_x, o_y$의 pixel coordinate인 $u_o, v_o$는 camera의 intrinsic parameters 중 하나이며, Camera Calibration을 통해 구해짐.
위의 식은 transition이 있어서 linear equaiton이 아니지만,
- homogeneous coordinate을 사용하여
- matrix equation (=linear equation)으로 바꾸고,
- Camera의 intrincis parameters를 matrix $K$로 다루게 됨.
$$ \begin{bmatrix}u \\ v \\ 1 \end{bmatrix} = \begin{bmatrix} f_x &0 & u_o \\ 0 & f_y & v_o \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix}\frac{x_c}{z_c} \\ \frac{y_c}{z_c} \\ \frac{z_c}{z_c} \end{bmatrix} = K \begin{bmatrix} x_n \\ y _n \\ 1 \end{bmatrix}$$
같이 보면 좋은 자료들
2024.06.29 - [Programming/DIP] - [CV] Coordinate Systems
2024.06.22 - [Programming/DIP] - [CV] Geometric Camera Model
'Programming > DIP' 카테고리의 다른 글
[Math] Euler Angles and Rotation Matrix (0) | 2024.07.07 |
---|---|
[CV] Perspective Projection (원근 투영법): Camera to Image (0) | 2024.07.06 |
[CV] Triangulation: Simple Version (1) | 2024.07.04 |
[CV] Triangulation : Linear Triangulation [작성중] (1) | 2024.06.30 |
[CV] Stereo Vision: Stereo Matching, Triangulation, Depth Map (0) | 2024.06.29 |