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