논문

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

Single camera calibration for trajectory-based behavior analysis

[cite]10.1109/AVSS.2007.4425301[/cite]

1 Introduction

카메라가 어디에 달려있든, 수가 몇 개이든 카메라 캘리브레이션은 필수적인 과정입니다. 기본적으로 캘리브레이션은 여러 장의 2D 지점들의 매치를 통하거나, 이미 알고 있는 3D 정보를 이용하여 이루어집니다. 하지만 하나의 카메만 이거나 여러 카메라가 있더라도 서로 영역이 겹치지 않으면 이러한 방법을 사용할 수 없습니다.

또한 캘리브레이션은 움직이는 물체의 궤적(trajectory)을 분석하는데 중요한 역할을 합니다.

여기서는 perspective rectification에 기반하여 한개 카메라 캘리브레이션을 이용한 궤적의 군집에 의한 영상 분석을 소개합니다. 이미지로부터 궤적은 지 평면에 투영하여 투영에 의한 효과를 줄입니다. 다음 Mean shift를 통하녀 fuzzy 군집 방법을 적용할 것입니다.

2 Ground-plane calibration

씬이 3D 유클리디언 공간이고 그 안에 무언가 알 수 있는 물체가 있다고 생각하는 대신, affine 혹은 projective space에 있다고 가정을 하여봅시다. 이런 가정하에 Liebowitz는 평면의 rectification을 측정을 위한 알고리즘을 제안하였습니다.

$ N_r$$N_i$를 각각 현실과 이미지의 평면이라고 가정하면, 둘 사이를 매핑하는 관계는 호모그래피로 설명됩니다. $ N_i = H N_r $ 여기서 H는 3 * 3 크기의 랭크 3을 갖는 행렬입니다. 이 projective 변환은 3개의 변환 체인으로 나타낼 수 있습니다.

$$H = \chi \varsigma \rho$$

여기서 $ \chi $는 similarity 변환, $ \varsigma $는 affine 변환, $ \rho$는 pure projective 변환을 나타냅니다.

먼저 $ \rho $를 결정하여봅시다.

$$\rho = \begin{bmatrix}
1 &\ 0 &\ 0 \\
0 &\ 1 &\ 0 \\
l_1 &\ l_2 &\ l_3
\end{bmatrix}$$

$ l_{\infty} = (l_1, l_2, l_3)^T $ 는 평면의 vanishing line 입니다.

실제 평면 위의 평행선은 이미지에서의 vanshing line 위에서의 소실 점(vanishing point)에서 교차합니다. 따라서 여기서는 vanishing line은 카메라의 optical axis와 수직하고 이 선은 vanishing point를 지난다고 가정하고자 합니다. 이제 이미지에서의 평행선에 해당하는 네 점을 선택하여 vanishing point를 계산한 뒤 이를 통해 vanishing line을 찾아 $l_{\infty} $로 사용합니다.

다음 affine 변환 $\varsigma$를 찾을 단계입니다.

$$\varsigma = \begin{bmatrix}
\frac{1}{\beta} &\ - \frac{\alpha}{\beta} &\ 0 \\
0 &\ 1 &\ 0 \\
0 &\ 0 &\ 1
\end{bmatrix}$$

$ \alpha, \beta$는 복소 도메인에서의 한 점을 나타내며 이는 Euclidean 변환을 나타내는데 유용합니다. 화면에서 정 사각형에 해당하는 네 점과, right angle에 해당하는 세 점을 표시하여 두 값을 얻을 수 있습니다. 자세한 계산법은 논문에 나와있으므로 생략합니다.

마지막으로 $ \chi $ 입니다.

$$\chi = \begin{bmatrix} R &\ t \\ 0 &\ 1 \end{bmatrix}$$

R과 t는 각각 회전행렬과 이동 벡터로서, similarity 변환은 좌표계를 선형적으로 바꾸기만 하고 perspective에는 영향을 주지 않으므로 여기서는 따로 이 행렬을 제거하지 않고자 합니다.

3 Trajectory Clustering

3.2 Fuzzy Mean-Shift Clustering

찾아낸 움직임 궤적을 앞에서 찾아낸 이미지 평면으로 변환하여 perspective에 의한 변형을 제거합니다. 변환 후의 궤적을 $T_j$라고 하여봅시다. j는 궤적의 번호입니다.

이를 PCA를 통해 변환 한 뒤, 처음 2개까지의 성분만을 사용하면 궤적의 방향 벡터만을 추출해낼 수 있습니다. 공간 상에서 각 궤적의 방향 벡터에 대하여 Mean-shift를 적용하여 clustering을 수행합니다. Mean-shift의 결과에서 인접하지만 다르게 군집화된 결과물을 다시 한번 보정하여 하나로 합치는 과정을 거칩니다. 자세한 내용은 논문에 상셍히 나와있습니다.

4 Experimental Results

차량 소통 씬에 대하여 이미지를 분석하였습니다. 궤적이 붙어있는 경우 클러스터링이 잘못 되는 경우가 있었습니다. 이러한 경우 rectification 과정을 하는 편이 더 결과가 좋았습니다.


Add a Comment Trackback