https://github.com/1juyoung/facemeet
๐ฝ ํ์ ์ธ์๊ณผ ๊ฐ์ ๋ถ์์ ํตํด ํ์ ์ฐธ๊ฐ์์ ๊ฐ์ ์ ์๊ฐํํ๋ ํ์ ํ์ ์๋น์ค
https://github.com/1juyoung/facemeet
deepface emotion nodejs python react socket-io webrtc-video
Last synced: 4 months ago
JSON representation
๐ฝ ํ์ ์ธ์๊ณผ ๊ฐ์ ๋ถ์์ ํตํด ํ์ ์ฐธ๊ฐ์์ ๊ฐ์ ์ ์๊ฐํํ๋ ํ์ ํ์ ์๋น์ค
- Host: GitHub
- URL: https://github.com/1juyoung/facemeet
- Owner: 1juyoung
- Created: 2025-06-17T07:19:31.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2025-06-17T08:09:57.000Z (4 months ago)
- Last Synced: 2025-06-17T09:21:07.319Z (4 months ago)
- Topics: deepface, emotion, nodejs, python, react, socket-io, webrtc-video
- Language: JavaScript
- Homepage:
- Size: 3.69 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# FaceMeet - ํ์ ๋ถ์ ๊ธฐ๋ฐ ํ์ ํ์ ์น ์๋น์ค
๐ **๋ฐํ ์์ **: 2024๋ 11์ (์กธ์ ์ํ)
๐ง **์ฃผ์ ๊ธฐ์ **: WebRTC, Socket.io, React, Express, MongoDB DeepFace, OpenCV---
## ๐งฉ ํ๋ก์ ํธ ๊ฐ์
> ์ฝ๋ก๋19 ์ดํ ์จ๋ผ์ธ ํ๋์ ์ฆ๊ฐ์ ํจ๊ป, ์ฌ์ฉ์ ๊ฐ ๊ฐ์ ์ดํด๋ฅผ ๋๊ธฐ ์ํ ํ์ ํ์ ์๋น์ค์ ํ์์ฑ์ด ์ปค์ก์ต๋๋ค.
> **FaceMeet**๋ ํ์ ์ธ์ ๋ฐ ๊ฐ์ ๋ถ์์ ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ฉ์ ๊ฐ ๊ฐ์ ํ๋ฆ์ ์๊ฐํํ์ฌ, ๋ณด๋ค ์ํํ ์ํต์ ์ง์ํ๋ **๊ฐ์ ๊ธฐ๋ฐ ํ์ ํ์ ์๋น์ค**์ ๋๋ค.### ๐ฏ ์ฃผ์ ๋ชฉํ
- ํ์ ๋ถ์ ๊ธฐ์ ์ ํ์ฉํ์ฌ ํ์ ์ฐธ์ฌ์์ ๊ฐ์ ์ ์๋ฅผ ์๊ฐํ
- ํธ์คํธ/ํด๋ผ์ด์ธํธ ๊ฐ ์ํต์ ์ํ ํ์ํ์ + ๊ฐ์ ๊ณต์ ๊ธฐ๋ฅ ๊ตฌํ
- ๋น์ธ์ด์ ์์ฌ์ํต์ด ํ์ํ ์ธ๊ตญ์ธ/ํน์ ์ํฉ์์์ ์ปค๋ฎค๋์ผ์ด์ ๊ฐ์---
## ๐ ๏ธ ํ๋ก์ ํธ ํด๋ ๊ตฌ์กฐ
```
backend/
โ
โโโ app.js # ๋ฐฑ์๋ ์ง์ ์
โโโ facemeet/ # ํ๋ก ํธ์๋ ์ฝ๋ (React)
โโโ model/ # ํ์ ๋ถ์ ํ์ด์ฌ ๊ธฐ๋ฐ ๋ชจ๋ธ (Flask + DeepFace)
โโโ modules/ # ๋ฐฑ์๋ ๋ชจ๋ (๋ฏธ๋ค์จ์ด, ๋ก์ง ๋ฑ)
โโโ mongoose/ # MongoDB ๋ชจ๋ธ ์ ์
โโโ ...
```๐ **๊ตฌ์กฐ ์ค๋ช **
- **facemeet/**: ํ๋ก ํธ์๋ React ํ๋ก์ ํธ ๋๋ ํฐ๋ฆฌ์ ๋๋ค.
- **model/**: DeepFace ๊ธฐ๋ฐ ๊ฐ์ ๋ถ์ Python ์๋ฒ ์ฝ๋ (Flask + OpenCV)
- **๋๋จธ์ง ๋๋ ํ ๋ฆฌ**: Node.js ๊ธฐ๋ฐ ๋ฐฑ์๋ API ๋ฐ ์๋ฒ ๊ตฌ์ฑ---
## ๐ก ์ฃผ์ ๊ธฐ๋ฅ ๋ฐ ์์คํ ์ํคํ ์ฒ
### ๐ท ํ์ ๋ถ์
- **OpenCV Haarcascade**๋ก ์ผ๊ตด ์์ญ ์ถ์ถ
- **DeepFace + CNN(VGG-Face)**๋ฅผ ํตํด ๊ฐ์ ์ธ์
- ๊ฐ์ ๊ฐ์ ๊ฐ์ค์น๋ฅผ ๋์ด ์ต์ข ์ ์ ์ฐ์ถ```
Emotion Score =
(Happiness ร 100) + (Neutral ร 50) + (Sadness ร 30) +
(Fear ร 20) + (Disgust ร 10) + (Anger ร 10) + (Surprise ร 50)
```- ์ ์ ๋ฒ์์ ๋ฐ๋ผ ๊ฐ์ ์ํ ๋ถ๋ฅ:
- 0~30: ๋ถ์ ์ ๊ฐ์
- 30~70: ์ค๋ฆฝ ๊ฐ์
- 70~100: ๊ธ์ ์ ๊ฐ์ ### ๐งฑ ์์คํ ๊ตฌ์ฑ
| ํ๋ฉด ๊ตฌ์ฑ | ์ค๋ช |
| ---------------- | --------------------------------------------- |
| ๋ก๊ทธ์ธ, ํ์๊ฐ์ | ๊ธฐ๋ณธ ์ธ์ฆ ๊ธฐ๋ฅ |
| ๋ฉ์ธํ๋ฉด | ํ์ ์์ฑ/์ฐธ์ฌ |
| ํ์๊ธฐ๋ก | ๊ฐ์ ์ ์ ๊ธฐ๋ฐ ํ์ ๋ฆฌ์คํธ |
| ํ์ ํ๋ฉด | WebRTC ๊ธฐ๋ฐ ์ค์๊ฐ ํ์ํ์ ๋ฐ ๊ฐ์ ์ ์ ํ์ |---
## โ๏ธ ์ฌ์ฉ ๊ธฐ์ ์คํ
### ํ๋ก ํธ์๋ (React - `/facemeet`)
- React 18, MUI, React Router, Axios
- WebRTC
- JWT ๊ธฐ๋ฐ ์ธ์ฆ
- ์ค์๊ฐ ํต์ : Socket.io### ๋ฐฑ์๋ (Node.js - root ๋๋ ํฐ๋ฆฌ)
- Express, Mongoose, Multer (ํ์ผ ์ ๋ก๋)
- GridFS (ํ๋กํ ์ด๋ฏธ์ง ์ ์ฅ)
- PM2 (์๋ฒ ์ด์), Morgan, JWT ์ธ์ฆ### ํ์ ๋ถ์ ๋ชจ๋ธ (`/model`)
- Python + Flask
- DeepFace, OpenCV
- CORS ์ค์ ์ ํตํ ๋ฐฑ์๋ ์ฐ๋---
## โ ํ๋ก์ ํธ ๊ฒฐ๊ณผ ๋ฐ ๊ธฐ๋ ํจ๊ณผ
- ์นํ์ด์ง ๋ด ํ์ ์์ฑ, ์ฐธ๊ฐ, ๊ธฐ๋ก ๋ฐ ๊ฐ์ ์ ์ ์๊ฐํ ๊ธฐ๋ฅ ๊ตฌํ
- ๊ฐ์ ์ ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์ ๋ถ์๊ธฐ ํ๋จ ๊ฐ๋ฅ
- ์ธ๊ตญ์ธ, ์ฅ์ ์ธ ๋ฑ **๋น์ธ์ด์ ์์ฌ์ํต**์ด ์ค์ํ ์ํฉ์์ ํ์ฉ ๊ฐ๋ฅ---
## ๐ ํ ์ ๋ณด
- ์ด 4์ธ ๊ตฌ์ฑ (ํ๋ก ํธ์๋ 2, ๋ฐฑ์๋ 1, AI ๋ชจ๋ธ 1)
---