August 1, 2026
Gaze Evaluation Platform
View SourceEvaluation infrastructure for driver-monitoring gaze models with automated regression gating, MLflow tracking, and a Pareto frontier dashboard.
Evaluation infrastructure for driver-monitoring gaze models: a system that answers “which model should we ship, and how do we know?” automatically and repeatedly.
Instead of running a notebook once and eyeballing numbers, every model evaluation is containerized, logged, and compared automatically. Adding a new model requires writing one YAML config file and changing nothing else.
Core Workflow
- Define a model in a YAML config (architecture, weights, quantization, runtime)
- Run the evaluation runner — it loads the model, runs inference on preprocessed face crops, computes metrics, and logs everything to MLflow
- Open a PR — CI builds the Docker image, runs the eval, and blocks the merge if any metric regresses
- Compare models in the dashboard — a FastAPI service with an interactive Pareto frontier view
Metrics
| Category | Metrics |
|---|---|
| Accuracy | MAE (yaw, pitch, combined), p50/p95/p99 angular error |
| Safety | Eyes-off-road false positive rate, false negative rate |
| Latency | Per-batch mean, p50, p95, p99 (ms) |
| Slicing | All accuracy metrics broken out by head-pose bin (0–15°, 15–30°, 30–45°, 45°+) |
Hardware info (device, chip) is logged alongside latency so comparisons are apples-to-apples.
CI Regression Gate
Every pull request to main triggers a GitHub Actions workflow that builds the Docker image, runs evaluation on a test fixture, compares results against a baseline, and fails the build if any metric regresses beyond its tolerance — for example, MAE can’t increase by more than 0.5 degrees, FNR can’t increase by more than 2%.
Dashboard
A FastAPI service reads from MLflow and serves an interactive dashboard with a models overview, sortable run history, per-model detail pages, and a Pareto plot comparing any two metrics with Pareto-optimal models highlighted.
Tech Stack
Language: Python Preprocessing: MediaPipe BlazeFace detection + crop pipeline Tracking: MLflow Data Versioning: DVC Dashboard: FastAPI, Tailwind CSS, Chart.js Infrastructure: Docker, GitHub Actions