CyclingSafety
Clasificación de eventos de riesgo en ciclismo a partir de datos de sensores inerciales, desde experimentos de modelos hasta un modelo cuantizado INT8 en un ESP32.

Resumen
CyclingSafety convierte señales inerciales de teléfonos y wearables en una clasificación multiclase de eventos de riesgo en ciclismo, y luego explora el despliegue de ese modelo en un dispositivo ESP32 de bajo costo.
Problema y objetivo
Los ciclistas urbanos enfrentan huecos, frenadas bruscas y superficies irregulares. Detectar estos eventos a partir de datos inerciales podría apoyar rutas más seguras y el análisis posterior al recorrido, pero el modelo debe ejecutarse cerca del ciclista, no solo en la nube.
Rol y contribuciones
Construí el pipeline de datos y modelos, ejecuté experimentos con MLP y 1D-CNN con búsqueda bayesiana de hiperparámetros, cuantifiqué el modelo seleccionado e integré el prototipo embebido con sensores, GPS, almacenamiento y reporte por MQTT.
Solución y arquitectura
El pipeline pasa de ventanas de IMU a un modelo multiclase y luego a un modelo INT8 de TensorFlow Lite para microcontroladores. En el ESP32, el MPU-6050 aporta datos inerciales, el NEO-6M añade GPS, la microSD almacena registros y MQTT reenvía los eventos detectados a ThingsBoard. Python y Folium generan mapas de eventos y mapas de calor de severidad.
Implementación técnica
La 1D-CNN opera directamente sobre ventanas de series temporales, mientras que el MLP usa características diseñadas. KerasTuner busca arquitectura y parámetros de entrenamiento. La cuantización INT8 reduce el artefacto para TensorFlow Lite Micro, y las predicciones de eventos se unen con coordenadas GPS para producir mapas.
Decisiones de ingeniería
- Inferencia en el dispositivo
- Ejecutar el modelo en el ESP32 reduce la dependencia de la conectividad y mantiene locales los datos crudos del sensor, a cambio de un modelo más pequeño y un presupuesto de cómputo más ajustado.
- 1D-CNN frente a características diseñadas
- Las ventanas convolucionales aprenden patrones temporales locales, mientras que el MLP sigue siendo una línea base más ligera para comparar.
- Cuantización para el despliegue
- La cuantización INT8 permite que el modelo quepa en las restricciones del microcontrolador; el costo es una brecha medible entre los benchmarks de conversión y el comportamiento en campo.
Resultados
El informe del proyecto documenta una reducción aproximada del 90,5 % en el tamaño del artefacto mediante cuantización. El rendimiento de clasificación en campo con el dispositivo embebido fue inferior al obtenido con datos de teléfono inteligente, y se reporta aquí sin suavizarlo.
Limitaciones
El cuaderno documenta una división a nivel de ventana con ventanas solapadas, por lo que las métricas exploratorias de clasificación pueden verse afectadas por fuga de información. Esas métricas no deben interpretarse como rendimiento definitivo de generalización en recorridos no vistos. Los resultados de cuantización describen la conversión del modelo, no la precisión en campo del ESP32.
Tecnologías
- Python
- TensorFlow / Keras
- KerasTuner
- TensorFlow Lite Micro
- ESP32
- MPU-6050
- NEO-6M GPS
- MQTT
- ThingsBoard
- Folium