Post

[CV] Computer Vision(3): Edge Detection

[CV] Computer Vision(3): Edge Detection

Edges of Image


๐Ÿ“šEdges of Image: ์ด๋ฏธ์ง€์—์„œ ๊ฐ์ฒด์˜ ๊ฒฝ๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ง€์ 

โœ…Edge ํŠน์ง•:

  • Indicate occlusion(๋งž๋ฌผ๋ฆฐ ๊ฒฝ๊ณ„) events in 3D
  • ๋Œ€์ฒด๋กœ ๋ˆˆ์— ๋ณด์ด๋Š” ์œค๊ณฝ์„ ์œผ๋กœ ํ‘œํ˜„๋จ
  • ์ด๋ฏธ์ง€ ๋‚ด์—์„œ ํ‘œ๋ฉด ๋ฐฉํ–ฅ์ด ๊ธ‰๊ฒฉํ•˜๊ฒŒ ๋ณ€ํ•˜๋Š” ์ง€์ 
  • edge(boundaries)๋Š” ์นด๋ฉ”๋ผ ๊ธฐ์ค€์œผ๋กœ ํ‘œ๋ฉด์ด ํ–ฅํ•˜๊ณ  ์žˆ๋Š” ๋ฐฉํ–ฅ์ด ๊ธ‰๊ฒฉํžˆ ๋ณ€ํ•  ๋•Œ ๊ทธ ์œ„์น˜์—์„œ ๋ฐœ์ƒํ•จ
  • edge ํฌ์ธํŠธ์˜ ์ง‘ํ•ฉ์„ ๋งŒ๋“ค์–ด์„œ ๊ณก๋ฅ  ์ง์„  ๋“ฑ์„ ํ‘œํ˜„

alt text

Edge Detection


โœ…์–ด๋””๊ฐ€ edge ๋˜๋Š” boundaries๊ฐ€ ๋  ์ˆ˜ ์žˆ๋Š”๊ฐ€?

  1. ์ƒ‰์ƒ์ด ๊ธ‰๊ฒฉํ•˜๊ฒŒ ๋ณ€ํ•˜๋Š” ๋ถ€๋ถ„(๋ฌด์กฐ๊ฑด์€ ์•„๋‹˜)
  2. edge detect๋Š” ์ „์ฒด ์ด๋ฏธ์ง€์— ์ ์šฉ๊ฐ€๋Šฅ ํ•˜์ง€ ์•Š๊ณ  ๊ทธ ์ฃผ๋ณ€์— ํ•œํ•ด์„œ ๋”ฐ๋กœ๋”ฐ๋กœ detectionํ•˜๊ฒŒ ๋จ (local information)
  3. ๋น›์˜ ๋ช…๋„์™€ ์ƒ‰์˜ ๊ธ‰๊ฒฉํ•œ ๋ณ€ํ™”๋Ÿ‰์„ ํ†ตํ•ด edge๋ฅผ ์ธ์‹

Derivatives of Digital Images


์—์ง€๋ฅผ ์ˆ˜ํ•™์ ์œผ๋กœ ์ฐพ๊ธฐ ์œ„ํ•ด ์ด๋ฏธ์ง€์— ๋ฏธ๋ถ„์„ ์ ์šฉ ๋ฏธ๋ถ„์„ ์ ์šฉํ•˜๋ฉด ์ด๋ฏธ์ง€์˜ ๊ธ‰๊ฒฉํ•œ ๋ณ€ํ™”๋ฅผ ๊ฐ์ง€ํ•˜๋Š”๋ฐ ๋„์›€์ด ๋œ๋‹ค.

  • ๋ฏธ๋ถ„์„ ํ–ˆ์„ ๋•Œ ๋ธํƒ€x๊ฐ€ 1์ธ ๊ฒฝ์šฐ์— f(x+1)-f(x)์—์„œ ๊ฐ€์žฅ ํฐ๊ฐ’์„ ๋ณ€ํ™”๊ฐ€ ๊ฐ€์žฅ ํฐ ๋ถ€๋ถ„์ด๋ผ๊ณ  ์ƒ๊ฐ
    โ†’ ์ด์ง„ํ™”๋กœ ๊ทธ ํฐ ๋ถ€๋ถ„๋งŒ 1๋กœ ๋†“๊ณ  ๋‚˜๋จธ์ง€๋ฅผ 0์œผ๋กœ ์ƒ์„ฑ

alt text

1์ฐจ์› ๋””์ง€ํ„ธ ์ด๋ฏธ์ง€ f(x) 1์ฐจ ๋ฏธ๋ถ„

  • ์ด๋ฅผ mask=[-1, 1]๋กœ ์ด๋ฏธ์ง€๋ฅผ ์ปจ๋ณผ๋ฃจ์…˜ํ•˜์—ฌ ๊ณ„์‚ฐํ•œ๋‹ค

alt text

๋ฏธ๋ถ„๊ฐ’: (2-2), (3-2), (2-3)โ€ฆ

alt text

  • 2์ฐจ ๋ฏธ๋ถ„์€ mask=[1, -2, 1]๋กœ ์ด๋ฏธ์ง€๋ฅผ ์ปจ๋ณผ๋ฃจ์…˜ํ•˜์—ฌ ๊ณ„์‚ฐ
  • 3์ฐจ ๋ฏธ๋ถ„ mask = [1,-3,3,1]โ€ฆ

    Edge Model


    ์ด๋ฏธ์ง€์—์„œ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ๋Š” Edge ์œ ํ˜•์€ ๋‘ ๊ฐ€์ง€์ด๋‹ค

    1. Step Edge(๊ณ„๋‹จํ˜• ์—์ง€): ๋ฐ๊ธฐ๊ฐ€ ๊ฐ‘์ž๊ธฐ ๋ณ€ํ•˜๋Š” ๊ฒฝ๊ณ„
    • 1์ฐจ ๋ฏธ๋ถ„์—์„œ ๋‹จ์ผ ํ”ผํฌ(๋‹จ์ผ ๋„ˆ๋น„)๋กœ ๋‚˜ํƒ€๋‚จ
    • 2์ฐจ ๋ฏธ๋ถ„์—์„œ ์˜์  ๊ต์ฐจ(zero-crossing)๋กœ ๋‚˜ํƒ€๋‚จ 2. Ramp Edge(๊ฒฝ์‚ฌํ˜• ์—์ง€): ๋ฐ๊ธฐ๊ฐ€ ์ ์ง„์ ์œผ๋กœ ๋ณ€ํ•˜๋Š” ๊ฒฝ๊ณ„
    • 1์ฐจ ๋ฏธ๋ถ„์—์„œ ๋„“์€ ํญ์˜ ํ”ผํฌ๋กœ ๋‚˜ํƒ€๋‚จ
    • 2์ฐจ ๋ฏธ๋ถ„์—์„œ ๋‘ ๊ฐœ์˜ ์˜์  ๊ต์ฐจ๋กœ ๋‚˜ํƒ€๋‚จ

alt text

alt text

Ramp Edge์˜ ๊ฒฝ์šฐ 1์ฐจ ๋ฏธ๋ถ„์˜ ํ”ผํฌ๊ฐ€ ๋„“์–ด์„œ ์ •ํ™•ํ•œ ์œ„์น˜๋ฅผ ์ฐพ๊ธฐ ์–ด๋ ค์›€
2์ฐจ ๋ฏธ๋ถ„์˜ ์˜์  ๊ต์ฐจ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋” ์ •ํ™•ํ•œ ์œ„์น˜๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Œ

Remarks on Edge Detection

์ด๋ฏธ์ง€ ๋ฏธ๋ถ„์€ ๋…ธ์ด์ฆˆ๋ฅผ ์ฆํญ์‹œํ‚ค๋Š” ํŠน์„ฑ์ด ์žˆ๋‹ค. โ†’ Edge detection์ „์— ์Šค๋ฌด๋”ฉ ์ ์šฉ์ด ํ•„์ˆ˜์ ์ด๋‹ค

  • ๊ฐ€์šฐ์‹œ์•ˆ ํ•„ํ„ฐ ๊ฐ™์€ ์Šค๋ฌด๋”ฉ ํ•„ํ„ฐ๋ฅผ ์ ์šฉํ•˜์—ฌ ๋…ธ์ด์ฆˆ๋ฅผ ๊ฐ์†Œ์‹œํ‚ด

  • ์‹ค์ œ ๊ตฌํ˜„์—์„œ๋Š” ๋” ์ •ํ™•ํ•œ ๋ฏธ๋ถ„ ๊ฐ’์„ ์œ„ํ•ด $\delta{x}=2$๋ฅผ ์‚ฌ์šฉํ•œ ์ค‘์•™ ์ฐจ๋ถ„๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค

  • 2D ์ด๋ฏธ์ง€์—์„œ๋Š” x๋ฐฉํ–ฅ๊ณผ y๋ฐฉํ–ฅ ๋ชจ๋‘์—์„œ ๋ฏธ๋ถ„์„ ๊ณ„์‚ฐํ•ด์•ผํ•œ๋‹ค

alt text

Edge Detector


alt text

  • Roberts Operator: ๋Œ€๊ฐ์„  ๋ฐฉํ–ฅ Edge ๊ฒ€์ถœ์— ํšจ๊ณผ์ 
  • Prewitt Operator: ์ˆ˜ํ‰/์ˆ˜์ง Edge ๊ฒ€์ถœ์— ํšจ๊ณผ์ 
  • Sobel Operator:
    • ์ค‘์•™ ํ”ฝ์…€์— ๊ฐ€์ค‘์น˜๋ฅผ ๋ถ€์—ฌ(2๋ฐฐ)
    • ๊ฐ€์ž˜ ๋„๋ฆฌ ์‚ฌ์šฉ๋จ

Edge Magnitude and Edge Direction


2D ์ด๋ฏธ์ง€์—์„œ Edge๋Š” ํฌ๊ธฐ์™€ ๋ฐฉํ–ฅ์„ ๊ฐ€์ง„๋‹ค

alt text

  • Edge Magnitude: ์ด๋ฏธ์ง€์˜ ๊ฐ ์œ„์น˜์—์„œ ์—์ง€๊ฐ€ ์–ผ๋งˆ๋‚˜ ๊ฐ•ํ•œ์ง€ ๋‚˜ํƒ€๋ƒ„
  • Gradient Direction: ๊ทธ๋ž˜๋””์–ธํŠธ๋Š” ์—์ง€์— ์ˆ˜์ง์ธ ๋ฐฉํ–ฅ์„ ๊ฐ€๋ฆฌํ‚ด
    • ์—์ง€ ๋ฐฉํ–ฅ์€ ๊ทธ๋ž˜๋””์–ธํŠธ ๋ฐฉํ–ฅ์— ์ˆ˜์ง(perpendicular)

alt text

Edge Direction์€ ์˜ค๋ฅธ์ชฝ์ฒ˜๋Ÿผ ๋ฐฉํ–ฅ์— ๋”ฐ๋ผ ์–‘์žํ™” ๋˜์–ด์žˆ์Œ

Sobel mask ์ ์šฉ ์˜ˆ์ œ

alt text

  • Gradient Direction: -63.4ยฐ
  • Edge Direction: ๊ทธ๋ž˜๋””์–ธํŠธ ๋ฐฉํ–ฅ์— ์ˆ˜์ง์ธ ๋ฐฉํ–ฅ = 26.6ยฐ
  • ์–‘์žํ™”๋œ ์—์ง€ ๋ฐฉํ–ฅ: 1 (45ยฐ ๊ทผ์ฒ˜)

alt text

Marr and Hildrethโ€™s Edge Detection Algorithm

์—์ง€ ๊ฒ€์ถœ์„ ์œ„ํ•œ ์ค‘์š”ํ•œ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ, 2์ฐจ ๋ฏธ๋ถ„์˜ ์˜์  ๊ต์ฐจ๋ฅผ ์ด์šฉ

โœ…๋™์ž‘ ์›๋ฆฌ:

  1. ๊ฐ€์šฐ์‹œ์•ˆ ํ•„ํ„ฐ๋กœ ์ด๋ฏธ์ง€ ์Šค๋ฌด๋”ฉ
  2. 2์ฐจ ๋ฏธ๋ถ„์„ ์‚ฌ์šฉํ•˜์—ฌ ์˜์  ๊ต์ฐจ ๊ฒ€์ถœ

์™œ ๊ฐ€์šฐ์‹œ์•ˆ ํ•„ํ„ฐ๋ฅผ ์“ธ๊นŒ??

alt text ์œ„ ์‚ฌ์ง„์ฒ˜๋Ÿผ ๋ฏธ๋ถ„์„ ํ•˜๋ฉด ๋…ธ์ด์ฆˆ๊ฐ€ ์ฆํญํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ

alt text alt text

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 ํ•„ํ„ฐ ๋‹จ๊ณ„:

  1. ๊ฐ€์šฐ์‹œ์•ˆ ํ•„ํ„ฐ๋กœ ์ด๋ฏธ์ง€๋ฅผ ์Šค๋ฌด๋”ฉ
  2. Laplacian ํ•„ํ„ฐ๋ฅผ ์ ์šฉํ•˜์—ฌ 2์ฐจ ๋ฏธ๋ถ„ ์ด๋ฏธ์ง€ ์ƒ์„ฑ
  3. 2์ฐจ ๋ฏธ๋ถ„ ์ด๋ฏธ์ง€์—์„œ ์˜์  ๊ต์ฐจ(zero-crossing)์„ ์ฐพ์•„ Edge๋กœ ์„ค์ •
  • Laplacian Filter๋ž€? ๐Ÿ“š Laplacian Filter: 2์ฐจ ๋ฏธ๋ถ„์„ ๊ณ„์‚ฐํ•˜๋Š” ์—ฐ์‚ฐ์ž

alt text

์ด๋ฏธ์ง€์—์„œ ํ”ฝ์…€ ๊ฐ€์šด๋ฐ์— -4๋ฅผ ๊ณฑํ•˜๊ณ , ๋™์„œ๋‚จ๋ถ ๋ฐฉํ–ฅ์— 1์”ฉ ๋”ํ•จ

โœ…LoG ํ•„ํ„ฐ ๋‹จ๊ณ„:

  1. ๊ฐ€์šฐ์‹œ์•ˆ ํ•„ํ„ฐ(G)๋กœ ์ด๋ฏธ์ง€ ์Šค๋ฌด๋”ฉ ํ›„ ๋ผํ”Œ๋ผ์‹œ์•ˆ ํ•„ํ„ฐ(L) ์ ์šฉ
  2. ํ•˜์ง€๋งŒ ์œ„ ๋ฐฉ๋ฒ•์€ ๊ณ„์‚ฐ ๋น„์šฉ์ด ๋†’๊ณ  ์ˆ˜์น˜์  ์˜ค๋ฅ˜ ๊ฐ€๋Šฅ์„ฑ ์žˆ์Œ โ†’ ๊ฐ€์šฐ์‹œ์•ˆ ํ•จ์ˆ˜ ์ž์ฒด์— ๋ผํ”Œ๋ผ์‹œ์•ˆ์„ ์ ์šฉํ•œ LoG ํ•„ํ„ฐ๋ฅผ ํ•œ ๋ฒˆ์— ์ ์šฉ:
    alt text

    ๊ฐ€์šฐ์‹œ์•ˆ ํ•„ํ„ฐ ํ›„์— ๋ผํ”Œ๋ผ์‹œ ํ•„ํ„ฐ๋ฅผ ์ ์šฉํ•˜๋‚˜, ๋ผํ”Œ๋ผ์‹œ์•ˆ ํ•„ํ„ฐ ํ›„์— ๊ฐ€์šฐ์‹œ์•ˆ ํ•„ํ„ฐ๋ฅผ ์ ์šฉํ•˜๋‚˜ ๋˜‘๊ฐ™์€ ๊ฒฐ๊ณผ

alt text

$\sigma = 0.5$์ธ ๊ฒฝ์šฐ 6์‹œ๊ทธ๋งˆ๊ฐ€ 3์ด๋ฏ€๋กœ 3x3ํ•„ํ„ฐ ์ƒ์„ฑ

LOG ํ•„ํ„ฐ๋ฅผ ์ด์šฉํ•œ Edge ๊ฒ€์ถœ ๋ฐฉ๋ฒ•

  1. LOG ํ•„ํ„ฐ๋ฅผ ์ž…๋ ฅ ์ด๋ฏธ์ง€์— ์ ์šฉ
    • ํ•œ ๋ฒˆ์˜ ์ปจ๋ณผ๋ฃจ์…˜์œผ๋กœ ์Šค๋ฌด๋”ฉ๊ณผ 2์ฐจ ๋ฏธ๋ถ„์„ ๋™์‹œ์— ์ˆ˜ํ–‰
  2. ๊ฒฐ๊ณผ ์ด๋ฏธ์ง€์—์„œ ์˜์  ๊ต์ฐจ(zero-crossing) ์œ„์น˜๋ฅผ ์ฐพ์•„ ์—์ง€๋กœ ์„ค์ •

zero-crossing์„ ์–ด๋–ป๊ฒŒ ์ฐพ์•„์•ผํ•˜๋‚˜

  • ํ”ฝ์…€์˜ ๋™,์„œ(E-W), ๋‚จ,๋ถ(N-S), ๋ถ๋™-๋‚จ์„œ(NE-SW), ๋ถ์„œ-๋‚จ๋™(NW-SE) ๋ฐฉํ–ฅ์˜ ์ด์›ƒ ์Œ ํ™•์ธ
  • ๋‘ ๊ฐœ ์ด์ƒ์˜ ์Œ์ด ์„œ๋กœ ๋‹ค๋ฅธ ๋ถ€ํ˜ธ๋ฅผ ๊ฐ€์ง€๊ณ , ๊ทธ ์ฐจ์ด๊ฐ€ ์ž„๊ณ„๊ฐ’๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ Edge ํ”ฝ์…€๋กœ ํ‘œ์‹œ

alt text alt text

$\sigam$๊ฐ€ ์ปค์งˆ ์ˆ˜๋ก ๊ฐ•ํ•œ Edge๋งŒ ํ‘œํ˜„๋จ

This post is licensed under CC BY 4.0 by the author.