deep daiv.
โ† ์ œ10ํšŒ ์˜คํ”ˆ ์„ธ๋ฏธ๋‚˜

Session 2 / B๋ฃธ / Computer Vision

๋‚˜๋ž‘ ํ‚ค๋ฐฐ(๐ŸŽน๐ŸฅŠ) ๋œฐ ์‚ฌ๋žŒ?

Hand Pose Estimation์„ ์ด์šฉํ•œ ๊ฐ€์ƒ ํ”ผ์•„๋…ธ ๊ตฌํ˜„

ํŒ€
์ปค๋น„
๋ฐœํ‘œ
B๋ฃธ ยท Oval Hall
ํŒ€์›
๊น€๋‹ค์˜, ์†๋ณด๋ฏผ, ์ด๊ฑด
ํ˜•์‹
Application
๋‚˜๋ž‘ ํ‚ค๋ฐฐ(๐ŸŽน๐ŸฅŠ) ๋œฐ ์‚ฌ๋žŒ? thumbnail

1. Introduction

์ปดํ“จํ„ฐ ๋น„์ „ ๋ถ„์•ผ์—๋Š” ๋ฌผ์ฒด์˜ ์œ„์น˜๋ฅผ ์ฐพ๋Š” Object Detection, ํ”ฝ์…€ ๋‹จ์œ„๋กœ ์ด๋ฏธ์ง€๋ฅผ ๋ฒ”์ฃผํ™”ํ•˜๋Š” Image Segmentation, ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“œ๋Š” Image Generation ๋“ฑ ๋‹ค์–‘ํ•œ Task๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ปค๋น„ํŒ€์€ ์ด ์ค‘์—์„œ ์‚ฌ๋žŒ ์† ์ž์„ธ๋ฅผ ์ถ”์ •ํ•ด ๋™์ž‘์„ ์ธ์‹ํ•˜๋Š” Hand Pose Estimation์— ์ง‘์ค‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

1.1. Hand Pose Estimaton์„ ์„ ํƒํ•œ ์ด์œ 

์šฐ๋ฆฌ๊ฐ€ ์„ธ์ƒ๊ณผ ์ƒํ˜ธ์ž‘์šฉ ํ•˜๋Š” ๋ฐฉ์‹์€ ๋‹ค์–‘ํ•ฉ๋‹ˆ๋‹ค. ์–ธ์–ด์™€ ์ œ์Šค์ฒ˜๋ฅผ ํ†ตํ•ด ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค๊ณผ ์˜์‚ฌ์†Œํ†ตํ•˜๊ฑฐ๋‚˜ ํ‚ค๋ณด๋“œ๋‚˜ ๋งˆ์šฐ์Šค๋ฅผ ์‚ฌ์šฉํ•ด ์ปดํ“จํ„ฐ๋ฅผ ๋‹ค๋ฃจ๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. AI ์‹œ๋Œ€์— ์ ‘์–ด๋“ค๋ฉด์„œ ์„ธ์ƒ๊ณผ ์ƒํ˜ธ์ž‘์šฉ ํ•˜๋Š” ๋ฐฉ์‹์€ ๋” ๋‹ค์–‘ํ•ด์กŒ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ, ์ตœ๊ทผ ๋ช‡ ๋…„ ์‚ฌ์ด ์† ๊ด€์ ˆ์˜ ์œ„์น˜๋ฅผ ์ถ”์ธกํ•˜์—ฌ ์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์†๋™์ž‘์„ ์ธ์‹ํ•˜๋Š” Hand Pose Estimation ๊ธฐ์ˆ ์ด ํฌ๊ฒŒ ๋ฐœ์ „ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์šฐ๋ฆฌ๋Š” ๋‹จ์ˆœํžˆ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ฑฐ๋‚˜ ์Šคํฌ๋ฆฐ์„ ํ„ฐ์น˜ํ•˜๋Š” ๊ฒƒ์„ ๋„˜์–ด์„œ, ์† ๋™์ž‘๋งŒ์œผ๋กœ ๊ธฐ๊ธฐ๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ๋Œ€์— ์‚ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ฐ„๋‹จํ•œ ์† ๋™์ž‘๋งŒ์œผ๋กœ ํ™”๋ฉด์„ ์Šคํฌ๋กค ํ•˜๊ฑฐ๋‚˜ ์ด๋ฏธ์ง€๋ฅผ ํŽธ์ง‘ํ•˜๋Š” ์ž‘์—…์ด ๊ฐ€๋Šฅํ•ด์กŒ๊ณ , ์ด๋Š” ๊ฒŒ์ž„, VR(๊ฐ€์ƒ ํ˜„์‹ค), AR(์ฆ๊ฐ• ํ˜„์‹ค) ๋“ฑ์—์„œ ๋” ํ’๋ถ€ํ•œ ์ƒํ˜ธ์ž‘์šฉ ๋ฐฉ์‹์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด๋Ÿฌํ•œ ๊ธฐ์ˆ ์€ ์žฅ์• ์ธ์„ ์œ„ํ•œ ์ ‘๊ทผ์„ฑ์„ ๊ฐœ์„ ํ•˜๊ณ  ์‚ฌ๋žŒ๊ณผ ๊ธฐ๊ณ„ ์‚ฌ์ด์˜ ์†Œํ†ต์„ ๋” ์œ ๊ธฐ์ ์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. 2024๋…„ 11์›”, ์• ํ”Œ์ด ์ถœ์‹œํ•œ Vision Pro๋Š” Hand Pose Estimation ๊ธฐ์ˆ ์„ ์ž˜ ํ™œ์šฉํ•œ ๋Œ€ํ‘œ์ ์ธ ์‚ฌ๋ก€๋กœ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Meta Quest 3S์™€ ์œ ์‚ฌํ•œ VR ๊ธฐ๊ธฐ์ด์ง€๋งŒ ์ปจํŠธ๋กค๋Ÿฌ ์—†์ด ์‚ฌ์šฉ์ž์˜ ์†์„ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์ฐจ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์†๊ฐ€๋ฝ์˜ ๋ฏธ์„ธํ•œ ์›€์ง์ž„๊ณผ ์ œ์Šค์ฒ˜๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ธ์‹ํ•˜๊ณ  ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ธฐ๊ธฐ๋ฅผ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹์ด๋ฉฐ, ๋•๋ถ„์— ์‚ฌ์šฉ์ž๋Š” ๋‹จ์ˆœํžˆ ํ™”๋ฉด์„ ๋ณด๋Š” ๋ฐ ๊ทธ์น˜์ง€ ์•Š๊ณ  ๋””์ง€ํ„ธ ์„ธ๊ณ„์™€ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค[1]. ์˜ˆ๋ฅผ ๋“ค์–ด, ์œ„ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ์†๊ฐ€๋ฝ์„ ๊ผฌ์ง‘๋Š” ๋™์ž‘ ๋งŒ์œผ๋กœ ๋ฉ”๋‰ด๋ฅผ ์„ ํƒํ•˜๊ฑฐ๋‚˜ ํ‚ค๋ณด๋“œ๋ฅผ ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์ด ๊ธฐ์ˆ ์„ ๋‹ค๋ฅธ ๋ฐ์—๋„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์ง€ ์•Š์„๊นŒ์š”? ์ด๋ฅผ ์กฐ๊ธˆ ๋” ๋„“๊ฒŒ ๋ณด๋ฉด ๋‹จ์ˆœํ•˜๊ฒŒ ๊ธฐ๊ธฐ๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ๊ฒƒ์„ ๋„˜์–ด์„œ ์„ธ๋ฐ€ํ•œ ์ œ์–ด ๋˜๋Š” ๊ฐ€์ƒ ํ™˜๊ฒฝ์ด ํ•„์š”ํ•œ ์ž‘์—…์—์„œ ์ค‘์š”ํ•˜๊ฒŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ํŠนํžˆ, ์˜๋ฃŒ๋‚˜ ๊ต์œก ๊ฐ™์€ ๋ถ„์•ผ์—์„œ ํฐ ์—ญํ• ์„ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜๋ฃŒ ๋ถ„์•ผ์—์„œ๋Š” ์™ธ๊ณผ ์˜์‚ฌ๊ฐ€ ๊ฐ€์ƒ ์ˆ˜์ˆ  ์‹œ๋ฎฌ๋ ˆ์ด์…˜์„ ํ†ตํ•ด ์—ฐ์Šตํ•  ์ˆ˜ ์žˆ๊ณ , ๊ต์œก์—์„œ๋„ ํ•™์ƒ๋“ค์ด ์†๋™์ž‘์œผ๋กœ ๊ณผํ•™ ์‹คํ—˜์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜๊ฑฐ๋‚˜ ๊ฐ€์ƒ ํ˜„์‹ค์—์„œ ๊ธฐ๊ณ„๋ฅผ ์กฐ๋ฆฝํ•ด ๋ณด๋Š” ๋“ฑ ๋‹ค์–‘ํ•œ ๊ฒฝํ—˜์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, Hand Pose Estimation ๊ธฐ์ˆ ์˜ ๋ฐœ์ „์€ ๋กœ๋ด‡ ์›๊ฒฉ ์กฐ์ž‘(Robot Teleoperation) ๋ถ„์•ผ์—์„œ ํ˜์‹ ์ ์ธ ๋ณ€ํ™”๋ฅผ ์ผ์œผํ‚ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Hand Pose Estimation์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž์˜ ์†๋™์ž‘์„ ๋กœ๋ด‡์— ๊ทธ๋Œ€๋กœ ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค[3]. ์ด๋Š” ๋งˆ์น˜ ์ž์‹ ์˜ ์†์ฒ˜๋Ÿผ ๋กœ๋ด‡์„ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋˜๋ฉด ์‚ฌ๋žŒ์ด ์ ‘๊ทผํ•˜๊ธฐ ์–ด๋ ค์šด ์œ„ํ—˜ํ•œ ํ™˜๊ฒฝ์—์„œ๋„ ๋กœ๋ด‡์ด ๋Œ€์‹  ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์žฌ๋‚œ ๊ตฌ์กฐ ํ˜„์žฅ์—์„œ ๊ตฌ์กฐ ๋Œ€์›์ด ์•ˆ์ „ํ•œ ๊ฑฐ๋ฆฌ์—์„œ ๋กœ๋ด‡์„ ์กฐ์ž‘ํ•ด ๋ฌด๋„ˆ์ง„ ๊ฑด๋ฌผ์„ ํƒ์ƒ‰ํ•˜๊ฑฐ๋‚˜ ํ”ผํ•ด์ž๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๊ณ , ์˜๋ฃŒ ํ˜„์žฅ์—์„œ๋Š” ์˜์‚ฌ๊ฐ€ ๋จผ ๊ฑฐ๋ฆฌ์—์„œ ๋กœ๋ด‡ ํŒ”์„ ์ด์šฉํ•ด ์ˆ˜์ˆ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜์•„๊ฐ€ ๋ฏธ๋ž˜์—๋Š” ํ™”์„ฑ ๊ฐ™์€ ์šฐ์ฃผ ํ™˜๊ฒฝ์—์„œ ๋กœ๋ด‡์ด ํƒ์‚ฌ๋ฅผ ์ง„ํ–‰ํ•˜๊ณ , ๊ธฐ์ง€ ๊ฑด์„ค๊ณผ ๊ฐ™์€ ์ค‘์š”ํ•œ ์ž‘์—…์„ ๋Œ€์‹ ํ•˜๊ฒŒ ๋  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

1.2. Virtual Instrument(๊ฐ€์ƒ ์•…๊ธฐ)๋ฅผ ์„ ํƒํ•œ ์ด์œ 

๊ทธ๋ฆผ1. Apple Vision Pro๋ฅผ ์‚ฌ์šฉํ•ด ์ธํ„ฐ๋„ท์— ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ชจ์Šต.
๊ทธ๋ฆผ1. Apple Vision Pro๋ฅผ ์‚ฌ์šฉํ•ด ์ธํ„ฐ๋„ท์— ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ชจ์Šต.

VR ๋‚ด์—์„œ, ๋˜๋Š” AR์„ ํ†ตํ•ด ์•…๊ธฐ๋ฅผ ์—ฐ์ฃผํ•˜๋Š” Virtual Instrument ๊ธฐ์ˆ ์€ ์ด์šฉ์ž๊ฐ€ ๋ฌผ๋ฆฌ์  ์„ธ๊ณ„์˜ ์ œ์•ฝ์—์„œ ๋ฒ—์–ด๋‚˜ ์•…๊ธฐ์™€ ์ƒํ˜ธ์ž‘์šฉ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ํ˜์‹ ์ ์ธ ์ˆ˜๋‹จ์ž…๋‹ˆ๋‹ค. 2023๋…„ Virtual Instrument ์‹œ์žฅ ๊ทœ๋ชจ๋Š” ์•ฝ 5์–ต ๋‹ฌ๋Ÿฌ๋กœ ํ‰๊ฐ€๋˜์—ˆ์œผ๋ฉฐ, 2032๋…„๊นŒ์ง€ 10์–ต ๋‹ฌ๋Ÿฌ์— ์ด๋ฅผ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋˜๋Š” ์œ ๋งํ•œ ๋ถ„์•ผ์ž…๋‹ˆ๋‹ค[4]. Virtual Instrument ๊ธฐ์ˆ ์€ ํ˜„์‹ค๊ณผ ๊ฐ€์ƒ ์„ธ๊ณ„์˜ ๊ฒฝ๊ณ„๋ฅผ ๋ชจํ˜ธํ•˜๊ฒŒ ๋งŒ๋“ค์–ด ๋””์ง€ํ„ธ ์‹œ๋Œ€์— ์Œ์•…์  ํ‘œํ˜„๊ณผ ์—”ํ„ฐํ…Œ์ธ๋จผํŠธ์˜ ๊ฐ€๋Šฅ์„ฑ์„ ํ™•์žฅํ•˜๊ณ , ์Œ์•…์  ๊ธฐ์ˆ ๊ณผ ์‹œ์ฒญ๊ฐ ๊ธฐ์ˆ ์„ ๊ฒฐํ•ฉํ•˜์—ฌ ์ด์šฉ์ž์—๊ฒŒ ๊ฐ๊ฐ์  ์ฐธ์—ฌ๋ฅผ ๊ฐ•ํ™”ํ•œ๋‹ค๋Š” ํŠน์ง•์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ Virtual Instrument ํ”„๋กœ๊ทธ๋žจ์„ ์ œ์ž‘ํ•˜๋Š” ๋ฐ์—๋Š” ๋ช‡ ๊ฐ€์ง€ ํ•œ๊ณ„๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๊ฐ™์€ ์•…๊ธฐ๋ผ๋„ ์—ฐ์ฃผ์ž์— ๋”ฐ๋ผ ์Šคํƒ€์ผ์ด ๋‹ฌ๋ผ์ง€๋ฉฐ, ์•…๊ธฐ ์—ฐ์ฃผ์˜ ์›€์ง์ž„์ด ๋ณต์žกํ•˜๊ณ  ์„ฌ์„ธํ•˜์—ฌ ๋ถ„์„์ด ๋ณธ์งˆ์ ์œผ๋กœ ๊นŒ๋‹ค๋กญ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์•…๊ธฐ๋ฅผ ์—ฐ์ฃผํ•˜๋Š” ๋™์•ˆ ์†์˜ Occlusion(ํ์ƒ‰, ๋ฌผ์ฒด์— ์˜ํ•ด ๊ฐ€๋ ค์ง) ๋ฌธ์ œ๊ฐ€ ์ž์ฃผ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์•…๊ธฐ๋ณ„ ํŠน์ง•์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ๋„ ์ค‘์š”ํ•œ ๊ณผ์ œ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ๋”๋ถˆ์–ด Virtual Instrument ํ”„๋กœ๊ทธ๋žจ์€ ์•…๊ธฐ ์—ฐ์ฃผ ์†Œ๋ฆฌ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ถœ๋ ฅํ•ด์•ผ ํ•˜๋ฉฐ, ๋ณต์žกํ•œ ์•…๊ธฐ ์—ฐ์ฃผ ์†Œ๋ฆฌ๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ์ถœ๋ ฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆผ2. Hand Pose Estimation์œผ๋กœ ์˜์ˆ˜๋ฅ  ์ œ์–ดํ•˜๋Š” MIRRU ํ”„๋กœ์ ํŠธ 2.
๊ทธ๋ฆผ2. Hand Pose Estimation์œผ๋กœ ์˜์ˆ˜๋ฅ  ์ œ์–ดํ•˜๋Š” MIRRU ํ”„๋กœ์ ํŠธ 2.

๊ฒฐ๋ก ์ ์œผ๋กœ, Virtual Instrument ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ตœ์ฒจ๋‹จ ๋™์ž‘ ์ธ์‹ ํ”„๋กœ๊ทธ๋žจ, ์Œํ–ฅ ๋ชจ๋ธ๋ง ๊ธฐ์ˆ , ๊ทธ๋ฆฌ๊ณ  ๊ณ ๊ธ‰ AI ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ด์œ ๋กœ AI ๊ธฐ๋ฐ˜ Virtual Instrument์˜ ๋ถ€์ƒ์ด Virtual Instrument ์‹œ์žฅ ์„ฑ์žฅ์„ ๊ฒฌ์ธํ•  ๊ฒƒ์ด๋ผ ํ‰๊ฐ€๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ €ํฌ๋Š” ๋‹จ์ˆœํ•œ ๊ธฐ์ˆ ์  ์ง„๋ณด๋ฅผ ๋„˜์–ด ์šฐ๋ฆฌ๊ฐ€ ์„ธ์ƒ๊ณผ ์ƒํ˜ธ์ž‘์šฉ์„ ํ•˜๋Š” ๋ฐฉ์‹์„ ํ˜์‹ ์ ์œผ๋กœ ๋ณ€ํ™”์‹œํ‚ค๊ณ  ์žˆ๋Š” Hand Pose Estimation ๊ธฐ์ˆ ๊ณผ ์•…๊ธฐ๋ฅผ ํ†ตํ•ด ๋ฌผ๋ฆฌ์  ์„ธ๊ณ„์™€ ๋””์ง€ํ„ธ ์„ธ๊ณ„๋ฅผ ์—ฐ๊ฒฐํ•˜๋ฉฐ ์ƒˆ๋กœ์šด ๊ฐ€๋Šฅ์„ฑ์„ ์—ด์–ด๊ฐ€๋Š” Virtual Instrument ๊ธฐ์ˆ ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด, Pose Estimation์„ ํ†ตํ•œ Virtual Instrument ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

2. Task

Hand Pose Estimation์ด๋ผ๋Š” Task์— ๊ด€ํ•ด ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด, Pose Estimation์— ๊ด€ํ•ด ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

2.1. Pose Estimation(์ž์„ธ ์ถ”์ •)

Pose Estimation์€ ์ด๋ฏธ์ง€ ๋ฐ ๋น„๋””์˜ค์™€ ๊ฐ™์€ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์—์„œ ์ธ์ฒด ๋ถ€์œ„๋ฅผ ์ฐพ๊ณ  ์‹ ์ฒด ๊ณจ๊ฒฉ๊ณผ ๊ฐ™์€ ์ธ์ฒด ํ‘œํ˜„์„ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ์ค‘ ์ธ๊ฐ„์˜ ํฌ์ฆˆ๋ฅผ ์ถ”์ •ํ•˜๋Š” ๊ฒƒ์„ Human Pose Estimation(HPE)์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. Pose Estimation์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ถ„๋ฅ˜ ๊ธฐ์ค€์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๊ด€์ ˆ, ์ฃผ์š” ์‹ ์ฒด ๋ถ€์œ„ ๋“ฑ์„ ๋‚˜ํƒ€๋‚ด๋Š” Landmark์˜ ์œ„์น˜๋ฅผ ์ถ”์ •ํ•œ ์ขŒํ‘œ์— ๋”ฐ๋ผ 2D, 3D๋กœ ๋‚˜๋ˆ„๊ธฐ๋„ ํ•˜๋ฉฐ, ํ•œ ๋ฒˆ์— ์ถ”์ •ํ•˜๋Š” ์‚ฌ๋žŒ ์ˆ˜์— ๋”ฐ๋ผ Single-Person, Multi-Person์œผ๋กœ ๋ถ„๋ฅ˜๋˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ 3D Pose Estimation์˜ ๊ฒฝ์šฐ์—๋Š” ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์˜ ์œ ํ˜•์— ๋”ฐ๋ผ ๋‹จ์•ˆ RGB(Monocular RGB) ์นด๋ฉ”๋ผ ๋ฐ ๋น„๋””์˜ค ๋˜๋Š” ๊ด€์„ฑ ์„ผ์„œ ๋“ฑ์˜ ์„ผ์„œ ๋ฐ์ดํ„ฐ, ๋‹ค์ค‘ ์นด๋ฉ”๋ผ(Multiple Views)๋กœ ๋‚˜๋ˆ„์–ด์ง€๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆผ4. ํ”ผ์•„๋…ธ ์—ฐ์ฃผ ๋ฐ์ดํ„ฐ ๊ตฌ์ถ•์„ ์œ„ํ•œ ๋ชจ์…˜ ์ธ์‹ ์žฅ๋ฉด 5.
๊ทธ๋ฆผ4. ํ”ผ์•„๋…ธ ์—ฐ์ฃผ ๋ฐ์ดํ„ฐ ๊ตฌ์ถ•์„ ์œ„ํ•œ ๋ชจ์…˜ ์ธ์‹ ์žฅ๋ฉด 5.

Landmark๋ฅผ ํƒ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•์—์„œ๋„ ๊ทธ ๋ฐฉ๋ฒ•์ด ๋‚˜๋ˆ„์–ด์ง‘๋‹ˆ๋‹ค. Heatmap์„ ์ƒ์„ฑํ•˜์—ฌ ์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ Landmark์˜ ์œ„์น˜๋ฅผ ์ฐพ๋Š” Detection-based Methods(ํƒ์ง€ ๊ธฐ๋ฐ˜ ๋ฐฉ๋ฒ•)์™€ Landmark์˜ ์œ„์น˜๋ฅผ ์ง์ ‘์ ์œผ๋กœ ์ถ”์ •ํ•˜๋Š” Regression-based Methods(ํšŒ๊ท€ ๊ธฐ๋ฐ˜ ๋ฐฉ๋ฒ•)๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆผ5. ํ”ผ์•„๋…ธ ์—ฐ์ฃผ๋ฅผ ํ•˜๋Š” ์†๋™์ž‘์„ ๊ฐ€์žฅ ์ž˜ ํฌ์ฐฉํ•˜๊ธฐ ์œ„ํ•ด ์ƒ๋‹จ์—์„œ ์ดฌ์˜๋œ ์‚ฌ์ง„ 6. ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ผ๋ถ€ ๋žœ๋“œ๋งˆํฌ๊ฐ€ ๊ฐ€๋ ค์ง„ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
๊ทธ๋ฆผ5. ํ”ผ์•„๋…ธ ์—ฐ์ฃผ๋ฅผ ํ•˜๋Š” ์†๋™์ž‘์„ ๊ฐ€์žฅ ์ž˜ ํฌ์ฐฉํ•˜๊ธฐ ์œ„ํ•ด ์ƒ๋‹จ์—์„œ ์ดฌ์˜๋œ ์‚ฌ์ง„ 6. ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ผ๋ถ€ ๋žœ๋“œ๋งˆํฌ๊ฐ€ ๊ฐ€๋ ค์ง„ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

Detection-based Methods์—์„œ ๋ชจ๋ธ์€ ๊ฐ ๊ด€์ ˆ์— ๋Œ€ํ•œ Heatmap์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ถ”์ •ํ•˜๋Š” ๊ด€์ ˆ ์ˆ˜๋งŒํผ์˜ Heatmap์„ ํ˜•์„ฑํ•œ ๋’ค, argโ€‰maxโก\argmax ํ•จ์ˆ˜๋ฅผ ์ ์šฉํ•˜์—ฌ ๊ฐ ๊ด€์ ˆ์˜ ์ •ํ™•ํ•œ ์œ„์น˜๋ฅผ ์ถ”์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ ๋Œ€ํ‘œ์ ์ธ ์‚ฌ๋ก€๋กœ Convolutional Pose Machine(CPM)์ด ์žˆ์Šต๋‹ˆ๋‹ค. CPM์€ CNN์„ ์‚ฌ์šฉํ•˜์—ฌ ์ถ”์ •ํ•˜๊ธฐ ์‰ฌ์šด Landmark(์˜ˆ: ๋จธ๋ฆฌ)๋ฅผ ๋จผ์ € ์ถ”์ •ํ•œ ๋’ค, ์˜์—ญ์„ ์ขํ˜€๊ฐ€๋ฉด์„œ ์ถ”์ •ํ•˜๊ธฐ ์–ด๋ ค์šด Landmark๋ฅผ ์ถ”์ •ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆผ6. Pose Estimation์—์„œ์˜ Regression Methods๊ณผ Heatmap-based Methods๋ฐฉ๋ฒ• 7.
๊ทธ๋ฆผ6. Pose Estimation์—์„œ์˜ Regression Methods๊ณผ Heatmap-based Methods๋ฐฉ๋ฒ• 7.

Regression-based Methods๋Š” ๊ฐ ๊ด€์ ˆ ์ขŒํ‘œ๋ฅผ ์ง์ ‘ ์ถ”์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€์—์„œ ๊ด€์ ˆ ์ขŒํ‘œ๋ฅผ ์˜ˆ์ธกํ•˜์—ฌ ์ง„ํ–‰ํ•˜๋Š” ๋ฐฉ์‹์ด๋ฉฐ, ๋” ์ข‹์€ ํŠน์ง• ์ •๋ณด๋ฅผ ํ•™์Šตํ•˜๊ธฐ ์œ„ํ•ด Multi-task Learning์„ ์ ์šฉํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ์ง์ ‘ ์ถ”์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์— 21๊ฐœ Landmark ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์— ๋งˆ์ง€๋ง‰ Layer๊ฐ€ ์˜ˆ์ธก์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด 3(x, y, z)x21(Landmark ๊ฐœ์ˆ˜)์ด ์กด์žฌํ•ด์•ผ ํ•˜๋ฉฐ, ๋Œ€ํ‘œ์ ์ธ ๋ชจ๋ธ๋กœ Deep Pose๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Regression-based Methods๋Š” Non-linear ํ•œ Landmark๋ฅผ ์ถ”์ •ํ•ด์•ผ ํ•˜๋ฏ€๋กœ, ๋” ๋งŽ์€ ๋ฐ์ดํ„ฐ์™€ Epoch(๋ชจ๋ธ ๋ฐ˜๋ณต ํšŸ์ˆ˜)๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— 2D ์ถ”์ •์— ์žˆ์–ด์„œ Detection-based Methods๋ฅผ ์ฃผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ, ๊ฐ Landmark์— ๋Œ€ํ•œ 3D Heatmap์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์€ ๋ฌด๊ฑฐ์šด ์ผ์ด๋ฏ€๋กœ Regression-based Methods๋Š” 3D ์ถ”์ •์— ์ฃผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ €ํฌ๋Š” ํ”„๋กœ์ ํŠธ์—์„œ 2.5D ์ถ”์ •์„ ์ง„ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด์ค‘์—์„œ Regression-based Methods๋ฅผ ์ ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.

2.2. Hand Pose Estimation(์† ์ž์„ธ ์ถ”์ •)

Hand Pose Estimation์€ Pose Estimation์˜ ํ•˜์œ„ ๋ถ„์•ผ๋กœ, ์ธ๊ฐ„์˜ ์†์„ ์–ด๋–ค ๋ถ€๋ถ„(์˜ˆ: ์†๋ฐ”๋‹ฅ๊ณผ ์†๊ฐ€๋ฝ)์˜ ์ง‘ํ•ฉ์œผ๋กœ ๋ชจ๋ธ๋งํ•˜๊ณ  ์† ์ด๋ฏธ์ง€์—์„œ ํ•ด๋‹น ์œ„์น˜(2D)๋ฅผ ์ฐพ๋Š” ํ”„๋กœ์„ธ์Šค, ๋˜๋Š” 3D ๊ณต๊ฐ„์—์„œ ์† ๋ถ€๋ถ„์˜ ์œ„์น˜๋ฅผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์ž…๋‹ˆ๋‹ค[10].

๊ทธ๋ฆผ9. 2D ์ถ”์ • ๊ฒฐ๊ณผ.
๊ทธ๋ฆผ9. 2D ์ถ”์ • ๊ฒฐ๊ณผ.

์˜ˆ: NYU dataset

๊ทธ๋ฆผ10. 3D ์ถ”์ • ๊ฒฐ๊ณผ.
๊ทธ๋ฆผ10. 3D ์ถ”์ • ๊ฒฐ๊ณผ.

์˜ˆ: ICVL dataset

๊ทธ๋ฆผ11. 14๊ฐœ ๊ด€์ ˆ. ์˜ˆ: NYU dataset
๊ทธ๋ฆผ11. 14๊ฐœ ๊ด€์ ˆ. ์˜ˆ: NYU dataset

์˜ˆ: MSRA dataset

๋ฐ์ดํ„ฐ ์„ธํŠธ์—์„œ ์†์„ ๋ชจ๋ธ๋งํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๊ด€์ ˆ ์ˆ˜์™€ ๊ด€๋ จ๋œ ๊ทœ์น™์€ ์—†์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ, ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์€ 21๊ฐœ ๊ด€์ ˆ ๋ชจ๋ธ์ด๋ฉฐ, ๋Œ€๋ถ€๋ถ„์˜ ๋ฐ์ดํ„ฐ ์„ธํŠธ์™€ Pretrained(์‚ฌ์ „ ํ•™์Šต๋œ) ๋ชจ๋ธ์—์„œ ์ด ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Hand Pose Estimation์€ Depth Map์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ RGB ์ด๋ฏธ์ง€๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๋ฐฉ๋ฒ•, ๊ทธ๋ฆฌ๊ณ  ์ด ๋‘ ๊ฐ€์ง€๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. Depth Map์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๊นŠ์ด๋ฅผ ์ถ”์ •ํ•˜๋Š” ๋ฐฉ์‹์„ ๋„์ž…ํ•˜์—ฌ 2.5D Landmark ์ขŒํ‘œ๋ฅผ ์˜ˆ์ธกํ•ฉ๋‹ˆ๋‹ค. RGB ์ด๋ฏธ์ง€๋ฅผ ๊ธฐ๋ฐ˜ํ•˜๋Š” ๊ฒฝ์šฐ๋Š” Depth Map์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๊ฒฝ์šฐ๋ณด๋‹ค ๊ฒฝํ–ฅ์„ฑ์„ ํ•™์Šตํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋” ๋งŽ์Šต๋‹ˆ๋‹ค.

3. Method

๊ทธ๋ฆผ12. 16๊ฐœ ๊ด€์ ˆ. ์˜ˆ: ICVL dataset
๊ทธ๋ฆผ12. 16๊ฐœ ๊ด€์ ˆ. ์˜ˆ: ICVL dataset

Hand Pose Estimation์„ ๋ฐ”ํƒ•์œผ๋กœ Virtual Instrument๋ฅผ AR๋กœ ์—ฐ์ฃผํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๋Œ€๋žต์ ์ธ Pipeline์€ ์œ„์˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Project ์†Œ๊ฐœ ์ˆœ์„œ

  1. Hand Pose Estimation ๐Ÿ–๐Ÿป
  2. ์•…๊ธฐ AR ๐ŸŽน
  3. ์†๊ณผ ์•…๊ธฐ AR ์‚ฌ์ด์˜ Interaction ๐Ÿค๐Ÿป
  4. Play Sound ๐Ÿ”‰

์œ„์— ์†Œ๊ฐœํ•œ ์ˆœ์„œ์— ๋”ฐ๋ผ Project Method๋ฅผ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

3.1. Hand Pipeline: Mediapipe Hands ๐Ÿ–๐Ÿป

๊ทธ๋ฆผ13. 21๊ฐœ ๊ด€์ ˆ. ์˜ˆ: MSRA dataset
๊ทธ๋ฆผ13. 21๊ฐœ ๊ด€์ ˆ. ์˜ˆ: MSRA dataset

(์™ผ์ชฝ): ์ƒ๋Œ€์  ๊นŠ์ด๊ฐ€ ๋‹ค๋ฅธ ์Œ์˜์œผ๋กœ ํ‘œํ˜„๋œ ์† ๋žœ๋“œ๋งˆํฌ. ์›์ด ๋ฐ๊ณ  ํด์ˆ˜๋ก ์นด๋ฉ”๋ผ์™€ ๋žœ๋“œ๋งˆํฌ๊ฐ€ ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. (์˜ค๋ฅธ์ชฝ): Pixel3(Android ๊ธฐ๊ธฐ)์—์„œ ์‹ค์‹œ๊ฐ„ ๋‹ค์ค‘ ์† ์ž์„ธ ์ถ”์ •. ์†์„ ํ†ตํ•ด ์•…๊ธฐ๋ฅผ ์—ฐ์ฃผํ•˜๊ธฐ ์œ„ํ•ด์„œ, Hand Pose Estimation์„ ํ†ตํ•ด ์†์˜ ์ฃผ์š” Landmark๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ๊ฒƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆผ14. ํ”„๋กœ์ ํŠธ์˜ ์ „์ฒด์ ์ธ Pipeline ์†Œ๊ฐœ.
๊ทธ๋ฆผ14. ํ”„๋กœ์ ํŠธ์˜ ์ „์ฒด์ ์ธ Pipeline ์†Œ๊ฐœ.

์–ธ์ œ ์–ด๋””์— ์žˆ๋“  ์•…๊ธฐ๋ฅผ ์—ฐ์ฃผํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด, ์šฐ๋ฆฌ๋Š” 3๊ฐ€์ง€์˜ ์กฐ๊ฑด์„ ๋จผ์ € ์ƒ๊ฐํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ๋ชจ๋ฐ”์ผ ๊ธฐ๊ธฐ์—์„œ ๋™์ž‘์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋™์ž‘ํ•˜๋ฉฐ ๋†’์€ ์ •ํ™•๋„๋ฅผ ๊ฐ€์ง„ ๋ชจ๋ธ์„ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์กฐ๊ฑด์„ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด Mediapipe Hands[11]๋ผ๋Š” Framework๋ฅผ ์„ ํƒํ•˜์˜€์Šต๋‹ˆ๋‹ค.

Mediapipe Hands๋Š” ์›ํ™œํ•œ ์†์˜ Landmark ์ถ”์ •์„ ์œ„ํ•ด ์•„๋ž˜์˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์€ Pipeline์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆผ15. Mediapipe Pipeline์„ ํ™œ์šฉํ•œ Hand Pose Estimation ๊ฒฐ๊ณผ. (์™ผ์ชฝ): ์ƒ๋Œ€์  ๊นŠ์ด๊ฐ€ ๋‹ค๋ฅธ ์Œ์˜์œผ๋กœ ํ‘œํ˜„๋œ ์† ๋žœ๋“œ๋งˆํฌ. ์›์ด ๋ฐ๊ณ  ํด์ˆ˜๋ก ์นด๋ฉ”๋ผ์™€ ๋žœ๋“œ๋งˆํฌ๊ฐ€ ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. (์˜ค๋ฅธ์ชฝ): Pixel3(Android ๊ธฐ๊ธฐ)์—์„œ ์‹ค์‹œ๊ฐ„ ๋‹ค์ค‘ ์† ์ž์„ธ ์ถ”์ •.
๊ทธ๋ฆผ15. Mediapipe Pipeline์„ ํ™œ์šฉํ•œ Hand Pose Estimation ๊ฒฐ๊ณผ. (์™ผ์ชฝ): ์ƒ๋Œ€์  ๊นŠ์ด๊ฐ€ ๋‹ค๋ฅธ ์Œ์˜์œผ๋กœ ํ‘œํ˜„๋œ ์† ๋žœ๋“œ๋งˆํฌ. ์›์ด ๋ฐ๊ณ  ํด์ˆ˜๋ก ์นด๋ฉ”๋ผ์™€ ๋žœ๋“œ๋งˆํฌ๊ฐ€ ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. (์˜ค๋ฅธ์ชฝ): Pixel3(Android ๊ธฐ๊ธฐ)์—์„œ ์‹ค์‹œ๊ฐ„ ๋‹ค์ค‘ ์† ์ž์„ธ ์ถ”์ •.

Mediapipe Hand๋Š” ๋‹จ์ผ RGB ์นด๋ฉ”๋ผ์—์„œ ์‚ฌ๋žŒ์˜ ์† ๊ณจ๊ฒฉ์„ ์˜ˆ์ธกํ•˜๋Š” Real time, On-device Hand Pose Estimation Pipeline์„ ์ œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ œ์•ˆํ•œ Pipeline์€ 1๏ธโƒฃ์†์˜ ์œ„์น˜๋ฅผ ํƒ์ง€ํ•˜๊ณ , 2๏ธโƒฃ์†์˜ ์ฃผ์š” ๊ด€์ ˆ์ธ Landmark ์œ„์น˜๋ฅผ ์ถ”์ •ํ•˜๋Š” ๋ชจ๋ธ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆผ16. Pose Estimation ํ”„๋กœ์ ํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ ์ค‘์š”ํ•œ ์š”์†Œ.
๊ทธ๋ฆผ16. Pose Estimation ํ”„๋กœ์ ํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ ์ค‘์š”ํ•œ ์š”์†Œ.

์ด๋ฏธ์ง€์—์„œ ๋ฐ”๋กœ Landmark๋ฅผ ์ถ”์ •ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ 2 Stage๋กœ ์ง„ํ–‰๋˜๋Š” ์ด์œ ๋กœ๋Š” 2๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋กœ, ์ •ํ™•ํ•˜๊ฒŒ ์ž๋ฅธ ์† ์ด๋ฏธ์ง€๋ฅผ ์›๋ณธ ์ด๋ฏธ์ง€ ๋Œ€์‹  ์‚ฌ์šฉํ•œ๋‹ค๋ฉด, Data Augmentation(๋ฐ์ดํ„ฐ ์ฆ๊ฐ•, ์˜ˆ: ํšŒ์ „, ๋ณ€ํ™˜ ๋ฐ ํฌ๊ธฐ ์กฐ์ •)์˜ ํ•„์š”์„ฑ์ด ํฌ๊ฒŒ ์ค„์–ด๋“ค๊ณ  ๋Œ€์‹ Landmark ์ขŒํ‘œ ์˜ˆ์ธก์— ์ „๋…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆผ17. ์† ๋žœ๋“œ๋งˆํฌ ๋ชจ๋ธ์˜ ์ถœ๋ ฅ์€ ์†๋ฐ”๋‹ฅ ๊ฐ์ง€ ๋ชจ๋ธ์ด ์ž‘๋™ํ•˜๋Š” ์‹œ์ ์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ML ํŒŒ์ดํ”„๋ผ์ธ์˜ ๊ณ ์„ฑ๋Šฅ ๋ฐ ์ตœ์ ํ™”๋ฅผ ๋‹ด๋ณดํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋ฆผ17. ์† ๋žœ๋“œ๋งˆํฌ ๋ชจ๋ธ์˜ ์ถœ๋ ฅ์€ ์†๋ฐ”๋‹ฅ ๊ฐ์ง€ ๋ชจ๋ธ์ด ์ž‘๋™ํ•˜๋Š” ์‹œ์ ์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ML ํŒŒ์ดํ”„๋ผ์ธ์˜ ๊ณ ์„ฑ๋Šฅ ๋ฐ ์ตœ์ ํ™”๋ฅผ ๋‹ด๋ณดํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ, ์† ์˜ˆ์ธก์ด ๋งค Frame ์ง„ํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด์ „ Frame์—์„œ ์‹๋ณ„๋œ ์† Landmark๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์†์„ ์ถ”์ ํ•˜๋ฉฐ, Landmark ๋ชจ๋ธ์ด ๋” ์ด์ƒ ์† ์กด์žฌ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ์—๋งŒ ์†์„ ๊ฐ์ง€ํ•˜์—ฌ ์†์„ ๋‹ค์‹œ ์œ„์น˜ ํ™”ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ, ๋ชจ๋“  Frame์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋” ํšจ์œจ์ ์ด๊ณ  ๋น ๋ฅธ ์„ฑ๋Šฅ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3.1.1. Hand Detector: BlazePalm ๐Ÿ”

์†์„ ํƒ์ง€ํ•˜๋Š” ๋ชจ๋ธ๋กœ, BlazeFace๋ผ๋Š” Face Detection ๋ชจ๋ธ์„ ์†๋ฐ”๋‹ฅ์— ์ ์šฉํ•œ BlazePalm ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆผ21. Blaze Palm ์ ์šฉํ•œ ๊ฒฐ๊ณผ2.
๊ทธ๋ฆผ21. Blaze Palm ์ ์šฉํ•œ ๊ฒฐ๊ณผ2.

BlazeBlock์€ MobileNet์—์„œ ์‚ฌ์šฉ๋œ ๊นŠ์ด๋ณ„ ๋ถ„๋ฆฌํ˜• ํ•ฉ์„ฑ๊ณฑ(Depthwise Separable Convolutional)์˜ ๊ตฌ์กฐ๋ฅผ ์ ์šฉํ•˜์—ฌ ๊ฒฝ๋Ÿ‰ํ™”์™€ ํŠน์ง• ์ถ”์ถœ์ด ๊ฐ€๋Šฅํ•œ Block์ž…๋‹ˆ๋‹ค. ๊ฒฝ๋Ÿ‰ํ™”๋ฅผ ์œ„ํ•ด BlazeBlock์€ ์ž…๋ ฅ์˜ ๊นŠ์ด๊ฐ€ ์œ ์ง€๋˜๋Š” ์ฒซ ๋ฒˆ์งธ ๋ถ€๋ถ„๊ณผ, ๊ณต๊ฐ„ ์ฐจ์›์ด ์œ ์ง€๋˜๋Š” ๋‘ ๋ฒˆ์งธ ๋ถ€๋ถ„์œผ๋กœ ๊ตฌ์„ฑํ•˜์—ฌ ๊นŠ์ด๋ณ„ ๋ถ„๋ฆฌํ˜• ํ•ฉ์„ฑ๊ณฑ์„ ๊ตฌ์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” 3x3 Kernel ๋Œ€์‹  5x5 Kernel์„ ์‚ฌ์šฉํ•˜์—ฌ Bottleneck ์ง€์ ์˜ ์ˆ˜๋ฅผ ์ค„์˜€์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ณ„์‚ฐ ๋ณต์žก๋„๋ฅผ ์ค„์ด๊ณ  ์†๋„ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๊นŠ์ด๋ณ„ ๋ถ„๋ฆฌํ˜• ํ•ฉ์„ฑ๊ณฑ์ด๋ž€ ๊นŠ์ด ๋ฐฉํ–ฅ ํ•ฉ์„ฑ๊ณฑ(Depthwise Convolution) ์ดํ›„์— 1x1 ํ•ฉ์„ฑ๊ณฑ(Pointwise Convolution)์„ ๊ฒฐํ•ฉํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊นŠ์ด ๋ฐฉํ–ฅ ํ•ฉ์„ฑ๊ณฑ์€ ์ฑ„๋„๋งˆ๋‹ค ๋…๋ฆฝ์ ์œผ๋กœ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ๊ณต๊ฐ„์  ์ƒ๊ด€๊ด€๊ณ„๋ฅผ ๊ณ„์‚ฐํ•˜๋ฉฐ, 1x1 ํ•ฉ์„ฑ๊ณฑ์€ ๊นŠ์ด ๋ฐฉํ–ฅ ํ•ฉ์„ฑ๊ณฑ์ด ์ƒ์„ฑํ•œ ํŠน์ง•๋งต๋“ค์˜ ์ฑ„๋„ ์ˆ˜๋ฅผ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊นŠ์ด๋ณ„ ๋ถ„๋ฆฌํ˜• ํ•ฉ์„ฑ๊ณฑ์€ ๊ณต๊ฐ„๊ณผ ์ฑ„๋„์˜ ์ฐจ์›์„ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ์—ˆ์œผ๋ฉฐ, ์ตœ์ข…์ ์œผ๋กœ ๋ชจ๋ธ์˜ ์—ฐ์‚ฐ๋Ÿ‰์„ ์ค„์ผ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆผ25. ๊นŠ์ด ๋ฐฉํ–ฅ Convolutional Filter.
๊ทธ๋ฆผ25. ๊นŠ์ด ๋ฐฉํ–ฅ Convolutional Filter.

(์™ผ์ชฝ) BlazePalm ์ ์šฉ ๊ฒฐ๊ณผ. (์˜ค๋ฅธ์ชฝ) ROI ๊ธฐ๋ฐ˜ ์† ์œ„์น˜ ์ถ”์ถœ ๊ฒฐ๊ณผ. BlazePalm์„ ํ†ตํ•ด ์†๋ฐ”๋‹ฅ์„ ๊ฐ์ง€ํ•œ ๋‹ค์Œ, ์†๋ฐ”๋‹ฅ์„ ๊ธฐ์ค€ ์ค‘์‹ฌ์œผ๋กœ๋ถ€ํ„ฐ 1.4๋ฐฐ ๋„“์€ ์˜์—ญ์„ ์ž˜๋ผ ์†์„ ํฌํ•จํ•œ ์˜์—ญ์„ Landmark ์ถ”์ถœ ๋ชจ๋ธ์— ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. 1.4๋ฐฐ๋ผ๋Š” ๊ฐ’์€ ์†๋ฐ”๋‹ฅ์„ ์ค‘์‹ฌ์œผ๋กœ ์–ด๋А ๋ฐฉํ–ฅ์œผ๋กœ๋“  ์† ์ „์ฒด๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ๋Š” ์˜์—ญ์˜ ๋„“์ด๋ฅผ ๊ฒฝํ—˜์ ์œผ๋กœ ๊ตฌํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ฆผ26. 1x1 Convolutional Filter.
๊ทธ๋ฆผ26. 1x1 Convolutional Filter.

BlazePalm์€ BlazeBlock์„ ์Œ“๋Š” ๋ฐฉ์‹์— ์žˆ์–ด FPN(Feature Pyramid Network)์™€ ์œ ์‚ฌํ•œ ์ธ์ฝ”๋”-๋””์ฝ”๋” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ด ์ž‘์€ ๊ฐ์ฒด๋ฅผ ํƒ์ง€ํ•  ๋•Œ, ๋” ๋„“์€ ์˜์—ญ์„ ๋ฐ”ํƒ•์œผ๋กœ ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํšจ๊ณผ์ ์œผ๋กœ ์†์˜ ์œ„์น˜๋ฅผ ํƒ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3.1.2. Landmark Detector: Regression Method ๐Ÿฆพ

๊ทธ๋ฆผ28. ์†๋ฐ”๋‹ฅ ํƒ์ง€๊ธฐ ๋ชจ๋ธ ์•„ํ‚คํ…์ฒ˜.
๊ทธ๋ฆผ28. ์†๋ฐ”๋‹ฅ ํƒ์ง€๊ธฐ ๋ชจ๋ธ ์•„ํ‚คํ…์ฒ˜.

๋ชจ๋ธ์€ ํŠน์ง• ์ถ”์ถœ๊ธฐ๋ฅผ ๊ณต์œ ํ•˜๋Š” ์„ธ ๊ฐœ์˜ ์ถœ๋ ฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ๊ฐ ํ—ค๋“œ๋Š” ๊ฐ™์€ ์ƒ‰์ƒ์œผ๋กœ ํ‘œ์‹œ๋œ ํ•ด๋‹น ๋ฐ์ดํ„ฐ์…‹์— ์˜ํ•ด ํ›ˆ๋ จ๋ฉ๋‹ˆ๋‹ค.

  1. 21 3D Landmarks: x, y, ์ƒ๋Œ€์  ๊นŠ์ด๋กœ ๊ตฌ์„ฑ๋œ 21๊ฐœ์˜ ์† Landmark.
  2. Hand Presence: ์ž…๋ ฅ ์ด๋ฏธ์ง€์— ์†์ด ์กด์žฌํ•  ํ™•๋ฅ ์„ ๋‚˜ํƒ€๋‚ด๋Š” ํ”Œ๋ž˜๊ทธ.
  3. Handedness: ์†์˜ ์ด์ง„ ๋ถ„๋ฅ˜(์˜ˆ: ์™ผ์†, ์˜ค๋ฅธ์†).

๊ฐ๊ฐ์˜ ๋ฐฉ์‹์€ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ์„ธํŠธ์™€ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ, ๊ณตํ†ต์œผ๋กœ Regression ๋ฐฉ์‹์„ ๋ฐ”ํƒ•์œผ๋กœ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 21๊ฐœ์˜ ์ขŒํ‘œ๋ฅผ ์ถ”์ •ํ•˜๋Š” Hand Pose Estimation๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ Landmark๋ฅผ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค. 2D ์ขŒํ‘œ๋Š” ์‹ค์ œ ์ด๋ฏธ์ง€์™€ ํ•ฉ์„ฑ๋œ ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ ์„ธํŠธ ๋ชจ๋‘์—์„œ ํ•™์Šต๋˜๋ฉฐ, ์†๋ชฉ์˜ ์œ„์น˜์— ๋Œ€ํ•œ ์ƒ๋Œ€์  ๊นŠ์ด๋Š” ํ•ฉ์„ฑ ์ด๋ฏธ์ง€์—์„œ๋งŒ ํ•™์Šต๋ฉ๋‹ˆ๋‹ค. ์†๋ฐ”๋‹ฅ ์ถ”์  ์‹คํŒจ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด, ํ•ด๋‹น ์ด๋ฏธ์ง€์— ์†๋ฐ”๋‹ฅ์ด ์žˆ์„ ๊ฐ€๋Šฅ์„ฑ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋Šฅ์„ฑ์ด ์ž‘์œผ๋ฉด, ๊ฐ์ง€๊ธฐ๊ฐ€ ๋‹ค์‹œ ์†๋ฐ”๋‹ฅ์„ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค. VR/AR์—์„œ ์†์„ ์‚ฌ์šฉํ•œ ํšจ๊ณผ์ ์ธ ์ƒํ˜ธ ์ž‘์šฉ์€ ์ค‘์š”ํ•œ ์š”์†Œ์ธ๋ฐ์š”, ์ด๋ฅผ ์œ„ํ•ด ์† ์ด์ง„ ๋ถ„๋ฅ˜๊ธฐ๋ฅผ ์ด์šฉํ•ด ์˜ค๋ฅธ์†๊ณผ ์™ผ์†์„ ๋ถ„๋ฅ˜ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆผ29. Deep Pose ๋ชจ๋ธ ๊ฒฐ๊ณผ.
๊ทธ๋ฆผ29. Deep Pose ๋ชจ๋ธ ๊ฒฐ๊ณผ.

3.2. AR: Open CV

Virtual Instrument ํ”„๋กœ๊ทธ๋žจ์˜ ํŽธ์˜๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด ์ข…์ด๋ฅผ ์ธ์‹ํ•˜์—ฌ ์•…๊ธฐ AR์„ ๋„์šฐ๋Š” ๋ฐฉ์•ˆ์„ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ, ์ข…์ด๋งŒ ์žˆ๋‹ค๋ฉด ์–ธ์ œ, ์–ด๋””์„œ๋‚˜ ์•…๊ธฐ๋ฅผ ์—ฐ์ฃผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค! ์•…๊ธฐ AR์„ ๋„์šฐ๊ธฐ ์œ„ํ•ด Python์˜ Open CV ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ[17]๋ฅผ ์ด์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. Open CV๋Š” Open Source Computer Vision Library์˜ ์•ฝ์ž๋กœ, ์ˆ˜๋ฐฑ ๊ฐœ์˜ ์ปดํ“จํ„ฐ ๋น„์ „ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํฌํ•จํ•˜๋Š” ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์•…๊ธฐ ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ฝ๊ธฐ ๋ฐ ์ „์ฒ˜๋ฆฌ, ์ข…์ด Edge ๊ฒ€์ถœ ๋ฐ ์ด๋ฏธ์ง€ ๋ณ€ํ™˜์— ๋ชจ๋‘ Open CV๋ฅผ ์ด์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.

AR์„ ๋„์šฐ๋Š” ๊ณผ์ •

  1. ์ข…์ด ์ธ์‹ํ•˜๊ธฐ ๐Ÿ“„
  2. ์•…๊ธฐ ์ด๋ฏธ์ง€๋ฅผ ์ธ์‹ํ•œ ์ข…์ด ๋ชจ์–‘์— ๋งž๊ฒŒ ๋ณ€ํ™˜ํ•˜๊ธฐ ๐Ÿ”
  3. ์ข…์ด์— ์•…๊ธฐ ์ด๋ฏธ์ง€ ์‚ฝ์ž…ํ•˜๊ธฐ ๐ŸŽน

์œ„์— ์ œ์‹œํ•œ ์ˆœ์„œ์— ๋”ฐ๋ผ ์•…๊ธฐ ์ด๋ฏธ์ง€๋ฅผ AR๋กœ ๋„์–ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

3.2.1. ์ข…์ด ์ธ์‹ํ•˜๊ธฐ

์ข…์ด๋ฅผ ์ธ์‹ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Webcam์œผ๋กœ ์ž…๋ ฅ๋ฐ›์€ ์ด๋ฏธ์ง€์—์„œ ์ง์„ ์˜ ํ˜•ํƒœ๋ฅผ ๋ ๊ณ  ์žˆ๋Š” ์ข…์ด ์˜์—ญ์„ ๊ฒ€์ถœํ•˜๋Š” ์ž‘์—…์ด ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด Contour(๊ฒฝ๊ณ„ ๊ฐ’)๋ฅผ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋Š” ์—ฌ๋Ÿฌ ํ•จ์ˆ˜์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜๊ณ , ์ตœ์ข…์ ์œผ๋กœ Canny Edge Detection์„ ์ ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด๋•Œ, ์ž„๊ณ„๊ฐ’์€ min=30, max=150์œผ๋กœ ์„ค์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์ด๋•Œ์˜ Contour ๊ฐ’์„ ์–ป์–ด๋‚ด๋Š” ๋ฐ ์žˆ์–ด, ์‹ค์ œ๋กœ Contour ๊ฐ’์ธ์ง€ ์•„๋‹Œ์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์ตœ๋Œ€ ์ตœ์†Ÿ๊ฐ’์„ ์„ค์ •ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ์ด๊ฒƒ์„ Hysteresis Thresholding(ํžˆ์Šคํ…Œ๋ฆฌ์‹œ์Šค ์ž„๊ณ„ ๊ฐ’)์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. minVal์—์„œ maxVal๊นŒ์ง€์˜ ๊ฐ’์ด ์•„๋‹Œ ๊ฒƒ์€ Edge ๊ฐ’์ด ์•„๋‹ˆ๋ผ๊ณ  ์ธ์‹ํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ, ์•„๋ž˜์˜ ๊ทธ๋ฆผ์—์„œ A ์ง€์ ์˜ ๊ฐ’์€ Edge๊ฐ€ ์•„๋‹ˆ๊ณ , B์™€ C๋Š” Edge๋กœ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆผ32. ์›๋ณธ ์ด๋ฏธ์ง€.
๊ทธ๋ฆผ32. ์›๋ณธ ์ด๋ฏธ์ง€.

Canny Edge Detection์€ ์•„๋ž˜์˜ ๋‹จ๊ณ„๋กœ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.

  1. Noise Reduction

Edge Detection์€ Noise์— ์ทจ์•ฝํ•จ์œผ๋กœ 5x5 Gaussian Kernel์„ ์ด๋ฏธ์ง€ ์ „์ฒด์— ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด Noise๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

  1. Finding Intensity Gradient of the Image
๊ทธ๋ฆผ33. Canny Edge Detection ๊ฒฐ๊ณผ.
๊ทธ๋ฆผ33. Canny Edge Detection ๊ฒฐ๊ณผ.

์ด๋ฏธ์ง€๋ฅผ ์ˆ˜ํ‰ ๋ฐ ์ˆ˜์ง ๋ฐฉํ–ฅ ๋ชจ๋‘์—์„œ Sobel Kernel๋กœ ํ•„ํ„ฐ๋งํ•˜์—ฌ ์ˆ˜ํ‰ ๋ฐฉํ–ฅ์˜ 1์ฐจ ๋„ํ•จ์ˆ˜ GxG_x, GyG_y๋ฅผ ๊ตฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐ ํ”ฝ์…€์˜ Edge Gradient์™€ ๋ฐฉํ–ฅ์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

G=Gx2+Gy2,ฮธ=tanโกโˆ’1(GyGx)G = \sqrt{G_x^2 + G_y^2}, \quad \theta = \tan^{-1}\left(\frac{G_y}{G_x}\right)

Gradient ๋ฐฉํ–ฅ์€ ํ•ญ์ƒ Contour์— ์ˆ˜์ง ๋ฐฉํ–ฅ์ด๊ธฐ ๋•Œ๋ฌธ์—, ์ด๋ฅผ ํ†ตํ•ด Contour ๋ฐฉํ–ฅ์„ ๊ฐ ํ”ฝ์…€ ๋‹น ๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆผ34. Hysteresis Threshold์˜ ์˜์—ญ์„ ๋‚˜ํƒ€๋‚ธ ๊ทธ๋ฆผ.
๊ทธ๋ฆผ34. Hysteresis Threshold์˜ ์˜์—ญ์„ ๋‚˜ํƒ€๋‚ธ ๊ทธ๋ฆผ.
  1. Non-maximum Suppression(NMS, ๋น„์ตœ๋Œ€ ์–ต์ œ)

Gradient ํฌ๊ธฐ์™€ ๋ฐฉํ–ฅ์„ ๊ฐ ํ”ฝ์…€ ๋‹น ์–ป์€ ๋‹ค์Œ์—, ์ด๋ฏธ์ง€์˜ ์ „์ฒด๋ฅผ ํ™•์ธํ•˜์—ฌ Gradient ๋ฐฉํ–ฅ์ด ๊ฐ™์€ ํ”ฝ์…€๋ผ๋ฆฌ Local Maximum ๊ฐ’์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด Contour์˜ ๋‘๊ป˜๋ฅผ ๊ฒฐ์ •ํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค[20].

Canny Edge Detection์„ ํ†ตํ•ด Contour๋ฅผ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ, Contour์˜ ์„ ์ด ์–‡์•„ ๋Š๊ธฐ๋Š” ์ง€์ ์ด ์ƒ๊ธฐ๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ, Morphological Transformation์—์„œ Dilation(ํŒฝ์ฐฝ)์„ ์ ์šฉํ•˜์—ฌ Contour๋ฅผ ๋” ๋„“๊ฒŒ ์—ฐ๊ฒฐํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋‹จ, ํƒ์ง€ํ•ด์•ผ ํ•˜๋Š” ์˜์—ญ์ด ์ข…์ด์˜ ๊ฐ€์žฅ์ž๋ฆฌ๋ผ๋Š” ์ง์„  ์˜์—ญ์ด์—ˆ๊ธฐ ๋•Œ๋ฌธ์— cv2.MORPH_RECT๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ๊ฐํ˜•์˜ ํ˜•ํƒœ๋กœ ๋” ๋„“ํžˆ๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆผ36. ํ”ฝ์…€์˜ ๋ณ€ํ™”์™€ Gradient ๋ฐฉํ–ฅ๊ณผ์˜ ์ƒ๊ด€๊ด€๊ณ„.
๊ทธ๋ฆผ36. ํ”ฝ์…€์˜ ๋ณ€ํ™”์™€ Gradient ๋ฐฉํ–ฅ๊ณผ์˜ ์ƒ๊ด€๊ด€๊ณ„.

Contour ์ค‘์—์„œ, ์ข…์ด๋กœ ์ธ์‹ํ•˜๋Š” ๊ณต๊ฐ„์„ ์ดˆ๋ก์ƒ‰ Box์˜ ํ˜•ํƒœ๋กœ ์ธ์‹ํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” Contour๋กœ ์ธก์ •ํ•œ ๊ณต๊ฐ„์—์„œ ๋‹ซํžŒ ๊ณต๊ฐ„์„ ๋ฉด์ ์ด ํฐ ์ˆœ์„œ๋Œ€๋กœ ์ƒ์œ„ 5๊ฐœ๋ฅผ ๋ชฉ๋กํ™”ํ•œ ๋‹ค์Œ, ์ˆœ์„œ๋Œ€๋กœ ์‚ฌ๊ฐํ˜•์˜ ์ตœ์†Œ ๊ฐ๋„๊ฐ€ 30ยฐ๋ณด๋‹ค ํฐ ์‚ฌ๊ฐํ˜•์„ ์ข…์ด๋กœ ์ธ์‹ํ•˜๋Š” ๊ณต๊ฐ„์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ, 30ยฐ๋Š” Virtual Instrument๋ฅผ ์—ฐ์ฃผํ•˜๊ธฐ์— ์ ์ ˆํ•œ ์ข…์ด์˜ ๊ฐ๋„๋กœ ์ง€์ •ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ๋„๋Š” ๋‚ด์ ์˜ ์‚ฌ์ž‡๊ฐ’ ๊ณต์‹ cosโก(ฮธ)=aโ‹…bโˆฅaโˆฅโˆฅbโˆฅ\cos(\theta)=\frac{a \cdot b}{\lVert a\rVert \lVert b\rVert}์„ ํ†ตํ•ด ๊ตฌํ–ˆ์Šต๋‹ˆ๋‹ค.

3.2.2. ์•…๊ธฐ ์ด๋ฏธ์ง€๋ฅผ ์ธ์‹ํ•œ ์ข…์ด ๋ชจ์–‘์— ๋งž๊ฒŒ ๋ณ€ํ™˜ํ•˜๊ธฐ

AR Virtual Instrument๋ฅผ ํ™”๋ฉด์— ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ง์‚ฌ๊ฐํ˜• ํ˜•ํƒœ์ธ ์•…๊ธฐ ์ด๋ฏธ์ง€๋ฅผ ๊ฒ€์ถœํ•œ ์ข…์ด ์˜์—ญ์— ๋งž๊ฒŒ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด Perspective Transformation์„ ์ ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆผ40. ํ•€ํ™€ ์นด๋ฉ”๋ผ ์›๋ฆฌ
๊ทธ๋ฆผ40. ํ•€ํ™€ ์นด๋ฉ”๋ผ ์›๋ฆฌ

๊ฒ€์ถœํ•œ ์ข…์ด ์˜์—ญ์ด ์ง์‚ฌ๊ฐํ˜•์˜ ํ˜•ํƒœ๋ฅผ ๋ ์ง€ ์•Š์€, ์‚ฌ๋‹ค๋ฆฌ๊ผด ๋˜๋Š” ํ‰ํ–‰์‚ฌ๋ณ€ํ˜• ํ˜•ํƒœ๋ฅผ ๋ ๊ธฐ ๋•Œ๋ฌธ์— ์•…๊ธฐ ์ด๋ฏธ์ง€์˜ 4๊ฐœ์˜ ๊ผญ์ง“์ ๊ณผ ๊ฒ€์ถœ๋œ ์ข…์ด ์˜์—ญ์˜ 4๊ฐœ์˜ ๊ผญ์ง“์ ์— ๋Œ€์‘ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

3.2.3. ๋ณ€ํ™˜๋œ ๊ฑด๋ฐ˜ ์ด๋ฏธ์ง€๋ฅผ AR

๊ทธ๋ฆผ41. ๊ฐ€๊นŒ์šด ๋ฌผ์ฒด๋Š” ๋จผ ๋ฌผ์ฒด ๋ณด๋‹ค ํฌ๊ฒŒ ๋ณด์ธ๋‹ค.
๊ทธ๋ฆผ41. ๊ฐ€๊นŒ์šด ๋ฌผ์ฒด๋Š” ๋จผ ๋ฌผ์ฒด ๋ณด๋‹ค ํฌ๊ฒŒ ๋ณด์ธ๋‹ค.

๋™์ผํ•œ ์•…๊ธฐ ์ด๋ฏธ์ง€๋ฅผ ์‚ฝ์ž…ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ์ข…์ด๋ฅผ ๊ฐ์ง€ํ•˜์—ฌ ์–ป์€ ๋ชจ์„œ๋ฆฌ๋ฅผ ์ผ๊ด€๋œ ์ˆœ์„œ์— ๋งž๊ฒŒ ์ •๋ ฌํ•œ ๋’ค, ๋ชจ์„œ๋ฆฌ์˜ ์ˆœ์„œ์— ๋งž๊ฒŒ ์•…๊ธฐ ์ด๋ฏธ์ง€์˜ ํˆฌ๋ช…๋„๋ฅผ ์กฐ์ •ํ•˜์—ฌ ์‚ฝ์ž…ํ•˜๋ฉด ์•…๊ธฐ ์ด๋ฏธ์ง€ ์‚ฝ์ž…์ด ์™„์„ฑ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆผ42. ์•…๊ธฐ ์ด๋ฏธ์ง€์— Perspective Transformation์„ ์ ์šฉ.
๊ทธ๋ฆผ42. ์•…๊ธฐ ์ด๋ฏธ์ง€์— Perspective Transformation์„ ์ ์šฉ.

(์™ผ์ชฝ) ์ด๋ฏธ์ง€์˜ Contour ์ถ”์ถœ (๊ฐ€์šด๋ฐ) Corner์˜ ์œ„์น˜ ํŠน์ • (์˜ค๋ฅธ์ชฝ) AR ๊ตฌํ˜„

3.3. Interaction

๊ทธ๋ฆผ43. AR๋กœ Virtual Instrument๋ฅผ ๊ตฌํ˜„.
๊ทธ๋ฆผ43. AR๋กœ Virtual Instrument๋ฅผ ๊ตฌํ˜„.

Hand Pose Estimation์„ ์‚ฌ์šฉํ•ด ์†์„ ๊ฐ์ง€ํ•˜๊ณ , ๊ฐ€์ƒ์˜ ๊ฑด๋ฐ˜์„ Open CV๋ฅผ ํ†ตํ•ด ๋„์šฐ๋Š” ๊ฒƒ์€ ๊ฐ€๋Šฅํ–ˆ์ง€๋งŒ, Virtual Instrument๋ฅผ ์—ฐ์ฃผํ•˜๋Š” ๋ฐ ์žˆ์–ด ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์†๊ณผ Virtual Instrument ์‚ฌ์ด์˜ ์ƒํ˜ธ์ž‘์šฉ์€ ์—ฌ๋Ÿฌ ์‹œ๋„๋ฅผ ๊ฑฐ์ณค์Šต๋‹ˆ๋‹ค. ์ด ์ค‘์—์„œ โ€˜์ด์ „ ํ”„๋ ˆ์ž„๊ณผ y๊ฐ’ ๋ณ€ํ™”๋Ÿ‰ ๋น„๊ตโ€™ ๋ฐฉ์‹๊ณผ โ€˜์ดˆ๊ธฐ y๊ฐ’์„ ์„ค์ •ํ•˜์—ฌ ๋ณ€ํ™”๋Ÿ‰ ๋น„๊ตโ€™ ๋ฐฉ์‹์„ ์กฐํ•ฉํ•˜์—ฌ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๐Ÿ’ก ์‹œ๋„ํ•œ ๋ชจ๋“  ๋ฐฉ์‹์„ ๊ฒ€์ง€์™€ ์ค‘์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋น„๋””์˜ค๋ฅผ ์‚ฌ์šฉํ•ด ๋น„๊ตํ•ด ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

3.3.1. ์ด์ „ ํ”„๋ ˆ์ž„๊ณผ y๊ฐ’ ๋ณ€ํ™”๋Ÿ‰ ๋น„๊ต

๊ทธ๋ฆผ44. ์ข…์ด๋ฅผ ์ธ์‹ํ•˜๊ณ  AR์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ณผ์ •์„ ๋‚˜ํƒ€๋‚ธ ๊ทธ๋ฆผ. (์™ผ์ชฝ) ์ด๋ฏธ์ง€์˜ Contour ์ถ”์ถœ (๊ฐ€์šด๋ฐ) Corner์˜ ์œ„์น˜ ํŠน์ • (์˜ค๋ฅธ์ชฝ) AR ๊ตฌํ˜„
๊ทธ๋ฆผ44. ์ข…์ด๋ฅผ ์ธ์‹ํ•˜๊ณ  AR์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ณผ์ •์„ ๋‚˜ํƒ€๋‚ธ ๊ทธ๋ฆผ. (์™ผ์ชฝ) ์ด๋ฏธ์ง€์˜ Contour ์ถ”์ถœ (๊ฐ€์šด๋ฐ) Corner์˜ ์œ„์น˜ ํŠน์ • (์˜ค๋ฅธ์ชฝ) AR ๊ตฌํ˜„

์ด์ „ ํ”„๋ ˆ์ž„๊ณผ ๋น„๊ตํ•˜์—ฌ, ์†๋ Landmark์˜ ์ˆ˜์ง ์ขŒํ‘ฏ๊ฐ’์ด ํ•˜๋ฝํ•œ ๊ฒฝ์šฐ์„ ๋ˆ„๋ฅธ๋‹ค๊ณ  ์ธ์‹ํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๊ฐ Landmark์˜ ๊ตฌ๋ถ„์ด ์ค‘์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์˜ค๋ฅธ์†๊ณผ ์™ผ์†์„ ๊ตฌ๋ถ„ํ•˜์—ฌ Landmark ์ขŒํ‘œ๋ฅผ ๊ธฐ๋กํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด์ „ ํ”„๋ ˆ์ž„๊ณผ ๋น„๊ตํ•œ๋‹ค๋Š” ๊ฒƒ์—์„œ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด, ์†๋„์„ ์‚ฌ์šฉํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

Landmark_velocity=frame1โˆ’frame21/fpsLandmark\_velocity = \frac{frame_1 - frame_2}{1 / fps}

ํ•˜์ง€๋งŒ ์œ„์˜ ๋น„๋””์˜ค์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋“ฏ์ด, ์†์„ ๊ฐ€๋งŒํžˆ ํ•˜์—ฌ๋„ ์ถ”์ •ํ•œ Landmark๊ฐ€ ํ”๋“ค๋ฆฌ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‹จ์ˆœํžˆ ํ”๋“ค๋ฆฌ๋Š” ๊ฒƒ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ์ธก์ •ํ•œ LandmarkvelocityLandmark_velocity๊ฐ€ 10์„ ๋„˜์–ด์•ผ ๋ˆŒ๋ €๋‹ค๊ณ  ์ธ์‹ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

Threshold=10์„ ์„ค์ •ํ•˜์—ฌ๋„ ์œ ์‚ฌํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ, ์•ž์„œ ์–ธ๊ธ‰ํ•œ Landmark์˜ ์œ„์น˜ ์ฐจ์ด๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์—์„œ ๋…ธ์ด์ฆˆ๋ฅผ ๋ณด์ •ํ•˜๋Š” ๋ถ€๋ถ„์„ ์ถ”๊ฐ€ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์‹ค์‹œ๊ฐ„ ์›น์บ ์œผ๋กœ ์†๊ฐ€๋ฝ์˜ Landmark ๊ฐ’์„ ๊ณ„์‚ฐํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์†์ด ๊ฐ€๋งŒํžˆ ์žˆ๋”๋ผ๋„ ์•ฝ๊ฐ„์˜ ๋–จ๋ฆผ์ด ๋ฐœ์ƒํ•˜๋Š” ๋“ฑ์˜ ๋…ธ์ด์ฆˆ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€๋Š”๋ฐ์š”, ์ด๋Ÿฌํ•œ ๋…ธ์ด์ฆˆ๋กœ ์ธํ•œ Landmark์˜ ์œ„์น˜ ๋ณ€ํ™”๊ฐ€ ๋ˆŒ๋ฆผ ๊ฐ์ง€์— ์˜ํ–ฅ์„ ์ฃผ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋…ธ์ด์ฆˆ๋ฅผ ๋ณด์ •ํ•˜๋Š” ๋ถ€๋ถ„์„ ์ถ”๊ฐ€ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ํ•œ ์†๊ฐ€๋ฝ์ด ์›€์ง์ผ ๋•Œ ์˜†์— ์žˆ๋Š” ์†๊ฐ€๋ฝ์ด ํ•จ๊ป˜ ์›€์ง์—ฌ ๋™์‹œ์— ๋ˆŒ๋ฆฐ ๊ฒƒ์œผ๋กœ ํŒ๋‹จํ•˜๊ฑฐ๋‚˜, ์›€์ง์ž„์ด ์ž‘์€ ์†๊ฐ€๋ฝ์€ ์ œ๋Œ€๋กœ ๋ˆŒ๋ฆผ์„ ํƒ์ง€ํ•˜์ง€ ๋ชปํ•˜๋Š” ๋“ฑ์˜ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€์Šต๋‹ˆ๋‹ค.

3.3.2. ์„ ์„ ๊ทธ๋ ค ์„ ์ด ๊ฐ€๋ ค์ง€๋Š”์ง€ ํ™•์ธ

๊ทธ๋ ‡๋‹ค๋ฉด, ๋‹จ์ˆœํžˆ ๋ˆ„๋ฅด๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ โ€˜์ข…์ด์— ๊ทธ๋ ค์ง„ ์„ ์„ ๊ฐ€๋ฆฌ๋Š” ๊ฒƒ์€ ์–ด๋–  ํ• ๊นŒโ€™๋ผ๋Š” ์ƒ๊ฐํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ปค๋น„ํŒ€์ด Virtual Instrument๋ฅผ ์—ฐ์ฃผํ•˜๊ธฐ ์œ„ํ•ด ์ œ์•ˆํ•œ Webcam ๊ฐ๋„์—์„œ๋Š” ์†์ด ์ข…์ด ์œ„์— ๊ทธ๋ ค์ง„ ์„ ๋ณด๋‹ค ์•ž์œผ๋กœ ๋‚˜๊ฐ€์ง€ ์•Š์œผ๋ฉฐ, ์„ ์„ ๋ˆ„๋ฅด๋Š” ๊ฒƒ์ด ๊ณง ์•…๊ธฐ๋ฅผ ๋ˆ„๋ฅด๋Š” ๊ฒƒ์ž„์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค.

์„ ์ด ๋Š๊ธฐ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•œ๋‹ค๋ฉด, ์†๋ Landmark์˜ ์ขŒํ‘œ๊ฐ€ ์„  ์œ„์— ์žˆ๋Š”์ง€๋งŒ ํ™•์ธํ•˜๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋” ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ์•ž์œผ๋กœ ๋” ๋งŽ์€ ์•…๊ธฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์€ ์ž…์žฅ์—์„œ, ๊ธฐํƒ€์™€ ๊ฐ™์€ ํ˜„์•…๊ธฐ ๊ตฌํ˜„์— ์žˆ์–ด ๋” ์•ž์„œ๊ฐˆ ๋ฐฉ๋ฒ•์ด๋ผ ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ, ์ด ๊ฒฝ์šฐ์—๋Š” ์ข…์ด ์œ„์˜ ์„ ์„ ์ผ์ •ํ•˜๊ฒŒ ์ธ์‹ํ•˜๋Š” ๊ฒƒ์ด ์–ด๋ ค์› ์Šต๋‹ˆ๋‹ค. ์ธ์‹ํ•œ ์„ ์ด ๊ณ„์† ๋ฐ”๋€Œ๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

3.3.3. ๊ฐ€์ƒ์˜ ๊ธฐ์ค€์„ ์„ ํ†ต๊ณผํ•˜๋Š”์ง€ ํ™•์ธ

๊ทธ๋ฆผ49. ์„ ์„ ๋ˆ„๋ฅด๋Š” ์žฅ๋ฉด์„ ์˜†์—์„œ ๋ณธ ๋ชจ์Šต
๊ทธ๋ฆผ49. ์„ ์„ ๋ˆ„๋ฅด๋Š” ์žฅ๋ฉด์„ ์˜†์—์„œ ๋ณธ ๋ชจ์Šต

๊ทธ๋ž˜์„œ ์ด๋ฒˆ์—๋Š” ๊ฐ€์ƒ์˜ ์„ ์„ ๊ทธ๋ฆฌ๊ณ , ์ด๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ๋ˆŒ๋ฆผ ๊ฐ์ง€๋ฅผ ์ง„ํ–‰ํ•˜๊ณ ์ž ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ, ์ข…์ด ์œ„์— ๊ทธ๋ ค์ง„ ์„ ๊ณผ ๋‹ค๋ฅด๊ฒŒ ๊ฐ€์ƒ์˜ ์„ ์€ ์„ ๋ณด๋‹ค Landmark๊ฐ€ ์•„๋ž˜๋กœ ๋‚ด๋ ค์˜ค๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์–ด, ์˜คํƒ์ง€ ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ์†์˜ ์›€์ง์ž„์„ ์ œ๋Œ€๋กœ ๋ฐ˜์˜ํ•˜์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ˆŒ๋ฆผ ํƒ์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ ์ ˆํ•˜์ง€ ์•Š๋‹ค๊ณ  ํŒ๋‹จํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

3.3.4. ์ดˆ๊ธฐ y๊ฐ’์„ ์„ค์ •ํ•˜์—ฌ ๋ณ€ํ™” ๋น„๊ต

๊ทธ๋ฆผ50. ์„ ์„ ๋ˆ„๋ฅด๋Š” ์žฅ๋ฉด์„ ์œ„์—์„œ ๋ณธ ๋ชจ์Šต
๊ทธ๋ฆผ50. ์„ ์„ ๋ˆ„๋ฅด๋Š” ์žฅ๋ฉด์„ ์œ„์—์„œ ๋ณธ ๋ชจ์Šต

ํ”ผ์•„๋…ธ ๊ฑด๋ฐ˜์ด ๋ˆŒ๋ฆฌ๋Š” ๋ฐฉ์‹์—์„œ ๊ณ ์•ˆํ•œ ์•„์ด๋””์–ด์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ์†๋ Landmark์˜ ์ˆ˜์ง ์ขŒํ‘ฏ๊ฐ’์ธ y์ขŒํ‘œ๋ฅผ ํŠน์ • ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  y์ขŒํ‘œ์˜ ๋ณ€ํ™”๋Ÿ‰dydy์„ ์‚ฌ์šฉํ•ด ๊ฑด๋ฐ˜์˜ ๋ˆŒ๋ฆผ์„ ๋ชจ๋ฐฉํ•˜๋Š” ์›๋ฆฌ์ž…๋‹ˆ๋‹ค. ์‹ค์ œ ๊ฑด๋ฐ˜์€ ์ผ์ • ํž˜์ด ๊ฐ€ํ•ด์ ธ์•ผ ๋ˆ„๋ฅผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด์™€ ๋น„์Šทํ•˜๊ฒŒ ๋ณ€ํ™”๋Ÿ‰์ด ์ผ์ •๊ฐ’ k๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ์—๋งŒ ๋ณ€ํ™”๋Ÿ‰์ด ๋ฐ˜์˜๋˜์–ด ๋ˆŒ๋ฆผ์„ ํƒ์ง€ํ•˜๋„๋ก ํ•˜์˜€์œผ๋ฉฐ, ๋ณ€ํ™”๋Ÿ‰์ด ์Œ์ˆ˜์ด๊ฑฐ๋‚˜ k๋ณด๋‹ค ์ž‘๋‹ค๋ฉด 0์œผ๋กœ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ถ”๊ฐ€๋กœ, ํ™”์Œ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์†๊ฐ€๋ฝ์˜ y์ขŒํ‘œ๊ฐ€ ์ดˆ๊ธฐ ์ƒํƒœ๋กœ ๋Œ์•„์™€์•ผ๋งŒ ๋ˆŒ๋ ธ๋‹ค๊ณ  ์ •์˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋„-๋ฏธ-์†” ํ™”์Œ์„ ์น  ๋•Œ ๊ฒ€์ง€์™€ ์•ฝ์ง€๋Š” ๊ฑด๋ฐ˜์„ ๋ˆ„๋ฅด์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ดˆ๊ธฐ ์ขŒํ‘œ๋กœ ๋Œ์•„์˜ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๊ณ  3์ดˆ ์ดํ›„ ์†๊ฐ€๋ฝ์˜ ์ดˆ๊ธฐ ์ƒํƒœ๋ฅผ ์ €์žฅํ•œ ํ›„, ์ด์™€ ๋น„๊ตํ•ด ์†๊ฐ€๋ฝ์ด ์›๋ž˜ ์œ„์น˜๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด dy>kdy > k์—ฌ๋„ ์ฆ‰, ์†๊ฐ€๋ฝ์ด ์›€์ง์˜€๋‹ค ํ•˜๋”๋ผ๋„ ๋ˆŒ๋ฆฌ์ง€ ์•Š๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆผ51. ๊ฒ€์ง€์™€ ์ค‘์ง€๋ฅผ ๋ˆ„๋ฅด๋Š” ์˜์ƒ์„ ๊ฐ€์ƒ์˜ ๊ธฐ์ค€์„ ์„ ํ†ต๊ณผํ•˜๋Š”์ง€ ํ™•์ธํ•œ ๊ฒƒ.
๊ทธ๋ฆผ51. ๊ฒ€์ง€์™€ ์ค‘์ง€๋ฅผ ๋ˆ„๋ฅด๋Š” ์˜์ƒ์„ ๊ฐ€์ƒ์˜ ๊ธฐ์ค€์„ ์„ ํ†ต๊ณผํ•˜๋Š”์ง€ ํ™•์ธํ•œ ๊ฒƒ.

๊ฒฐ๋ก ์ ์œผ๋กœ ์ด์ „ ํ”„๋ ˆ์ž„๊ณผ y๊ฐ’ ๋ณ€ํ™”๋Ÿ‰์„ ๋น„๊ตํ•˜๋Š” ์ฒซ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•๊ณผ ์ดˆ๊ธฐ y๊ฐ’์„ ์„ค์ •ํ•˜์—ฌ ๋ณ€ํ™”๋Ÿ‰์„ ๋น„๊ตํ•˜๋Š” ๋งˆ์ง€๋ง‰ ๋ฐฉ๋ฒ•์„ ํ•ฉํ•˜์—ฌ ๋ˆ„๋ฅด๋Š” ๋™์ž‘์„ ์ •์˜ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์‹ค์ œ ํ”ผ์•„๋…ธ์™€ ๊ฐ™์ด ์†์„ ์ˆ˜์ง ๋ฐฉํ–ฅ ์•„๋ž˜๋กœ ์›€์ง์˜€์„ ๋•Œ๋งŒ ํ”ผ์•„๋…ธ๊ฐ€ ๋™์ž‘ํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ , ๊ฐ™์€ ์Œ์„ ์—ฐ์†ํ•˜์—ฌ ์น˜๋Š” ์—ฐ์† ์—ฐ์ฃผ๊ฐ€ ๊ฐ€๋Šฅํ•ด์กŒ์œผ๋ฉฐ, ๋ˆ„๋ฅด๋ ค๊ณ  ์˜๋„ํ•˜์ง€ ์•Š์€ ์†๊ฐ€๋ฝ์„ ๋ˆŒ๋ €๋‹ค๊ณ  ํŒ๋‹จํ•˜๋Š” ์˜คํƒ์ง€๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

3.4. Play Sound : Pygame

๊ทธ๋ฆผ52. ๊ฒ€์ง€์™€ ์ค‘์ง€๋ฅผ ๋ˆ„๋ฅด๋Š” ์˜์ƒ์„ ์ดˆ๊ธฐ y๊ฐ’ ์„ ์„ค์ •ํ•œ ๋ฐฉ๋ฒ•์„ ์ ์šฉํ•œ ๊ฒƒ.
๊ทธ๋ฆผ52. ๊ฒ€์ง€์™€ ์ค‘์ง€๋ฅผ ๋ˆ„๋ฅด๋Š” ์˜์ƒ์„ ์ดˆ๊ธฐ y๊ฐ’ ์„ ์„ค์ •ํ•œ ๋ฐฉ๋ฒ•์„ ์ ์šฉํ•œ ๊ฒƒ.

์•…๊ธฐ ์†Œ๋ฆฌ๋ฅผ ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด Python์˜ Pygame[22] ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. Pygame ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์ด๋ฆ„์—์„œ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด Python์„ ํ†ตํ•ด ๊ฒŒ์ž„๊ณผ ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ํ”„๋กœ๊ทธ๋žจ์„ ์ œ์ž‘ํ•˜๊ธฐ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์ด ์ค‘์—์„œ ์†Œ๋ฆฌ๋ฅผ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” pygame.mixer ๋ชจ๋“ˆ์„ ์ด์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. Playsound, Pygame, PyAudio, Sounddevice ๋“ฑ ์†Œ๋ฆฌ๋ฅผ ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•œ ์—ฌ๋Ÿฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ค‘ Pygame์„ ์„ ํƒํ•œ ์ด์œ ๋Š” ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ์‰ฝ๊ฒŒ ์†Œ๋ฆฌ ์ถœ๋ ฅ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์žฅ์ ๊ณผ pygame.mixer.set_num_channels(channels)๋ฅผ ํ†ตํ•ด ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ์ฑ„๋„ ์ˆ˜๋ฅผ ์„ค์ •ํ•˜์—ฌ ์—ฌ๋Ÿฌ ์†Œ๋ฆฌ๋ฅผ ํ•œ ๋ฒˆ์— ์ถœ๋ ฅํ•˜๋Š” โ€˜ํ™”์Œ ์ถœ๋ ฅโ€™์ด ๊ฐ€๋Šฅํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

4. Result

์˜์ƒ1. ๋™์š” โ€˜๋˜‘๊ฐ™์•„์š”โ€™๋ฅผ ์—ฐ์ฃผํ•˜๋Š” ๋™์˜์ƒ ์ด๋ ‡๊ฒŒ ๊ฐ„๋‹จํ•œ ์—ฐ์ฃผ๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ ๋ฐ๋ชจ๋ฅผ ์™„์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์„ ์ฐฉ์ˆœ์œผ๋กœ ๊ฐ„๋‹จํ•œ ๊ธฐ๋…ํ’ˆ๋„ ๋ฐฐ๋ถ€ํ•˜๊ณ  ์žˆ์œผ๋‹ˆ ๋ฐ๋ชจ ์‹œ๊ฐ„์— ๋งŽ์ด ์ฐพ์•„์™€์ฃผ์‹œ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๊ทธ๋ฆผ53. ์‚ฌ์šฉํ•œ ๋ฐฉ๋ฒ•๋ก  ์ •๋ฆฌ์™€ ์ด๋กœ ์ธํ•ด ์ƒ๊ธด ํšจ๊ณผ.
๊ทธ๋ฆผ53. ์‚ฌ์šฉํ•œ ๋ฐฉ๋ฒ•๋ก  ์ •๋ฆฌ์™€ ์ด๋กœ ์ธํ•ด ์ƒ๊ธด ํšจ๊ณผ.

5. Conclusion

๊ทธ๋ฆผ54. ์‚ฌ์šฉํ•œ Pygame ๋ชจ๋“ˆ.
๊ทธ๋ฆผ54. ์‚ฌ์šฉํ•œ Pygame ๋ชจ๋“ˆ.

Webcam์˜ ์ž…๋ ฅ์„ ๋ฐ›์•„ Hand Pose Estimation๊ณผ AR ๊ธฐ์ˆ ์˜ ์ƒํ˜ธ์ž‘์šฉ์œผ๋กœ, ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ž‘๋™ํ•˜๋Š” Virtual Instrument ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค์–ด๋‚ด์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ, ๊ฒฐ๊ณผ๋ฌผ๊ณผ ๊ด€๋ จํ•œ ์ž‘์€ ์•„์‰ฌ์›€์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. Hand Pose Estimation์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ์žˆ์–ด, ํŠน์ • ๊ฐ๋„์—์„œ๋Š” ์ž˜ ์ง„ํ–‰๋˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์†๊ฐ€๋ฝ์ด ์„œ๋กœ ๋น„์Šทํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๋กœ Hand Pose Estimation์˜ ๊ณ ์งˆ์ ์ธ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค๋ฅธ ๋ชจ๋ธ์„ ์ ์šฉํ•ด ๋ณด๊ธฐ๋„ ํ•˜์˜€์œผ๋‚˜, ์ด๋ฒˆ์—๋Š” ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋™์ž‘ํ•˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋ฅผ Webcam์˜ ๊ฐ๋„ ์ œํ•œ๊ณผ ํ‚ค๋ณด๋“œ ์ž…๋ ฅ์„ ํ†ตํ•œ ๊ฐ๋„ ์ˆ˜์ • ๋ฐฉ๋ฒ•์„ ์ ์šฉํ•ด ํ•ด๊ฒฐํ•˜๊ณ ์ž ํ•˜์˜€์Šต๋‹ˆ๋‹ค. Webcam์˜ ๊ฐ๋„ ์ œํ•œ์€ ์ข…์ด๋ฅผ ํƒ์ง€ํ•  ๋•Œ ์ ์šฉํ•˜๋Š” ์ตœ์†Œ ๊ฐ๋„ ๊ฐ’์„ ์ˆ˜์ •ํ•˜์—ฌ ์ง„ํ–‰ํ•˜์˜€๊ณ , ๊ฐ๋„๋Š” ๊ฒฝํ—˜์ ์œผ๋กœ ์ œ์ผ ์ž˜ ๋œ ๊ฐ’์„ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ํ•˜์—ฌ ์ผ์ • ์ˆ˜์ค€ ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. Interaction์— ์žˆ์–ด์„œ ๋ˆ„๋ฅด์ง€ ์•Š์€ ๋‹ค๋ฅธ ์†๊ฐ€๋ฝ์ด ๋ˆ„๋ฅด๋Š” ๊ฒƒ์œผ๋กœ ํƒ์ง€๋˜๋Š” ๊ฒƒ ๋˜ํ•œ ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค. ์ •๋Ÿ‰์ ์ธ ๋…ธ๋ ฅ ๋์—, ๋ˆ„๋ฅด์ง€ ์•Š์€ ๋‹ค๋ฅธ ์†๊ฐ€๋ฝ์ด ๋œ ์ธ์‹๋˜๋Š” Hyperpameter ๊ฐ’(์‚ฌ์ „์— ์„ค์ •ํ•˜๋Š” ๊ฐ’)์„ ์ฐพ์•„๋‚ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด์ „์— ๋น„ํ•ด ๋‹ค๋ฅธ ์†๊ฐ€๋ฝ์ด ๋œ ์ธ์‹๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ์†์„ ์ข…์ด ์œ„์— ๋ถ™์ธ ์ƒํƒœ๋กœ ์—ฐ์ฃผํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ •ํ™•ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ง€๊ณ  ์˜ค๋Š” ๊ฒƒ ๋˜ํ•œ ์‚ฌ์‹ค์ž…๋‹ˆ๋‹ค. ์ €ํฌ๋Š” Hand Pose Estimation ๊ธฐ์ˆ ์„ ๋ฐ”ํƒ•์œผ๋กœ, ๋‹ค์–‘ํ•œ ์ƒํ˜ธ ์ž‘์šฉ์ด ์š”๊ตฌ๋˜๋Š” Virtual Instrument ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ, Pose Estimation ๊ธฐ์ˆ ๊ณผ AR์— ๋Œ€ํ•ด ์•Œ ์ˆ˜ ์žˆ์—ˆ์Œ๊ณผ ๋™์‹œ์— ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ์„ ๋„์ถœํ•˜๋Š” ๋Šฅ๋ ฅ์„ ํ‚ค์šธ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

Reference

[1] https://www.apple.com/kr/newsroom/2024/10/apple-vision-pro-arrives-in-south-korea-beginning-friday-november-15/ [2] https://github.com/mirru-app [3] IEEE SENSORS JOURNAL, VOL. 22, NO. 18, 15 SEPTEMBER 2022 17421 Dynamic Hand Gesture Recognition Based on 3D Hand Pose Estimation for Humanโ€“Robot Interaction Qing Gao, Member, IEEE, Yongquan Chen, Member, IEEE, Zhaojie Ju, Senior Member, IEEE, and Yi Liang [4] https://www.businessresearchinsights.com/market-reports/virtual-musical-instrument-market-117066 [5] https://onlinelibrary.wiley.com/doi/full/10.1111/cgf.15065 [6] https://www.researchgate.net/publication/338437347_Detecting_Hand_Posture_in_Piano_Playing_Using_Depth_Data [7] https://ar5iv.labs.arxiv.org/html/2012.13392 [8] https://ar5iv.labs.arxiv.org/html/2012.13392 [9] https://ar5iv.org/html/1312.4659 [10] https://ar5iv.org/html/1312.4659 [11] https://arxiv.org/abs/2006.10214 [12] https://research.google/blog/on-device-real-time-hand-tracking-with-mediapipe/ [13] BlazeFace [14] https://medium.com/@massimilianoriva96/blazeface-unveiling-the-power-of-optimizations-16d9aca7e0e9 [15] https://arxiv.org/pdf/1704.04861 [16] https://openaccess.thecvf.com/content_cvpr_2016/papers/Sinha_DeepHand_Robust_Hand_CVPR_2016_paper.pdf [17] https://docs.opencv.org/4.x/index.html [18] https://docs.opencv.org/4.x/da/d22/tutorial_py_canny.html [19] https://homepages.inf.ed.ac.uk/rbf/HIPR2/sobel.htm [20] ์˜ค์ผ์„, ใ€Ž์ปดํ“จํ„ฐ ๋น„์ „๊ณผ ๋”ฅ๋Ÿฌ๋‹ใ€ (ํ•œ๋น› ์•„์นด๋ฐ๋ฏธ, 2013) [21] https://docs.opencv.org/3.4/d4/d76/tutorial_js_morphological_ops.html [22] pygame

Related

์ด ๋ฐœํ‘œ ๋‹ค์Œ์— ์ฝ์„ ๊ธ€

๋ฐœํ‘œ ์ฃผ์ œ์™€ ์ด์–ด์ง€๋Š” ๋‰ด์Šค๋ ˆํ„ฐ, ๋ฆฌํฌํŠธ, ์Šคํ„ฐ๋””๋ฅผ ํ•จ๊ป˜ ์—ฐ๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.