더북(TheBook)

그래디언트 계산

캐니 에지 검출기의 두 번째 과정은 영상의 그래디언트를 구하는 작업입니다. 캐니 에지 검출기에서 그래디언트 계산은 보통 3×3 소벨 마스크를 사용합니다. 다만 앞 절에서 설명한 소벨 에지 검출 방법이 오직 그래디언트 크기만을 이용하여 에지를 탐색하였다면, 캐니 에지 검출기는 좀 더 정확한 에지를 찾기 위해 그래디언트 방향도 함께 고려합니다. 그러므로 가로 방향과 세로 방향으로 각각 소벨 마스크 필터링을 수행한 후, 그래디언트 크기와 방향을 모두 계산해야 합니다.

2차원 공간에서 정의된 함수 f(x, y)의 그래디언트를 ∇f=fxi+fyj라고 할 경우, 그래디언트 크기는 로 정의되고 이를 벡터 ∇f의 L2 노름(L2 norm)이라고 합니다. 그러나 그래디언트 크기를 실제로 계산할 때에는 연산 속도 향상을 위해 그래디언트 크기를 ||f||≈|fx|+|fy| 형태로 계산하기도 하며, 이를 벡터 ∇f의 L1 노름(L1 norm)이라고 합니다. 실제로 OpenCV에 구현되어 있는 캐니 에지 검출기에서도 그래디언트 크기 계산 시 기본적으로 L1 노름을 사용합니다.

 

비최대 억제

에지 검출을 위해 단순히 그래디언트 크기가 특정 임계값보다 큰 픽셀을 선택할 경우, 에지 근방의 여러 픽셀이 한꺼번에 에지로 선택될 수 있습니다. 에지가 두껍게 표현되는 현상을 방지하기 위해 캐니 에지 검출기에서는 비최대 억제(non-maximum suppression) 과정을 사용합니다. 비최대 억제는 그래디언트 크기가 국지적 최대(local maximum)인 픽셀만을 에지 픽셀로 설정하는 기법입니다. 상대적으로 국지적 최대가 아닌 픽셀은 에지 픽셀에서 제외하기 때문에 비최대 억제라는 용어를 사용합니다.

일반적인 2차원 영상에서 국지적 최대를 찾으려면 특정 픽셀을 둘러싸고 있는 모든 픽셀 값을 검사하여 국지적 최대인지를 판별해야 합니다. 그러나 캐니 에지 검출기의 비최대 억제 과정에서는 그래디언트 벡터의 방향과 같은 방향에 있는 인접 픽셀끼리만 국지적 최대 검사를 수행합니다. 결과적으로 비최대 억제를 수행함으로써 가장 변화율이 큰 위치의 픽셀만 에지로 검색됩니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.