[Computer Vision] Canny edge detector

2023. 4. 23. 18:18
๐Ÿง‘๐Ÿป‍๐Ÿ’ป์šฉ์–ด ์ •๋ฆฌ

Computer vision
Edge
canny
detector
non-maximun suppresion
connected component

 

 

์ด๋ฒˆ์—” edge detector์— ๋Œ€ํ•ด ์•Œ์•„๋ด…์‹œ๋‹ค.

 

Canny edge detector

 

  • The most widely used edge detector
  • Theoretical model : step-edges corrupted by additive Gaussian noise
  • Canny has shown that the first derivative of the Gaussian closely approximates the operator that optimizes the product of signal-to-noise ratio and localization.

 

 

Lena ์›๋ณธ ์‚ฌ์ง„์„ ์•„๋ž˜์™€ ๊ฐ™์ด ๋ด…์‹œ๋‹ค.

 

 

์•„๋ž˜๋Š” DoG ์—ฐ์‚ฐ์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ๋กœ x ๋ฐฉํ–ฅ๊ณผ y ๋ฐฉํ–ฅ์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ๊ฐ’์„ ๋”ํ•˜์—ฌ Gradient magnitude๋ฅผ ๋ฝ‘์•„๋‚ธ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค.

 

 

๊ฒฐ๊ตญ์€ ์šฐ๋ฆฌ๋Š” Peak ๊ฐ€ ๋˜๋Š”, ๊ฒฝ๊ณ„๊ฐ€ ๋˜๋Š” ๊ฐ’๋งŒ ๋ฝ‘์•„๋‚ด๋Š” ๊ฒƒ์ด ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฌ๋‚˜, ๊ทธ ๊ฒฝ๊ณ„ ์ค‘์‹ฌ์œผ๋กœ ๋ณ€ํ•˜๋Š” ๊ฐ’์ด ํฌ๊ธฐ ๋•Œ๋ฌธ์— ๋‘๊บผ์šด ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๋Š” ๊ฒƒ์ด ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

 

๊ทธ๊ฒƒ๋“ค์„ ์–‡๊ฒŒ ๋งŒ๋“ค์–ด์ค„ ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๊ฒƒ์„ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด "Non-max Suppression"์ด๋ผ๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

 

 

ํ•˜๊ณ  ๋‚˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์–‡๊ฒŒ ๋งŒ๋“ค์–ด ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

Non-max Suppression

 

 

 

์ข์€ ์˜์—ญ ์•ˆ์—์„œ, ์ฃผ๋ณ€์ด๋ž‘ ๋น„๊ตํ–ˆ์„ ๋•Œ, ์‹ ๋ขฐ๋„๊ฐ€ ๋†’์€ ์• ๋งŒ ์ทจํ•˜๊ฒ ๋‹ค๋Š” concept์ž…๋‹ˆ๋‹ค.

 

edge magintude๊ฐ€ ๋†’์„ ์ˆ˜๋ก ์‹ ๋ขฐ๋„๊ฐ€ ๋†’๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์ฃผ๋ณ€ ์˜์—ญ๊ฐ„ ๋น„๊ต ํ–ˆ์„ ๋•Œ, ์ƒ๋Œ€์ ์œผ๋กœ ๋†’์€ Magnitude๋ฅผ ๊ฐ–๋Š” ๊ฒƒ๋งŒ ๋‚จ๊ธฐ๊ณ , ์ฃผ๋ณ€์— ๊ฒƒ๋“ค์„ ์—†์•  ๋‚˜๊ฐ€๊ฒ ๋‹ค๋Š” ๊ฒƒ์ด์ฃ .

 

๊ทธ๋ž˜์„œ ๋” ๊ฐ€๋Š˜์–ด์ง„ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

 

  • We wish to mark points along the curve where the magnitude is biggest
  • We can do this by looking for the maximum along a slic normal to the curve (non-maximum suppression)

 

 

์œ„ ์˜ˆ์‹œ ๊ทธ๋ฆผ์„ ๋ด…์‹œ๋‹ค.

 

์ด ๊ทธ๋ฆผ์€ gradient magnitude ๊ฐ’์ด ์ข€ ๋‘๊ป๊ฒŒ ๋ฝ‘์•„์ ธ ๋‚˜์˜จ ๊ฒƒ์ด๋ผ๊ณ  ์˜ˆ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์กฐ๊ธˆ์˜ ๊ฒฝ๊ณ„๋ฅผ ๋‘๊ณ  ๋‘๊ป๊ฒŒ ๋‚˜์˜จ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฐ๋ฐ ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ๊ฒƒ์€ ์–‡์€ ์„ ์ฒ˜๋Ÿผ ์–‡๊ฒŒ ๋‚˜์˜ค๋Š” ๊ฒƒ์ด์ฃ .

 

 

๊ทธ๋ฆฌ๊ณ , edge์˜ ๊ฐ’์ด ๋†’์œผ๋ ค๋ฉด Magintude ๊ฐ’์ด ๋†’์•„์•ผํ•ฉ๋‹ˆ๋‹ค.

 

์ฆ‰, ๊ฐ€๋Š๋‹ค๋ฝ ์„ ์ด ์ฃผ๋ณ€๊ณผ ๋น„๊ตํ•˜์—ฌ magintude ๊ฐ’์ด ๋†’์•„์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด์ง€์š”.

 

๊ทธ๋žฌ์„ ๋•Œ, ์šฐ๋ฆฌ๋Š” ์ € ์„ ์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ง๊ตํ•˜๋Š” ๋ชจ๋“  ์ง€์ ์˜ ๊ฐ’์„ ์—ฐ๊ฒฐํ•˜์—ฌ ์„ ์œผ๋กœ ๋ณด์•„์„œ ์–‡์€ ์„ ์„ ์–ป์„ ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

 

๊ทธ๋ž˜์„œ gradient magnitude ๊ฐ’์ด ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ, ์ง๊ต๋˜๋Š” ์„ ์„ ๋”ฐ๋ผ์„œ edge๊ฐ€ Peak๊ฐ€ ๋˜๋Š” ๊ฒƒ์„ ์ž˜ ์„ ํƒ์„ ํ•˜๊ณ  ์‹ถ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

 

๊ทธ๊ฒƒ๋“ค์„ ์ž˜ ์ด์œผ๋ฉด ์œ„์™€ ๊ฐ™์ด ๋นจ๊ฐ„ ์„ ์ด ๋‚˜์˜ค์ง€ ์•Š์„๊นŒ ๊ธฐ๋Œ€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

edge์™€ ์ง๊ตํ•œ๋‹ค๋Š” ๊ฒƒ์ด ๋ฌด์—‡์„ ์ง๊ตํ•œ๋‹ค๋Š” ๊ฒƒ์ธ์ง€ ์‚ดํŽด๋ด…์‹œ๋‹ค.

 

 

์œ„์™€ ๊ฐ™์€ ์˜ˆ์‹œ๋ฅผ ๋ด…์‹œ๋‹ค.

 

pixel์˜ ๊ฐ’์ด ์œ„๋Š” ํ•˜์–€์ƒ‰์œผ๋กœ ๊ฐ€์žฅ ๋ฐ๊ณ , ์•„๋ž˜๋Š” ์ƒ๋Œ€์ ์œผ๋กœ ๋œ ๋ฐ์œผ๋‹ˆ,

 

gradient ๊ฐ’์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

 

์ด ๊ฒฝ์šฐ, ์ขŒ์šฐ๋กœ ๋ณ€ํ™”๋Ÿ‰์ด ์ „ํ˜€ ์—†์œผ๋‹ˆ, ์œ„์™€ ๊ฐ™์ด X ์ถ• ๋ฐฉํ–ฅ ๋ณ€ํ™”๋Ÿ‰์€ ์—†๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

๊ทธ๋ž˜์„œ ์œ„ ์ˆ˜์‹๊ณผ ๊ฐ™์ด gradient ๊ฐ’์„ ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ง€๊ธˆ๊ณผ ๊ฐ™์€ Vertical change, ์ฆ‰ x์ถ• ๋ณ€ํ™”๋Ÿ‰์ด ์—†๋Š” ์˜ˆ์ œ์—์„œ๋Š” ์œ„์™€ ๊ฐ™์ด ์œ„๋กœ ํ™”์‚ดํ‘œ๊ฐ€ ๊ทธ์–ด์ง‘๋‹ˆ๋‹ค.

 

๋ฐ˜๋Œ€๋กœ y ์ถ• ๋ณ€ํ™”๋Ÿ‰์ด ์—†๋‹ค๋ฉด x์ถ•์œผ๋กœ๋งŒ ํ™”์‚ดํ‘œ๊ฐ€ ๊ทธ์–ด์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

๊ทธ๋ž˜์„œ ์œ„์™€ ๊ฐ™์ด ์ˆ˜ํ‰์„ ์ด ์žˆ๋Š” ์˜ˆ์ œ์—์„œ gradient๋Š” ์ˆ˜์ง์œผ๋กœ ์„œ๋กœ ์ง๊ตํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

๊ทธ๋ ‡๋‹ค๋ฉด ์ง๊ตํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ์–ด๋–ป๊ฒŒ ๋”ฐ๋ผ๊ฐˆ์ง€์— ๋Œ€ํ•œ ์˜๋ฌธ์ด ์ข€ ํ’€๋ฆฝ๋‹ˆ๋‹ค.

 

gradient ๋ฐฉํ–ฅ์œผ๋กœ ๋”ฐ๋ผ๊ฐ€๋ฉด ๋˜๊ฒ ๊ตฌ๋‚˜ !

 

๋Œ€๊ฐ์„ ์ด๋ผ๊ณ  ํ•˜๋”๋ผ๋„ ๊ฐ pixel์— ๋Œ€ํ•ด gradient๋ฅผ ๊ตฌํ•˜๋ฉด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

๊ฒฐ๊ตญ,

 

image ์ƒ์—์„œ์˜ edge ์„ ๊ณผ Pixel์˜ gradient ๋ฐฉํ–ฅ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ง๊ตํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์•„๊นŒ ๊ทธ ๋‘๊บผ์šด ์„ ์„ ์–‡๊ฒŒ ๋งŒ๋“ค๊ณ  ์‹ถ์œผ๋‹ˆ,

 

๋ฐฉ์‹ ์ž์ฒด๋Š”, ์„ ์œผ๋กœ ๊ทธ์–ด๋†“์€ ๊ฒƒ์ฒ˜๋Ÿผ ์ง๊ตํ•˜๋Š” ๋ฐฉํ–ฅ์„ ๋”ฐ๋ผ ๊ด€์ฐฐํ•ด๋ณด์ž๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

์ง๊ตํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ์–ด๋–ป๊ฒŒ ๊ฐˆ์ง€์— ๋Œ€ํ•œ ๊ฒƒ์€ gradient ๋Œ€๋กœ ์ซ“์•„๊ฐ€๋ณด์ž๋Š” ๊ฒƒ์ด์ฃ .

 

๊ทธ๋ž˜์„œ ์ด ๊ฒ€์€์ƒ‰ ์ ์œผ๋กœ pixel์ด ์กด์žฌํ•  ๋•Œ,

 

q๋ผ๋Š” Pixel์— ๋Œ€ํ•ด์„œ ์ฃผ๋ณ€์— ๋น„ํ•ด gradient magnitude ๊ฐ’์ด ํฐ์ง€ ์ž‘์€์ง€ ๊ด€์ฐฐํ•ด๋ด…๋‹ˆ๋‹ค.

 

non-maximum suppression์˜ concept์€ ์ฃผ๋ณ€์— ๋น„ํ•ด Maxํ•˜๋‹ค๋ฉด ๋‚จ๊ธฐ๊ณ  ์•„๋‹ˆ๋ผ๋ฉด ๋ฒ„๋ฆฌ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

 

 

๊ทธ๋Ÿฐ๋ฐ, ์ด ์ฃผ๋ณ€์ด๋ผ๋Š” ๊ฒƒ์€ 3 x 3 ์ด๋‚˜ 5 x 5 ๋“ฑ์˜ ์ฃผ๋ณ€์˜ ์˜๋ฏธ๋ฅผ ๊ฐ–๋Š” ์ž์œ ๋„๋ฅผ ๊ฐ–์Šต๋‹ˆ๋‹ค.

 

์œ„ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด์„œ edge์˜ ํŠน์„ฑ์ƒ gradient๋ฅผ ๋”ฐ๋ผ์„œ ๊ด€์ฐฐํ•˜๋Š” ๊ฒŒ ๋” ํšจ์œจ์ ์ด๋‹ค๋ผ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฌ๋ฏ€๋กœ,

 

์ด๋•Œ, q๋ผ๋Š” Pixel์˜ gradient ๊ฐ’์— ๋Œ€ํ•œ ๋ฐฉํ–ฅ์„ ์•Œ ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ์œ„์™€ ๊ฐ™์ด x์™€ y ๋ฐฉํ–ฅ์˜ gradient ๊ฐ’์˜ ๋ฐฉํ–ฅ์„ ํ™”์‚ดํ‘œ๋กœ ๊ทธ๋ ค๋ณผ ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด gradient๋ฅผ ๋”ฐ๋ผ ์ญ‰ ๊ฐ€๋‹ค๋ณด๋ฉด ์œ„ ๊ทธ๋ฆผ์˜ r์ฒ˜๋Ÿผ ํ•œ pixel, ์ฆ‰ ํ•œ ์ ์— ๋†“์ด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

์ด r์€ ๋‘ pixel ์‚ฌ์ด์— ๋†“์ด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ํ•œ pixel ์œ„์— ์ •ํ™•ํžˆ ๋†“์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

๊ทธ๋ ‡๋‹ค๋ฉด ์šฐ๋ฆฌ๊ฐ€ r ์œ„์น˜์—์„œ์˜ Image gradient ๊ฐ’์„ ๋ฝ‘์•„๋‚ด์•ผ ํ•˜๋Š”๋ฐ,

 

r์˜ ์œ„์น˜๊ฐ€ ์†Œ์ˆ˜ ์œ„์น˜๋ผ๋ฉด, ์šฐ๋ฆฌ๊ฐ€ ์ด๊ฒƒ์„ Interpolation์„ ํ†ตํ•ด ์ถ”์ •ํ•  ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ์ฃผ๋ณ€ pixel์„ ํ†ตํ•ด Linear๋‚˜ Nearest Interpolation์„ ํ†ตํ•ด์„œ r ์œ„์น˜์—์„œ์˜ gradient magnitude๋ฅผ ์ถ”์ •ํ•  ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

๊ทธ๋ฆฌ๊ณ , ๋ฐฉํ–ฅ์˜ ๋ถ€ํ˜ธ๊ฐ€ ์ค‘์š”ํ•œ ๊ฒƒ์€ ์•„๋‹ˆ๋‹ˆ, r์ด๋‚˜ p ์ค‘์— ๊ณจ๋ผ์„œ gradient magnitude๋ฅผ ์ถ”์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

์ด๋•Œ, q๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ์ด gradient magnitude ๊ฐ’์ด, r์ด๋‚˜ p๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” gradient magnitude ๊ฐ’ ๋ณด๋‹ค ํฌ๋‹ค๋ฉด ์ฃผ๋ณ€์— ๋น„ํ•ด ํŠ€๋Š” ๊ฐ’์ด๋ผ๊ณ  ํŒ์ •ํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿผ ์ด๊ฒƒ์€ ๋ฒ„๋ฆฌ์ง€ ์•Š๊ณ  ๋‚จ๊ธฐ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

์ด๋Ÿฌํ•œ ๊ฒƒ์ด canny edge์—์„œ์˜ non-maximum suppression ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

 

์ฆ‰, ์ง๊ตํ•˜๋Š” ๋ฐฉํ–ฅ์„ ๋”ฐ๋ผ ๋ณด๋Š” ๊ฒƒ์ธ๋ฐ, gradient ๋ฐฉํ–ฅ์„ ๋”ฐ๋ผ ๋ณด๋Š” ๊ฒƒ์ด์ฃ .

 

 

 

edge์˜ ํ™•๋ฅ ์ด ๋†’์œผ๋ ค๋ฉด gradient์˜ ํฌ๊ธฐ๊ฐ€ ๋†’์•„์•ผ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ์œ„์™€ ๊ฐ™์€ ํฐ ์‹ ๋ขฐ๋„๋ฅผ ๊ฐ€์ง€๋Š” ๊ฒƒ์„ ๋‚จ๊ฒจ๋†“๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

 

 

์œ„์™€ ๊ฐ™์€ idea๋ฅผ ํ†ตํ•ด magnitude์™€ angel์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

Non-maxtimum suppression์„ ์ ์šฉํ•œ๋‹ค๊ณ  ํ•  ๋•Œ, ์•„๋ž˜์™€ ๊ฐ™์€ ์ ˆ์ฐจ๋ฅผ ๊ฑฐ์นฉ๋‹ˆ๋‹ค.

 

 

์ผ๋‹จ 3 x 3์œผ๋กœ ์žก์•˜์ง€๋งŒ, ์กฐ๊ธˆ ๋” ๋„“์€ ๋ฒ”์œ„์—์„œ ๊ด€์ฐฐํ•˜๊ณ  ์‹ถ๋‹ค๊ณ  ํ•˜๋ฉด, 5 x 5๋ฅผ ์‚ฌ์šฉํ•ด๋„ ์ƒ๊ด€ ์—†์Šต๋‹ˆ๋‹ค.

 

๋Œ€์‹  ๋ฒ”์œ„๋ฅผ ๋ช‡์œผ๋กœ ์žก๋“ , ๊ด€์ฐฐํ•˜๊ณ ์žํ•˜๋Š” ๋ฐฉํ–ฅ์€ gradient ๋ฐฉํ–ฅ ๋Œ€๋กœ ๊ด€์ฐฐํ•ด์ค˜์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

gradient๋ฅผ ํ™”์‚ดํ‘œ๋กœ ํ‘œ์‹œํ•˜๊ณ ,

 

3  x 3์˜ ๊ฒฝ์šฐ์—๋Š” ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์ € ์ง€์ ์—์„œ ๋งŒ๋‚˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

๊ทธ๋ฆฌ๊ณ  Interpolation์€ ์•ž์—์„œ up&down sampling์—์„œ ๋ฐฐ์šด ๋ฐ”์™€ ๊ฐ™์ด ๋˜‘๊ฐ™์ด ์ง„ํ–‰๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  linear interpolation์ด๋ผ๋ฉด  ๊ฑฐ๋ฆฌ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋” ๊ฐ€๊นŒ์šด ๊ฒƒ์— ๋” ๋†’์€ weight๋ฅผ ์ฃผ๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ง์ž…๋‹ˆ๋‹ค.

 

nearest neighbor(quantization)์ด๋ผ๋ฉด, ๊ฐ€๊นŒ์šด ๊ฒƒ์œผ๋กœ ์„ ํƒ์ด ๋ฉ๋‹ˆ๋‹ค.

 

์ด์ „๊ณผ ๋‹ค๋ฅธ ๊ฒƒ์€ ๊ทธ ๊ฐ’์ด pixel ๊ฐ’์ด ์•„๋‹ˆ๋ผ gradient magnitude ๊ฐ’์ด๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋ ‡๋‹ค๋ฉด,

 

์ด gradient magnitude ๊ฐ’๋ณด๋‹ค ์œ„ ๊ฒ€์€์ƒ‰ ๊ฐ’์ด ๋” ํฌ๋‹ค๋ฉด,non-maximum suppression์— ์˜ํ•ด ๋‚จ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

๋” ์ž‘์œผ๋ฉด ๋ฒ„๋ฆฌ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

๋ฐ˜๋Œ€ ๋ฐฉํ–ฅ๋„ ์„ ํƒ์‚ฌํ•ญ์œผ๋กœ ํ•ด๋„ ๋˜๊ณ  ์•ˆ ํ•ด๋„ ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

 

๊ทธ๋ฆฌ๊ณ  3 x 3์ด ์•„๋‹ˆ๋ผ 5 x 5๋ผ๊ณ  ์ƒ๊ฐํ•ด๋ด…์‹œ๋‹ค.

 

๊ทธ๋ž˜๋„ gradient direction์€ ์ง€์ผœ์ค˜์•ผํ•ฉ๋‹ˆ๋‹ค.

 

๋” ๋„“์–ด์ง„ ๋ฒ”์œ„์—์„œ ๋ณด๋Š” ๊ฒƒ์ด์ฃ .

 

๊ทธ๋ฆฌ๊ณ  ํ™”์‚ดํ‘œ๋ฅผ ๋”ฐ๋ผ ๋ณด๋Š” ๊ฒƒ์€ ๋งˆ์ฐฌ๊ฐ€์ง€๋ผ๋Š” ๊ฒƒ์ด์ฃ .

 

gradient ๋ฐฉํ–ฅ๋Œ€๋กœ ์ญ‰ ๋”ฐ๋ผ๊ฐ€์„œ ๋ดค์„ ๋•Œ, ๋งŒ๋‚˜๋Š” ์ง€์ ๊ณผ ๋น„๊ตํ•˜๋Š” ๊ฒƒ์€ ๋˜‘๊ฐ™์Šต๋‹ˆ๋‹ค.

 

3 x 3 ๋ณด๋‹ค 5 x 5๊ฐ€ ์กฐ๊ธˆ ๋” ํฐ ์˜์—ญ์ด๋ฏ€๋กœ, 

 

3 x 3 ๋ณด๋‹ค ๋งŒ๋‚˜๋Š” ์ง€์ ์ด ๋” ์ƒ๊น๋‹ˆ๋‹ค.

 

๋งŒ๋‚˜๋Š” ์ง€์ ์ด๋ผ๋Š” ๊ฒƒ์€ ๋‘ Pixel ์‚ฌ์ด์— ๋†“์ด๋Š” ์ง€์ ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ์ด ๋ฐ˜๋Œ€๋ฐฉํ–ฅ๊นŒ์ง€ ํ•ฉ์น˜๋ฉด, ์ด 4๊ฐœ์˜ ๋ณธ์ธ ์ ๊ณผ ๋น„๊ตํ•˜์—ฌ nin-maximum suppression์„ ํ†ตํ•ด ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.

 

 

 

์ด๊ฒƒ์„ ํ•˜๊ณ  ๋‚˜๋ฉด, ๋‘๊บผ์› ๋˜ ๊ฒƒ์ด ์–‡์•„์ง€๋Š” ํšจ๊ณผ๋ฅผ ๋‚ด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

window size๋ฅผ ํ‚ค์šฐ๊ฒŒ ๋˜๋ฉด ๋” ๊ตต๊ธฐ๊ฐ€ ์–‡์•„์ง€๊ฒŒ ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

๊ฒฐ๊ตญ, ๋‘๊บผ์šด ๊ฒƒ์ด Edge๋กœ ๋ดค์„ ๋•Œ ๋ถˆํ•„์š”ํ•œ ์ •๋ณด๋“ค์ด ๋งŽ์€๋ฐ,

 

๊ทธ๊ฒƒ๋“ค์„ ์ณ๋‚ด๋Š” ๊ณผ์ •์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ์ž‰์—ฌ ์ •๋ณด๋“ค์„ ์ณ๋‚ด๋Š” ๋ฐฉ๋ฒ• ์ค‘์—์„œ Non maximum suppression์ด ๋Œ€ํ‘œ์ ์ธ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

 

 

๊ทธ๋ž˜์„œ, ๊ธฐ์กด pixel ์ด ์žˆ๊ณ , ์ฃผ๋ณ€์ด๋ž‘ ๋น„๊ตํ•˜๋Š”๋ฐ, ์„ ํƒ ๊ธฐ์ค€์ด gradient magnitude๊ฐ€ ์ฃผ๋ณ€์—์„œ ํฐ๊ฐ€ ์ž‘์€๊ฐ€์— ์˜ํ•ด, ์ง๊ตํ•˜๋Š” ๊ฒƒ๋“ค์— ๋Œ€ํ•ด์„œ ๊ฐ’์„ ์ถ”์ถœํ•˜๋Š” ๊ฒƒ์ด์ฃ .

 

์ง๊ตํ•ด์•ผ ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ์„ ์„ ๋„์ถœํ•ด๋‚ผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด์ฃ .

 

 

 

Before Non-maximun suppression

 

 

 

After Non-maximun suppression

 

 

๊ทธ๋ž˜์„œ ์œ„์™€ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค.

 

 

๊ฒฐ๊ตญ, ์šฐ๋ฆฌ๋Š” edge์— ํ•ด๋‹น๋˜๋Š” ๊ฒƒ๋งŒ ๋‚จ๊ธฐ๊ณ  ๋‚˜๋จธ์ง€๋Š” ๋‹ค ๋ฒ„๋ฆฌ๊ฒ ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ์ด๊ฒƒ์„ Binary image๋กœ ๋งŒ๋“ค๊ฒ ๋‹ค๋Š” ๊ฒƒ์ด์ฃ .

 

 

edge์— ํ•ด๋‹นํ•˜๋Š” ๋ถ€๋ถ„๋งŒ 1์˜ ๊ฐ’์„ ๊ฐ–๋Š” ๊ฒƒ์ด๊ณ , ๋‚˜๋จธ์ง€๋Š” 0์˜ ๊ฐ’์„ ๊ฐ–๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

1 ๋˜๋Š” 0 ์•„๋‹ˆ๋ฉด 255 ๋˜๋Š” 0์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

 

์ง€๊ธˆ ์šฐ๋ฆฌ๊ฐ€ non-maximum suppression์œผ๋กœ,

 

๋‘๊บผ์šด ๊ฒƒ๋“ค ์–‡๊ฒŒ ๋งŒ๋“ค์–ด์คฌ์ง€๋งŒ, ์•„์ง 0 ๋˜๋Š” 1์˜ ๊ฐ’์ด ์•„๋‹™๋‹ˆ๋‹ค.

 

gradient ํฌ๊ธฐ์— ๋”ฐ๋ผ์„œ ๋ฐ๊ณ  ์–ด๋‘์›€์ด ์•„์ง ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

 

 

๊ทธ๋ž˜์„œ gradient์˜ ํฌ๊ธฐ๋ฅผ ๋ณด๊ณ  ์–ด๋–ค ๊ฒƒ์€ ์ทจํ•˜๊ณ  ์–ด๋–ค ๊ฒƒ์€ ์ทจํ•˜์ง€ ์•Š์„ ์ง€๋ฅผ ์„ ํƒํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์ณ์•ผํ•ฉ๋‹ˆ๋‹ค.

 

 

Hysteresis thresholding (Double thresholding)

 

๊ธฐ์ค€์„ ์„ธ์›Œ์„œ ๋” ๋†’์œผ๋ฉด 1 ๋‚ฎ์œผ๋ฉด 0๊ณผ ๊ฐ™์ด ๊ฐ’์„ ๋ถ€์—ฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๊ทธ ๋†’์€ ์• ๋“ค์„ edge๋ผ๊ณ  ํŒ์ •ํ•˜๊ฒ ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

๊ทธ๋ž˜์„œ threshold๋ฅผ 2๊ฐœ๋ฅผ ์”๋‹ˆ๋‹ค.

 

M์€ magnitude์— ํ•ด๋‹นํ•˜๊ณ  x, y๋Š” ์ขŒํ‘œ์ž…๋‹ˆ๋‹ค.

 

๋ชจ๋“  pixel์— ๋Œ€ํ•ด T H ๋ณด๋‹ค ํฐ ๊ฒƒ์€, ๋†’์€ threshold ๋ณด๋‹ค ํฐ gradient magnitude๋ฅผ ๊ฐ–๋Š” ๊ฒƒ์€ ๋ฌด์กฐ๊ฑด edge๋กœ ํ•˜๊ฒ ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

T L ๋ณด๋‹ค ๋‚ฎ์€ ๊ฒƒ์€ ๋ฌด์กฐ๊ฑด edge๊ฐ€ ์•„๋‹ˆ๋ผ๊ณ  ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

๊ทธ๋Ÿฐ๋ฐ ์šฐ๋ฆฌ๊ฐ€ ํ•˜๋ ค๊ณ  ํ•˜๋Š” ๊ฒƒ์€ 0 ๋˜๋Š” 1๋กœ, binary classification, ์ฆ‰ 2๊ฐœ์˜ class๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฌ๋‚˜, T L ๊ณผ T H ์‚ฌ์ด์˜ ๊ฐ’๋“ค์ด ์กด์žฌํ•˜์—ฌ, 3๊ฐ€์ง€ classification์ด ๋ฉ๋‹ˆ๋‹ค.

 

 

๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” T H ๋ณด๋‹ค ํฐ edge์ธ ์• ๋“ค์„ strong edge, T L ๋ณด๋‹ค ์ž‘์€ ์• ๋“ค์€ Edge๊ฐ€ ์•„๋‹Œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  T L ๊ณผ T H ์‚ฌ์ด์˜ ๊ฒƒ์„์€ Weak Edge๋ผ๊ณ  ํ•ฉ์‹œ๋‹ค.

 

 

๊ทธ๊ฒƒ์„ non-maximum suppresion์„ ํ†ตํ•ด ๊ทธ๋ ค๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 



 

์•„๋ž˜์™€ ๊ฐ™์€ Pixel ๊ฐ’์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

 

  • string - 255
  • weak - 128
  • not a edge - 0

 

non-maximum suppresion์„ ๊ฑฐ์นœ ๊ฐ’์—๋‹ค๊ฐ€ double thresholding์„ ํ†ตํ•ด class 3๊ฐœ๋กœ ๋‚˜๋ˆˆ ๊ฒƒ์„ ๊ทธ๋ฆฐ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

์ด ์ง€์ ธ๋ถ„ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์‹œ ์„ ํƒ์„ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

 

 

 

 

 

์ด๊ฒƒ์„ ํ•˜๋Š” ๊ณผ์ •์ด wark edge๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•˜์—ฌ ์ญ‰ ์—ฐ๊ฒฐํ•ด ๋‚˜๊ฐ€๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์ฐํ•œ ์„ ์ด strong edge, ์–‡์€ ์„ ์ด weak edge๋ผ๊ณ  ์ƒ๊ฐํ•ด๋ด…์‹œ๋‹ค.

 

 

 

๊ทธ๋žฌ์„ ๋•Œ,

 

weak edge์˜ ํ•œ ์ง€์ ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ์ญ‰ ์—ฐ๊ฒฐ์„ ํ•ฉ๋‹ˆ๋‹ค.

 

ํ•œ pixel์ด๋ผ๋„ strong edge์™€ ๋งŒ๋‚˜๋Š” ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด, ๊ทธ edge๋Š” ๋‹ค strong edge๋กœ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

weak edge๋“ค๋„ ๋‹ค strong edge๋“ค๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๊ณ„์†ํ•ด์„œ ์ ์–ด๋„ Weak edge ๋˜๋Š” Strong edge๊ฐ€ ์žˆ๋‹ค๋ฉด ๊ณ„์†ํ•ด์„œ ์—ฐ๊ฒฐํ•ด ๋‚˜๊ฐ€๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๋ฉˆ์ถœ ๋•Œ๊นŒ์ง€, edge๊ฐ€ ์•„๋‹Œ ๋ถ€๋ถ„์ด ๋‚˜์˜ฌ ๋•Œ๊นŒ์ง€ ๋ฉˆ์ถ”์ง€ ์•Š๊ณ  ๊ณ„์† ์ด์–ด๋‚˜๊ฐ‘๋‹ˆ๋‹ค.

 

์ด ์ด์–ด์ง„ ๊ฒƒ์„  connected component๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. (์—ฐ๊ฒฐ ๋œ ๊ฒƒ ์ค‘ ๊ฐ€์žฅ ํฐ ์ง‘ํ•ฉ)

 

๊ทธ๋ฆฌ๊ณ  strong edge๋ฅผ ๋งŒ๋‚˜์ง€ ๋ชปํ•˜๊ณ , weak edge๋งŒ ์žˆ๋‹ค๋ฉด, ์ด๊ฒƒ์€ edge๊ฐ€ ์•„๋‹Œ ๊ฒƒ์œผ๋กœ ๋๋‚˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

๊ฒฐ๊ตญ, Strong edge๊ฐ€ ํ•˜๋‚˜๋ผ๋„ ์žˆ๋Š” edge๋Š” strong edge๊ฐ€ ๋˜๊ณ ,

 

Strong edge๊ฐ€ ์—†๋‹ค๋ฉด edge๊ฐ€ ์•„๋‹ˆ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

๊ทธ๋ž˜์„œ ์ด ๊ณผ์ •์„ ํ†ตํ•ด 0 ๋˜๋Š” 1์˜ ๊ฐ’์œผ๋กœ ๋‚˜์˜ค๊ฒŒ ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

 

์ด๋ ‡๊ฒŒ Double thresholding์„ ํ†ตํ•ด์„œ edge detection์„ ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

 

 

๊ทธ๋ž˜์„œ ์œ„์™€ ๊ฐ™์€ Lena image์—์„œ edge ๋ฅผ ๋ฝ‘์•„๋‚ด์—ˆ์Šต๋‹ˆ๋‹ค.

'Artificial Intelligence > Computer Vision' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Computer Vision] Segmentation  (1) 2023.05.07
[Computer Vision] Binary Image  (2) 2023.04.27
[Computer Vision] Image Gradient  (0) 2023.04.16
[Computer Vision] Edge Detection  (0) 2023.04.15
[Computer Vision] Image upsampling  (0) 2023.04.09

BELATED ARTICLES

more