CS/영상처리

[영상처리] Marr-Hildreth Edge detector, Canny Edge Detector(캐니 디텍터) [컴공과고씨]

시간빌게이츠 2022. 4. 11. 13:59
반응형

Marr-Hildreth Edge detector

이 방법은 LoG(Laplactian of Gaussian)라 볼 수 있다.

앞서 배운 것 처럼 gaussian은 거리에 따라 가중치를 다르게 두는 것이고 라플라시안은 2차 미분을 통해서 기울기의 변화량을 측정하는 것이다. 즉 LoG는 가오시안을 2차 미분을 한 것이다. 이 방법은 가오시안 안에 있는 σ를 통해 스케일을 컨트롤 할 수 있다. 가오시안을 통해 잡음을 제거 한 후 라플라시안을 씌우는 2 단계를 한번에 합쳐놓은 것이라고 생각하면 된다. LoG 필터를 적용한 후 zero-crossing 부분을 찾은 후 thresholding을 해주면 경계선을 찾을 수 있다.

 

 

Canny Edge Detector

이 방법은 경계선을 찾을 때 대부분 사용하는 방법으로 낮은 오류 비율과 가장 정확하게 엣지를 찾아 내는 알고리즘이다. 또한 경계선을 얇게 추출할 수 있다. 

이 알고리즘을 step별로 설명해보겠다.

[step1] 2차미분을 통해 gradient of gaussian을 얻어낸다.

[step2] 그 후 4가지 방향으로 나누어 줄 것이다.

4방향 나누기

위에서 얻은 gradient direction(밝기가 변하는 방향)와 아까 나눈 4방향을 비교하여 어디에 속하는지 확인한 후 그 방향에 자신보다 큰 픽셀이 있을 경우 자신을 0으로 만들어준다. 자신이 가장 큰 값이라면 자신을 유지한다.

위 처럼 자신(파란색)이 빨간색(gradient direction)의 방향에 있는 값보다 큰지 작은지를 비교하는 것이다.

이렇게 하면 결국 최대 값만이 살아남고 나머지는 0이 되기 때문에 얇은 엣지를 추출 할 수 있게 된다.

 

[step3] Double Thresholding

예를 들면 첫번째 thresholding은 90 다른 하나는 50이라고 하면 90 이상인 것은 strong 엣지로 그 값을 유지해주고 50이상인 엣지들을 가진 집합에서 첫번째로 thresholding해준 집합을 빼주어 중복을 제거하여 90 미만 50 이상인 엣지만 남겨준다. 이것을 weak edge라 한다.

 

[step4] Edge Linking by Hysteresis

아까 얻어진 strong edge와 weak edge가 연결되어있는지 확인 후 weak edge를 엣지로 볼지 아닐지를 판단해주는 것이다.

8-connectivity는 8방향으로 연결되어있는지 보는 것이고 4-connectivity는 4방향을 보는 것이다.

 

이 과정을 거친 것을 canny edge detector이다.

캐니 알고리즘은 그래디언트 크기와 방향을 모두 고려하여좀 더 정확한 에지 위치를 찾을 수 있고 엣지를 얇게 추출 가능하다. 또한 서로 연결될 가능성을 고려하여 그래디언트 크기가 다소 약하게 나타나는 엣지도 찾을 수 있다.

 

반응형