๏ฃฟ Apple Lover Developer & Artist

์˜์†์ ์ธ ๋””์ž์ธ์— ํ˜„๋Œ€์˜ ๊ณต๊ฐ์„ ์ฑ„์›Œ๋„ฃ๋Š” ๊ณต๋ฐฉ์ž…๋‹ˆ๋‹ค

๐Ÿ–ฅ Computer Science/Computer Vision

[Computer Vision] Hough Transform

singularis7 2021. 9. 24. 10:57
๋ฐ˜์‘ํ˜•

Overview

  • ๊ฒ€์ถœ๋œ ์—ฃ์ง€๋ฅผ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ถ„์•ผ์—์„œ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šด๋‹ค.
  • ์—ฃ์ง€๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šด๋‹ค.
  • ์—ฃ์ง€๋ฅผ ํ†ตํ•ด ์„ ๋ถ„์ด๋‚˜ ์›์„ ์ฐพ๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šด๋‹ค.

์—ฃ์ง€ ์—ฐ๊ฒฐ๊ณผ ์„ ๋ถ„ ๊ทผ์‚ฌ

์—ฃ์ง€์˜ ํ‘œํ˜„ ๋ฐฉ๋ฒ•

  • ์œ„ ์ด๋ฏธ์ง€์—๋Š” 16 x 8 ์ด๋ฏธ์ง€๊ฐ€ ์žˆ๋‹ค.
  • ์˜์ƒ์—์„œ ์—ฃ์ง€๊ฐ€ ์ฐจ์ง€ํ•˜๋Š” ์˜์—ญ์ด ์ ๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ ์ธก๋ฉด์—์„œ ๋น„ํšจ์œจ์ ์ด๋‹ค.
  • ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ค„์ด๋ฉด์„œ ํšจ์œจ์ ์œผ๋กœ ์—ฃ์ง€์˜ ์œ„์น˜๋ฅผ ์ถ”์ ํ•˜๋Š” ๋ฐฉ๋ฒ•๋“ค์ด ์žˆ๋‹ค.
  • ์ฒซ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์€ ์ฒด์ธ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

  • ์˜์ƒ์˜ ํ™”์†Œ๋ฅผ ์ญ‰ ํ›‘๋‹ค๊ฐ€ ์ฒ˜์Œ ๋งŒ๋‚˜๋Š” ์ ์„ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฅธ์ชฝ ๋ฐฉํ–ฅ์„ 0 ๊ธฐ์ค€์œผ๋กœ ์žก์•„์„œ 8์—ฐ๊ฒฐ์„ฑ์œผ๋กœ ์‚ดํŽด๋ณธ๋‹ค.
  • ์ฒด์ธ์ฝ”๋“œ๋Š” ์œ„์™€ ๊ฐ™์€ 8 ์—ฐ๊ฒฐ์„ฑ์—์„œ ์–ด๋–ป๊ฒŒ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š”์ง€ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.
  • ์˜์ƒ์—์„œ ์—ฃ์ง€ ์„ฑ๋ถ„๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ถ„๋ฅ˜ํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค.@ (๋์ ) : edge๊ฐ€ ๋๋‚˜๋Š” ์ , edge๋ฅผ ๊ธฐ์ค€์œผ๋กœ 8์—ฐ๊ฒฐ์„ฑ์„ ์‚ดํŽด๋ณด์•˜์„ ๋•Œ ํ•œ๊ฐœ์˜ edge ์„ฑ๋ถ„๋งŒ ์žˆ์Œ
  • + (๋ถ„๊ธฐ์ ) : edge๊ฐ€ ๋‘๊ฐ€์ง€ ๋ฐฉํ–ฅ์œผ๋กœ ์—ฐ๊ฒฐ๋˜๋Š” ์ , edge๋ฅผ ๊ธฐ์ค€์œผ๋กœ 8์—ฐ๊ฒฐ์„ฑ์„ ์‚ดํŽด๋ณด์•˜์„ ๋•Œ ์ตœ์†Œ 3๊ฐœ ์ด์ƒ ์—ฐ๊ฒฐ
  • O (ํ†ต๊ณผ์ ) : edge ์„ฑ๋ถ„์˜ 8์—ฐ๊ฒฐ์„ฑ์„ ์‚ดํŽด๋ณด์•˜์„ ๋•Œ 2๊ฐœ์˜ edge ์ •๋ณด๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ

  • ๋์ ๊ณผ ๋ถ„๊ธฐ์ , ๋ถ„๊ธฐ์ ๊ณผ ํ†ต๊ณผ์ , ๋ถ„๊ธฐ์ ๊ณผ ๋ถ„๊ธฐ์ ์œผ๋กœ ๋‚˜๋‰œ ์ง€์ ์„ ํ† ๋ง‰์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

  • ๊ฐ ํ† ๋ง‰์— ํ•ด๋‹น๋˜๋Š” ์˜์ƒ์—์„œ์˜ ์ขŒํ‘œ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋ฉด ๋” ์ ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ฒด์ธ์ฝ”๋“œ๋Š” ์‹œ์ž‘์ง€์  ์ขŒํ‘œ๊ฐ’์œผ๋กœ ์‹œ์ž‘ํ•˜์—ฌ ๋ฐฉํ–ฅ๋งŒ ๋‚จ๊ฒจ์ฃผ์–ด ๋” ํšจ์œจ์ ์œผ๋กœ๋„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

์„ ๋ถ„ ๊ทผ์‚ฌ

  • A์ ๊ณผ B์ ์„ ์ด์–ด์ฃผ๋Š” ์ง์„ ์œผ๋กœ๋ถ€ํ„ฐ ๊ฐ€์žฅ๋จผ์  h๊ฐ€ ์žˆ์„ ๋•Œ ์„ ๋ถ„ ๋ถ„ํ• ์„ ์žฌ๊ท€์ ์œผ๋กœ ๋ฐ˜๋ณตํ•ด์„œ ์—ฃ์ง€ ์„ฑ๋ถ„์„ ๊ตฌํ•ด๋ณธ๋‹ค.
  • ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณก์„  ๋ชจ์–‘์˜ ์—ฃ์ง€ ์„ฑ๋ถ„์„ ๊ทผ์‚ฌ์ ์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ•ด๋ณด๋Š” ๊ฒƒ์ด๋‹ค.

  • A, B ๋ ์ ์„ ์—ฐ๊ฒฐํ•˜๋Š” ์ง์„ ์˜ ๋ฐฉ์ •์‹์„ ๋งŒ๋“ค์–ด ๋ณด์•˜์ง€๋งŒ ์—ฃ์ง€ ์„ฑ๋ถ„์„ ๋Œ€ํ‘œํ•˜๊ธฐ์— ๊ฑฐ๋ฆฌ๊ฐ€ ์žˆ๋‹ค.
  • ๊ณก์„ ๊ณผ ์ง์„  ์‚ฌ์ด์— ๊ฐ€์žฅ ๊ฑฐ๋ฆฌ๊ฐ€ ๋จผ ์ง€์ ์„ A'์„ ์„ ํƒํ•˜์—ฌ ์žฌ๊ท€์ ์œผ๋กœ ์ง์„ ์„ ๊ตฌํ•ด๋‚˜๊ฐ„๋‹ค.

  • ์œ„์—์„œ ์–ธ๊ธ‰๋œ ๊ณผ์ •์„ ์žฌ๊ท€์ ์œผ๋กœ ๊ณ„์‚ฐํ•˜์—ฌ ์ง์„ ์˜ ๋ฐฉ์ •์‹์„ ์—ฃ์ง€ ์„ฑ๋ถ„์— ๊ทผ์‚ฌ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. 
  • ๊ทผ์‚ฌ๋œ ๋ชจ์–‘์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.


ํ—ˆํ”„ ๋ณ€ํ™˜

  • ์—ฃ์ง€๋ฅผ ํ†ตํ•ด ์„ ๋ถ„, ์›์„ ๊ฒ€์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•
  • Hough Transform : ์ฐจ์›(์ขŒํ‘œ๊ณ„)์˜ ๋ณ€ํ™˜

  • 2์ฐจ์› ์˜์ƒ์—์„œ ์—ฃ์ง€๋ฅผ ํ‘œํ˜„ํ•  ๋•Œ ๋„ˆ๋ฌด ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์š”๊ตฌ๋˜์—ˆ๋‹ค.
  • ์•„์ด๋””์–ด: x, y ์ขŒํ‘œ๊ณ„๋ฅผ ๋ณ€ํ™˜์‹œํ‚ค๋ฉด x, y๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ฒ€์ถœํ•  ์ˆ˜ ์žˆ์ง€์•Š์„๊นŒ?

  • ์—ฃ์ง€์˜ ์—ฐ๊ฒฐ ๊ณผ์ • ์—†์ด ์„ ๋ถ„์„ ๊ฒ€์ถœํ•œ๋‹ค.
  • ์—ฃ์ง€๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ํ”ฝ์…€๊ฐ’์„ ๊ฐ–๊ณ  ์–ด๋–ค ํŠน์„ฑ์„ ๊ฐ–๊ณ  ์žˆ๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋ณธ๋‹ค.
  • x, y์ขŒํ‘œ๊ณ„์—์„œ๋Š” ์ขŒํ‘œ๊ฐ’์„ ํ•˜๋‚˜ ํ•˜๋‚˜ ์‚ดํŽด๋ณด๋Š”๋ฐ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋น„ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— b-a ์ขŒํ‘œ๊ณ„๋กœ ๋ณ€ํ™˜์‹œํ‚จ๋‹ค.
  • ์ด ๋•Œ ์˜์ƒ ๊ณต๊ฐ„ y-x๋ฅผ ๊ธฐ์šธ๊ธฐ ์ ˆํŽธ ๊ณต๊ฐ„ b-a๋กœ ๋ณ€ํ™˜์‹œํ‚จ๋‹ค.
  • ์ •๋ฆฌํ•˜์ž๋ฉด y-x ๊ณต๊ฐ„์—์„œ ์„ธ ์ ์„ ์ด์–ด์ฃผ๋Š” ์ง์„ ์˜ ๋ฐฉ์ •์‹์„ ๊ณ„์‚ฐํ•œ ํ›„์— ๊ธฐ์šธ๊ธฐ์™€ ์ ˆํŽธ๋งŒ ์•Œ๊ณ  ์žˆ๋‹ค๋ฉด ๊ทธ ์œ„์˜ ๋ชจ๋“  ์ขŒํ‘œ๋ฅผ ์„ค๋ช…ํ•ด๋‚ผ ์ˆ˜ ์žˆ๋‹ค.
  • ์•„์ฃผ ์‰ฝ๊ณ  ๊ทน์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์„ ๋ณด์ผ ์ˆ˜ ์žˆ๋‹ค!!!!

 

  • ๊ธฐ์šธ๊ธฐ ๊ฐ’์ด ๋ฌดํ•œ๋Œ€์ธ ๊ฒฝ์šฐ ์ขŒํ‘œ๊ณ„ ๋ณ€ํ™˜์— ํ•œ๊ณ„๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ทน์ขŒํ‘œ๊ณ„๋ฅผ ํ™œ์šฉํ•œ๋‹ค.
  • ์›์œผ๋กœ ํ‘œํ˜„๋œ ๊ฒƒ์„ ๊ฐ๋„๊ฐ€ ๋ณ€ํ•จ์— ๋”ฐ๋ฅธ p๊ฐ’์„ ๋ณด์—ฌ์ค€๋‹ค.
  • ํŠน์ • ๊ฐ๋„์—์„œ ํ•˜๋‚˜์˜ ์ ์—์„œ ๋งŒ๋‚˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ •๋ฆฌํ•˜์ž๋ฉด y-x์ขŒํ‘œ๊ณ„์˜ 3๊ฐœ์˜ ์ ์„ ํŠน์ • (p, ๊ฐ๋„) ๊ฐ’์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์–ด์„œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋ฐ˜๋Œ€๋กœ ๋งํ•˜์ž๋ฉด (p, ๊ฐ๋„)์„ ์•Œ๊ณ  ์žˆ์„ ๋•Œ ์—ญ์œผ๋กœ y-x ์ขŒํ‘œ๊ณ„์—์„œ์˜ ์ง์„ ์˜ ๋ฐฉ์ •์‹์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

Voting Scheme

  • ์˜์ƒ์€ ์ด์‚ฐ์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ง์„ ์˜ ๋ฐฉ์ •์‹์„ ๋ฒ—์–ด๋‚  ๊ฐ€๋Šฅ์„ฑ์ด ์กด์žฌํ•œ๋‹ค.
  • ๊ทธ๋‚˜๋งˆ ๊ฐ€์žฅ ๋งŽ์ด ์ง€๋‚˜๊ฐ€๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ๊ณณ์„ ๊ทน ์ขŒํ‘œ๊ณ„์˜ ์ค‘์‹ฌ์ ์œผ๋กœ ๊ฐ€์ •ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค.
  • ์ง์„ ๊ณผ ๊ฐ€๊นŒ์šด ์œ„์น˜์— Voting์ด ๋˜๋Š”ํ”ฝ์…€์„ ์ง€๋‚˜๋Š” ๊ทน ์ขŒํ‘œ๊ณ„์—์„œ์˜ ์ง์„ ์˜ ๋ฐฉ์ •์‹์„ ์ฐพ์•„๋ณด์ž!

  • ์ง์„ ์˜ ๊ธฐ์šธ๊ธฐ: C, ์ง์„ ์˜ x์ ˆํŽธ : a, ์ง์„ ์˜ y ์ ˆํŽธ : b
  • ์ง์„ ์˜ ๋ฐฉ์ •์‹ y = -(b/a)x + b
  • ์ง์„ ์˜ ๋ฐฉ์ •์‹์— ๋Œ€ํ•œ ๊ทน์ขŒํ‘œ๋ฅผ ๊ตฌํ•ด๋ณด๋ฉด?
  • ์›์ ์œผ๋กœ๋ถ€ํ„ฐ ์ง์„ ๊ณผ ์ง๊ตํ•˜๋Š” ์„ ๋ถ„์„ ๊ธ‹๋Š”๋‹ค.
  • x์ถ•๊ณผ ์ด๋ฃจ๋Š” ๊ฐ (์„ธํƒ€), ์›์ ๊ณผ ์ง์„  ์‚ฌ์ด์˜ ๊ฑฐ๋ฆฌ (r)
  • ๋ชฉํ‘œ: (x-y์ขŒํ‘œ๊ณ„) => y = -(b/a)x + b ๋ฅผ (๊ทน ์ขŒํ‘œ๊ณ„) => (์„ธํƒ€, r)๋กœ ๋‚˜ํƒ€๋‚ด์–ด๋ณด์ž!
  • ๊ธฐ์šธ๊ธฐ์™€ ์„ธํƒ€, y์ ˆํŽธ๊ณผ r๊ฐ’๊ณผ์˜ ๊ด€๊ณ„๋ฅผ ์ด์šฉํ•œ๋‹ค.

  • ์œ„์™€ ๊ฐ™์ด ์—ฌ๋Ÿฌ๊ฐœ์˜ ์‚ผ๊ฐํ˜•์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค. ์šฐ์„  ํŒŒ๋ž‘์ƒ‰์œผ๋กœ ํ‘œ์‹œ๋œ ํฐ ์‚ผ๊ฐํ˜•์„ ๊ธฐ์ค€์œผ๋กœ ๋ณธ๋‹ค.
  • ํฐ ์‚ผ๊ฐํ˜•์„ ๊ธฐ์ค€์œผ๋กœ sin, cos๊ฐ’์„ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๊ธฐ์šธ๊ธฐ ๊ฐ’์„ ๊ณ„์‚ฐํ•˜๊ธฐ์œ„ํ•ด cos์„ธํƒ€ / sin ์„ธํƒ€๋ฅผ ๊ณ„์‚ฐํ•˜๋ฉด - (b/a)๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • y์ ˆํŽธ์€ ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ํ‘œํ˜„๋œ ๋ถ€๋ถ„ ์‚ผ๊ฐํ˜•์„ ํ™œ์šฉํ•˜์—ฌ ๊ณ„์‚ฐํ•œ๋‹ค.
  • sin ์„ธํƒ€ = r / b ๋ฅผ ๋งŒ์กฑํ•˜๊ธฐ ๋•Œ๋ฌธ์—
  • y์ ˆํŽธ b = r / sin์„ธํƒ€๋กœ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์ •๋ฆฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • ์œ„ ๊ด€๊ณ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ x-y์ขŒํ‘œ๊ณ„์—์„œ์˜ ๋ชจ๋“  ์ขŒํ‘œ๋ฅผ ๊ทน์ขŒํ‘œ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

  • ์œ„์—์„œ ์†Œ๊ฐœํ•œ ๊ด€๊ณ„์‹์— ๋”ฐ๋ผ x, y ๊ฐ’์„ ์•Œ๊ณ  ์žˆ์„ ๋•Œ ๊ฐ ์„ธํƒ€์— ๋Œ€์‘๋˜๋Š” p๊ฐ’์„ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค.
  • x-y์ขŒํ‘œ๊ฐ’๋“ค์„ ๋ชจ๋‘ p, ์„ธํƒ€๋กœ ๋ณ€ํ™˜์‹œ์ผœ์„œ ๊ฐ€์žฅ ๋งŽ์ด ์„ ํƒ(Voting)๋˜๋Š” ์  p์™€ ์„ธํƒ€๋ฅผ ์„ ํƒํ•œ๋‹ค.
  • ๋ฌดํ•œ๋Œ€์ธ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ทน์ขŒํ‘œ๊ณ„๋ฅผ ํ†ตํ•œ ํ‘œํ˜„๋ฒ•์ด ํšจ์œจ์ ์ด๋‹ค.

 

Algorithm outline

  • H๋ผ๋Š” ๊ฐ’์„ ๋ชจ๋‘ 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค. H๋Š” ์„ธํƒ€๊ฐ’์— ๋”ฐ๋ฅธ p ๋ˆ„์ ๊ฐ’์„ ๊ธฐ๋กํ•˜๋Š” ํ—ˆํ”„๋งŒ ๊ณต๊ฐ„์ด๋‹ค.
  • ๊ฐ ์—ฃ์ง€ ํฌ์ธํŠธ์— ๋Œ€ํ•ด ์„ธํƒ€๊ฐ’์„ 0~180๊นŒ์ง€ ๋ณ€๊ฒฝํ•ด๊ฐ€๋ฉด์„œ ๋‹ค์Œ์„ ๊ณ„์‚ฐํ•œ๋‹ค.
  • p = x * cos์„ธํƒ€ + y*sin์„ธํƒ€, H(์„ธํƒ€, p) += 1
  • ๊ฐ€์žฅ ๋งŽ์ด Voting๋œ ์ขŒํ‘œ๋ฅผ ์ฐพ๋Š”๋‹ค.
  • ๊ทน์ขŒํ‘œ์— ๋Œ€ํ•ด ์‹ค์ œ๋กœ Visualize ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • Voting๋˜๋Š” ์ ์„ ํ†ตํ•ด ์ง์„ ์˜ ๋ฐฉ์ •์‹์˜ ๊ฐœ์ˆ˜๋ฅผ ์˜ˆ์ธกํ•˜๊ฑฐ๋‚˜ ๋ชจ์–‘ ๊ฐ™์€ ๊ฒƒ์„ ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ์—ฃ์ง€ ์„ฑ๋ถ„๋“ค ์ค‘์—์„œ ํŠน์ • ์—ฃ์ง€๋งŒ์„ ๋ฝ‘์•„๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

  • ์ž์œจ ์ฃผํ–‰ ์ฐจ๋Ÿ‰์—์„œ๋Š” ์ฐจ์„ ์„ ๊ฒ€์ถœํ•  ๋•Œ ํ—ˆํ”„๋งŒ ๋ณ€ํ™˜์„ ์‚ฌ์šฉํ•œ๋‹ค.

  • ์˜์ƒ์— ์žก์Œ์ด ๋ผ์–ด์žˆ๋”๋ผ๋„ ์ฐจ์„ ๊ณผ ๊ฐ™์ด ์ง์„ ์ด ๊ธด ๊ฒฝ์šฐ์—๋Š” ์ง์„ ์— ๋Œ€์‘๋˜๋Š” ๊ทน์ขŒํ‘œ๊ฐ’์˜ ๋ˆ„์ ๊ฐ’์ด ๋‹ค๋ฅธ ์žก์Œ๋ณด๋‹ค ์›”๋“ฑํ•˜๊ฒŒ ๋†’๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
  • ๋”ฐ๋ผ์„œ ์›ํ•˜๋Š” ๋„๋กœ ์ฐจ์„ ๋งŒ ์žก์„ ์ˆ˜ ์žˆ๋‹ค.

 

Effect of noise

  • ์ •ํ™•ํ•˜๊ฒŒ ์ง์„ ์˜ ๋ฐฉ์ •์‹์„ ์ด๋ฃจ๋Š” ๊ฒฝ์šฐ ๊ทน์ขŒํ‘œ๋กœ ๋ณ€ํ™˜ํ•˜๋ฉด ํ•œ์ ์œผ๋กœ Voting๋œ๋‹ค.
  • ํ•˜์ง€๋งŒ noise๊ฐ€ ๋ผ์–ด์žˆ๋Š” ๊ฒฝ์šฐ ํ•˜๋‚˜์˜ ์ ์œผ๋กœ Voting์ด ๋˜์ง€ ์•Š๋Š”๋‹ค. ์ด ๋•Œ์—๋Š” ์–ด๋–ป๊ฒŒ ์ง์„ ์„ ์ฐพ์•„๋‚ผ ๊ฒƒ์ธ๊ฐ€?

  • ์žก์Œ์„ ๋Œ€ํ‘œํ•˜๋Š” ์ง์„ ์˜ ๋ฐฉ์ •์‹์„ ์ฐพ์•„๋ณผ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์–ด๋–ป๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์„๊นŒ?

  • ๋„ˆ๋ฌด ๋„๋Ÿดํ•˜๊ฒŒ ํ˜น์€ ์ •๊ตํ•˜๊ฒŒ noise๋ฅผ ๋‹ค๋ฃจ๋ฉด ์›ํ•˜๋Š” ์ง์„ ์˜ ๋ฐฉ์ •์‹์„ ๋„์ถœํ•˜์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ด ๋ฌธ์ œ์— ๊ด€ํ•˜์—ฌ ์†”๋ฃจ์…˜์€ RANSAC ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค.

 

Hough transform for circles

  • ํ—ˆํ”„ ๋ณ€ํ™˜์„ ํ†ตํ•ด ์›์„ ์ฐพ๋Š” ์‘์šฉ์„ ํ•ด๋ณธ๋‹ค.

  • 2์ฐจ์› ์˜์ƒ์—์„œ ์› ๋ชจ์–‘์˜ ์—ฃ์ง€ ์„ฑ๋ถ„์ด ์žˆ์„๋•Œ ์›์˜ ๋ฐ˜์ง€๋ฆ„ r๊ฐ’์„ ์•Œ๊ณ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค.
  • ์›์œ„์˜ ์ ์— ๋Œ€ํ•ด ์ง๊ตํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๋ฝ‘๋‹ค๋ณด๋ฉด ์› ๋‚ด๋ถ€์™€ ์™ธ๋ถ€์—์„œ ํ•˜๋‚˜์˜ ์ ์”ฉ ๋ฝ‘ํž ๊ฒƒ์ด๋‹ค.
  • ๋ฐ–์—์„œ Voting์ด ๋˜๋Š” ์ ์€ Sparseํ•˜๊ฒŒ ํผ์งˆ ๊ฒƒ์ด๋‹ค.
  • ์› ๋‚ด๋ถ€์—์„œ Voting์ด ๋˜๋Š” ์ ์€ ์›์˜ ์ค‘์‹ฌ์ด๋‹ค.

  • ์ฃผ์–ด์ง„ ํ”ฝ์…€์— ์›์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ์› ๋‚ด๋ถ€์— Voting ๋˜๋Š” ์ ์„ ์ฐพ์œผ๋ฉด ์›์˜ ์ค‘์‹ฌ์„ ์ฐพ์„ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

 

Generalized Hough transform

  • ํ—ˆํ”„ ๋ณ€ํ™˜์„ ์ผ๋ฐ˜ํ™”ํ•ด์„œ ์‚ฌ๋ฌผ์„ ์ฐพ๊ณ  ๊ฒ€์ƒ‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์‘์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ์–ด๋Š ๋ฌผ์ฒด์— ์œ„์™€ ๊ฐ™์€ ํŠน์ง•์„ ์„ธ์› ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž!

  • ๋งˆ๋ฆ„๋ชจ, ์›, ์„ธ๋ชจ ํŠน์ง•์— ๋Œ€ํ•ด ์šฐ์ธก๊ณผ ๊ฐ™์ด Voting๋œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž!
  • ๋ฌผ์ฒด์—์„œ ๊ฐ ํŠน์ง•์ด Votingํ•˜๋Š” ์  ์ค‘์—์„œ ๋งŽ์ด Votinge ๋˜๋Š” ์ ์„ ์ฐพ์œผ๋ฉด ๋ฌผ์ฒด์˜ ์ค‘์‹ฌ์„ ์ฐพ์„ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.
  • ์œ„ ์•„์ด๋””์–ด๋กœ ์˜์ƒ์—์„œ ๋ฌผ์ฒด๋ฅผ ์ธ์‹ํ•œ๋‹ค.

  • ์˜์ƒ์œผ๋กœ๋ถ€ํ„ฐ ๋ฐ”ํ€ด๋ฅผ ์ฐพ์•˜์„ ๋•Œ ๋ฐ”ํ€ด๋กœ๋ถ€ํ„ฐ ์ค‘์‹ฌ ๋ถ€๋ถ„์ด ์–ด๋””์— ๋งตํ•‘์ด๋˜๋Š”์ง€ ์ƒ๊ฐํ•ด๋ณผ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.
  • ๋’ท๋ฐ”ํ€ด์™€ ์•ž๋ฐ”ํ€ด๋ฅผ ํ†ตํ•ด ๋งŽ์ด Voting๋˜๋Š” ์ง€์ ์„ ์ฐพ์•„์„œ ๋ฌผ์ฒด๋ฅผ ๊ฒ€์ถœํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ์ฃผ์–ด์ง„ ์˜์ƒ์œผ๋กœ๋ถ€ํ„ฐ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐ”ํ€ด ์˜์ƒ์„ ์ฐพ์•„์„œ ํ‰๊ท ์„ ๊ตฌํ•œ๋‹ค.
  • ๊ฐ ํ‰๊ท  ์ด๋ฏธ์ง€์— ๋Œ€ํ•ด์„œ ์ค‘์‹ฌ ์œ„์น˜๊ฐ€ ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑ๋˜์–ด์žˆ์„์ง€ mappingํ•ด๋ณด์ž!

  • ์œ„์™€ ๊ฐ™์€ ๋…ผ๋ฆฌ๋กœ ๋ฐ”ํ€ด๋„ ๋ฐ”ํ€ด๋„ ์ฐพ๊ณ  ํŠน์ง•์„ ์ฐพ์•„์„œ ์ค‘์‹ฌ์„ ์ฐพ๋„๋ก mapping์„ ํ•ด๋ณด๋ฉด

  • ์ž๋™์ฐจ์˜ ์ค‘์‹ฌ์œ„์น˜๋กœ ๋งŽ์ด Voting๋˜๋Š” ์ง€์ ์œผ๋กœ ์ž๋™์ฐจ๋ฅผ ๊ฒ€์ถœํ•ด๋‚ผ ์ˆ˜ ์žˆ๋‹ค.
  • ์ •๋ฆฌํ•˜์ž๋ฉด ํ—ˆํ”„๋ณ€ํ™˜์„ ํ†ตํ•ด ์›์˜ ์ค‘์‹ฌ์„ ์ฐพ๋Š” ์•„์ด๋””์–ด๋ฅผ ํ™•์žฅํ•˜๊ณ  ์˜์ƒ์˜ ํŠน์ง• ์˜์—ญ์„ ๋ชจ์•„์„œ ๊ฐ€์žฅ ๋งŽ์ด Voting๋˜๋Š” ์ง€์ ์„ ์ฐพ์œผ๋ฉด ๋ฌผ์ฒด๋ฅผ ๊ฒ€์ถœํ•ด๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

  • ์ฃผ์–ด์ง„ ์˜์ƒ์—์„œ ํŠน์ง•์„ ์ฐพ๋Š”๋‹ค.
  • ํŠน์ง•์„ ์ค‘์‹ฌ์œผ๋กœ ์˜์—ญ์„ ๋ชจ์•„์„œ ์–ด๋””์— ์ค‘์‹ฌ์ด ์žˆ๋Š”์ง€ Voting ํ•œ๋‹ค.
  • Voting์ด ๊ฐ€์žฅ ๋งŽ์ด ๋˜๋Š” ์ ์€ ๋ฌผ์ฒด์˜ ๊ฐ€์ƒ์˜ ์ค‘์‹ฌ์ด๋ผ๊ณ  ๊ฐ€์ •ํ•œ๋‹ค.
  • ๋”ฐ๋ผ์„œ ๋ฌผ์ฒด๋ฅผ ๊ฒ€์ถœํ•˜๋Š” ๋ชจ๋ธ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

  • ์˜คํ† ๋ฐ”์ด, ์‚ฌ๋žŒ, ์†Œ์™€ ๊ฐ™์ด ํŠน์ • ๊ธฐ์ค€์œผ๋กœ Voting์„ ํ•˜๋ฉด ๋ฌผ์ฒด๊ฐ€ ์ž˜ ๊ฒ€์ถœ๋˜๊ณ  ์žˆ๋‹ค.
  • ๋ถ€๋ถ„์ ์œผ๋กœ ๊ฐ€๋ ค์ง„ ์ด๋ฏธ์ง€์— ์žˆ์–ด์„œ๋Š” ๋‹จ์ ์ด ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํ—ˆํ”„ ๋ณ€ํ™˜์˜ ์žฅ์  : 
    ๊ฐ€๋ ค์ง, ์žก์Œ์ด ์žˆ์–ด๋„ ์ž˜ ๊ฒ€์ถœํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํ—ˆํ”„ ๋ณ€ํ™˜์˜ ๋‹จ์  :
    ์ฒ˜๋ฆฌ์‹œ๊ฐ„์ด ๋งŽ์ด ๊ฑธ๋ฆฌ๊ณ  ๋ชจ๋ธ์ด ๋งŽ์ด ๋ณ€ํ•˜๋Š” ๊ฒฝ์šฐ์— ์ž˜ ๊ฒ€์ถœํ•˜์ง€ ๋ชปํ•œ๋‹ค. ์ฆ‰, ์ž๋™์ฐจ ์˜คํ† ๋ฐ”์ด์™€ ๊ฐ™์€ ๋ชจ์–‘์ด ํ•œ์ •๋˜์–ด์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” ์ž˜ ์ฐพ์ง€๋งŒ ๋ชจ๋ธ์„ ๋ณด๋Š” ๋ฐฉํ–ฅ์— ๋”ฐ๋ผ ์ž˜ ๊ฒ€์ถœํ•˜์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ๋‹ค.

RANSAC

  • ์ฃผ์–ด์ง„ ์˜์ƒ์— ์žก์Œ์ด ์žˆ์„๋•Œ ํšจ์œจ์ ์œผ๋กœ ์ง์„ ์˜ ๋ฐฉ์ •์‹์„ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

  • ์„ ํ˜• ํšŒ๊ธฐ ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ์ฃผ์–ด์ง„ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ง์„ ์˜ ๋ฐฉ์ •์‹์„ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ตœ์†Œ์ œ๊ณฑ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋„ ์ผ๋ฐ˜์ ์ด์ง€๋งŒ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค.
  • ์‹œ๊ฐ„์„ ์ค„์ด๋ฉด์„œ ์ฃผ์–ด์ง„ ๋ฐ์ดํ„ฐ์—์„œ ์ง์„ ์˜ ๋ฐฉ์ •์‹์„ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณผ ๊ฒƒ์ด๋‹ค.

  • ์ง์„ ์„ ๊ฒ€์ถœํ•˜๋Š”๋ฐ ์žก์Œ์„ ์ œ์™ธํ•˜๊ณ  ์ž„์˜์˜ ์„ ํƒ๋œ ์ ๋“ค์ด ๊ฐ€์žฅ ๋งŽ์ด Votingํ•˜๋Š” ์ ๋“ค์„ ํ†ตํ•ด ์ง์„ ์˜ ๋ฐฉ์ •์‹์„ ๊ตฌํ•œ๋‹ค.

  • ์œ„์™€ ๊ฐ™์€ ์˜์ƒ์ด ์ฃผ์–ด์กŒ์„ ๋•Œ ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ํ‘œ์‹œ๋œ ์ง์„  ๋ชจ์–‘์œผ๋กœ ๋ชจ์—ฌ์žˆ๋Š” ์ ์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€๋ฅผ ์žก์Œ์œผ๋กœ ์ƒ๊ฐํ•œ๋‹ค.
  • ๋ชจ์—ฌ์žˆ๋Š” ์ ์„ RANSAC์„ ํ†ตํ•ด ์ง์„ ์˜ ๋ฐฉ์ •์‹์„ ๋„์ถœํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
  • ์ตœ์†Œ์ œ๊ณฑ๋ฒ•์€ ๋ชจ์—ฌ์žˆ๋Š” ์ ์— ๋Œ€ํ•ด ๋ชจ๋‘ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ์ง์„ ์˜ ๋ฐฉ์ •์‹์„ ๊ตฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„์ด ์˜ค๋ž˜๊ฑธ๋ฆฐ๋‹ค.
  • ์žก์Œ๋„ ์ง์„ ์„ ์ฐพ๋Š”๋ฐ ์˜ํ–ฅ์„ ์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์ •ํ™•ํ•œ ์ง์„  ๊ณ„์‚ฐ์ด ์–ด๋ ค์›Œ์งˆ ์ˆ˜ ๋ฐ–์— ์—†๋‹ค.

Step by step

  • ๋žœ๋คํ•˜๊ฒŒ ๋‘์ ์„ ์„ ํƒํ•˜์—ฌ ๋‘ ์ ์˜ ์ง์„ ์˜ ๋ฐฉ์ •์‹์„ ๊ตฌํ•œ๋‹ค.

  • ํŠน์ • ๋ฒ”์œ„ ์•ˆ์— ์ „์ฒด ๋ฐ์ดํ„ฐ๊ฐ€ ๋ช‡๊ฐœ๊ฐ€ ๋“ค์–ด์˜ค๋Š”์ง€ ์„ธ์–ด๋ณธ๋‹ค.

  • ๊ฑฐ๋ฆฌ๋ฅผ ๋ชจ๋‘ ์ธก์ •ํ–ˆ์„ ๋•Œ ํŠน์ • ๋ฒ”์œ„์•ˆ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ „์ฒด์˜ ๋ช‡ํผ์„ผํŠธ์ธ์ง€ ์„ธ์–ด๋ณธ๋‹ค.

  • ์œ„ ๋ฐ์ดํ„ฐ๊ฐ€ ์ „์ฒด์˜ 80%๊ฐ€ ๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ์„ค๋ช…ํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ๊ฐ€์ •ํ•œ ํ›„ ๋ฒ„๋ฆฐ๋‹ค.

  • ๋žœ๋คํ•˜๊ฒŒ ์„ ํƒํ•œ ๋‹ค๋ฅธ ๋‘ ์ ์— ๋Œ€ํ•˜์—ฌ ์œ„์™€ ๊ฐ™์€ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค.

  • 80% ์ด์ƒ์ด ๋œ๋‹ค๋ฉด ๊ทผ์‚ฌ์ ์œผ๋กœ ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ๋Œ€ํ‘œํ•  ์ˆ˜ ์žˆ๋Š” ์ง์„ ์˜ ๋ฐฉ์ •์‹์„ ๋„์ถœํ•œ๋‹ค.
  • ์žก์Œ, outlier๊ฐ€ ์žˆ์–ด๋„ ๋น ๋ฅด๊ฒŒ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ปดํ“จํ„ฐ ๋น„์ ผ์ด๋‚˜ ๋ฐ์ดํ„ฐ ๋งˆ์ด๋‹์—์„œ๋„ ๋žœ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค.

 

์ด๋ฒˆ ์žฅ์—์„œ ๋ฐฐ์šด ๊ฒƒ์€ ์•ž์žฅ์—์„œ ์—ฃ์ง€๋ฅผ ๋ฝ‘์•˜์„ ๋•Œ ์—ฃ์ง€๊ฐ€ ์–ด๋–ค ํŠน์„ฑ์„ ๊ฐ–๊ณ  ์žˆ๋Š”์ง€๋ฅผ ์˜์ƒ์„ ํ†ตํ•ด ๊ฐ–๊ณ  ์žˆ์œผ๋ฉด ๋งค์šฐ ๋น„ํšจ์œจ์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ์—ฃ์ง€ ์„ฑ๋ถ„์„ ๊ทผ์‚ฌ์ ์œผ๋กœ ํšจ์œจ์ ์œผ๋กœ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›Œ๋ณด์•˜๋‹ค. 

๋Œ€ํ‘œ์ ์œผ๋กœ ์—ฃ์ง€ ํ† ๋ง‰, ์ฒด์ธ์ฝ”๋“œ, ๋žœ์ƒ‰์ด ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ทน์ขŒํ‘œ๊ณ„๋กœ ๋ณ€ํ™˜์‹œ์ผœ์„œ ํ‘œํ˜„ํ•ด๋„ ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ์—ฃ์ง€ ์„ฑ๋ถ„์„ ํšจ์œจ์ ์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๊ธฐ์— ํ—ˆํ”„ ๋ณ€ํ™˜์„ ๋ฐฐ์› ๋‹ค.

๋‹ค์–‘ํ•œ ๋ถ„์•ผ์— ์‘์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ž์œจ์ฃผํ–‰์ž๋™์ฐจ ๋ถ„์•ผ์—์„œ๋Š” ์„ ๋ถ„, ์ฐจ์„ ์„ ์ฐพ๋Š”์šฉ๋„, ์ฃผ์–ด์ง„ ์˜์ƒ์—์„œ ํŒจํ„ด๊ณผ ํŠน์ง•์„ ์ฐพ์•„ ๋ฌผ์ฒด๋ฅผ ๊ฒ€์ถœํ•˜๊ณ  ์ธ์‹ํ•˜๋Š” ๋“ฑ์˜ ์šฉ๋„๋กœ ํ™œ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค.

๋ฐ˜์‘ํ˜•

'๐Ÿ–ฅ Computer Science > Computer Vision' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Computer Vision] Edge Detection - Part 2  (0) 2021.09.22
[Computer Vision] Edge Detection - Part 1  (0) 2021.09.21
[Computer Vision] Morphology  (0) 2021.09.17
[Computer Vision] Transform  (0) 2021.09.16
[Computer Vision] Filter - Part 2  (0) 2021.09.15