재바기
JaeTech
재바기
전체 방문자
오늘
어제
  • 분류 전체보기 (77)
    • Computer Vision (2)
    • 선형대수학 (9)
    • Papers (1)
    • 알쓸신잡 (7)
    • 삽질 기록 (0)
    • 3D\Multiview Geometry (10)
      • CS231A (10)
    • Computer Science (46)
      • Algorithm (14)
      • JavaScript (3)
      • C || C++ (5)
      • Git || Github (3)
      • Linux (2)
      • DL || ML (5)
      • Operating System (8)
      • Computer Network (0)
      • Database (1)
      • Effective Python (5)
      • Data Communication (0)
    • 회고 (0)
    • Latex (1)

블로그 메뉴

  • 홈
  • 태그

Github

공지사항

  • 주인장에 대해

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
재바기

JaeTech

CH01. Camera Models (3)
3D\Multiview Geometry/CS231A

CH01. Camera Models (3)

2023. 2. 6. 18:27
728x90

Camera Calibration

앞에서 intrinsic, extrinsic parameter 를 알아야 정확한 transformation이 가능하다고 했다.

하지만 임의의 카메라를 처음 쓰게 되면, parameter들에 대한 정보가 없다.

하지만 그 카메라로 image를 촬영할 수는 있다.

따라서 해당 image를 이용해 extrinsic, intrinsic camera parameter들을 추정하는 것이 바로 camera calibration이다.

위의 사진은 calibration rig 를 보여준다.

이 rig는 보통 그림처럼 차원을 가진 simple한 패턴으로 구성되고,

더 나아가 rig는 world reference를 원점 $O_w$ 와 $i_w,j_w,k_w$ 로 정의한다.

이 때, world reference frame에서 우리가 알고있는 점들 $P_1, ...,P_n$ 이 주어지고,

해당 점들에 상응하는 image의 점들 $p_1,...,p_n$을 직접 찾아준다.

그 후, n개의 3D, 2D 포인트 쌍으로부터 아래와 같이 linear system of equations을 유도해낸다.  

 

$$ p_i=\begin{bmatrix}u_i \\ v_i\end{bmatrix}=MP_i=\begin{bmatrix}\frac{m_1P_i}{m_3P_i} \\ \frac{m_2P_i}{m_3P_i}\end{bmatrix} $$  

 

($m_1,m_2,m_3$ 는 matrix $M$의 각 행을 의미)  

  

위의 식에서 각 $P_i, p_i$ 쌍으로부터 2개의 equations를 얻을 수 있다.

따라서 $m$의 parameter를 풀기위한 2개의 constraint도 얻을 수 있다.  

 

$$ u_i(m_3P_i)-m_1P_i=0 \\ v_i(m_3P_i)-m_2P_i=0 $$  

 

앞에서 camera matrix 는 11개의 unknown parameter가 있다고 했었다.

따라서 6개의 correspondence만 있으면 이 matrix를 찾을 수 있다.

하지만 실제 세상에서는, 정확하게 측정되기 어렵기 때문에 noise가 있을 수 밖에 없다.

$n$개의 correspondence가 주어졌을 때, 전체 linear system of equation은 다음과 같다.  

 

$$ u_1(m_3P_1)-m_1P_1=0 \\ v_1(m_3P_1)-m_2P_1=0 \\ \vdots \\ u_n(m_3P_n)-m_1P_n=0 \\ v_n(m_3P_n)-m_2P_n=0 $$  

 

이걸 matrix-vector product 형태로 바꾸면,  

 

$$ \begin{bmatrix}P_1^T & 0^T & -u_1P_1^T \\ 0^T & P_1^T & -v_1P_1^T \\ &\vdots& \\ P_n^T & 0^T & -u_nP_n^T \\ 0^T & P_n^T & -v_nP_n^T\end{bmatrix}\begin{bmatrix}m_1^T \\ m_2^T \\ m_3^T\end{bmatrix}=\mathbf{P}m=0 $$  

 

(위의 $m$ 벡터는 $M$ 행렬의 모든 행을 열로 펴서 한 열로 만들어 놓은 열벡터이다.)  

그런데 $2n>11$ 일 때, 위에서 세운 homongeneous linear system은 overdetermined(미지수보다 방정식이 더 많음)하고, 

$m=0$ 은 항상 trivial solution이 된다.

뿐만 아니라 nonzero solution이 아닌 $m$ 에 대해서, $\forall k\in\mathbb{R}$인 $km$이 solution 으로 가능하다.

따라서 solution에 constraint을 줘야한다.

따라서 minimization을 완성시켜보면 다음과 같다.  

 

$$ \underset{m}{\text{minimize}}\,\,\,\,\|\mathbf{P}m\|^2 \\\text{subject to}\,\,\,\,\,\|m\|^2=1 $$  

 

위의 minimization problem을 풀려면, 그냥 singular value decomposition(SVD)를 이용하면 된다.

$P=UDV^T$ 라 했을 때, solution은 $V$의 마지막 column이다. ($m$이 $V$의 마지막 column과 같음)  

  

이렇게 얻은 $m$은 벡터이므로 다시 matrix $M$으로 바꿔야한다.

이 $M$은 true matrix가 아니라 $M$의 scalar multiple이다.

즉 실제 camera matrix는 $K\begin{bmatrix}R&T\end{bmatrix}$ 였으므로  

 

$$ \rho M=\begin{bmatrix} \alpha r_1^T-\alpha\cot\theta r_2^T+c_xr_3^T & \alpha t_x-\alpha\cot\theta t_y+c_xt_z \\ \frac{\beta}{\sin\theta}r_2^T+c_yr_3^T & \frac{\beta}{\sin\theta}t_y+c_yt_z \\ r_3^T & t_z \end{bmatrix} $$  

 

가 된다. ($r_1^T,r_2^T,r_3^T$는 $R$의 행들임)

이를 scaling parameter $\rho$로 나눠주면  

 

$$ M=\frac{1}{\rho}\begin{bmatrix} \alpha r_1^T-\alpha\cot\theta r_2^T+c_xr_3^T & \alpha t_x-\alpha\cot\theta t_y+c_xt_z \\ \frac{\beta}{\sin\theta}r_2^T+c_yr_3^T & \frac{\beta}{\sin\theta}t_y+c_yt_z \\ r_3^T & t_z \end{bmatrix}=\begin{bmatrix}A & b\end{bmatrix}=\begin{bmatrix}a_1^T \\ a_2^T \\ a_3^T\end{bmatrix}\begin{bmatrix}b_1 \\ b_2 \\ b_3\end{bmatrix} $$  

 

이고, $A,b$ 는 다음과 같다.  

전개해서 풀면 intrinsic parameter는

이고, extrinsic parameter는

과 같다.  (유도 과정은 강의 범위를 벗어나므로 생략)

  

유의할 점으로는, 위의 과정에서 degenerate case가 발생할 수도 있는데,

예를 들어, 모든 $P_i$ 들이 같은 평면 위에 있으면 안 된다.

이와 같은 점들을 degenerate configurations라고 부른다.

728x90
저작자표시 비영리 (새창열림)

'3D\Multiview Geometry > CS231A' 카테고리의 다른 글

CH02. Single View Metrology (2)  (0) 2023.02.09
CH02. Single View Metrology (1)  (0) 2023.02.08
CH01. Camera Models (4)  (0) 2023.02.06
CH01. Camera Models (2)  (0) 2023.02.05
CH01. Camera Models (1)  (0) 2023.02.05
    '3D\Multiview Geometry/CS231A' 카테고리의 다른 글
    • CH02. Single View Metrology (1)
    • CH01. Camera Models (4)
    • CH01. Camera Models (2)
    • CH01. Camera Models (1)
    재바기
    재바기
    재박이의 테크블로그

    티스토리툴바