영상에서 전경 물체가 어떤 방향으로 정렬이 되어있는가를 찾는 문제는 다양한 영상 인식 알고리즘에서 나타난다. 예를 들면, 영상에서 사람의 머리가 어떤 자세를 취하고 있는가를 묻는 것에 대한 답이나, 손바닥 인식에서 손이 가리키는 방향에 대한 정보를 제공한다.
물체의 정렬 방향(orientation)은 물체 영역의 모든 픽셀로부터 어떤 직선까지의 거리 제곱의 합을 최소로 만드는 직선의 방향으로 정의할 수 있다. 이 최적 직선은 물체 영역의 질량중심 $(x_c, y_c)$을 지나게 된다.
물체 영역의 중심을 지나고 $i$ 축으로부터 $\theta$만큼 기울어진 직선이 있을 때, 픽셀 $(i, j)$에서 직선까지의 거리는
$$ \text{distance} =\left| -(i-x_c) \sin \theta + (j-y_c) \cos \theta\right|$$로 주어진다. (직선에 수직한 단위 벡터 $(-\sin\theta, \cos\theta)$에 대한 $(i-x_c, j-y_c)$의 정사영임을 생각하면 쉽게 이해할 수 있다)
따라서, 최소자승법의 의미에서 orientation은 전경 픽셀에 대해 직선까지 거리 제곱을 다 더한 양을 최소화시키는 $\theta$를 구하는 걸로 귀결된다.
$$S(\theta) = \sum _{ (i,j)~\in \\ \text{object}} \big| -(i-x_c)\sin \theta + (j-y_c) \cos \theta \big|^2 $$
$$ \longrightarrow \quad \theta^{*} = \text{argmin} \big[ S(\theta) \big].$$
$ S( \theta)$를 $\theta$에 대해서 미분을 한 후에 정리하면,
\begin{align}\sum_{ij} \left[ (i-x_c)^2 - (j-y_c)^2 \right] \sin\theta \cos \theta -\sum _{ij} (i-x_c) (j-y_c) (\cos ^2 \theta - \sin^2 \theta ) = 0\end{align}
$$\therefore~\tan 2\theta^{*} = \frac{2 \mu_{11} }{ \mu_{20} - \mu_{02}} $$
로 주어짐을 알 수 있다. $\mu_{pq}$ 는 영상의 $p+q$ 차원 central moment에 해당한다. $\tan \theta^*$을 구해보면
$$ \tan \theta^* = \frac{-(\mu_{20}-\mu_{02}) \pm \sqrt{(\mu_{20}-\mu_{02})^2 + 4 \mu_{11}^2 }}{2\mu_{11}}$$로 구해지는데 $$S''(\theta^*)= \pm 2\sqrt{ (\mu_{20}- \mu_{02})^2 + 4 \mu_{11}^2}$$이므로 최소조건($S''(\theta^* )\ge0$)을 만족하려면 윗쪽 부호를 선택해야 한다.
Orientation은 방향이 있는 벡터가 아니라 직선의 방향이므로 $\theta^\ast \equiv \theta^\ast +\pi$이다. 즉, $\theta^\ast$는 $[0, \pi)$ 범위에서 정하면 충분하다. 따라서 $\mu_{11}>0$이면 $0\le \theta^* \le \pi/2$이고, $\mu_{11}<0$이면 $\pi/2 < \theta^{*} < \pi$의 범위를 가진다.
$\mu_{11}=0$인 경우에는 위의 $\tan\theta$ 식으로 나누지 말고 직접 판정해야 한다. $\mu_{20}>\mu_{02}$이면 물체는 $i$축 방향으로 더 넓게 퍼져 있으므로 $\theta^\ast=0$이고, $\mu_{20}<\mu_{02}$이면 $\theta^\ast=\pi/2$이다. 만일$$\mu_{20}=\mu_{02},\qquad\mu_{11}=0$$이면 모든 방향의 2차 모멘트가 같아 특별한 정렬 방향이 존재하지 않는다. 예를 들어 원형 물체나 정사각형처럼 2차 모멘트가 등방적인 물체가 이에 해당한다.
이 결과는 PCA와 완전히 동일하다. 전경 영역의 공분산 행렬(covariance matrix)은 정규화 상수를 제외하면
$$ \Sigma = \left( \begin{array}{cc} \mu_{20} & \mu_{11} \\ \mu_{11} & \mu_{02} \end{array} \right)$$ 이 행렬의 가장 큰 고윳값에 대응하는 고유벡터가 물체가 가장 넓게 퍼진 방향, 곧 최적 직선의 방향을 나타낸다. 반대로 가장 작은 고윳값의 고유벡터는 그 직선의 법선 방향을 나타낸다. 따라서 수직거리 최소자승으로 얻은 orientation은 PCA의 첫 번째 주성분 방향과 동일하다.
'Image Recognition > Fundamental' 카테고리의 다른 글
| Fixed-point RGB2Gray (0) | 2012.01.25 |
|---|---|
| Otsu-알고리즘의 새로운 해석 (0) | 2010.01.28 |
| Bicubic Interpolation (2) | 2010.01.14 |
| Bezier Curve을 이용한 Histogram Smoothing (0) | 2010.01.10 |
| Running Median Filter (0) | 2010.01.07 |


