-
์ฃผ์ : ๋ชจ์ ์บก์ฒ๋ฅผ ํ์ฉํ ํ์ ์ด์ ์งํ(๋์) ๋ถ์ ๊ธฐ์
-
ํ๋ ฅ์ฒ: KETI
-
ํ๋ช : ํ126
-
ํ์: ์ ํด๋ฏผ, ๊ธฐํ๋น, ์กํ์ฃผ, ๊น๋ฏผ์ฌ
- ๊ณ ๋ น ์ฌํ์ ์ง์ ์ ๋ฐ๋ผ ๋์ ๊ฐ์ง ๊ธฐ์ ํ์์ฑ ๋๋
- ๊ธฐ์กด ์จ์ด๋ฌ๋ธ ๋๋ฐ์ด์ค ๋ฐ ์ผ์ ๊ธฐ๋ฐ ์์คํ ์ ๊ฒฝ์ฐ ๋ถํธํจ๊ณผ ์ ํ๋ ์ด์
i. ๋ชจ์ ์บก์ฒ๋ฅผ ํ์ฉํ ํ์ ์ด์ ์งํ(๋์) ๋ถ์ ๊ธฐ์
-
๋ชจ์ ์บก์ฒ: mediapipe
-
์ด์ ์งํ ๋ถ์: ๋ชจ๋ธ ํ์ต
ii. ํด๋ผ์ด์ธํธ์ ์๋ฒ ๋ถ๋ฅํ์ฌ ์์ (์ผ์ฒดํ ์: ๋ณด๋์ ๊ฐ๊ฒฉ ์์น, ๊ฒฝ์ ์ฑ ์ ํ)
-
ํด๋ผ์ด์ธํธ: ๋ผ์ฆ๋ฒ ๋ฆฌํ์ด ๋ณด๋
-
์๋ฒ: ๊ตฌ๊ธ ์ฝ๋ฉ ํด๋ผ์ฐ๋ ์๋ฒ
i. ๋ผ์ฆ๋ฒ ๋ฆฌํ์ด์์ ์น์บ ์ ํตํด ์์ ์ดฌ์
ii. ํด๋ผ์ฐ๋ ์๋ฒ๋ก ์์์ ์บก์ฒํด ์ด๋ฏธ์ง ์ ์ก
iii. mediapipe๋ฅผ ํตํด ์ด๋ฏธ์ง ๋ถ์
vi. ๋ถ์๋ ๊ฒฐ๊ณผ์ ์ฌ์ ํ์ตํ ๋ชจ๋ธ์ ํตํด ํฌ์ฆ ๋ถ์
v. ๊ฒฐ๊ณผ๋ฅผ ๋ผ์ฆ๋ฒ ๋ฆฌํ์ด๋ก ์ ์ก, ๋์ ์ ๊ตฌ๊ธ ๋๋ผ์ด๋ธ์ ๋์ ์์ ์ ์ฅ
vi. ๋ผ์ฆ๋ฒ ๋ฆฌํ์ด์์ GUI์ ๊ฒฐ๊ณผ ๋ฐ LED, ๋ถ์ ์ ํธ ์ถ๋ ฅ
- ์นด๋ฉ๋ผ(Logitech C270, 720p 30fps)
- ์๋ฒ ๋๋ ๋ณด๋(Raspberry pi 5)
- GPU(Google colab pro, A100 GPU)
- server.ipynb: ๋ชจ๋ธ ํ์ผ ์ ๋ก๋ ํ ๋ชจ๋ ์ ธ ์คํ, ์ตํ๋จ ์ ธ์ ์ถ๋ ฅ๋๋ URL ๋ณต์ฌ
- preprocessing.ipynb: ์์ ํ์ผ ์ ๋ก๋ ํ ์ ์ฒ๋ฆฌ ์ํ, keypoints๋ฅผ json์ผ๋ก ๋ฐํ
- upgrade_data.ipynb: keypoints json์ ๋ชจ๋ธ์ ๋ง๊ฒ ์ถ๊ฐ ์ ์ฒ๋ฆฌ
- training.ipynb: ์ ์ฒ๋ฆฌ๋ ๋ฐ์ดํฐ๋ก ๋ชจ๋ธ ํ์ต
- best_model.keras: ํ์ต์ด ์๋ฃ๋ ๋ชจ๋ธ ์ต์ข ๋ณธ
- gui.py: ๋ผ์ฆ๋ฒ ๋ฆฌํ์ด ๋ณด๋์์ ์คํํ๋ฉด URL ์ ๋ ฅ์ฐฝ ํ์, server.ipynb์์ ๋ณต์ฌํ URL ์ฝ์ ํ์ฌ ์์