Temas acerca de Inteligencia Artificial
-
Luis.Rodriguez

- Mensajes: 5
- Registrado: 02 Sep 2020, 20:21
-
Contactar:
Mensaje
por Luis.Rodriguez » 15 Dic 2020, 21:25
- Descripción

Existen diversas enfermedades que impiden a las personas disfrutar de una buena calidad de vida, siendo algunas de ellas mucho más difíciles de controlar o monitorear, desembocando en que un cambio repentino en el estado de las mismas pueda causar la muerte de una persona. Las enfermedades del corazón son un ejemplo claro de ello, ya que existen muchas situaciones que pueden agravar el estado de esta parte del cuerpo humano. Es por ello que se han realizado investigaciones que permitan monitorear mejor el estado del corazón, como por ejemplo, midiendo los altos niveles de estrés que una persona puede padecer, o intentando predecir la probabilidad de que ocurra una arritmia cardiaca, todo ello a través del procesamiento de señales de la lectura de un electrocardiograma (ECG). En las investigaciones que se describirán a continuación, se propone hacer uso del Machine Learning o Aprendizaje Automático para diagnosticar el nivel de estrés y arritmias cardiacas y el uso de IoT para transmitir esta información al paciente y un médico correspondiente para el posterior análisis de la información obtenida.
- Herramientas
- Arquitectura de la solución
En las investigaciones a tratar, se propone usar dispositivos IoT para la lectura de la frecuencia de latidos del corazón que se recopila de forma local y luego se envía a servidores como el de DigitalOcean, que es donde se realizan los cálculos necesarios. Además se utilizan placas Node MCU Wifi ESP8266 (con un microprocesador de de 32 bits Tensilica Xtensa LX106 Y 160KB de RAM) para el desarrollo de los programas necesarios para establecer la comunicación y teniendo como lenguaje de programación a micro-python, que se ejecuta sobre un intérprete REPL. Además se hace uso de un sensor de pulso con el que se recopila la información necesaria. La recopilación de la frecuencia cardiaca es importante pues, por ejemplo, cuando una persona está sufriendo un ataque cardiaco, tiene un nivel elevado de estrés, o se encuentra nerviosa, suceden los picos más elevados en la frecuencia de latidos del corazón. Estas investigaciones también han propuesto una forma de recopilar información de frecuencias cardiacas de las personas para la creación de datasets para el entrenamiento de los modelos de Machine Learning, ya que los existentes solo poseen información de alrededor 200 personas, lo cual no es suficiente para estas tareas.
El mecanismo de funcionamiento del sistema está basado en la información de la edad de la persona y la medida de su frecuencia cardiaca, en latidos por minuto (lpm). Lo que se busca a continuación es determinar si la persona se encuentra “en forma” o no, y si es que está en forma, determinar si está realizando sobreesfuerzo en el caso de ser un atleta. Por ejemplo, cuando una persona realiza ejercicio, esta debería tener una frecuencia cardiaca en el rango del 50% al 70% de (220 - su edad), de no ser así, puede deducirse que la persona no está en un adecuado estado físico.

Además en la arquitectura presentada, el sensor de pulso es un pequeño dispositivo cuyas lecturas oscilan entre 525 y 610, valores que pueden transformarse mediante cálculos matemáticos a frecuencia cardiaca, contando la cantidad de pulsos de la persona durante un minuto. El servidor que procesa la data es un sistema Ubuntu 16.04 LTS alojado en DigitalOcean. La placa NodeMCU contiene un servidor Flask sobre WSGI Gunicorn NginX para manejar solicitudes asíncronas, desarrollado en Python a modo de API Restful basada en la arquitectura MVC (Modelo Vista-Controlador).
- Procesamiento de las señales:
El procesamiento de señales se realiza a partir de la lectura de frecuencia cardiaca en tiempo real. Los cálculos hacen uso de algoritmos de procesamiento de señales, tales como Pan Tompkins, junto con trasnformadas de Wavelet y HIlbert. Se hace el cálculo de funciones de variabilidad de frecuencias cardiacas para posteriormente ser usadas por un modelo clasificador que permitirá predecir la presencia de elevados niveles de estrés en el paciente, o la presencia de situaciones riesgosas como una arritmia cardiaca. En el caso de la segunda investigación, se hace uso de un controlador Arduino en vez de un Node MCU y un sensor de Electrocardiograma (EGC). Para el caso de la detección de arritmias, el modelo empleado está basado en una clasificación por Support Vector Machine (SVM) implementada en Matlab y haciendo uso del dataset perteneciente a la base de datos Physionet ATM. El sistema final presenta la ventaja de notificar al médico correspondiente vía SMS en caso de que el paciente presente riesgos elevados de padecer una arritmia cardiaca.
- Resultados
1) La primera investigación relacionada con determinar si la persona presenta altos niveles de estrés fue testeada con dos modelos: un modelo de regresión logística y otro basado en SVM. Los resultados muestran que la SVM es ligeramente más precisa que el modelo de regresión, con una puntuación de 68% sobre 66% de precisión. También se probaron modelos de VF-15 y un clasificador Bayesiano, pero ambos con grados de precisión mucho menores.
2) La segunda investigación muestra unos resultados de precisión mayores en comparación con la anterior, y además se usaron distintos algoritmos basados en SVM, alcanzando grados de precisión que varían entre los 86-92,2%.
- Conclusiones
Las investigaciones han demostrado que para el caso de procesamiento de señales de frecuencia cardiaca, una buena opción es el uso de SVM (Máquinas de vectores de soporte) para la construcción de modelos de clasificación de señales. Es así que estos modelos permiten mejorar el monitoreo de frecuencia cardiaca de los pacientes que puedan sufrir enfermedades relacionadas al corazón, y además tienen la ventaja de poder hacer cálculos lo suficientemente precisos para poder alertar diversos estados críticos que puedan poner en riesgo la vida del paciente en cuestión, aplicando el actualmente conocido Machine Learning, y el IoT para entablar una adecuada transferencia de información y una buena comunicación entre los distintos componentes de la arquitectura de la solución propuesta por las investigaciones tratadas.
- Referencias