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 알고리즘 단계:
- 가우시안 필터로 이미지 스무딩
- 그래디언트 크기와 방향 계산
- 비최대 억제(Non-maximum suppression)
- 이중 임계값 처리와 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 원리 이해