์์ฐ์์ : https://youtu.be/6rrOmDgrmoQ
์ฌ์ดํธ์ฃผ์ : https://chamchamcham.minukang.now.sh
์ญ์ค๋ํ๊ต ๋ฏธ๋์ด๊ฒฝ์ํ๊ณผ ์ 1ํ ๋์งํธ ์ปจํ ์ธ ๊ฒฝ์ง๋ํ ์ถํ ์ํ
https://fun.ssu.ac.kr/ko/program/all/view/1304/description
ํ๋ช : (ๅ)๋์ค๋๋ฉ
- ๊ฐ๋ฏผ์ฐ (https://github.com/MinuKang) - Front-End Develop
- ๋ ธ์คํ (https://github.com/njhyuk) - UI/UX Design
- React (only use hook)
- Typescript
- Styled-Components
- Faceapi-js (Tensorflow)
- Localforage (IndexedDB)
navigator.mediaDevices.getUserMedia
๋ฅผ ์ฌ์ฉํ ์นด๋ฉ๋ผ ์ ๊ทผ- faceapi-js ๋ฅผ ์ฌ์ฉํ์ฌ ์นด๋ฉ๋ผ์ ๋ฐ์ดํฐ์์ ์ผ๊ตด ์ธ์
- React hook์ state์ ref๋ฅผ ์ ์ ํ ํผ์ฉํ์ฌ ํ ์ผ๋ก ์ค์๊ฐ ์ผ๊ตด ์ธ์ ์ํ ๋์คํจ์น
- ์ฌ์ด๋ ์ปจํ ์คํธ๋ฅผ ๊ตฌํํ์ฌ ์ธ์ ๋ ์ง Speak(๋งํ๊ธฐ), Play(์ฌ์), Stop(์ ์ง)์ ํ ์ ์๋๋ก ๊ตฌํ
- ๋ฉ์ธํ์ด์ง
- ์ผ๊ตด์ด ์ธ์๋์ง ์์ ๊ฒฝ์ฐ ์์๋ฒํผ ๋นํ์ฑํ
- ๊ฐ์ฅ ์ธ์์ด ์๋๋ ์ผ๊ตด๋ก ๊ฒ์ ์์
- ์ผ๊ตด์ธ์ ํ์ด์ง
- IndexedDB์ ํ์ต๋ ์ผ๊ตด ๋ฐ์ดํฐ๊ฐ ์์ ๊ฒฝ์ฐ ์งํ๋๋ ํ์ด์ง
- ์ผ๊ตด๊ณผ ์ฝ์ ์์น๋ฅผ ๊ธฐ์คํ์ฌ ์ผ์ชฝ๊ณผ ์ค๋ฅธ์ชฝ ์ผ๊ตด์ ํ์ต
- ์ด๋ฅผ ํตํด ๊ณ ๊ฐ๋ฅผ ๋๋ ค๋ ์์ฐ์ค๋ฝ๊ฒ ๊ฐ์ ์ธ๋ฌผ์์ ์ธ์ํ ์ ์๊ฒ๋จ
- ํ์ต๋ ์ผ๊ตด ๋ฐ์ดํฐ๋ IndexedDB์ ์ ์ฅํ์ฌ ๊ฒ์์ ์์ํ ๋ ๋ง๋ค ์ฌ์ฉ
- ๊ฒ์์งํ ํ์ด์ง
- 3์ด ์ด์ ๊ณ ๊ฐ๋ฅผ ๋๋ฆฌ์ง ์์ ๊ฒฝ์ฐ ์๋ด ๋ฉ์ธ์ง ์ถ๋ ฅ
- ํ๋ ์ด์ด๊ฐ ๊ณ ๊ฐ๋ฅผ ๋๋ฆฐ ๋ฐฉํฅ์ ์ธ์ํ์ฌ ์ปดํจํฐ๋ ๋๋ค์ผ๋ก ๋ฐฉํฅ์ ๊ฒฐ์
- ์ฒซํ์๋ 95% ํ๋ฅ ๋ก ํ๋ ์ด์ด ์น๋ฆฌ, ์ดํ 5% ์ฉ ๊น์ด๋ฉฐ 10๋ฒ์งธ ํ๋ถํฐ๋ 50%์ ํ๋ฅ ์ ์ ์ง
- ์ด๊ธฐ๋ฉด ์ ์ ์ ๋ฐ์ดํธ์ ํจ๊ป ์ค๊ธฐ๊ฐ์ผ๋ก ๋ญํน์ ์ ๋ฐ์ดํธํ์ฌ ์ด๋ ์ ๋ ์ด๊ธฐ๋ฉด ์์๊ถ์ ๋ค ์ ์๋์ง ๋น ๋ฅด๊ฒ ํ์ธ๊ฐ๋ฅ
- ํ๋ ์ด์ด๊ฐ ์ด๊ธธ ๋ 8๊ฐ์ง์ ๋๋คํ ์์ ์๋ฆฌ ์ถ๋ ฅ
- ๊ฒ์์ข
๋ฃ ํ์ด์ง
- ๋ญํน๊ณผ ํจ๊ป ์์ ์ ๋ญํน์ ์์ฐ์ค๋ฝ๊ฒ ๋ณด์ฌ์ฃผ๋ ์ ๋๋ฉ์ด์ ๊ตฌํ
- ๋ฉ๋ฌ๊ถ์ ๋ค ๊ฒฝ์ฐ ์์์ ์๋ฆฌ ์ถ๋ ฅ, ์๋ ๊ฒฝ์ฐ ๋น์๋ ์๋ฆฌ ์ถ๋ ฅ
- ๋ญํน ํ์ด์ง
- IndexedDB์ ์ ์ฅ๋ ํ๋ ์ด์ด๋ค์ ์์๋ฅผ ์ถ๋ ฅ
- ๊ฒ์์์ ๋น์์ ํ๋ฉด์ ์ผ๊ตด ๋ถ๋ถ๋ง ์ธ๋ค์ผ๋ก ์ฌ์ฉํ์ฌ ํ๋กํ ์ฌ์ง์ผ๋ก ์ง์
- ํ๋กํ ์ฌ์ง์ faceapi-js๋ก ๋ถ์ํ์ฌ ๋์ด, ํ์ , ์ฑ๋ณ์ ํ๋จํ๊ณ ์ ์ ํ ์ด๋ฆ์ ๋ถ์ฌ