일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- AI
- 인공지능
- 지정헌혈
- 머신러닝
- 유데미
- mnist
- 모델
- 딥러닝
- 크롤러
- 자연어처리
- 선형회귀
- 크롤링
- 플러터
- 앱개발
- 피플
- Regression
- Computer Vision
- pytorch
- 42서울
- CV
- 코딩애플
- filtering
- map
- 42경산
- Flutter
- 회귀
- 선형대수학
- 파이썬
- 데이터분석
- RNN
- Today
- Total
David의 개발 이야기!
[CV Lecture 05] Edge Detection 본문
A. Image Gradient
1. How to detect Image Edges?
Q1 ) How would you go about detecting edges in an image?
=> Take derivatives: derivatives are large at discontinuities.
미분은 이미지에서 강도가 급격히 변하는 영역을 강조한다. 이러한 영역은 대개 엣지에 해당한다.
Q2) How do you differentiate a discrete image (or any other discrete signal)?
=> Use finite differences
디지털 이미지는 연속적이지 않고, 이산적이다. 이미지는 픽셀로 구성되며, 각 픽셀은 이산적인 강도 값을 가진다. 이는 연속함수에 사용되는 미적분을 적용할 수 없음을 의미한다.
따라서, 이산 함수에서 미분을 근사하기 위해 유한차분 finite differences 를 사용한다. 예를 들면, 특정 지점에서의 미분의 가장 간단한 근사는 그 지점과 바로 인접한 이웃 사이의 강도값 차이이다.
2. Sobel Filter
-> 보통 미분필터와 스무딩 필터를 결합해서 같이 사용한다.
Finite Differences 개요
Sobel Filter : 미분 필터와 스무딩 필터를 보통 결합해 같이 많이 사용한다!
sobel filter의 장점중 하나로는, 어떤 필터를 사용했는지 사진 만으로 알 수 있다.
+) sobel filter만 있는 것은 아니다. Prewitt, Scharr, Roberts 필터도 있으나, 결과가 거의 비슷하기 때문에 잘 안쓴다!
B. Edge Detection
1. How do you find the edge of this signal?
위의 사진이라면, 미분을 통해 금방 알수 있으나, 밑의 사진인 경우, 어떻게 미분을 하겠습니까...!
Differentiation is very sensitive to noise!
미분은 노이즈에 민감하기 때문에, 스무딩을 꼭 해주어야한다!!
즉, edge detection 을 정리하면,
1. Smoothing image for noise reduction
2. Computing Image Gradient to find edge candidates
3. Localize edge : find peak of the first order derivative of image
4. Thresholding edge
요런 순으로 진행된다고 보면 된다.
2. Canny Edge Detector
1. Smoothing image
2. Computing image gradients
3. Localizing edge
- Non-Maximum suppression : 중복 제거
-> 각 픽셀의 그라디언트 강도를 해당 픽셀의 그라디언트 방향에 있는 이웃 픽셀들의 그라디언트 강도와 비교한다. 픽셀이 그 방향에 있는 이웃 픽셀들 보다 낮은 그라디언트를 가지고 있다면, 그 픽셀은 경계가 아닐 가능성이 높으므로 경계후보에서 제거한다.
-> 경계를 더욱 명확하고 실제 경계에 가깝게 표현하는 것임.
4. Hysteresis thresholding
이 순서대로 진행이 되는데,
Hysteresis Thresholding을 좀더 살펴보자.
2-1 Hysteresis Thresholding
2-2 Gaussian filter 에서의 Theta 값 결정하기
theta 값을 키우면
-> 스무딩 되는 정도가 커짐.
-> 스무딩이 크면, 부드러워져서 검출량이 작아진다. (못찾을 가능성이 커진다 && 오검출량이 줄어든다)
-> Precision 이 높아짐
theta 값을 작게하면
-> 스무딩되는 정도가 줄어들어, 더 많이 검출된다. (오검출량이 늘어난다 -> Precision 감소)
2-3 Derivative of Gaussian (DoG) Filter
DoG 필터는 위에서 가우시안 스무딩을 하고 미분을 하여, edge를 검출하는 방식을 조금 변형한 필터이다.
(h * f ) * x <- h 와 f 를 먼저하나, h * x 를 하나 결국엔 같다.
2-4 Laplacian of Gaussian (LoG) Filter
LoG 필터는, 먼저 이미지에 가우시안 스무딩을 적용한후, 라플라시안 (Laplacian) 연산을 사용해 경계를 검출하는 필터이다.
2차 미분을 활용해, 이미지의 밝기 변화율의 변화를 감지한다.
왼쪽 LoG 필터의 경우, 0이 존재하는 곳(흰줄 사이 검은 부분) 이 경계로 사용된다.
오늘은 Image Gradient와 Image filter들을 사용해서 image의 edge를 찾는 방법에 대해서 배울수 있었다!
'컴퓨터비전' 카테고리의 다른 글
[CV Lecture 07] Feature Detection (Cont.) (0) | 2023.12.03 |
---|---|
[CV Lecture 06] Feature Detection (0) | 2023.12.03 |
[CV Lecture 04] Image - Resizing (0) | 2023.11.29 |
[CV Lecture 03] Linear Filtering (0) | 2023.11.29 |
[CV Lecture 02] Point Processing (0) | 2023.11.29 |