[ch07] 이진 영상 처리 - 자동 이진화 : Otsu 방법

빨주노·2021년 8월 25일
0

임계값 자동 결정 방법

  • 영상의 히스토그램이 bimodal이고, 전경&배경 픽셀 분포가 비슷하다면?

    Bimodal distribution은 통계학에서 서로 다른 두 개의 최빈값을 갖는 연속확률분포이다. 아래 그림에서처럼 두 개의 극대값이 있는 확률분포함수 그래프를 나타낸다.

  • 히스토그램이 bimodal이지만, 전경&배경 픽셀 분포가 크게 다르다면?

Otsu 이진화 방법

  • 입력 영상이 배경(background)과 객체(object) 두 개로 구성되어 있다고 가정 → bimodal histogram

  • 임의의 임계값 T에 의해 나눠지는 두 픽셀 분포 그룹의 분산이 최소가 되는 T를 선택

  • 일종의 최적화 알고리즘(optimization algorithm)

  • Within-class variance

    다만, 위 input에 해당하는 T에 대해서 0부터 255까지 모두 스캔해야 하므로 시간이 오래 걸린다는 단점이 있다.

  • Otsu 임계값

    • argminargmin : 'arguments of min' 이라는 뜻이다. 즉, 어떤 함수를 최소로 만드는 정의역의 점들, elements 혹은 매개변수를 말한다.
      따라서, 분산이 최소가 되게끔 하는 t의 값을 의미한다.
  • 극복방법 : Within-class variance 최소화 & Between-class variance 최대화

  • 모든 t값에 대해 𝜎²𝐵𝑖𝑡𝑤𝑒𝑒𝑛(𝑡)를 구하여 최적의 T를 선택한다. 이는 시간이 느리다는 단점이 있다.

  • 따라서, recursion을 이용하여 효율적으로 계산하면 속도가 빨라질 것이다. 즉, 이전 가중치 w(t1)w₁(t-1)를 이용하여 연산 속도를 개선한다.

Otsu 방법을 이용한 자동 이진화 예제

src = cv2.imread('rice.png', cv2.IMREAD_GRAYSCALE)
th, dst = cv2.threshold(src, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)

print("otsu's threshold:", th)

otsu's threshold: 131.0

dst에서 하단에 이진화가 제대로 이루어지지 않는 모습이 보인다. 이 부분까지 이진화를 잘 하는 방법은 다음 시간에 배우도록 하자.

profile
딥 하게 딥러닝 하는중

0개의 댓글