let us not love with words or tongue but actions and truth.

IT/영상처리분석

Edge Detection

sarah0518 2022. 3. 31. 11:33

Edge Detection

- Goal: 급격한 변화(불연속성등)을 파악하는 것

- 장점: More compact than pixels

 

Edge Detection을 통해 얻을 수 있는 것들

1. 정보추출

2. 물체인식

3. Recover geometry and viewpoint

 

Edge Detection에 방행되는 요인

illumination 효과 (음영효과)

Edge 구성요소

1. Edge direction: intensity가 증가하는 방향에서 직교하는 방향

2. Edge strength: intensity 변화의 정도

--> 0~255 vs. 10~20 중 앞에것이 edge strength가 더 큼

3. Edge position: the image position at which the edge is located

 

Origins of edges

1. surface normal discontinuity(표면의 법선의 불연속성)

2. depth discontinuity

3. surface color discontinuity

4. illumination discontinuity

 

Characterizing edges

1차미분 또는 2차미분을 통해 검출 함

intensity의 1차미분의 최대/최소값, intensity의 2차미분의 0이 되는 값

 

 

Image gradient

gradient vector는 intensity가 급격히 증가하는 방향 (edge direction과 수직인 방향)

edge normal = gradient direction = gradient vector = intensity가 증가하는 방향

1차 미분 값

 

theta = gradient orientation

 

Edge strength는 아래와 같음

Edge strength = 화살표의 길이 = gradient magnitude

 

 

Effect of noise

noise가 있는 signal을 1차 미분을 하면 edge가 사라지게 됨

 

위에 적용된 Finite difference filters(한계가 있는 서로다른 필터)는 noise에 강하게 응답함

--> smoothing 기법을 적용하여 noise 억제

gaussian 커널을 적용하여 smoothing 시킴

 

더 간단히, 아래와 같이도 표현 가능함

 

 

Smoothing 필터의 종류

1. Prewitt operator

2. Sobel operator

2를 쓰는 이유는 가운데 부분에 더 weight를 주겠다는 의미, 주변부의 noise를 줄이겠다.

Preweitt/Sobel operator를 사용 후, gradient값을 얻을 수 있음.

 

 

 

Edge Detection step

threshold가 크면 noise는 잘 필터될 수 있지만, 정보까지도 사라질 수있음, tan-1대신 atan2로도 씀

 

 

Noise suppression - localization tradeoff

localization: edge가 넓은 범위에 걸쳐나오는 것의 여부

Lage mask를 통해 noise는 감소시킬 수 있지만, 

edge가 넓은 범위에 걸쳐나오므로 localize(경계선 파악이)가 어려움

 

mask사이즈는 시그마에 비례함

 

 

Edge thinning and linking

 

adaptive threshold: 구간별로 서로 다른 threshold를 사용하는 것

 

 

smoothing - localization tradeoff

smoothing kernel = gaussian 필터의 sigma 크기 = scale

smoothing kernel이 클수록 noise를 줄일 수 있지만 edge가 blur해진다는 단점이 있음

 

 

edge detection 성능평가

TN는 잘 사용 안함

왜냐하면 edge외에는 모두 TN이므로 

 

 

single response: true edge point로 one point의 값을 return하는 것

 

 

Canny Edge Detector

많이 쓰이고 있는 edge 검출 방법

1. Compute Gradients (그다음, 0~1, 0~255로 scaling해줌)

 --> image가 갖는 범위는 0~255

 --> 이값을 미분해서 나온 값이 가질수 있는 범위는 0~255

 --> gradient magnitude값에 따라 min값은 0, max는 sqrt(255^2+255^2) 

 --> 그러므로 다시 이 max값을 0~255로 scaling 해줘야함

2. Get Orientation at Each Pixel

tangent함수에서 불연속성인 부분을

연속성있게(그림에서도 연속성있게) 해주기 위해 atan2로 사용함

 

3. Non-maximum suppression

edge와 가장 비슷한 가운데 흰색 선 외에 부분들은 제거 하는 것

(edge가 두꺼울때 thining하게 해주는 것)

4. Edge linking(끊어진 edge 연결)

5. Hysteresis thresholding

2가지 값(high/low)의 threshold를 사용

threshold보다 훨씬 큰 값을 가진것에서 connection파악하여

low threshold보다 큰 값을 가진 약한 edge를 강한 edge와 연결함

시그마가 1일 때 너무 많이 검출, 2일때는 너무 적게 검출 됨

 

 

 

ROC커브, DET커브

ROC: Receiver Operating Characteristic curve

DET: Deterministic Error Tradeoff

 

 

 

 

 

해당 내용은 서강대학교 영상처리분석과목을 정리한 내용입니다.

'IT > 영상처리분석' 카테고리의 다른 글

Face Detection  (0) 2022.05.23
여러 종류의 Feature descriptor  (0) 2022.05.16
keypoint detection - Harris, SIFT, SURF, LIFT  (0) 2022.04.18
Line & Ellipse detection  (0) 2022.04.17
컬러 이미지 처리  (1) 2022.03.21