[CV] Computer Vision(3): Edge Detection
Edges of Image
๐Edges of Image: ์ด๋ฏธ์ง์์ ๊ฐ์ฒด์ ๊ฒฝ๊ณ๋ฅผ ๋ํ๋ด๋ ์ง์
โ Edge ํน์ง:
- Indicate occlusion(๋ง๋ฌผ๋ฆฐ ๊ฒฝ๊ณ) events in 3D
- ๋์ฒด๋ก ๋์ ๋ณด์ด๋ ์ค๊ณฝ์ ์ผ๋ก ํํ๋จ
- ์ด๋ฏธ์ง ๋ด์์ ํ๋ฉด ๋ฐฉํฅ์ด ๊ธ๊ฒฉํ๊ฒ ๋ณํ๋ ์ง์
- edge(boundaries)๋ ์นด๋ฉ๋ผ ๊ธฐ์ค์ผ๋ก ํ๋ฉด์ด ํฅํ๊ณ ์๋ ๋ฐฉํฅ์ด ๊ธ๊ฒฉํ ๋ณํ ๋ ๊ทธ ์์น์์ ๋ฐ์ํจ
- edge ํฌ์ธํธ์ ์งํฉ์ ๋ง๋ค์ด์ ๊ณก๋ฅ ์ง์ ๋ฑ์ ํํ
Edge Detection
โ ์ด๋๊ฐ edge ๋๋ boundaries๊ฐ ๋ ์ ์๋๊ฐ?
- ์์์ด ๊ธ๊ฒฉํ๊ฒ ๋ณํ๋ ๋ถ๋ถ(๋ฌด์กฐ๊ฑด์ ์๋)
- edge detect๋ ์ ์ฒด ์ด๋ฏธ์ง์ ์ ์ฉ๊ฐ๋ฅ ํ์ง ์๊ณ ๊ทธ ์ฃผ๋ณ์ ํํด์ ๋ฐ๋ก๋ฐ๋ก detectionํ๊ฒ ๋จ (local information)
- ๋น์ ๋ช ๋์ ์์ ๊ธ๊ฒฉํ ๋ณํ๋์ ํตํด edge๋ฅผ ์ธ์
Derivatives of Digital Images
์์ง๋ฅผ ์ํ์ ์ผ๋ก ์ฐพ๊ธฐ ์ํด ์ด๋ฏธ์ง์ ๋ฏธ๋ถ์ ์ ์ฉ ๋ฏธ๋ถ์ ์ ์ฉํ๋ฉด ์ด๋ฏธ์ง์ ๊ธ๊ฒฉํ ๋ณํ๋ฅผ ๊ฐ์งํ๋๋ฐ ๋์์ด ๋๋ค.
- ๋ฏธ๋ถ์ ํ์ ๋ ๋ธํx๊ฐ 1์ธ ๊ฒฝ์ฐ์ f(x+1)-f(x)์์ ๊ฐ์ฅ ํฐ๊ฐ์ ๋ณํ๊ฐ ๊ฐ์ฅ ํฐ ๋ถ๋ถ์ด๋ผ๊ณ ์๊ฐ
โ์ด์งํ
๋ก ๊ทธ ํฐ ๋ถ๋ถ๋ง 1๋ก ๋๊ณ ๋๋จธ์ง๋ฅผ 0์ผ๋ก ์์ฑ
1์ฐจ์ ๋์งํธ ์ด๋ฏธ์ง f(x) 1์ฐจ ๋ฏธ๋ถ
- ์ด๋ฅผ mask=[-1, 1]๋ก ์ด๋ฏธ์ง๋ฅผ ์ปจ๋ณผ๋ฃจ์ ํ์ฌ ๊ณ์ฐํ๋ค
๋ฏธ๋ถ๊ฐ: (2-2), (3-2), (2-3)โฆ
- 2์ฐจ ๋ฏธ๋ถ์ mask=[1, -2, 1]๋ก ์ด๋ฏธ์ง๋ฅผ ์ปจ๋ณผ๋ฃจ์ ํ์ฌ ๊ณ์ฐ
- 3์ฐจ ๋ฏธ๋ถ mask = [1,-3,3,1]โฆ
Edge Model
์ด๋ฏธ์ง์์ ๋ฐ๊ฒฌํ ์ ์๋ Edge ์ ํ์ ๋ ๊ฐ์ง์ด๋ค
- Step Edge(๊ณ๋จํ ์์ง): ๋ฐ๊ธฐ๊ฐ ๊ฐ์๊ธฐ ๋ณํ๋ ๊ฒฝ๊ณ
- 1์ฐจ ๋ฏธ๋ถ์์ ๋จ์ผ ํผํฌ(๋จ์ผ ๋๋น)๋ก ๋ํ๋จ
- 2์ฐจ ๋ฏธ๋ถ์์ ์์ ๊ต์ฐจ(zero-crossing)๋ก ๋ํ๋จ 2. Ramp Edge(๊ฒฝ์ฌํ ์์ง): ๋ฐ๊ธฐ๊ฐ ์ ์ง์ ์ผ๋ก ๋ณํ๋ ๊ฒฝ๊ณ
- 1์ฐจ ๋ฏธ๋ถ์์ ๋์ ํญ์ ํผํฌ๋ก ๋ํ๋จ
- 2์ฐจ ๋ฏธ๋ถ์์ ๋ ๊ฐ์ ์์ ๊ต์ฐจ๋ก ๋ํ๋จ
Ramp Edge์ ๊ฒฝ์ฐ 1์ฐจ ๋ฏธ๋ถ์ ํผํฌ๊ฐ ๋์ด์ ์ ํํ ์์น๋ฅผ ์ฐพ๊ธฐ ์ด๋ ค์
2์ฐจ ๋ฏธ๋ถ์ ์์ ๊ต์ฐจ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ ์ ํํ ์์น๋ฅผ ์ฐพ์ ์ ์์
Remarks on Edge Detection
์ด๋ฏธ์ง ๋ฏธ๋ถ์ ๋ ธ์ด์ฆ๋ฅผ ์ฆํญ์ํค๋ ํน์ฑ์ด ์๋ค. โ Edge detection์ ์ ์ค๋ฌด๋ฉ ์ ์ฉ์ด ํ์์ ์ด๋ค
๊ฐ์ฐ์์ ํํฐ ๊ฐ์ ์ค๋ฌด๋ฉ ํํฐ๋ฅผ ์ ์ฉํ์ฌ ๋ ธ์ด์ฆ๋ฅผ ๊ฐ์์ํด
์ค์ ๊ตฌํ์์๋ ๋ ์ ํํ ๋ฏธ๋ถ ๊ฐ์ ์ํด $\delta{x}=2$๋ฅผ ์ฌ์ฉํ ์ค์ ์ฐจ๋ถ๋ฒ์ ์ฌ์ฉํ๋ค
2D ์ด๋ฏธ์ง์์๋ x๋ฐฉํฅ๊ณผ y๋ฐฉํฅ ๋ชจ๋์์ ๋ฏธ๋ถ์ ๊ณ์ฐํด์ผํ๋ค
Edge Detector
- Roberts Operator: ๋๊ฐ์ ๋ฐฉํฅ Edge ๊ฒ์ถ์ ํจ๊ณผ์
- Prewitt Operator: ์ํ/์์ง Edge ๊ฒ์ถ์ ํจ๊ณผ์
- Sobel Operator:
- ์ค์ ํฝ์ ์ ๊ฐ์ค์น๋ฅผ ๋ถ์ฌ(2๋ฐฐ)
- ๊ฐ์ ๋๋ฆฌ ์ฌ์ฉ๋จ
Edge Magnitude and Edge Direction
2D ์ด๋ฏธ์ง์์ Edge๋ ํฌ๊ธฐ์ ๋ฐฉํฅ์ ๊ฐ์ง๋ค
- Edge Magnitude: ์ด๋ฏธ์ง์ ๊ฐ ์์น์์ ์์ง๊ฐ ์ผ๋ง๋ ๊ฐํ์ง ๋ํ๋
- Gradient Direction: ๊ทธ๋๋์ธํธ๋ ์์ง์ ์์ง์ธ ๋ฐฉํฅ์ ๊ฐ๋ฆฌํด
- ์์ง ๋ฐฉํฅ์ ๊ทธ๋๋์ธํธ ๋ฐฉํฅ์ ์์ง(perpendicular)
Edge Direction์ ์ค๋ฅธ์ชฝ์ฒ๋ผ ๋ฐฉํฅ์ ๋ฐ๋ผ ์์ํ ๋์ด์์
Sobel mask ์ ์ฉ ์์
- Gradient Direction: -63.4ยฐ
- Edge Direction: ๊ทธ๋๋์ธํธ ๋ฐฉํฅ์ ์์ง์ธ ๋ฐฉํฅ = 26.6ยฐ
- ์์ํ๋ ์์ง ๋ฐฉํฅ: 1 (45ยฐ ๊ทผ์ฒ)
Marr and Hildrethโs Edge Detection Algorithm
์์ง ๊ฒ์ถ์ ์ํ ์ค์ํ ๋ฐฉ๋ฒ ์ค ํ๋๋ก, 2์ฐจ ๋ฏธ๋ถ์ ์์ ๊ต์ฐจ๋ฅผ ์ด์ฉ
โ ๋์ ์๋ฆฌ:
- ๊ฐ์ฐ์์ ํํฐ๋ก ์ด๋ฏธ์ง ์ค๋ฌด๋ฉ
- 2์ฐจ ๋ฏธ๋ถ์ ์ฌ์ฉํ์ฌ ์์ ๊ต์ฐจ ๊ฒ์ถ
์ ๊ฐ์ฐ์์ ํํฐ๋ฅผ ์ธ๊น??
์ ์ฌ์ง์ฒ๋ผ ๋ฏธ๋ถ์ ํ๋ฉด ๋
ธ์ด์ฆ๊ฐ ์ฆํญํ๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ๋ถ๋๋ฝ๊ฒ ์ฒ๋ฆฌํ๊ธฐ ์ํด์
2์ฐจ์ ๊ฐ์ฐ์์์ x,y ๋ฐฉํฅ์ ๋ํ ์์ ๊ณฑํ๋ค
๋ง์คํฌ์ ๋๋น๋ $6\sigma$๋ณด๋ค ํฐ ์ซ์ ์ค์ ๊ฐ์ฅ ์์ ํ์๋ก ๊ฒฐ์
- ์: ฯ = 1.0์ธ ๊ฒฝ์ฐ, 6ฯ = 6์ด๋ฏ๋ก 7ร7 ๊ฐ์ฐ์์ ๋ง์คํฌ ์ฌ์ฉ
LoG (Laplacian of Gaussian)
LoG(Laplacian of Gaussian)ํํฐ: Marr and Hildrethโs ์๊ณ ๋ฆฌ์ฆ์์ Edge๋ฅผ ์ฐพ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค
โ LoG ํํฐ ๋จ๊ณ:
- ๊ฐ์ฐ์์ ํํฐ๋ก ์ด๋ฏธ์ง๋ฅผ ์ค๋ฌด๋ฉ
Laplacian ํํฐ
๋ฅผ ์ ์ฉํ์ฌ 2์ฐจ ๋ฏธ๋ถ ์ด๋ฏธ์ง ์์ฑ- 2์ฐจ ๋ฏธ๋ถ ์ด๋ฏธ์ง์์ ์์ ๊ต์ฐจ(zero-crossing)์ ์ฐพ์ Edge๋ก ์ค์
- Laplacian Filter๋? ๐ Laplacian Filter: 2์ฐจ ๋ฏธ๋ถ์ ๊ณ์ฐํ๋ ์ฐ์ฐ์
์ด๋ฏธ์ง์์ ํฝ์ ๊ฐ์ด๋ฐ์ -4๋ฅผ ๊ณฑํ๊ณ , ๋์๋จ๋ถ ๋ฐฉํฅ์ 1์ฉ ๋ํจ
โ LoG ํํฐ ๋จ๊ณ:
- ๊ฐ์ฐ์์ ํํฐ(G)๋ก ์ด๋ฏธ์ง ์ค๋ฌด๋ฉ ํ ๋ผํ๋ผ์์ ํํฐ(L) ์ ์ฉ
- ํ์ง๋ง ์ ๋ฐฉ๋ฒ์ ๊ณ์ฐ ๋น์ฉ์ด ๋๊ณ ์์น์ ์ค๋ฅ ๊ฐ๋ฅ์ฑ ์์ โ ๊ฐ์ฐ์์ ํจ์ ์์ฒด์ ๋ผํ๋ผ์์์ ์ ์ฉํ LoG ํํฐ๋ฅผ ํ ๋ฒ์ ์ ์ฉ:
๊ฐ์ฐ์์ ํํฐ ํ์ ๋ผํ๋ผ์ ํํฐ๋ฅผ ์ ์ฉํ๋, ๋ผํ๋ผ์์ ํํฐ ํ์ ๊ฐ์ฐ์์ ํํฐ๋ฅผ ์ ์ฉํ๋ ๋๊ฐ์ ๊ฒฐ๊ณผ
$\sigma = 0.5$์ธ ๊ฒฝ์ฐ 6์๊ทธ๋ง๊ฐ 3์ด๋ฏ๋ก 3x3ํํฐ ์์ฑ
LOG ํํฐ๋ฅผ ์ด์ฉํ Edge ๊ฒ์ถ ๋ฐฉ๋ฒ
- LOG ํํฐ๋ฅผ ์ ๋ ฅ ์ด๋ฏธ์ง์ ์ ์ฉ
- ํ ๋ฒ์ ์ปจ๋ณผ๋ฃจ์ ์ผ๋ก ์ค๋ฌด๋ฉ๊ณผ 2์ฐจ ๋ฏธ๋ถ์ ๋์์ ์ํ
- ๊ฒฐ๊ณผ ์ด๋ฏธ์ง์์ ์์ ๊ต์ฐจ(zero-crossing) ์์น๋ฅผ ์ฐพ์ ์์ง๋ก ์ค์
zero-crossing์ ์ด๋ป๊ฒ ์ฐพ์์ผํ๋
- ํฝ์ ์ ๋,์(E-W), ๋จ,๋ถ(N-S), ๋ถ๋-๋จ์(NE-SW), ๋ถ์-๋จ๋(NW-SE) ๋ฐฉํฅ์ ์ด์ ์ ํ์ธ
- ๋ ๊ฐ ์ด์์ ์์ด ์๋ก ๋ค๋ฅธ ๋ถํธ๋ฅผ ๊ฐ์ง๊ณ , ๊ทธ ์ฐจ์ด๊ฐ ์๊ณ๊ฐ๋ณด๋ค ํฐ ๊ฒฝ์ฐ Edge ํฝ์ ๋ก ํ์
$\sigam$๊ฐ ์ปค์ง ์๋ก ๊ฐํ Edge๋ง ํํ๋จ