La fatiga es una de las principales causas de accidentes mortales en el trabajo, especialmente para conductores de camiones de larga distancia, operadores de maquinaria pesada y trabajadores del turno de noche. Los sistemas de monitorización tradicionales suelen requerir un hardware costoso y propietario, suponen un riesgo para la privacidad al enviar vídeo a la nube para ser procesado, y requieren instalaciones complejas.
NodDetect es un sistema de detección de fatiga cognitiva en tiempo real y seguro para la privacidad que se ejecuta íntegramente en el navegador. Utilizando la cámara web del dispositivo y procesamiento de IA local (WASM/WebGPU), extraemos señales biométricas críticas sin enviar un solo píxel o byte de datos a ningún servidor.
Características Clave y Privacidad:
- Inferencia 100% en el dispositivo: Todo el seguimiento de la cara y el cálculo se realiza localmente. Ningún dato abandona la pestaña del navegador.
- Sin nube, sin API, sin inicios de sesión: Funciona sin conexión (Offline) una vez cargado.
- Agnóstico al Hardware: Funciona en cualquier smartphone, tablet o portátil estándar con una cámara y un navegador web moderno.
El sistema utiliza MediaPipe FaceMesh para rastrear 468 puntos faciales a 30 FPS y extraer tres señales biométricas principales:
- Relación de Aspecto Ocular (EAR - Eye Aspect Ratio): Mide la tasa de parpadeo y detecta los "microsueños" (cierres prolongados muy peligrosos).
- Desviación de Gaze (Mirada): Rastrea las posiciones del iris para detectar la pérdida de enfoque o una "mirada perdida".
- Postura de la Cabeza (Head Pose): Monitorea el cabeceo, la guiñada y el balanceo (pitch, yaw, roll) para detectar si el usuario asiente por quedarse dormido.
Estas señales alimentan un modelo heurístico/clasificador (ONNX) para emitir un % de fatiga en vivo y detonar un sistema de alertas escalonadas visuales y sonoras para despertar al conductor antes de que ocurra un accidente.
Vista principal del dashboard con las métricas en tiempo real.
- Frontend Framework: Vanilla JavaScript + HTML5.
- Herramienta de Construcción: Vite (Rápido, ligero y sin configuraciones complejas).
- Computer Vision: MediaPipe FaceMesh (WASM).
- Estilos: Tailwind CSS.
- Machine Learning Inference: ONNX Runtime Web (Proyectado para la Fase 3).
Para correr este proyecto en tu máquina local:
- Node.js (v16 o superior recomendado)
- Una cámara web funcional.
-
Clonar el repositorio:
git clone https://github.com/sgerritsen2/NodDetect.git cd NodDetect -
Instalar las dependencias:
npm install
-
Iniciar el servidor de desarrollo:
npm run dev
-
Abrir en el navegador:
- Ve a
http://localhost:5173(o la ruta que te indique la terminal de Vite). - Nota: La primera vez que presiones "Start Monitor", el navegador te pedirá permiso para acceder a la cámara. Debes aceptar para que el tracker inicie.
- Ve a
noddetect/
├── public/ # Assets estáticos y PWA manifest (pronto)
├── src/
│ ├── core/ # Lógica de cálculo (EAR, Gaze, FaceMesh, Classifier)
│ ├── ui/ # Controladores de UI (Dashboard, Cámara, Alertas)
│ ├── model/ # Modelos ONNX locales
│ ├── styles/ # CSS base
│ └── main.js # Punto de entrada y orquestador
├── index.html # Estructura del dashboard
├── package.json # Dependencias y scripts
└── vite.config.js # Configuración de empaquetado (opcional)

