Abdelrahman Almatrooshi
FocusGuard with L2CS-Net gaze estimation
7b53d75
# models/
Feature extraction (face mesh, head pose, eye scorer, collect_features) and training scripts.
**Extraction:** `face_mesh.py` β†’ landmarks; `head_pose.py` β†’ yaw/pitch/roll, scores; `eye_scorer.py` β†’ EAR, gaze, MAR; `collect_features.py` β†’ 17-d vector + PERCLOS, blink, etc.
**Training:**
| Path | Command | Checkpoint |
|------|---------|------------|
| mlp/ | `python -m models.mlp.train` | checkpoints/mlp_best.pt |
| xgboost/ | `python -m models.xgboost.train` | checkpoints/xgboost_face_orientation_best.json |
MLP: train.py, sweep.py, eval_accuracy.py. XGB: train.py, sweep_local.py, eval_accuracy.py. Both use `data_preparation.prepare_dataset` (get_numpy_splits / get_dataloaders).
**Results:** XGBoost 95.87% acc, 0.959 F1, 0.991 AUC; MLP 92.92%, 0.929, 0.971.