논문

하루에도 수만개의 글자를 읽고 있습니다. 하루에도 수백장의 종이를 들춰 읽습니다.
이것은 그 읽기에 대한 일기입니다.

Detection of Independently Moving Objects in Non-planar Scenes via Multi-Frame Monocular Epipolar Constraint

[cite]10.1007/978-3-642-33715-4_62[/cite]

1 Introduction

움직이는 물체를 찾는 것은 중요한 문제입니다. 카메라가 고정된 환경이라면 보통은 정적인 배경 씬을 이용하여 모델을 생성하고 그것에 어긋나는 outlier들을 물체로 보는 것이 일반적입니다. 하지만 이러한 가정은 카메라가 움직이는 경우에도 동일하게 적용될 수 있습니다.

이 논문은 평면이 아닌 3D 씬을 촬영한 비디오에서 움직이는 물체를 분리해내는 방법을 이야기하고 있습니다. 호모그래피나 배경을 빼는 방법을 사용하지 않고 비디오의 모든 움직임을 optical flow를 이용하여 분석한 뒤, particle advection을 적용합니다. 그 결과로 나온 particle의 이동 경로들은 두 가지로 나눌 수 있는데, 카메라 모션에 의해서 생긴 경로와 카메라 움직임과 물체의 움직임이 합쳐져 생긴 경로 입니다. 이 둘을 나누기 위해서 Multiframe Monocular Fundamental Matrix (MMFM)이라는 것을 이용하고자 합니다.

이 MMFM은 여러 프레임간의 epipolar constraint를 이용하는데, 프레임들 사이에서 fundamental matrix가 동적으로 변하며 이들은 시간에 대한 다항식으로 표현할 수 있습니다. 이는 카메라의 회전이 적다고 가정할 때의 이야기입니다.

2 Related Work

3 Derivation of a Multiframe Monocular Epipolar Constraint

기본적인 Essential matrix 표현에서 시작하여 봅시다. 시작 프레임과 t번째 프레임 사이에는 다음과 같은 식이 성립합니다.

$$\mathbf{x}(t)^T \mathbf{E}(t) \mathbf{x}(0) = 0$$

여기에 camera matrix를 더하면 아래와 같이 됩니다.

$$\mathbf{x}(t)^T \mathbf{K}^{-T} \mathbf{E}(t) \mathbf{K}^{-1} \mathbf{x}(0) = \mathbf{x}(t)^T \mathbf{F}(t) \mathbf{x}(0) = 0$$

Essential matrix를 회전 성분 $\Omega(t)$과 이동 성분 $\Theta(t) $로 분리할 수 있습니다. 시작 프레임 0으로부터 t까지의 움직임은 이들을 누적하여 생성되므로 이를 아래와 같이 나타낼 수 있습니다.

$$\mathbf{x}(t) = \prod_{i=0}^t \{ \Omega(i)\} \mathbf{R}(0) \mathbf{X} + \sum_{i=0}^t \{ \Omega(i) + \mathbf{T}(0) \}$$

편의상 처음 카메라의 자세를 $ \mathbf{R}(0) = I, \mathbf{T}(0) = 0 $라고 한면 위의 식은 아래와 같이 정리가 됩니다.

$$\mathbf{x}(t) = \prod_{i=0}^t \{ \Omega(i)\} \mathbf{X} + \sum_{i=0}^t \{ \Omega(i) \}$$

이러한 경우 essential matrix는 $ \mathbf{E}(t) = (\prod_{i=0}^t \{ \Omega(i) \}) \mathbf{S}(t)$ 으로, $\mathbf{S}(t)$는 이동에 대한 skew symmetric matrix $(-(\prod_{i=0}^t \{ \Omega(i) \})^T \sum_{i=0}^t \{\Theta(i) \})$ 입니다.

앞에서 이야기한 것과 같이 카메라 움직임이 상대적으로 적다면 회전과 이동은 다항식으로 표현할 수 있습니다. 따라서 시간에 흐름에 따른 Temporal Fundamental Matrix를 시간 t에 대한 다항식으로 표현할 수 있습니다.

$$\mathbf{x}'(t)^T ( \sum_{i=0}^k F_i t^i) \mathbf{x}'(0) = 0$$

여기서 $F_i$는 다항식의 계수를 가지는 3 * 3 크기의 행렬입니다.

이 계수를 추정하기 위하여 먼저 다항식의 차수 $k$를 설정합니다. 여기에서는 3을 사용하였습니다. 다음 13개의 선형 방정식을 세웁니다.

$$\mathbf{Of} = 0$$

여기서 $\mathbf{O} = [\mathbf{O}_1^T, \cdots, \mathbf{O}_p^T]$는 관측 행렬로 각 프레임에서 관찰된 $p$개의 대응점을 이용하여 만든 $ p \times (3 \cdot 3 \cdot (k+1))$의 크기를 갖는 행렬입니다. 하나의 대응점에서 생성된 $\mathbf{O}_i = [\mathbf{r}_i, \mathbf{r}_it, \mathbf{r}_i t^2, \mathbf{r}_i t^3 ] $는,

$$\mathbf{r}_i = [ x_i(0) x_i(t) \quad x_i(0) y_i(t) \quad x_i(0) \cdots \\
y_i(0) x_i(t) \quad y_i(0) y_i(t) \quad y_i(0) \cdots \\
x_i(t) \quad y_i(t) \quad 1 ]$$

으로 이루어져 있습니다.

$\mathbf{f} $$(3 \cdot 3 \cdot (k+1))$크기의 벡터로 Multiframe Monocular Fundamental matrix의 계수를 담고 있습니다.

$$\mathbf{f} = [ F_{0,1} | F_{0,2} | F_{0,3} | \cdots \\
F_{1,1} | F_{1,2} | F_{1,3} | \cdots \\
F_{2,1} | F_{2,2} | F_{2,3} | \cdots \\
F_{3,1} | F_{3,2} | F_{3,3}
]^T$$

$F_{i,j}$는 i번째 계수 행렬의 j번째 행을 나타냅니다.

$\mathbf{O}$는 랭크가 35로 최소한 35개의 대응점이 있어야 $\mathbf{f}$를 계산할 수 있고, SVD를 이용하여 수식을 풀면 됩니다.

4 Independently Moving Object Detection

이제 MMFM을 이용하여 물체를 찾아보겠습니다. 여러 순차적인 프레임이 주어지면 먼저 optical flow를 계산합니다. 이들의 이동 경로를 이용하여 particle adevection을 생성합니다.

$$\Lambda = [ \mathbf{x}_i(0), \mathbf{x}_i(1)), \cdots, \mathbf{x}_i(N-1) ]$$

점의 위치는 모든 프레임들에 대한 중심 위치로 normalize한 것을 사용합니다. 이를 이용하여 N - 1 개의 대응점 벡터를 생성합니다.

$$\Phi_i = [ (\mathbf{x}_i(0), \mathbf{x}_i(1)), \cdots, (\mathbf{x}_i(0), \mathbf{x}_i(N-1)) ]$$

이 한 점에 대한 대응점 벡터는 하나의 관측 벡터 $\mathbf{O}_{i, j}$로 사용됩니다.

15개의 프레임간의 14개의 대응점을 생성하고, 다항식의 차수를 3으로하면, 36개의 대응점이 필요하게 됩니다. 각 시간에 대해서 3개의 대응점을 무작위로 골라 3 * 14 = 42개의 대응점을 추출하는 방법으로 RANSAC을 이용하여 $\mathbf{f}_q$를 계산합니다. $q$는 RANSAC의 현재 반복 수 입니다. $q$번째의 계산 결과를 이용하여 모든 점에 대한 에러 벡터 $\mathbf{e}_q = | \mathbf{Of}_q|$를 계산해 둔 뒤, RANSAC이 끝나면 지금까지 계산해둔 에러의 평균을 구합니다.

$$\Sigma = \frac{1}{Q} \sum_{q=1}^Q \mathbf{e}_q$$

이를 이용하여 각 점에 대한 에러 $\varepsilon_i$를 계산할 수 있습니다.

$$\varepsilon_i = \frac{1}{N-1} \sum_{i=0}^{N-1} \Sigma(l + (N-1)i)$$

5 Advantages over Fundamental Matrix

본래 fundamental matrix를 프레임간 baseline이 멀어야 제대로 동작합니다. 하지만 카메라의 이동을 알 수가 없기 때문에 어느 프레임을 사용해야 할지는 명확하게 결정할 수 없습니다. (1, 2), (1, 3) 등의 연속된 프레임에서는 baseline이 너무 좁기 때문에 좋지 않은 결과를 얻게 됩니다. 하지만 MMFM은 제대로된 카메라 움직임을 계산하고 이를 통해 움직이는 물체를 계산해 낼 수 있습니다.

또한 단일 fundamental에서는 optical flow 취득으로 부터 발생할 수 있는 에러가 큰 에러를 만들기 때문에 이를 물체로 분리하기가 힘들지만 MMFM에서는 여러 프레임을 참조하여 optical flow로부터의 에러의 영향이 적어지는 효과가 있습니다. Degeneration의 경우에도 좋은 효과를 보였습니다.

6 Experiments and Results

7 Conclusion


Add a Comment Trackback