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.