Todos los proyectos
IA Aplicada, TinyML e IoT/ 2026

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