INTRODUCCIÓN
Las caídas en adultos se definen como hechos que llevan a la persona a perder el equilibrio y, consecuentemente, a terminar con el cuerpo sobre una superficie que lo detenga, generalmente el suelo 1. Las caídas se catalogan como la segunda causa de muerte a nivel mundial. Para el año 2018, se presentaron, en todo el mundo, 37.3 millones de caídas que requirieron atención médica, de estas murieron 646.000 personas 1. La mayor morbilidad correspondió a adultos mayores de 65 años, a jóvenes entre 15 y 29 años y a menores de 15 años. Es por esto que la detección automática y remota de caídas, tema que se enmarca dentro de la telemedicina, hoy es un asunto de investigación de mucha importancia 2-4, pues podría ayudar a intervenir a la persona a tiempo, minimizando las consecuencias de su caída. Los dispositivos que realizan estas tareas están basados en acelerómetros 5-6 y video cámaras (7-9, entre otros. La detección de caídas basada en tecnología de visión computacional es una buena alternativa de monitoreo, pues las cámaras son sensibles y versátiles. Las características detectables por algoritmos usando sistemas de captura más comunes incluyen formas 10, posturas 11 y patrones de movimiento 12. A pesar de que existen varios estudios en los que se utilizan cámaras, los resultados muestran que pueden existir falsos positivos, pues estas características requieren ser bien definidas para minimizar falsos resultados en el desempeño del sistema. Algunos algoritmos detectan actividades basadas en movimiento (caída libre, golpes, movimiento nulo) utilizando acelerómetros 13-14. En este artículo se propone la implementación de un detector de caídas utilizando un sensor Kinect 2.0 y Fuzzy Logic para definir los conjuntos difusos a través de la velocidad medida desde la persona capturada y lograr una mayor precisión en la detección, además de generar una alarma que informe a otra persona mediante un mensaje de texto a su celular.
MATERIALES Y MÉTODOS
Entorno de experimentación
El sistema de detección de caídas se desarrolló en un ambiente estructurado. Primeramente, se definió la ubicación para el sensor, tomando en cuenta los puntos y el ángulo de inclinación principales para la captura de las imágenes. El sensor se ubicó a 1,5 m de altura sobre el suelo. Desde este punto, el campo de visión del sensor Kinect, 70° horizontal x 60° vertical, no se ve alterado y mantiene la distancia máxima de detección de 4,5 m. Seguidamente, se llevó a cabo la calibración del Kinect mediante la herramienta "calibrate camera optics" que ofrece el software iPi Recoder, lo que permite corregir errores relacionados con distancia focal y relación de aspecto de los pixeles, entre otros. La zona de experimentación se adecuó con dos colchonetas para simular la caída del paciente y evitar que se lastime, una silla para realizar la simulación de la acción de sentarse, un televisor y un computador para el procesamiento de las imágenes. La configuración experimental se muestra en la Figura 1.
Desarrollo del software del sistema de detección de caídas
Para desarrollar el software de detección de caídas se utilizó el lenguaje de programación gráfico de LabVIEW y la interfaz para Microsoft Kinect One de Labview MakerHub que ofrece una API (conjunto de rutinas que provee acceso a funciones de Labview) para adquirir datos desde el sensor Kinect. En el programa se inicializa la interfaz y se habilitan los sensores del Kinect para la captura de movimiento y recolección de datos de posición. Se capturan las imágenes a color y se realiza el seguimiento y la esqueletización de la persona. Se determinó como punto de referencia la articulación base de la columna vertebral (spinebase) para seguir y monitorizar la esqueletización de la persona. Determinadas las coordenadas "x", "y" y "z" del punto de referencia de la esqueletización de la persona, en posición de bipedestación, se selecciona la coordenada en "y" que corresponde a la coordenada de la dirección del movimiento, se calcula un promedio de 50 datos y se resta a la posición actual para establecer el punto de referencia para el estudio de los movimientos, esto se realiza solamente una vez para calibrar las alturas de las personas y tener un marco de referencia. Con los datos de posición se determinó la derivada utilizando el método de diferenciación hacia atrás de primer orden, para calcular la velocidad, este dato de velocidad es enviado a un sub-VI que clasifica a través de un sistema de inferencia difuso (6 sistemas difusos), si el sistema difuso detecta una caída genera una alarma, en caso de detectar un movimiento diferente a una caída el sistema continúa desplegando la información de la velocidad y las imágenes con su esqueletización. En la Figura 2 se muestra el diagrama de flujo del sistema de detección de caídas.
El sistema además permite hacer el seguimiento de la persona detectada, si no se presentan obstáculos entre la persona y el sensor que impida el seguimiento de la articulación de referencia (spinebase). En el programa se utiliza el API MakerHub, permitiendo que el sistema tenga la capacidad de monitorizar y esqueletizar hasta seis personas al mismo tiempo utilizando el Kinect como sensor de captura, en la Figura 3 se muestra el sistema haciendo el monitoreo y esqueletización de 6 personas.

Figura 3 Sistema de monitoreo y esqueletización para 6 personas con diferentes niveles de iluminación.
Para construir los conjuntos difusos del sistema de clasificación fue necesario realizar diferentes pruebas para medir la velocidad, por lo tanto, se les pidió a 5 personas de diferentes estaturas, que efectúen 10 veces los movimientos de caminar, sentarse, agacharse y caerse, y se guardan los datos de velocidad durante 3 segundos. El sistema corre a una tasa de muestreo de 10 ms considerando que el Kinect captura 30 imágenes por segundo. A partir de estas pruebas se seleccionaron al azar los datos de un intento por cada movimiento para cada persona como se muestra en la Figura 4 y se establecieron los rangos de velocidad para cada movimiento como se muestra en la Tabla 1. De los datos obtenidos en las pruebas se puede observar que, al simular los diferentes movimientos de estudio, la velocidad llega a su máxima velocidad cuando el usuario entra en contacto con el suelo si está cayendo, si alcanza la postura para agacharse o entra en contacto con la silla al sentarse, como el usuario se detiene la velocidad vuelve a valores aproximados a cero. También se puede observar que el movimiento caerse se realiza en un menor tiempo comparado con los movimientos agacharse y sentarse.
Tabla 1 Rangos de velocidad para cada movimiento.
Acción | Rango |
---|---|
Caminar | -100-20 cm/s |
Sentarse | 20-150 cm/s |
Agacharse | 130-280 cm/s |
Caerse | 250-500 cm/s |
Para clasificar los diferentes movimientos, se implementó un sistema de inferencia difuso del tipo Takagi-Sugeno, porque este enfoque permite la integración de conocimientos específicos de las caídas como la capacidad para generalizar y ha sido utilizado como método de detección de caídas reduciendo las falsas alarmas 15. El algoritmo difuso sugerido en este artículo utiliza la velocidad como entrada con 4 funciones de membresía (caminar, sentarse, agacharse y caer) y como salida 4 conjuntos tipo singleton. Los valores de entrada se establecieron a partir del análisis del cambio de la velocidad, tomando como referencia los rangos obtenidos en la Tabla 1. En la Figura 5 se muestra el conjunto de entrada velocidad con sus funciones de membresía tipo trapezoidal para las variables lingüísticas caminar y caer (en el rango de -100 a 20 y de 250 a 500, respectivamente) y función de membresía triangular para sentarse y agacharse (en el rango de 20 a 150 y 130 a 280, respectivamente).
El conjunto de salida son singleton a los que se le asigna un valor constante que corresponde a la acción que se quiere identificar (se asignó 1 como estado normal para la acción de caminar, 2 como el estado normal 1 para la acción sentarse, 3 como estado normal 2 a la acción agacharse y 4 como estado de alarma que corresponde a acción caerse), como se observa en la Figura 6.
Definidos los valores de entrada y salida del sistema difuso, se implementaron las reglas borrosas las cuales están asociadas con una función de pertenencia de la salida, ver Tabla 2.
Antes de poner a prueba el sistema de clasificación basado en lógica difusa se hace la validación por medio de un test system que permite simular el comportamiento de este con diferentes valores de entrada como se observa en la Figura 7, comprobando que el sistema se comporta de manera adecuada.
Pruebas experimentales
Para validar el sistema de detección de caídas con variaciones en las condiciones de iluminación, se le pidió al paciente realizar las actividades consignadas en la Tabla 3. Antes de las pruebas el paciente dio su consentimiento informado por escrito.
RESULTADOS
El sistema propuesto fue validado con 3 personas (alturas de 1,55 m, 1,60 m y 1,70 m, respectivamente), simulando caídas y realizando las actividades que se piden en la Tabla 3. Se le pide a cada persona que efectúe 10 veces cada acción o movimiento (caminar, sentarse, agacharse y caerse). Desde las pruebas realizadas fue posible determinar la precisión de detección de la caída usando como parámetro la velocidad medida desde la persona. Las matrices de confusión de las acciones detectadas junto con el total de caídas y no caídas para cada persona se muestran en las Tablas 4, 5 y 6, respectivamente. La precisión, sensibilidad y especificidad fueron calculadas con las siguientes ecuaciones:



De los resultados obtenidos en las Tablas 4, 5 y 6 se pueden obtener las métricas del sistema de clasificación propuesto. Se obtiene una precisión promedio de 95,8%, una especificidad promedio de 94,4% y una sensibilidad promedio del 100%. Se obtienen una sensibilidad del 100% debido a que el sistema propuesto es capaz de clasificar todos los movimientos que fueron simulados como caídas. También es posible evidenciar que hay movimientos que se realizan en la vida diaria como levantar un objeto o agacharse que se puede confundir como una caída.
Cuando el sistema detecta una caída envía una alarma al correo electrónico de la persona que se encuentra al cuidado del paciente, informándole que el paciente ha sufrido una caída junto con una imagen actual del paciente para que de esta manera puedan socorrerlo lo antes posible. En la Figura 9 se muestra una imagen del mensaje recibido al simular una caída.
Se realizó una prueba de validación del sistema con 4 personas donde se les pidió realizar diferentes acciones como sentarse, permanecer parado y caerse.
El sistema detectó las caídas simuladas por las 2 personas que decidieron caerse. En la Figura 10 se muestran dos imágenes del desarrollo de la prueba.
DISCUSIÓN
El sistema propuesto ha mostrado un buen rendimiento en la detección de caídas simuladas en un ambiente estructurado utilizando un Kinect One, LabVIEW y Fuzzy Logic. El sistema presenta una precisión promedio del 95,8%, una especificidad de 94,4% y una sensibilidad del 100%, con la capacidad de clasificar todas las acciones simuladas como caídas y la posibilidad de monitorear hasta 6 personas y enviar la alarma al cuidador. Este resultado es relevante, comparado con trabajos relacionados donde se obtiene una precisión del 93,9%, una especificidad del 91,3% y sensibilidad del 100% para detección de una persona utilizando imágenes de profundidad con un sensor kinect 16, en 19 se obtiene una precisión del 98,8% para la detección de caída de una persona utilizando un sensor kinect y el cambio de la aceleración de la nube de puntos de imágenes consecutiva, y en 17 detectan caídas y tumbarse lentamente con un sensor kinect y datos de series de tiempo. En contraste con el sistema propuesto, algunos trabajos presentan la utilización de un dispositivo que tiene que ser implementado directamente en el paciente 5, provocando incomodidad o el rechazo del mismo, pues en algunos casos el sistema requiere una fuente de alimentación que puede generar más molestias a los pacientes 18. Vale la pena mencionar que algunos sistemas que utilizan Kinect, se basan en el análisis de siluetas, lo que limita el sistema a monitorear un sólo paciente 18, además de no contar con un sistema de alarma que permita notificar, a la persona encargada del cuidado del paciente, sobre los eventos sufridos por él. Es así como el sistema propuesto muestra una gran robustez, sin embargo, estaría limitado por el área de detección, ya que esta se encuentra delimitada por el sensor. Basados en los resultados se evidencia que el sistema funciona y es apto para detectar caídas en personas.
CONCLUSIONES
En este artículo, nosotros proponemos un sistema de detección de caídas que utiliza lógica difusa para la clasificación de las acciones como caminar, agacharse, sentarse y caminar, obteniendo una precisión promedio de clasificación del 95,8% en una prueba de validación con 3 personas de diferentes estaturas, generando la activación de la alarma, que corresponde al envío del mensaje al correo electrónico del cuidador. Por lo tanto, se puede considerar el sistema como un prototipo de asistente tecnológico que permite la atención oportuna del paciente en el caso de sufrir una caída y que no necesita que el paciente porte un brazalete o sistema de medida.
Fue posible monitorear hasta seis personas al tiempo haciendo uso de la API MakerHub para Labview. Se evidenció que las condiciones de luz no afectaron la respuesta del sistema por lo que el buen funcionamiento y la atención oportuna del paciente, por parte de la persona a cargo al detectar una caída, está garantizada, aún en condiciones de iluminación cambiante.