논문

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

The study on an application of otsu method in canny operator

Fang, Mei, Guangxue Yue, and QingCang Yu. "The study on an application of otsu method in canny operator." International Symposium on Information Processing (ISIP). 2009.

1. Introduction

자동으로 임계값(threshold)를 찾는 작업은 어려운 작업입니다. Otsu의 방법을 통하여 다양한 방법들이 제안되어왔지만 어디에든 써먹을 수 있는 일반적인 방법은 아직 존재하지 않으며, 세그멘테이션의 결과의 질을 측정하는 방법 또한 존재하지 않습니다.

Otsu의 방법은 gray histogram에서 least square를 이용하여 적절한 임계값을 찾는데 이렇게 계산된 값은 통계적인 섲일을 이용하여 안정적인 방법으로 알려져있습니다.

이 연구에서는 Canny operator의 상위 임계값을 Otsu의 방법으로 결정하였고, 그 결과로 이미지의 에지를 추출하였습니다. 이 때 Otsu의 방법을 사용하는 것이 가장 좋은 방법임을 밝히고자 합니다.

2. Canny Operator Theory

Canny edge detector는 Gaussian의 1차 미분 함수의 형태를 가지고 있습니다. 먼저 이미지를 Gaussian convolution을 통하여 부드럽게 만들고, 그 뒤 그래디언트를 얻습니다. 다음 non-maximum suppression을 통하여 에지 후보 지점들을 찾고, double-threshold 방법을 이용하여 최종 에지를 결정하게 됩니다. 그 과정을 정리해보면 다음과 같습니다.

  1. Gussian filter를 이용하여 이미지의 노이즈를 제거
  2. 필터된 이미지의 그래디언트를 계산
  3. 각 에지 픽셀들에 대하여 non-maximum suppression 과정을 수행
    • 현재 픽셀의 주변의 8개 픽셀을 가로, 세로, 두 대각선의 4방향으로 나누어 묶는다.
    • 한 방향에 포함되는 두 픽셀이 모두 0이 아니라면 에지 방향으로 기록한다.
    • 만약 두 인접한 픽셀의 값이 현재 픽셀보다 크면 그 픽셀은 에지에서 삭제하고 그 위치를 기록한다.
    • 모든 픽셀이 조사되었으면, 이미지에서 앞에서 기록한 위치들의 값을 모두 0으로 만든다.
    • 그래디언트에 대하여 $ Th_1, Th_2 $두개의 임게값을 얻습니다. 보통은 $ Th_1 = 0.5 \times Th_2 $ 의 값을 갖도록 설정합니다. 그래디언트가 $Th_1$보다 작은 위치의 픽셀들의 값을 0으로 만들고 이미지 A에 저장합니다. 다음 $Th_2$보다 작은 위치의 픽셀들을 0으로 만든 뒤 B에 저장합니다.
    • 이제 에지를 연결합니다.
    • 첫 0이 아닌 픽셀을 만날 때 까지 이미지 B를 스캔한 뒤, 연결된 컨투어 라인을 추적합니다.
    • 컨투어의 끝 T에 도달하면, A이미지에서의 T위치를 조사합니다. T위치의 8방향 주변을 보아 0이 아닌 픽셀이 있으면 B에 그 픽셀을 포함시킵니다. 더이상 A이미지에서 0이 아닌 픽셀이 없을 때 까지 현재 컨투어에서 이 과정을 반복합니다.
    • 컨투어가 완성되었으면 이제 다른 컨투어를 찾아 같은 과정을 반복합니다.

3. Otsu Method Presentation

Otsu의 방법의 기본적인 아이디어는 이미지 픽셀을 두개의 부류로 나누어 두 부류간의 variance를 최대로 하는 임계값을 찾고자 하는 것입니다. 이러한 값은 다음의 수식으로 계산할 수 있습니다.

$$\arg \max_t \eta^2(t) = \alpha_0 (\mu_0 - \mu)^2 + \alpha_1 (\mu_1 - \mu)^2 = \alpha_0 \alpha_1 (\mu_0 - \mu_1)^2$$

여기서 $\mu, \mu_1, \mu_2 $는 전체 이미지의 평균, 그리고 각 부류의 평균을 나타내며 $\alpha_0, \alpha_1$은 t로 두 부류를 분리하였을 때, 히스토그램을 이용하여 계산된 픽셀이 각 부류에 속할 확률 값을 나타냅니다.

4. Threshold Parameter Setting

여기까지 쓰인 파라미터는 총 3 개로 노이즈에 제거에 사용된 Guassian filter의 $\sigma$와 double-thresholding에 사용된 $Th_1, Th_2$이다. 당연하게도 $\sigma$를 높이면 이미지의 노이즈가 제거되지만 디테일 또한 사라져버립니다. $ Th_2 $을 높이는 것으로 노이즈를 제거하는 효과를 얻을 수 있으나 에지 정보까지 같이 사라져버리는 부작용이 존재합니다. $ Th_1 $ 이 중요한 요소인데 이 값이 낮아질 수록 많은 정보를 활용하여 에지를 결정하지만, 이 값이 높아지면 에지 정보가 사라져 뚝뚝 끊긴 에지를 얻게 됩니다.

Canny operator가 적응적으로 $ Th_2 $값을 결정할 수 있도록 다음과 같이 설정합니다.

$$\sigma = 2$$

$$Th_2 = t^*$$

$$Th-1 = 0.5 Th_2$$

여기서 $^* $는 그래디언트의 Otsu의 방법으로 얻어진 임계값이다.


Add a Comment Trackback