How adilaslam581/driver-safety works
Driver Drowsiness Detector has three runtime forms: a browser-based webcam monitor, a separate FastAPI inference service, and a standalone Python/OpenCV desktop monitor. The documented primary workflow is browser-local: load the ONNX model, capture webcam frames, classify eye images, accumulate closed-eye detections, and sound an alarm while updating the monitoring display. The backend exposes independent image-prediction endpoints; the sampled frontend does not show calls to it. Relationships below are limited to the README and sampled source, so unsampled UI and deployment details are omitted.
Main entry points: app.js Browser controller · drowsiness_app.py Desktop monitor · main.py Image preprocessing · index.html Monitoring interface
Components 12
Browser monitor
- Browser controller
frontend/app.js - Monitoring interface
frontend/index.html
Inference API
- Prediction API
backend/app/main.py - Image preprocessing
backend/app/main.py - ONNX inference
backend/app/main.py
Desktop monitor
- Desktop monitor
drowsiness_app.py
Model assets
- Browser ONNX model
frontend/model.onnx - Backend ONNX model
backend/model.onnx - Standalone ONNX model
model.onnx
Other components
- Driver
- Webcam
- Browser audio output
Connections 14
- Driver → Browser controller: starts monitoring
frontend/app.js - Browser controller → Webcam: requests video
frontend/app.js - Browser controller → Browser ONNX model: fetches model
frontend/app.js - Browser controller → Browser controller: crops and classifies
frontend/app.js - Browser controller → Browser controller: tracks closed eyes
frontend/app.js - Browser controller → Browser audio output: sounds alarm
frontend/app.js - Browser controller → Monitoring interface: updates display
frontend/app.js - Prediction API → Image preprocessing: decodes and resizes
backend/app/main.py - Image preprocessing → ONNX inference: passes image tensor
backend/app/main.py - ONNX inference → Backend ONNX model: runs model
backend/app/main.py - Driver → Desktop monitor: runs monitor
drowsiness_app.py - Desktop monitor → Standalone ONNX model: loads model
drowsiness_app.py - Desktop monitor → Webcam: captures frames
drowsiness_app.py - Desktop monitor → Desktop monitor: classifies and scores
drowsiness_app.py