El seguimiento de la concentración de dióxido de carbono (CO2) es esencial para garantizar una buena calidad del aire en interiores. Sin embargo, la detección de anomalías en los sensores de CO2 puede ser difícil debido a las variaciones en los patrones de los datos y a los límites en la capacidad de procesamiento de los dispositivos. En este trabajo se presenta un sistema de jerarquía de modelos de Machine Learning que utiliza la computación Edge y Cloud para detectar anomalías en los sensores de CO2. El sistema se compone de un modelo más limitado que se ejecuta en el dispositivo (Edge) y de un modelo más complejo que se ejecuta en el Cloud. La selección del modo de trabajo se realiza desde el servidor, lo que permite una detección eficiente y precisa de las anomalías en los sensores de CO2. Los resultados muestran que este sistema proporciona una solución escalable y efectiva para la detección de anomalías en sensores de CO2 en tiempo real, lo que puede mejorar significativamente la calidad del aire en interiores.
Este proyecto forma parte del Trabajo Fin de Máster del Máster Universitario de Ciencia de Datos de la Universitat Oberta de Catalunya (UOC). Para una revisión completa del proyecto se puede acudir a la memoria.
Se han probado diversos modelos utilizando técnicas de aprendizaje semi-supervisado y no supervisado alcanzando buenos resultados. Los modelos desarrollados son LSTM-Autoencoder, Isolation Forest y OneClass-SVM. Los dos modelos LSTM-Autoencoder, tanto el alojado en el servidor como el que se introduce en el microcontrolador, han sido los que han logrado mejores métricas.
Comparativa de modelos:
Modelo | TP | TN | FP | FN | Accuracy | Precision | Recall | F1-score |
---|---|---|---|---|---|---|---|---|
LSTM-AE (Cloud) | 1625 | 23797 | 147 | 117 | 0.99 | 0.917 | 0.933 | 0.925 |
LSTM-AE (Standalone) | 254 | 3995 | 32 | 0 | 0.993 | 0.888 | 1 | 0.941 |
Isolation Forest | 1506 | 23793 | 266 | 123 | 0.985 | 0.85 | 0.924 | 0.886 |
OC-SVM | 1088 | 23879 | 684 | 37 | 0.972 | 0.614 | 0.967 | 0.751 |
- LICENSE Licencia del código
- README.md Descripción general del repositorio
- datasets Conjuntos de datos generados para el entrenamiento de los modelos semisupervisados y no supervisados
- src Código Fuente
- jupyter Jupyter Notebook en la que se ha realizado la preparación de los datos y los modelos
- anomaly_detection_app Aplicación en C++ embebida en la placa de desarrollo del microcontrolador
- server Código en python del servidor
- load_test Pruebas de carga (CPU, RAM) de los modelos acompañadas de imágenes con resultados
- models Modelos de Keras, TFLite y Sklearn generados
- TFM_JavierGallego.pdf Memoria del TFM
Una descripción más exhaustiva de cada componente se incluye en los ficheros README de cada parte del proyecto.