Hi there!

I am a student studying computer science.

컴퓨터 비전

3장 에지 검출 - 캐니 에지

만능성구 2020. 5. 12. 14:37
728x90

Google scholar : https://ieeexplore.ieee.org/abstract/document/4767851

 

A Computational Approach to Edge Detection - IEEE Journals & Magazine

INSTITUTIONAL SUBSCRIBERS: Are you having difficulty accessing IEEE Xplore when working remotely? Try These Tips

ieeexplore.ieee.org

앞 절은 그럴듯해 보이는에지 연산자 사용

1986년에 Canny 에지 발표 [Canny86]

- 에지 검출을 최적화 문제로 해결하였다.

- 좋은 에지 알고리즘이 갖추어야 할 세 가지 기준은 다음 3가지다.

- 캐니 기준에 맞는 목적 함수를 만든 후, 이 함수를 최적화하는 연산자 설계를 실패했다.

- 따라서 1차원 계단 에지에 화이트 잡음이 첨가된 상황을 가정하고 최적화 작업을 하였다.

- 그 결과 가우시안에 1차 미분을 적용한 연산자가 최적임을 수학적으로 증명하였다.

- 1차원을 2차원으로 확장하기 위해서 그레이디언트 방향을 알아내어 미분을 수행해야 하는데 그것을 모른다.

- 이 과정을 아래의 에지 연산자와 같은 마스크를 이용하여 그레이디언트 방향을 구하는 것으로 근사할 수 있고, 이때 발생하는 오류를 허용할 수 있는 범위에 있다는 사실을 증명했다.

- 이렇게 구한 에지 영상은 에지가 두껍기 때문에 얇게 바꾸는 비최대 억제라는 단계를 추가한다.

- 마지막으로 거짓 긍정 에지를 제거하는 이력 임계값 단계를 적용한다.

- 이들을 가성 코드로 쓴 것이 아래의 캐니 에지 검출 알고리즘이다.

비최대 억제(non-maximum suppression)

maximum이 아니면 없애라

이웃 두 화소보다 에지 강도가 크지 않으면 억제된다(에지가 아닌 것으로 결정한다).

회색의 화소가 p(화살표)에 대한 이웃 두 화소이고  p의 에지 강도가 두이웃보다 크면 에지가 되고 아니면 안된다.

 = 지역의 최대점만 얇은 두께의 에지 영상으로 생성된다.

이력 임계값

- 두 개의 임계값 T_highT_low 사용하여 거짓 긍정 줄인다.

- 비최대 억제를 적용했을 때 거짓 긍정(에지가 아닌데 에지로 판명된 경우)도 많이 포함되어있다.

- 임계값 T를 설정해 놓고 에지 화소 p의 에지 강도 s(p) < T 이면 거짓 긍정으로 보고 제거한다.

- 하나를 얻으면 하나를 잃는 길항 작용을 한다.

- T를 높게 설정하면 거짓 긍정은 제거를 잘하지만 / 에지 강도가 낮은 진짜 에지를 제거하는 거짓 부정 문제 발생한다.

// 가짜 에지를 제거 잘하지만 진짜도 지운다.

- 에지 추적은 T_high를 넘는 화소에서 시작, 추적 도중에는 T_low 적용 

- 신뢰가 높은 화소만 에지 추적을 시작할 권리를 얻는다.

- 이웃 화소가 추적이력이 있으면 자신은 신뢰도가 낮더라도 에지로 간주된다.

- T_high를 T_low의 2~3배로 할 것을 권고한다.

알고리즘은 아래와 같다.

  16 |   if(S(y,x) > T_high and visited(y,x) = 0) follow_edge(y,x);

16번 부터 추적시작

영교차 에지와 마찬가지로 σ가 커질수록 디테일이 사라진다.

낮은 임계값과 높은 임계값 비교

오른쪽이 왼쪽의 2배이며

T_high와 T_low는 2.5배이다.

z.B) σ = 2.0 일때

왼쪽 : (T_high, T_low) = (0.125, 0.05)

오른쪽 : (T_high, T_low) = (0.25, 0.1)

 

임계값이 높을 때 에지가 적게 검출된다.

 

728x90