이진화 알고리즘: 임계값 T보다 큰화소는 1, 그렇지 않은 화소는 0으로 바꿈 임계값 결정이 중요함.
오츄 알고리즘: 이진화를 최적화 문제로 바라봄. 최적값 t'를 임계값 T로 이용
최적화 문제란 어떤 목적함수를 최소화 또는 최대화하는 변수를 찾는 문제임.
이진화의 경우 목적함수는 이미지의 밝기값 분포를 바탕으로 만들어지며, 임계값이 목적함수를 최소화하거나 최대화하는 값을 찾는것이 목표임.
이때 다시말하자면 이진화란 그레이스케일 이미지에서 임계값을 기준으로 픽셀의 밝기를 두가지 값 중 하나로만 할당하는 과정을 말함.
이걸 하는 이유는 이 과정을 통해서 이미지의 특정 부분만을 강조하거나, 이미지에서 원하는 객체를 분리하는 목적으로 사용.
목적함수 j(t)는 임계값 t의 좋은 정도를 측정함(작을수록 좋음)
t로 이진화했을때 0이되는 화소들의 분산v0(t)과 1이되는 화소들의 분산 v1(t)의 가중치 (n0(t)와 n1(t)) 합을 j로 사용
오츄 알고리즘(python)
import cv2 as cv
import sys
img=cv.imread('soccer.jpg')
t,bin_img=cv.threshold(img[:,:,2],0,255,cv.THRESH_BINARY+cv.THRESH_OTSU)
print('오츄 알고리즘이 찾은 최적 임곗값=',t)
#이 코드에서는 img의 파란색 체널(인덱스2)을 가져와서 cv.threshold()함수를 사용하여 오츄알고리즘을
#적용하고있음 cv.threshold()함수는 인자를 가지는데
#첫번째 인자: 입력이미지의 채널(이 코드에서는 인덱스2라 파란색 채널임)
#두번째 인자: 임계값의 초기값(여기선 0)
#세번째 인자: 임계값의 최댓값(여기선 255)
#네번째 인자: 임곗값 적용 방법(여기서는 cv.THRESH_BINARY+cv.THRESH_OTSU)
#cv.THRESH_BINARY는 이진화 방법중 하나로 픽셀값이 임곗값보다 크면 255 작으면 0으로 설정
#cv.THRESH_OTSU는 오츄 알고리즘을 적용하여 최적의 임곗값을 찾아줌
#cv.threshold 함수를 통해 오츄 알고리즘이 최적의 임곗값 t를 찾아내고 이를 변수 t에 저장함,
#마지막으로 t값을 출력하여 최적의 임곗값을 확인할수 있슴.
cv.imshow('R channel',img[:,:,2])
cv.imshow('R channel binarization',bin_img)
cv.waitKey()
cv.destroyAllwindows()
오츄 알고리즘은 최적화를 구현하는데 낱낱 탐색 알고리즘을 사용함.
매개변수 t가 해공간을 구성하는데,해공간이 작아서 낱낱 탐색이 가능함
L이 256이라면 해공간은 (0,1,2,....,255)
오츄알고리즘에서 사용하는 낱낱탐색 알고리즘은 가능한 모든 임계값을 대상으로 반복적인 계산을 수행하는 알고리즘임.
이 알고리즘은 이미지에서 가능한 모든 임계값에 대해 반복적으로 계산을 수행함. 이때 임계값은 이미지의 픽셀 밝기 값 분포에서 선택됨. 예를들어, 0부터 255까지 모든 값에 대해 각각 임계값으로 선정하여 클래스간 분산과 클래스 내 분산을 계산함. 이후 계산된 분산 값들중 최소값을 찾아서 해당 임계값을 선택함 -> 이렇게 선택된 임계값을 기준으로 이미지를 이진화함.
이 알고리즘은 가능한 모든 임계값을 대상으로 반복적인 계산을 수행하기 때문에 계산 비용이 매우큼
-> 따라서 큰 이미지에 대해서는 처리 시간이 매우 오래걸릴수있음 그러나 이 알고리즘은 이미지 이진화 문제를 해결하는데 있어서 정확한 결과를 보장해줌
근데 컴퓨터 비전은 문제를 최적화로 푸는 경우가 많은데 이건 해공간이 너무 커서 낱낱 탐색이 불가능함 그래서 최적해가 아니라 부최적해를 찾는 효율적인 알고리즘을 사용함.
스네이크(물체 외곽선을 찾는 알고리즘)는 탐욕 알고리즘 사용
역전파 알고리즘(기계학습을 위해 미분하는 알고리즘)은 미분 사용
'computer_vision' 카테고리의 다른 글
잡음 제거 알고리즘 (0) | 2023.04.20 |
---|---|
영상 영역 처리 (0) | 2023.04.19 |
히스토그램(histogram) (0) | 2023.04.16 |
픽셀기반 영상처리-산술연산 (0) | 2023.04.16 |
영상처리 (0) | 2023.04.16 |