Spaces:
Configuration error
Configuration error
| # Face Attendance API | |
| ูุธุงู ุญุถูุฑ ุจุงูุชุนุฑู ุนูู ุงููุฌูุ ู ุจูู ุนูู **FastAPI** + **PostgreSQL** + **YOLOv8 (ูุดู ุงููุฌู)** + **EdgeFace (embedding)**. | |
| ## ูููู ุงูู ุดุฑูุน | |
| ``` | |
| face_attendance/ | |
| โโโ app/ | |
| โ โโโ main.py # ููุทุฉ ุชุดุบูู ุงูุชุทุจูู | |
| โ โโโ config.py # ุงูุฅุนุฏุงุฏุงุช (DB, threshold, ู ุณุงุฑุงุช ุงูู ูุฏููุงุช) | |
| โ โโโ api/ | |
| โ โ โโโ register.py # POST /register โ ุชุณุฌูู ุดุฎุต ุฌุฏูุฏ | |
| โ โ โโโ attendance.py # POST /attendance โ ุชุณุฌูู ุงูุญุถูุฑ | |
| โ โโโ database/ | |
| โ โ โโโ database.py # ุงุชุตุงู SQLAlchemy | |
| โ โ โโโ models.py # ุฌุฏูู Person + ุฌุฏูู Attendance | |
| โ โโโ services/ | |
| โ โ โโโ edgeface_model.py # ุชุนุฑูู ู ูุฏูู EdgeFace (ุจุฏูู ุชุนุฏูู) | |
| โ โ โโโ embedding.py # ุชุญู ูู EdgeFace ูุญุณุงุจ embedding | |
| โ โ โโโ face_detector.py # ุชุญู ูู YOLO ููุดู/ุชุชุจุน ุงููุฌูู | |
| โ โ โโโ recognition.py # ู ูุงุฑูุฉ embeddings ูุชุญุฏูุฏ ุงูุดุฎุต | |
| โ โโโ utils/ | |
| โ โ โโโ preprocess.py # ุชุฌููุฒ ุงูุตูุฑุฉ + cosine similarity | |
| โ โโโ weights/ # ุญุท ููุง ู ููุงุช ุงูู ูุฏููุงุช (.pt) | |
| โโโ requirements.txt | |
| โโโ .env.example | |
| ``` | |
| ## 1) ุชุฌููุฒ ุงูุจูุฆุฉ | |
| ```bash | |
| python -m venv venv | |
| source venv/bin/activate # ูููุฏูุฒ: venv\Scripts\activate | |
| pip install -r requirements.txt | |
| ``` | |
| ## 2) ุชุฌููุฒ PostgreSQL | |
| ```sql | |
| CREATE DATABASE face_attendance; | |
| ``` | |
| ุงูุณุฎ `.env.example` ุฅูู `.env` ูุนุฏูู ุงูุจูุงูุงุช ุญุณุจ ุงูุณูุฑูุฑ ุจุชุงุนู: | |
| ```bash | |
| cp .env.example .env | |
| ``` | |
| ุงูุฌุฏุงูู (`person`, `attendance`) ูุชุชุนู ู ุชููุงุฆููุง ุฃูู ู ุง ุงูุณูุฑูุฑ ูุดุชุบูุ ู ููุด ุญุงุฌุฉ ุชุนู ููุง ูุฏูู. | |
| ## 3) ุญุท ู ููุงุช ุงูู ูุฏููุงุช | |
| ุญุท ุงูู ูููู ุฏูู ุฌูู `app/weights/`: | |
| - `YoloV8_Face.pt` | |
| - `edgeface_xxs_q.pt` | |
| (ูู ุงูุงุณู ู ุฎุชูู ุนูุฏูุ ุนุฏููู ูู `app/config.py`) | |
| ## 4) ุชุดุบูู ุงูุณูุฑูุฑ | |
| ```bash | |
| uvicorn app.main:app --reload | |
| ``` | |
| ูููุชุญ ุนูู: `http://127.0.0.1:8000/docs` (Swagger UI ุชููุงุฆู ูุชุฌุฑุจุฉ ุงูู APIs). | |
| ## 5) ุงุณุชุฎุฏุงู ุงูู APIs | |
| ### ุชุณุฌูู ุดุฎุต ุฌุฏูุฏ | |
| ```bash | |
| curl -X POST "http://127.0.0.1:8000/register/?name=Hossam" | |
| ``` | |
| ูุชูุชุญ ุงููุงู ูุฑุง: | |
| - ุงุถุบุท **c** ูู ุง ูุฌูู ูุจูู ูุงุถุญ ูู ุงูู ุฑุจุน ุงูุฃุฎุถุฑ โ ูุณุฌู ูู ุงูุฏุงุชุงุจูุฒ. | |
| - ุงุถุบุท **q** ููุฅูุบุงุก. | |
| ### ุชุณุฌูู ุงูุญุถูุฑ (Real-time) | |
| ```bash | |
| curl -X POST "http://127.0.0.1:8000/attendance/" | |
| ``` | |
| ูุชูุชุญ ุงููุงู ูุฑุง ูุชุชุนุฑู ุนูู ูู ุงููุฌูู ุงููู ูุฏุงู ูุง ูุชุณุฌููู ูู ุฌุฏูู `attendance` | |
| (ู ุฑุฉ ูุงุญุฏุฉ ุจุณ ููู ุดุฎุต ูู ุงูููู ). ุงุถุบุท **q** ูุฅููุงุก ุงูุฌูุณุฉ. | |
| ## ู ูุงุญุธุงุช ููุชุนุฏูู ูุงุญููุง | |
| - **threshold ุงูุชุนุฑู**: ุบููุฑู ู ู `RECOGNITION_THRESHOLD` ูู `app/config.py`. | |
| - **ุฑูู ุงููุงู ูุฑุง**: ุบููุฑู ู ู `CAMERA_INDEX` ูู ููุณ ุงูู ูู (ูู ุนูุฏู ุฃูุชุฑ ู ู ูุงู ูุฑุง). | |
| - **ุชุณุฌูู ุดุฎุต ู ู ุตูุฑุฉ ุจุฏู ุงููุงู ูุฑุง ู ุจุงุดุฑุฉ**: ุนุฏูู `app/api/register.py` ููุทุ ุจุงูู ุงูู ููุงุช ู ุด ูุชุชุฃุซุฑ. | |
| - **ุงูุชุฑููุฉ ุฅูู pgvector** (ุจุญุซ ุฃุณุฑุน ููู embeddings ุนูุฏ ุฒูุงุฏุฉ ุนุฏุฏ ุงูุฃุดุฎุงุต): ุบููุฑ ููุน ุนู ูุฏ `embedding` ูู `app/database/models.py` ู ู `ARRAY(Float)` ุฅูู `Vector(512)` ุจุนุฏ ุชูุนูู extension `pgvector` ูู ุจูุณุชุฌุฑูุณ. | |