(멀티플 뷰 지오메트리) Lecture 3. Circular points and Absolute conic

(멀티플 뷰 지오메트리) Lecture 3. Circular points and Absolute conic

2022, Apr 20    


Multiple View Geometry 글 목차


  • 참조 : https://youtu.be/T-p6d7av32Y?list=PLxg0CGqViygP47ERvqHw_v7FVnUovJeaz
  • 참조 : https://youtu.be/tsO6VO1s_x8?list=PLxg0CGqViygP47ERvqHw_v7FVnUovJeaz
  • 참조 : Multiple View Geometry in Computer Vision


  • 이번 글에서는 Circular points and Absolute conic 내용의 강의를 듣고 정리해 보도록 하겠습니다.




Drawing


  • 이번 강의에서는 크게 위 3가지 내용을 배울 예정입니다.
  • line at infinitycircular points 개념을 배우고 이 개념을 이용하여 affine 또는 projective distortion을 제거하는 방법에 대하여 배워보도록 하겠습니다.
  • ② 개념을 확장하여 plane at infinity를 배우고 affine transformation에서 불변한 성질에 대하여 배워보도록 하곘습니다.
  • absolute conicabsolute dual quadrics를 배우고 similarity transformation에서 불변한 성질에 대하여 배워보도록 하겠습니다.


Drawing



Drawing



Drawing



Drawing


Recovery of Affine Properties from Images


Drawing



Drawing



Drawing



Drawing


  • 위 슬라이드에서 \(v_{1}, v_{2}\) 2개의 점의 cross product를 이용하여 \(l\) 을 구하는 방법은 다음과 같습니다.


Drawing


  • 위 그림과 같은 선 \(l\), \(v_{1}, v_{2}\) 점의 관계에서 두 점이 선 \(l\) 위에 있으므로 아래 식을 만족합니다.


  • \[l \cdot v_{1} = 0\]
  • \[l \cdot v_{2} = 0\]


  • 벡터 \((a, b, c)\) 는 \((x_{1}, y_{1}, z_{1})\) 과 \((x_{2}, y_{2}, z_{2})\) 에 모두 수직인 벡터입니다. 따라서 \(v_{1}\) 과 \(v_{2}\) 모두에 수직인 벡터를 구하는 방법이 cross product이므로 다음과 같이 \(l\) 을 구할 수 있습니다.


  • \[l = v_{1} \times v_{2}\]


Drawing


Computing a Vanishing Point from a Length Ratio


  • 이번에는 Vanishing Point를 어떻게 계산하는 지 살펴보도록 하겠습니다.


Drawing


  • vanishing point를 계산하기 위하여 이미지 상에서 동일선(collinear) 상에 있는 점들 \(a, b, c\) 를 가정하겠습니다. 상세 내용은 다음 슬라이드에서 설명하겠습니다.


Drawing


  • 위 그림과 같이 1차원 선 \(\mathbb{P}^{1}\) 상에서 \(a = (0, 1)^{T}, b = (a, 1)^{T}, c = (a + b, 1)^{T}\) 를 나타내며 그 사이의 거리는 각각 \(a, b\) 가 됩니다.
  • 이와 같은 방식으로 정한 점 \(a, b, c\) 를 Perspective 성질이 포함된 이미지 (실제 촬영된 이미지)와 Perspective 성질이 제거된 이미지 각각에서 점을 구해볼 수 있습니다.


Drawing



Drawing


  • Vanishing Point를 찾기 위하여 Perspective 성질이 제거된 오른쪽 이미지에서 왼쪽 이미지로 같은 선상의 점들의 이동 관계를 나타내는 \(H_{2\times2}\) 행렬을 찾습니다. 그러면 \(a \to a', b \to b' , c \to c'\) 로 변환할 수 있습니다.
  • 마지막으로 구하고자 하는 소실점은 오른쪽의 이미지에서는 point at infinity인 \((1, 0)\) 에 존재합니다. 이 점을 왼쪽의 perspective 왜곡이 적용된 이미지로 반영하기 위해서는 \(H_{2\times2}\) 로 변환해 줍니다.


  • \[x' = H_{2\times2}x = H_{2\times2} \begin{bmatrix} 1 \\ 0 \end{bmatrix}\]


  • 위 식과 같이 Vanishing Point인 \(x'\) 를 구할 수 있습니다.


Drawing


  • 위 그림에서는 point at infinity 를 결정하기 위하여 선분의 동일한 길이 비율을 사용합니다. 선분 간격은 가는 흰색 선을 이용하였고 점은 두꺼운 흰색 선으로 표시하였습니다.
  • 검은색 선은 line at infinity이며 검은색 두개의 점은 point at infinity입니다. 이 점은 앞에서 다룬 변환과 마찬가지로 Perspective 왜곡이 없는 이미지의 point at infinity에 \(H_{2\times2}\) 를 적용하여 Perspective 왜곡이 있는 이미지에서 point at infinity를 구할 수 있습니다.


Circular Points and Their Dual


Drawing


  • 어떤 두 개의 점이 \(l_{\infty}\) (line at infinity) 상에서 similarity transformation에 대하여 fixed point 라고 생각해 보겠습니다.
  • 먼저 fixed point라고 하면 정의역과 공역이 공간 \(X\) 인 함수 \(f : X \to X\) 에 대하여 \(x_{0} \in X\) 가 \(f(x_{0}) = x_{0}\) 을 만족할 때, 이 점 \(x_{0}\) 를 fixed points라고 합니다.
  • 이 때, \(l_{\infty}\) 상에 존재하는 fixed points인 두 개의 점을 circular (absolute) points 라고 하며 아래와 같이 복소수 형태로 나타냅니다. (이름의 의미는 이후 슬라이드에서 설명합니다.)
  • 아래 \(I, J\) 는 표준 좌표의 형태이며 다르게 변형될 수 있습니다.


  • \[I = \begin{pmatrix} 1 \\ i \\ 0 \end{pmatrix}\]
  • \[J = \begin{pmatrix} 1 \\ -i \\ 0 \end{pmatrix}\]


  • 위 표준 좌표인 두 점 \(I, J\) 는 \(l_{\infty}\) 상에 있으므로 마지막 차원은 0인 ideal points 형태를 만족합니다.


Drawing


  • 위 슬라이드에서는 circular points인 \(I, J\) 가 fixed point 일 때, projective transformation \(H\) 는 similarity임이 필요 충분 조건임을 설명합니다.
  • 따라서 위 슬라이드 조건과 앞에서 설명한 fixed point의 정의와 같이 \(I' = H_{x}I = I\) 임을 통하여 정의역 \(I\) 가 \(H_{x}\) 를 거치더라도 \(I\) 됨을 통하여 fixed point 임을 보입니다.


  • 위 식에서 \(H_{s}\) 는 similarity transformation 행렬로 아래 식을 따릅니다.


  • \[H_{s} = \begin{bmatrix} s\cos{(\theta)} & -s\sin{(\theta)} & t_{x} \\ s\sin{(\theta)} & s\cos{(\theta)} & t_{y} \\ 0 & 0 & 1 \end{bmatrix}\]


  • 따라서 위 식과 슬라이드의 오일러 공식을 이용하면 다음과 같이 정리할 수 있습니다.


  • \[I' = H_{s}I = \begin{bmatrix} s\cos{(\theta)} & -s\sin{(\theta)} & t_{x} \\ s\sin{(\theta)} & s\cos{(\theta)} & t_{y} \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} 1 \\ i \\ 0 \end{bmatrix}\]
  • \[= \begin{bmatrix} s \cdot \cos{(\theta)} - s \cdot i \cdot \sin{(\theta)} \\ s \cdot \sin{(\theta)} + s \cdot i \cdot \cos{(\theta)} \end{bmatrix}\]
  • \[= s \begin{bmatrix} \cos{(\theta)} - i \cdot \sin{(\theta)} \\ \sin{(\theta)} + i \cdot \cos{(\theta)} \\ 0 \end{bmatrix}\]
  • \[= s \begin{bmatrix} e^{-i\theta} \\ i(\cos{(\theta)} - i\sin{(\theta)}) \\ 0 \end{bmatrix}\]
  • \[= s \begin{bmatrix} e^{-i\theta} \\ i(e^{-i\theta}) \\ 0 \end{bmatrix}\]
  • \[= s e^{-i\theta} \begin{bmatrix} 1 \\ i \\ 0 \end{bmatrix}\]


  • 마지막 식이 \(I\) 가 되면 fixed points 임을 만족하며 \(l_{\infty}\) 상에서는 스케일 변환이 허용되기 때문에 아래와 최종 식은 \(I\) 와 동일함을 알 수 있습니다.


  • \[I' = H_{x}I = s e^{-i\theta} \begin{bmatrix} 1 \\ i \\ 0 \end{bmatrix} = I\]


  • 위 식의 뜻은 similarity transformation에 의해서는 \(l_{\infty}\) 에 있는 ideal point가 변하지 않음을 나타냅니다.


  • 위 식과 같은 전개 과정을 \(J\) 에 대하여 적용하면 유사하게 유도할 수 있습니다.
  • 따라서 circular pointsfixed points이면 이 때 사용된 transformation matrixsimilarity transformation임을 확인할 수 있었습니다.


Drawing


  • 이번 슬라이드에서는 circular points의 의미에 대하여 설명합니다.


  • 이전 강의에서 배운 conics 관련 식은 아래와 같습니다.


Drawing



Drawing


  • 먼저 문제를 간단하게 살펴보기 위해 원 (circle)인 형태를 살펴보면 conics 식에서 a = c = 1로 가정하고 b = 0으로 두겠습니다. 그러면 위 슬라이드와 같이 식이 정리됩니다. (이 가정은 문제를 간단히 하기 위함이지 필수 조건이 아님을 명심하셔야 합니다.)


  • \[x_{1}^{2} + x_{2}^{2} + dx_{1}x_{3} + ex_{1}x_{3} + fx_{3}^{2} = 0\]


  • 여기서 \(l_{\infty}\) 와 conic이 교차하는 지점의 ideal points는 슬라이드와 같이 \(I, J\) 에서 만나게 됨을 알 수 있으며 이 때 ideal points의 좌표가 앞에서 다룬 \(I, J\) 가 됩니다.
  • 이 때 ideal points는 \(x_{3} = 0\) 이 되어야 하므로 위 식을 만족하려면 \(x_{1}^{2} + x_{2}^{2} = 0\) 을 만족해야 합니다.
  • 따라서 \(I = (1, i, 0)^{T}, J = (1, -i , 0)^{T}\) 의 복소수 해를 구할 수 있습니다. 위 과정을 통해 circular points의 각 요소는 복소수로 확장됨을 확인할 수 있습니다.


Drawing


  • 일반적으로 degenerate line conic 은 \(C^{*} = xy^{T} + yx^{T}\) 와 같이 정의되며 conic 상의 2개의 점 x, y를 통하여 만들 수 있습니다.
  • 2개의 점 x, y를 circular pointsI, J를 이용하면 \(l_{\infty}\) 가 관통하는 degenerate line conic을 만들 수 있고 \(C^{*}_{\infty}\) 라고 표현합니다. line은 \(l_{\infty}\) 가 되며 IJ를 각각 통과하는 직선들로 구성됩니다.
  • 그리고 \(C^{*}_{\infty}\) 을 풀어 쓰면 degenerate line conic with circular points가 되며 degenerate가 되었으므로 Rank가 2이면 두 점, Rank가 1이면 중복된 1개의 점이 conic 상에 있는 것을 알 수 있습니다.
  • 위 슬라이드에서는 Rank 2를 가정하였으므로 I, J 두 점에서 각각 통과하는 직선들로 구성되는 것을 그림으로 나타내었습니다.
  • 추가적으로 표준 좌표를 이용하여 \(C^{*}_{\infty}\) 를 수식으로 나타내면 Rank가 2인 행렬이 되는 것을 슬라이드를 통해 확인할 수 있습니다.
  • 마지막 부분의 계산에서 \(IJ^{T} + JI^{T}\) 계산 결과가 등호가 성립하는 이유는 \(l_{\infty}\) 상에서는 스케일 변환이 허용되기 때문입니다.


Drawing


  • 위 슬라이드에서는 앞선 슬라이드에서 보여준 것 처럼 \(C^{*}_{\infty}\) 에서 또한 similarity transformation을 적용하면 fixed가 됨을 보여줍니다.
  • 식 전개에서 \(C^{*}_{\infty}' = H_{S} C^{*}_{\infty} H_{S}^{T}\) 가 됨은 이전 글에서 다루었던 내용입니다. 간략히 정리하면 다음과 같습니다.


  • 점 변환 \(x' = Hx\) 에 대하여 다음과 같이 변환 됩니다.


  • \[x = H^{-1}x'\]
  • \[x^{T}C x = (H^{-1}x')^{T} C H^{-1}x' = x'^{T} H^{-T} C H^{-1}x' = x'^{T}(H^{-T} C H^{-1})x'\]
  • \[\therefore \quad C' = H^{-T} C H^{-1}\]


  • 즉, 점 변환을 위한 행렬 \(H\) 가 있을 때, 이 행렬을 통해 conic \(C \to C'\) 로 변환하려면 다음 식을 따릅니다.


  • \[C' = H^{-T} C H^{-1}\]


  • 그리고 \(l^{T}C^{*}l = 0\) 과 \(x^{T}Cx = 0\) 에서의 \(C^{*}\) 와 \(C\) 의 관계는 이전 글에서 \(C^{*} = C^{-1}\) 임을 확인하였으므로 다음과 같이 표현할 수 있습니다. 따라서 양변에 역행렬을 적용하여 구하면 다음과 같습니다.


  • \[C'^{-1} = (H^{-T} C H^{-1})^{-1}\]
  • \[C^{*}{'} = H C^{*} H^{T}\]
  • 따라서 위 슬라이드에서 \(C^{*}_{\infty}\) 또한 다음과 같은 식을 따릅니다.


  • \[C^{*}_{\infty}{'} = H_{S} C^{*}_{\infty} H_{S}^{T}\]


  • 위 식의 최종 전개에서도 \(l_{\infty}\) 상에서는 스케일 변환이 허용되기 때문에 \(s\) 는 무시하여 등호가 성립하다고 말할 수 있습니다.


Drawing


  • 위 슬라이드에서는 지금까지 살펴본 \(C^{*}_{\infty}\) 내용을 통해 2가지 특성에 대하여 설명합니다.


  • \(C^{*}_{\infty}\) 은 4 DoF (Degree of Freedom)을 가집니다. 원래 \(C^{*}_{\infty}\) 는 3 X 3 대칭 행렬이고 (3, 3) 위치의 스케일 값을 무시한다고 하면 5개의 자유도를 가집니다. 하지만 \(\text{det}(C^{*}_{\infty}) = 0\) 이고 자유 변수가 1개 생기므로 DoF는 4개로 줄어듭니다.
  • 즉, \(C^{*}_{\infty}\) 을 생성하는 데 4개의 변수가 있고 앞에서 표준 좌표를 나타내기 위해 conic을 원으로 표현하기 위해 가정하였던 a = c, b = 0 조건이 아닌 다른 조건을 사용하는 상황을 가정할 수 있습니다. 따라서 4 DoF는 \(C^{*}_{\infty}\) 를 만들 때, a, b, c, d, e, f에서 d, e, f는 소거되어 의미가 없고 의미있는 a, b, c3 DoF에 \(\text{det}(C^{*}_{\infty}) = 0\) 으로 생긴 자유 변수 1개를 추가해서 4 DoF가 된다고 생각할 수 있습니다.


  • ② \(l_{\infty}\) 는 \(C^{*}_{\infty}\) 의 null vector 를 의미합니다. 즉, \(C^{*}_{\infty}\) 을 만족하는 점들 (circular points) 들이 \(l_{\infty}\) 에 존재한다는 의미이며 슬라이드의 식과 같이 간단히 수식으로 전개 됩니다.


  • 지금 부터는 Circular points and Absolute conic 강의의 후반부 내용을 살펴보도록 하겠습니다.





Multiple View Geometry 글 목차