재바기
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

CH02. Single View Metrology (1)
3D\Multiview Geometry/CS231A

CH02. Single View Metrology (1)

2023. 2. 8. 17:39
728x90

Introduction

지난 강에서 3D world를 digital image로 transform하는 camera matrix에 대해서 알아보았다.

그렇다면, 역으로 3D world의 구조를 하나의 이미지만을 가지고 추정할 수 있을까?


Transformations in 2D

Isometric transformation

거리를 보존하는 transformation이다.

가장 basic한 형태로, rotation $R$ 과 translation $t$ 로 표현된다.

3의 자유도를 가지며, 수학적으로 정의하면,

$$ \begin{bmatrix}x^\prime \\ y^\prime \\ 1\end{bmatrix}=\begin{bmatrix}R & t \\ 0 & 1\end{bmatrix}\begin{bmatrix}x \\ y \\ 1\end{bmatrix} $$

 

Similarity transformation

모양(shape)을 보존하는 transformation이다.

직관적으로 보면, isometric transformation에 scaling을 추가한 것이다.

따라서 isometric transformation은 $s=1$인 similarity transformation의 특별한 경우라고 볼 수 있다.

모양을 보존하기 때문에, 비율이나 각도 등은 보존이 된다.

4의 자유도를 가지며, 수학적 정의는,

$$ \begin{bmatrix}x^\prime \\ y^\prime \\ 1\end{bmatrix}=\begin{bmatrix}SR & t \\ 0 & 1\end{bmatrix}\begin{bmatrix}x \\ y \\ 1\end{bmatrix},\quad S=\begin{bmatrix}s & 0 \\ 0 & s\end{bmatrix} $$

 

Affine transformation

점(points)과 직선(straight lines) 그리고 평행성(parallelism)을 보존하는 transformation이다.

벡터 $v$에 대해서, affine transformation $T$는

$$ T(v)=Av+t $$

와 같이 정의된다. ($A$는 $\mathbb{R}^n$의 linear transformation임)

Homogeneous coordinate으로는, affine transformation을 다음과 같이 정의할 수 있다.

$$ \begin{bmatrix}x^\prime \\ y^\prime \\ 1\end{bmatrix}=\begin{bmatrix}A & t \\ 0 & 1\end{bmatrix}\begin{bmatrix}x \\ y \\ 1\end{bmatrix} $$

식을 보면 알 수 있듯이, 모든 similarity transformation은 affine transformation의 특별한 case이다.

이는 6의 자유도를 갖는다.

$$ A=UDV^T=UV^TVDV^T=(UV^T)(V)(D)(V^T) $$

 

Projective transformation

직선을 직선으로 mapping하기는 하지만, 평행성(parallelism)을 보존하지는 않는다.

Homogeneous coordinate에서 projective transformation은 다음과 같다.

$$ \begin{bmatrix}x^\prime \\ y^\prime \\ 1\end{bmatrix}=\begin{bmatrix}A & t \\ v & b\end{bmatrix}\begin{bmatrix}x \\ y \\ 1\end{bmatrix} $$

식을 보면 알 수 있듯이, affine transformation의 좀 더 general 한 버전이라고 할 수 있다.

Parallelism을 보존하지는 못하지만, line을 line으로 mapping 하기 때문에 points의 collinearity는 보존한다.

따라서 4개의 collinear points $P_1,P_2,P_3,P_4$의 cross ratio 는 projective transformation 하에서 invariant하다.

$$ \text{cross ratio}=\frac{\|P_3-P_1\|\|P_4-P_2\|}{\|P_3-P_2\|\|P_4-P_1\|} $$

 


Points and Lines at Infinity

직선(line)은 이미지의 구조를 파악하는 데 굉장히 중요한 요소이므로, 2D, 3D에서의 정의를 모두 아는 것은 필수적이다.

2D line $l$ 은 homogeneous vector로 다음과 같이 정의된다.

$$ \ell=\begin{bmatrix}a&b&c\end{bmatrix}^T $$

이 때, $-\frac{a}{b}$ 는 기울기, $-\frac{c}{b}$ 는 y-절편을 나타낸다.

조금 더 formal하게 써보면,

$$ \forall p=\begin{bmatrix}x\\y\end{bmatrix}\in\ell,\quad\begin{bmatrix}a&b&c\end{bmatrix}\begin{bmatrix}x\\y\\1\end{bmatrix}=0 $$

처럼 표현이 가능하다.  

 

💡 일반적으로, 두 직선 $\ell,\ell^\prime$은 점 $x$ 에서 만나고, 이 점은 $\ell$과 $\ell^\prime$의 cross product로 정의된다.

증명)

두 교차하는 직선 $\ell,\ell^\prime$이 주어졌을 때, 교점 $x$는 반드시 두 직선 $\ell,\ell^\prime$ 위에 있어야 한다.

따라서, $x^T\ell=0$ 과 $x^T\ell^\prime=0$ 을 둘 다 만족한다.

$x=\ell\times\ell^\prime$ 이라고 잡으면, cross product의 정의에 따라, vector $x$는 두 벡터 $\ell,\ell^\prime$과 직교하고,

직교의 정의에 따라, $x^T\ell=0$ 과 $x^T\ell^\prime=0$ 이 된다.

그러므로, $x$의 정의가 constraint을 만족한다.  

 

그렇다면 평행한 직선은 어떨까?

교점이 없다라고 생각하겠지만, 두 직선은 무한대에서 만난다고 할 수 있다.  

 

Homogeneous coordinates에서 무한대에 있는 점은 $\begin{bmatrix}x & y & 0\end{bmatrix}^T$로 표현할 수 있다.

앞서 homogeneous coordinate으로부터 euclidean coordinate을 얻기 위해선 마지막 좌표값으로 나머지를 다 나누면 된다고 했었다.

따라서 0으로 나누게 되면 무한대에 있는 point가 나오게 된다.  

 

두 평행한 직선 $\ell,\ell^\prime$ 은 기울기가 같으므로 $\frac{a}{b}=\frac{a^\prime}{b^\prime}$ 이다.

그리고 homogeneous coordinate을 이용해 교점을 찾으면,

$$ \ell\times\ell^\prime\propto\begin{bmatrix}b\\-a\\0\end{bmatrix}=x_\infty $$

가 된다. ($\ell,\ell^\prime$ cross product하면 유도 가능)

따라서, 두 평행한 직선은 무한대에서 만난다는 것을 확인할 수 있으며,

이 교점을 ideal point 라고 부른다.

또 하나 ideal point의 흥미로운 성질은, $-\frac{a}{b}$ 의 기울기를 가지는 모든 평행한 직선은 ideal point에서 모두 만난다는 것이다.

$$ \ell^Tx_\infty=\begin{bmatrix}a & b & c\end{bmatrix}\begin{bmatrix}b\\-a\\0\end{bmatrix}=0 $$  

 

이제 points of infinity 에서 lines at infinity로 사고를 확장해보자.

두 개 혹은 그 이상의 평행한 직선의 쌍들이 있다고 해보자.

각 쌍들은 교점 $\{x_{\infty,1},...,x_{\infty,n}\}$에서 각각 만날 것이다.

이 무한대의 점을 모두 지나는 직선 $\ell_\infty$는 반드시 $\forall i,\,\,\ell^T_\infty x_{\infty,i}=0$ 을 만족해야 한다.

이 말인 즉슨, $\ell_\infty=\begin{bmatrix}0 & 0 & c\end{bmatrix}^T$을 만족함을 의미한다.

여기서 $c$는 임의의 값이므로 이를 그냥 $\ell_\infty=\begin{bmatrix}0 & 0 & 1\end{bmatrix}^T$이라고 정의할 수 있다.

그렇다면, 무한대의 점 $p_\infty$에 generic projective transformation $H$를 적용하면 어떻게 될까?

$$ p^\prime=Hp_\infty=\begin{bmatrix}A & t \\ v & b\end{bmatrix}\begin{bmatrix}1 \\ 1 \\ 0\end{bmatrix}=\begin{bmatrix}p^\prime_x \\ p^\prime_y \\ p^\prime_z\end{bmatrix} $$

잘 보면 $p^\prime$의 마지막 원소가 더 이상 0이 아님을 알 수 있다.

즉, projective transformation은 points at infinity를 무한대가 아닌 점으로 mapping한다는 뜻이다.

(projective transformation의 성질을 생각해보면, parallelism을 보존하지 못한다고 했으므로)

하지만 affine transformation의 경우는 무한대의 점에서 무한대의 점으로 그대로 mapping함을 유의하자.

$$ p^\prime=Hp_\infty=\begin{bmatrix}A & t \\ 0 & 1\end{bmatrix}\begin{bmatrix}1 \\ 1 \\ 0\end{bmatrix}=\begin{bmatrix}p^\prime_x \\ p^\prime_y \\ 0\end{bmatrix} $$

그러면 projective transformation $H$를 line $\ell$ 에 적용해 새로운 line $\ell^\prime$을 얻어보자.

직선 $\ell$을 지나는 모든 점 $x$는 $x^T\ell=0$ 을 만족한다.

Transformed space에서도 projective transformation은 직선을 직선으로 mapping한다고 했으므로,

$x^{\prime T} \ell^\prime=0$ 을 만족해야한다.

Identity property를 이용해 식을 한번 변형해보자.

$$ x^TI\ell=x^TH^TH^{-T}\ell=0 $$

직선 $\ell$ 에 projective transformation을 적용했으니 그 위의 모든 점들도 마찬가지로 transform된다.

따라서 $x^\prime=Hx$ 임을 알 수 있다.

$$ x^TI\ell=x^TH^TH^{-T}\ell=0=x^{\prime T} \ell^\prime $$

이므로

$$ x^TH^TH^{-T}\ell=x^{\prime T} \ell^\prime $$

이고, $x^TH^T=(Hx)^T$이므로

$$ x^{\prime T}H^{-T}\ell=x^{\prime T} \ell^\prime $$

즉 $\ell^\prime=H^{-T}\ell$ 를 유도해낼 수 있다.

Points at infinity와 비슷하게 line at infinity에 projective transformation을 적용하면 무한대가 아닌 직선으로 mapping될 수가 있다.

(마찬가지로 affine transformation은 lines at infinity를 lines at infinity로 mapping함)

 

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

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

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

    티스토리툴바