2013년 10월 25일 금요일

두개의 투사 행렬과 이미지 좌표에서 3차원 점 계산: DLT

DLT는 Direct Linear Transformation의 약자이다.
두 투사 행렬(projection matrix) $P_1, P_2$가 있다고 가정하자.  공간 상에 점 $X$가 있다. 이 점이 두 이미지에 투사되면 다음과 같다:

$m_1=P_1\cdot X$
$m_2=P_2\cdot X$

여기서 $X$는 homogeneous 4-vector이다.
$m_1, m_2$을 안다고 할 때, 공간 점 $X$를 복원해 보자.
DLT를 적용한다.


$m_1 \times m_1 = m_1 \times (P_1 \cdot X) = 0$
$m_2 \times m_2 = m_2 \times (P_2 \cdot X) = 0$

이다. 크기 3x1의 $m_1$벡터는 3x3의 skew matrix로 표현할 수 있다.

$m_1 = [0, -1, v_1; 1, 0, -u_1; -v_1, u_1, 0]$

이다. 따라서

$[m_1]\cdot(P_1 \cdot X) =$
 $[0, -1, v_1; 1, 0, -u_1; -v_1, u_1, 0] \cdot$    
 $[p_{11}X+p_{12}Y+p_{13}Z+p_{14};$
  $  p_{21}X+p_{22}Y+p_{23}Z+p_{24}; $
  $  p_{31}X+p_{32}Y+p_{33}Z+p_{34}] $

$= [  -(p_{21}X+p_{22}Y+p_{23}Z+p_{24}) + $
   $  v_1(p_{31}X+p_{32}Y+p_{33}Z+p_{34}); $
     $    (p_{11}X+p_{12}Y+p_{13}Z+p_{14}) - $
    $ u_1(p_{31}X+p_{32}Y+p_{33}Z+p_{34}) ; $
   $ -v_1(p_{11}X+p_{12}Y+p_{13}Z+p_{14}) + $
    $ u_1(p_{21}X+p_{22}Y+p_{23}Z+p_{24}) ]  $

$= [(v_1p_{31}-p_{21}), (v_1p_{32}-p_{22}), (v_1p_{33}-p_{23}), (v_1p_{34}-p_{24});$
$ (u_1p_{31}-p_{11}). (u_1p_{32}-p_{12}), (u_1p_{33}-p_{13}), (u_1p_{34}-p_{14});$
$ (u_1p_{21}-v_1p_{11}), (u_1p_{22}-v_1p_{12}), (u_1p_{23}-v_1p_{13}), (u_1p_{24}-v_1p_{14}) ] \cdot X  = 0$

여기서 1행과 2행만 가져온다 (3행은 1, 2행의 조합으로 만들 수 있다).

$[v_1\cdot p_3-p_2;$
 $ u_1\cdot p_3-p_1] \cdot X = 0$

단, 여기서 $p_3 = [p_{31}, p_{32}, p_{33}, p_{34}], p_2=[p_{21}, p_{22}, p_{23}, p_{24}], p_1=[p_{11}, p_{12}, p_{13}, p_{14}]$ 이다.

그런데 $m_2$로부터 또 다른 $P_2$도 있으므로 2개의 행이 추가 될 수 있다.

$[v_1 \cdot p_3-p_2;$
 $ u_1\cdot p_3-p_1;$
 $ v'_1\cdot p'_3-p'_2;$
 $ u'_1\cdot p'_3-p'_1]\cdot X = AX = 0$

행렬 $A$를 특이값 분해(SVD)하고 얻어진 $V$행렬의 마지막 행이 $X$가 된다.  $A$행렬의 크기는 4x4이다.

$A$행렬의 각 행은 독립된 하나의 식으로 스케일 모호성이 있다.  즉, $X$의 크기에 대한 모호성을 준다.  각 행이 영향을 주는 $X$의 스케일이 다르면 안되므로 정규화가 필요하다.
각 행은 독립적으로 크기 정규화 가능하다. 





    

댓글 없음:

댓글 쓰기