박두현의 컴퓨터 이론들 - 영역처리 : 1차 미분(First Order Derivative)

안녕하세요. 박두현 입니다.

오늘은 엣지를 검출해내는 알고리즘의 수학적인 계산법, 1차 미분에 대해서 알아보도록 하겠습니다.

 

1. First order derivative

엣지를 찾아내기 위해서 우리는 엣지 검출용 마스크를 돌려서 엣지를 얻어 냈던 것을 기억하실 수 있을 겁니다.

그렇다면 오늘은 그걸 한번 좀더 심도있게 알아보는 시간을 갖도록 하죠. 먼저 1차 미분 입니다.

1차 미분은 행 검출기(Hr)과 열 검출기(Hc)로 구성되어 있습니다.

마스크 계수의 합은 0이 됩니다.

 

종류:

- Roberts: 마스크의 크기가 작고 잡음에 민감

- Prewitt: 널리 사용되는 것으로 대각 방향의 엣지보다 수평수직 엣지를 찾는데 사용

- Sobel: 수평수직보다 대각선 방향에 놓여진 엣지를 찾는데 사용

 

이것의 특징이라면 마스크의 크기가 클수록 상세한 엣지들을 검출할 수가 없으며 작으면 또 잡음에 민감해 집니다.

헐, 복잡 하네요.

 

2. Roberts Operator

로버트 연산은 2차원 배열을 사용합니다.

그 이야기는 무엇일까요? 가장 빠르다는 사실이겠죠? 하지만 빠를 뿐 입니다. 오래전에 만들어진 연산이고, 또 잡음에 약하기 때문에 잘 사용되지 않고 있습니다. 결과물이 안좋은데 사용할 이유가 없는거죠. 지금은...

 

 1stOrderDerivative-RobertsOper.png

[그림2-1. Roberts Operator]

 

3. Prewitt Operator

프리윗 연산은 로버트 연산의 한계를 극복하기 위해서 나온 것 입니다.

마스크가 2x2에서 3x3으로 늘어났습니다.

프리윗 마스크를 사용하면 수직, 수평의 엣지를 찾아내는데 매우 효과적인 결과를 얻을 수 있습니다. 하지만 역시 잘 사용하지 않습니다. 이 다음에 나올 소벨 알고리즘이 있는데요, 이유는 아래서 설명하죠.

 

 1stOrderDerivative-PrewittOper.png

[그림3-1. Prewitt Operator]

 

4. Sobel Operator

소벨 연산은 프리윗 연산의 단점을 극복하기 위해 나온 것 입니다.

프리윗은 수직, 수평의 엣지에 강하지만 대각선 엣지를 잘 찾아내지 못하는 치명적인 단점이 있습니다.

그래서 나온 것이 소벨 연산이죠. 대부분의 영상에는 다양한 곡선도 존재하고 있기 때문 입니다. 그래서 프리윗 연산은 많이 사용하지 않는다는 것 입니다.

또 재미있는 것은 프리윗 연산과 소벨 연산의 마스크가 거의 흡사하게 생겼으나 행렬의 가운데 마스크 값만 2, -2를 사용했다는 사실 입니다. 별 것 아닌 것 같지만 소벨 박사님은 이거 하나로 이름을 널리 알리셨습니다.

 

 1stOrderDerivative-SobelOper.png

[그림4-1. Sobel Operator]

 

5. 결과를 통한 비교

이렇게 1차 미분을 사용하는 엣지 디텍터 3가지의 효과는 결과물을 보면 확연히 보실 수 있습니다.

로버트 연산을 사용하면 뭔가 정보가 많이 소실된 것이 보이죠. 이것은 매우 난감해 지는 상황을 연출할 수 있습니다.

그래서 로버트 연산은 이제 사용하지 않는 것 입니다. 소벨과 프리윗 연산을 많이 사용하고 아주 종종 프리윗 연산을 사용하는 경우는 있지만 일반적으로는 소벨 연산을 더 많이 사용 합니다.

 

 1stOrderDerivative-Results.png

[그림5-1. Roberts vs Prewitt vs Sobel]

 

 1stOrderDerivative-HrHcMasks.png

[그림5-2. Hr, Hc Mask of Roberts and Sobel operator]

 

6. 마치면서...

이전에도 여러번 나왔던 소벨과 프리윗, 로버트 연산에 대한 이야기죠.

1차 미분을 사용하는 엣지 디텍터는 생각보다 많이 많이 사용 됩니다. 예전에 에프에이리눅스에서 근무하셨던 저희 과 선배도 영상 관련 작업을 할 때 엣지 디텍팅은 소벨 연산을 사용했다고 하시네요.

그만큼 오늘 이 엣지 디텍팅은 중요하고 또 1차 미분 연산이 매우 중요하다는 것을 아시겠죠?

그럼 다음주에도 더 재미난 내용으로 찾아 뵙도록 하겠습니다.