CV ‐ 3. Edge Detection - waegari/waegari.github.io GitHub Wiki

edge 탐지(Edge Detection)

1. edge의 기본 개념과 중요성

edge는 이미지에서 강도(intensity)가 급격하게 변하는 지점으로, 다음과 같은 이유로 중요합니다:

  • 의미적 정보와 형태 정보를 인코딩함
  • 객체 인식과 기하학적 정보 복구에 활용됨
  • 이미지 표현을 픽셀보다 더 압축적으로 할 수 있음

2. edge의 기원과 특성

edge의 발생 원인:

  • Surface normal discontinuity (표면 법선 불연속성)
  • Depth discontinuity (깊이 불연속성)
  • Surface color discontinuity (표면 색상 불연속성)
  • Illumination discontinuity (조명 불연속성)

edge 설명자(Edge Descriptors):

  • Edge direction: 강도 변화가 최대인 방향에 수직인 방향(edge normal)
  • Edge strength: normal을 따라 국소 이미지 대비와 관련됨
  • Edge position: edge가 위치한 이미지 지점

3. edge 특성화 (Characterizing Edges)

edge는 이미지 강도 함수의 급격한 변화 지점으로 정의됩니다.

미분 기반 접근법:

  • 1차 미분(First derivative):
    • edge 위치에서 극값(extrema)을 가짐
    • 마스크: [-1, 1] 또는 [-1, 0, 1]
  • 2차 미분(Second derivative):
    • edge 위치에서 zero-crossing을 가짐
    • 마스크: [1, -2, 1]

4. 이미지 그래디언트(Gradient)

  • 그래디언트 벡터: ∇f = [∂f/∂x, ∂f/∂y]
  • 그래디언트는 강도가 가장 빠르게 증가하는 방향을 가리킴
  • 그래디언트 방향(direction): θ = tan⁻¹(∂f/∂y / ∂f/∂x)
    • 이것은 edge 방향에 수직임(edge normal)
  • edge 강도(edge strength): 그래디언트 크기(magnitude)
    • ||∇f|| = √[(∂f/∂x)² + (∂f/∂y)²]

5. 노이즈 처리

문제: 노이즈가 있는 이미지에서 미분 연산은 노이즈에 민감하게 반응함

해결책: 스무딩 후 미분

  • 가우시안 필터로 이미지 스무딩 후 미분
  • Convolution의 미분 정리(Derivative theorem of convolution):
    • d/dx(f * g) = f * (d/dx g)
    • 이 성질을 이용하면 연산이 하나 줄어듦

가우시안 필터의 미분(Derivative of Gaussian, DoG):

  • 2D 가우시안을 각각 x, y 방향으로 미분한 필터
  • 가우시안 스무딩과 미분을 동시에 수행하는 효과

6. 주요 연산자

Prewitt Operator:

Mx = [[-1, 0, 1],
      [-1, 0, 1],
      [-1, 0, 1]]

My = [[-1, -1, -1],
      [ 0,  0,  0],
      [ 1,  1,  1]]

Sobel Operator:

Mx = [[-1, 0, 1],
      [-2, 0, 2],
      [-1, 0, 1]]

My = [[-1, -2, -1],
      [ 0,  0,  0],
      [ 1,  2,  1]]

7. edge 탐지 단계(Edge Detection Steps)

1. 이미지 스무딩

  • 가우시안 필터 적용
  • σ(시그마) 선택: 노이즈 제거와 위치 정확도 사이 trade-off
    • 큰 σ: 노이즈 감소, 위치 정확도 감소
    • 작은 σ: 노이즈에 취약, 위치 정확도 높음

2. 그래디언트 계산

  • x방향과 y방향 미분 계산
  • 그래디언트 크기와 방향 계산

3. 비최대 억제(Non-maximum suppression)

  • 그래디언트 방향을 따라 로컬 최대값만 유지
  • 그래디언트 방향에 수직인 edge 곡선의 접선 구성
  • 다중 픽셀 폭의 "ridge"를 단일 픽셀 폭으로 줄임

4. 임계값 처리와 연결(Thresholding and linking)

  • 이중 임계값(hysteresis) 사용:
    • 높은 임계값: edge 곡선 시작점
    • 낮은 임계값: 시작된 edge 곡선 연장

8. Canny Edge Detector

Canny edge 탐지기는 컴퓨터 비전에서 가장 널리 사용되는 edge 탐지기입니다.

최적 edge 탐지기 기준:

  • Good detection: 거짓 양성(false positive)과 거짓 음성(false negative) 최소화
  • Good localization: 탐지된 edge가 실제 edge에 최대한 가깝게
  • Single response: 각 실제 edge 지점에 대해 하나의 지점만 반환

Canny 알고리즘 단계:

  1. 가우시안 필터로 이미지 스무딩
  2. 그래디언트 크기와 방향 계산
  3. 비최대 억제(Non-maximum suppression)
  4. 이중 임계값 처리와 edge 연결(hysteresis)

σ(시그마) 선택의 중요성:

  • 큰 σ: 큰 스케일 edge 탐지
  • 작은 σ: 세밀한 특징(fine features) 탐지

9. edge 탐지 성능 평가

평가 지표:

  • F-measure: 정밀도(precision)와 재현율(recall)의 조화평균
    • F = 2 * (precision * recall) / (precision + recall)

임계값 설정 방법:

  • ODS(Optimal Dataset Scale): 데이터셋 전체에 고정 임계값 사용
  • OIS(Optimal Image Scale): 각 이미지마다 최적 임계값 선택

10. 시험 준비를 위한 핵심 체크리스트

  • edge의 정의와 중요성 이해
  • edge의 4가지 발생 원인 암기
  • Edge direction, edge strength, edge position 정의 숙지
  • 이미지 그래디언트 계산 방법과 의미 이해
  • 1차, 2차 미분의 edge 검출 특성 비교
  • Prewitt과 Sobel 연산자 마스크 암기
  • 노이즈 처리를 위한 가우시안 필터링의 원리 이해
  • Convolution의 미분 정리와 그 이점 숙지
  • edge 탐지 4단계 과정 상세 이해
  • Canny edge 탐지기의 원리와 기준 이해
  • σ(시그마) 파라미터가 결과에 미치는 영향 파악
  • Non-maximum suppression과 hysteresis thresholding 원리 이해