Estimación de la postura corporal en un sistema
embebido Raspberry Pi empleando técnicas de visión
artificial
Carlos Luis Vargas Guevara1
Universidad Técnica de Ambato, Ecuador
cvargas0028@uta.edu.ec
https://orcid.org/0000-0003-2050-2342
David Omar Guevara Aulestia2
Universidad Técnica de Ambato, Ecuador
dguevara@uta.edu.ec
https://orcid.org/0000-0002-0410-4398
Marco A Ciaccia 3
Universidad Técnica del Norte, Ecuador
mciaccia@utn.edu.ec
https://orcid.org/0000-0001-8293-8040
Thalia San Antonio4
Universidad cnica de Ambato, Ecuador
t.sanantonio@uta.edu.ec
https://orcid.org/0000-0002-8724-0650
Resumen
Los sistemas que se emplean para la captura de movimiento o conocidos como análisis
de marcha, generalmente emplean dispositivos dedicados que en el mercado se
comercializan a elevados precios. En los últimos años, las empresas enfocadas en la
fabricación e implementación de laboratorios de marcha han centrado sus esfuerzos en
crear dispositivos de medición y emisión de reportes que sean portables y ocupen un
mínimo de espacio; sin embargo, las innovaciones tecnológicas planteadas por empresas
dedicadas al campo de la biomedicina resultan ser cerradas y con limitaciones de
compatibilidad. Es decir, que en casos en los que se requiera la expansión del
laboratorio, resulta necesario la adquisición de equipos de la misma marca, lo que
implica costos elevados. Ante esta problemática, se plantea el uso de sistemas
embebidos Raspberry Pi, que, a través de técnicas y librerías de visión artificial,
establecen un análisis de marcha con precisión y mayores prestaciones al ser un sistema
de código abierto. Asimismo, a través de técnicas de visión artificial se pueda capturar y
procesar una imagen binarizada. El empleo de librearías OpenCV para ubicar
marcadores y delimitar una región de interés consolidan un sistema compacto y portable
para capturar el movimiento corporal en tiempo real, y en espacios no restringidos.
Palabras clave: binarización, imágenes, numpy, OpenCV, Raspberry Pi.
Abstract
Systems that are used for motion capture or known as gait analysis generally employ
dedicated devices that are sold on the market at high prices. In recent years, companies
focused on manufacturing and implementing gait laboratories have focused their efforts
on creating measurement and reporting devices that are portable and take up a minimum
of space; however, technological innovations proposed by companies dedicated to the
field of biomedicine turn out to be closed and with compatibility limitations. That is to
say, in cases where the expansion of the laboratory is required, it is necessary to acquire
equipment of the same brand, which implies high costs. In view of this problem, the use
of Raspberry Pi embedded systems is proposed, which, through artificial vision
techniques and libraries, establish a running analysis with precision and higher
performance as it is an open source system. Likewise, through artificial vision
techniques, a binary image can be captured and processed. The use of OpenCV libraries
to locate markers and delimit a region of interest consolidate a compact and portable
system to capture body movement in real time, and in unrestricted spaces.
Keywords: binarization, images, numpy, OpenCV, Raspberry Pi.
Introducción
Una de las actividades más importantes para el ser humano es la agricultura, misma que
en ocasiones demanda de gran esfuerzo físico para quienes la realizan. Esto se debe a
que las personas adoptan posturas forzadas, ejecutan una rutina repetitiva y sobre todo
la manipulación de cargas muy pesadas que provocan diversos trastornos musculares y
óseos. El levantamiento de cargas muy pesadas se considera como una de las causas
principales en los trastornos musculoesqueléticos como son dolores de espalda crónicos
y lumbares, que permiten llevar un control de movimientos articulares durante
actividades diarias normales (Faisal et al, 2019). A nivel global, los trastornos
musculoesqueléticos (TME) han alcanzado un gran impacto en la salud de los
trabajadores, influyendo en los procesos de productividad. La Organización Mundial de
Salud (OMS) los ha definido como alteraciones de los músculos, tendones, esqueleto
óseo, cartílagos, ligamentos y nervios (Comisión Nacional de Seguridad y Salud en el
Trabajo, 2008), (Arenas-Ortiz & Cantú-Gómez, 2013).
En la Tabla 1¡Error! No se encuentra el origen de la referencia. se presentan las
principales teorías que describen los trastornos mencionados.
Tabla 1.
Teorías de los Trastornos Musculoesqueléticos
Teorías de los TME’s
Interacción multivariable
Componentes individuales
Propiedades mecánicas:
Dotación genética del individuo
Características morfológicas
Composición psicosocial
Riesgos biomecánicos
Diferencial de fatiga
Actividades ocupacionales desequilibradas y
asimétricas
Carga acumulativa
Umbral de carga y repetición
Sobreesfuerzo
Excede el límite de tolerancia
Fuente: elaboración propia
El padecimiento de los trastornos musculoesqueléticos es muy diverso, no obstante,
existen diferentes teorías que tratan de describir su origen, síntomas y tendencias. Es
así, que, la teoría más acertada es suponer que las lesiones musculoesqueléticas son de
naturaleza biomecánica. En España, los padecimientos musculoesqueléticos presentan
mayor frecuencia en personas dedicadas a realizar actividades repetitivas y de gran
esfuerzo físico, seguidos por personas que realizan servicios sociales y de salud
(Coloma, 2019).
La Organización Mundial de la Salud (OMS), ha realizado importantes estudios que son
asociados al análisis de postura corporal donde resalta que los TME’s son la causa
principal de la discapacidad, destacando al dolor lumbar como una de las fuentes
principales de discapacidad a escala mundial. Asimismo, la OMS señala que estos no
aparecen solo en adultos mayores, sino a cualquier edad. Lo que influye directamente en
la movilidad y destreza de las personas y en algunos casos provocan jubilaciones
anticipadas, afectando la participación en la vida social. En el esquema de la Figura 1,
se presentan las afectaciones principales de los TME’s (Sandoval, 2017).
Figura 1. Principales afectaciones de los Trastornos musculoesqueléticos.
Fuente: elaboración propia con información de Sandoval (2017).
Por otra parte, la biomecánica y ciencias del deporte tienen un elevado interés en el
análisis de movimiento. Ante ello, se pretende evaluar la postura corporal de las
personas y plantear mecanismos de corrección que minimicen los riesgos ocasionados
por los TME’s (Organización Mundial de la Salud, 2019), (Luttmann, Jager, Griefahn,
& Caffer, 2004).
El continuo desarrollo de herramientas informáticas y sistemas de comunicación
humano máquina han consolidado importantes sistemas de captura y análisis de
posturas corporales. En forma general, existen diversos sistemas de captura de
movimiento o análisis de marcha; pese a esto, la mayor parte de este tipo de soluciones
tecnológicas representan a grandes empresas con impacto internacional y costos
elevados. En este sentido, la presente propuesta de investigación plantea una solución
más económica e innovadora utilizando una tarjeta electrónica Raspberry Pi, una
cámara web y técnicas de visión artificial para realizar un análisis de la postura
corporal, para ello el trabajo ha sido estructurado en tres etapas: modelo propuesto que
describe la implementación y ejecución del sistema de análisis de movimiento, la
segunda etapa comprende un análisis y discusión de las implicaciones técnicas y
económicas, finalmente se finaliza con las conclusiones alcanzadas y los enfoques que
pueden contribuir a futuras investigaciones.
Articulaciones
Sistemas o
regiones del
cuerpo
Artrosis, artritis,
reumatoide, artritis
psoriásica. gota,
fracturas
traumáticas
Dolor de espalda y
cuello
Sarcopenia
Osteoporósis,
osteopenia,
fracturas
traumáticas
Columna Vertebral
Músculos
Huesos
Afectaciones de
los TME
Metodología
El estudio presenta una propuesta de investigación que plantea el uso de una tarjeta
electrónica Raspberry Pi como el núcleo del sistema de captura de movimiento. En el
diagrama de la
Figura 2 se describe que el procesamiento de imágenes es una forma de procesamiento
de señales que toma como entradas una fotografía, imagen o video; más una unidad de
procesamiento de información que para esta investigación es una Raspberry Pi 3B.
Figura 2. Esquema del procesamiento de señales propuesto.
Fuente: elaboración propia
Es importante que la unidad de procesamiento detecte y manipule un conjunto de
características o parámetros relacionados con la imagen en cuestión. El proceso de
adquisición de datos se encuentra afectado por sacudidas indeseables y movimientos
inestables de la cámara, por lo que es importante emplear algoritmos que mejoren su
resolución. Los algoritmos se ejecutan en una tarjeta Raspberry Pi 3B en el entorno de
programación de Python, las características de la tarjeta electrónica se presentan en la
Tabla 2 basada en investigaciones de Vergara, T. A., & Dixon, C. S. G. (2005) y de
Guerrero Aguirre & Ramos Giraldo (2014).
Tabla 2.
Características de una Raspberry Pi
Características de Raspberry Pi
Desarrollado por:
Fundación Raspberry Pi
Sistema
Broadcom BCM2835
Núcleo
ARM 1176JZF-S (ARM V6K)
CPU
700 MHz
GPU
Broadcom Video Core IV 17 pines
Potencia
3,5W
Memoria RAM
Desde 512 MB (modelo 3B 1Gb)
Sistema Operativo
Debian
Fuente: elaboración propia
El cuerpo humano es considerado como una estructura mecánica, compuesto por 206
huesos de diferentes formas y tamaños unidos a través de articulaciones. De esta manera
los huesos tienen estabilidad y movilidad. Es así como se han desarrollado novedosos
sistemas para capturar señales en estos puntos de flexibilidad del cuerpo humano, pero
el uso de sensores se ve limitados por una serie de factores que se asocian al
rendimiento, costo, calibración, etc. (Shilpashree et al, 2015). Así mismo, una
desventaja de los sensores inerciales es que son muy sensibles a cambios en los campos
magnéticos, en contraste, los sistemas ópticos pueden capturar un elevado número de
marcadores a una frecuencia aproximada de 2000 cuadros por segundo (D.A. Bravo,
2016).
En los estudios de biomecánica se consideran como principales articulaciones de
locomoción humana la cadera, rodilla, tobillos y metatarso del pie.
De manera general, el modelo que se propone es un sistema de captura del movimiento
que a través de la librería de visión artificial OpenCV se programe en Python la captura
de coordenadas y puntos de referencia para realizar estimaciones de la postura corporal
de una persona. En la Figura 3 se puede ver Figura 3. Flujograma propuesto para la captura
de movimiento.un diagrama de flujo del modelo propuesto.
Figura 3. Flujograma propuesto para la captura de movimiento.
Fuente: elaboración propia
En este artículo se ha desarrollado un sistema de detección de movimiento y estimación
de la postura corporal. Para ellos se realiza la extracción de puntos de referencia
asociados a articulaciones. A través de la programación en Python y empleando la
librería de visión OpenCV se pueden extraer los puntos esqueléticos de movimiento,
para un rendimiento óptimo es importante considerar el análisis con una unidad de
procesamiento gráfico (GPU); sin embargo, se puede realizar con una unidad central de
procesamiento (CPU), lo que disminuye la velocidad en su proceso (Raju, 2020),
(Pérez, Cavanzo & Villavisán, 2018).
En el sistema de detección se emplean efectos convexos para lo cual se realizan
operaciones sobre contornos, la visión por computadora es muy utilizada sobre todo en
áreas de detección y reconstrucción de la estructura esquelética humana. Es así como se
emplea una cámara que identificará las partes humanas y construirá las articulaciones de
la persona que se encuentra en frente de la misma. En este sentido, se ha definido una
región de interés de esta manera se limita el procesamiento de los datos para encontrar
puntos de interés en dicha área.
La información capturada se procesa a través de pixeles para estimar la posición de las
articulaciones, no obstante, los píxeles del contorno pueden causar una gran
interferencia, por tal razón se emplea un método de estimación de un núcleo gaussiano
ponderado.
Resultados
Una de las aplicaciones más habituales para el análisis de marcha o biomecánica son los
sistemas de captura de movimiento, por ello en la Figura 4, se presenta la clasificación
de los mismos (Raju, 2020)
Figura 4. Clasificación de los sistemas de captura de movimiento.
Fuente: elaboración propia
Los sistemas electromecánicos, electromagnético e inerciales incluyen diferentes
dispositivos que son invasivos para el cuerpo humano, es así, que, si se adquieren datos,
es necesario colocarlos sobre la superficie humana, lo que puede producir incomodidad
y limitación del movimiento en forma natural.
En la Tabla 3 se evidencian las principales ventajas y desventajas asociadas al empleo
de un sistema óptico de captura sin marcadores.
Inercial
Pasivo
Activo
Sin Marcadores
Con Marcadores
Óptico
Electromagnético
Electromecánico
Sistemas de
captura de
movimiento
Tabla 3.
Ventajas y desventajas de los sistemas de captura de movimiento sin marcadores
Sin Marcadores
Ventajas
Desventajas
No invasivos
Reconstrucción menos completa
Instalación y uso más simple
Menor Precisión
Menor coste
Fuente: elaboración propia
Por esta razón, se propone el uso de un sistema óptico que no emplea marcadores, de
esa manera se busca capturar el movimiento de manera más habitual y ordinaria, ya que
así los movimientos se registran sin que el usuario o paciente en cuestión tenga que
llevar equipamiento adicional.
A su vez, se propone el uso de una tarjeta Raspberry Pi para el procesamiento de imágenes
que a través de una cámara USB conforman el sistema de adquisición de imágenes,
Figura 5.
Figura 5. Esquema del sistema de captura de movimiento.
Fuente: elaboración propia
El empleo de una Raspberry Pi es muy funcional, ya que es un sistema embebido de
código abierto y que en un futuro se puede integrar a un conjunto de dispositivos o
sensores de movimiento, consolidando así un sistema robusto para la captura de
movimiento.
La programación del sistema de captura de movimiento se compiló en Python
empleando la librería de visión artificial OpenCV, facilitando el procesamiento de
imágenes ya sea de forma real, a través de streaming, mediante el comando
cv2.VideoCapture. Asimismo, se debe ubicar la región de interés que está limitada por
un rectángulo de color amarillo, de esa manera el análisis se enfoca en esta área.
.
También a través de la técnica de umbralización simple, se puede mejorar la resolución
de una imagen binaria a través del comando cv2.medianBlur. Con la umbralización se
busca segmentar las imágenes separando el área de interés del fondo de la imagen
capturada, es así, que en color blanco aparece la imagen binaria, mientras que el fondo
permanecerá en color negro. Una recomendación importante es elegir un fondo que
contraste bien con las imágenes que se van a capturar, minimizando así los problemas
que se pueden presentar al momento de capturar el movimiento corporal.
Una vez que se ha extraído la imagen binaria es importante limitar su contorno, es así,
como se procede a calcular las coordenadas X, Y que corresponderán al centro de la
imagen en análisis. En la Figura 6 se aprecia la captura de movimiento corporal.
Figura 6. Sistema de captura de movimiento.
Fuente: elaboración propia
De la imagen anterior, se puede apreciar que el área de interés se encuentra limitada por
un color amarillo, mientras que en color verde se encuentra dibujado el contorno de la
imagen binaria, así también el centro de esta en un punto del mismo color. En color azul
se encuentran los puntos de convexidad para estimar las articulaciones y los ángulos de
apertura de esta. Para calcular los ángulos se emplea la siguiente ecuación (1).
𝑎
2
+ 𝑏
2
+ 𝑐
2
𝐶 = 𝑎𝑟𝑐𝐶𝑜𝑠 (
)
2𝑎𝑏
(1)
En la Figura 7 se puede apreciar el código que se utiliza para determinar los ángulos en
base a las posiciones convexas formadas por las articulaciones del cuerpo humano. En
la librería Numpy se pueden encontrar los lados a, b y c, en primera instancia los
ángulos medidos están en radianes, por lo que es necesario realizar la conversión a
grados para posteriormente expresarlos en pantalla con formato de enteros.
a = np.linalg.norm(far-end)
b = np.linalg.norm(far-start)
c = np.linalg.norm(start-end)
angulo = np.arccos((np.power(a,2)+np.power(b,2)-
np.power(c,2))/(2*a*b))
angulo = np.degrees(angulo)
angulo = int(angulo)
Figura 7. Código para estimar los ángulos en zonas convexas.
Fuente: elaboración propia
El desarrollo del presente trabajo ha permitido capturar los movimientos corporales que
posteriormente se pueden exportar a un software dedicado para transformar las señales
obtenidas en señales de control. De igual manera, el proyecto permitirá diferentes
ampliaciones que proporcionen nuevas formas de comunicación entre emisor y receptor
con el fin de obtener un sistema autónomo.
Conclusiones
En la propuesta realizada se puede utilizar un sistema ligero y económico que permite
capturar el movimiento corporal en tiempo real en entornos no restringidos.
A través de un ajuste de distancias, se pudo estimar las posiciones articulares humanas
en función de las coordenadas cartesianas en base al proceso de extracción de una
imagen binaria.
Un aspecto importante es el sistema de comunicación, ante ello la Raspberry Pi resulta
como la mejor opción de comunicación ya que se puede enlazar a través de Bluetooth o
WiFi, es decir, una comunicación sin hilos cubriendo así un área de cobertura
considerable.
A futuro, se prevé integrar el sistema de captura de movimiento con otros dispositivos
del tipo de electromiografía y sensores de fuerza que proporcionen un análisis
biomecánico más detallado que pueda ser usado en aplicaciones personales e
industriales.
Agradecimientos
Los autores expresan sus más sinceros agradecimientos al Consorcio Ecuatoriano para
el Desarrollo de Internet Avanzado CEDIA, por su especial apoyo en el desarrollo de la
presente propuesta, gracias a la financiación del proyecto CEPRA X-III “LLANKAK
WARMIKUNATA KAMACHIKKUNA (PROTEGER A LA MUJER
TRABAJADORA)”
Referencias
Arenas-Ortiz, L., & Cantú-Gómez, Ó. (2013). Factores de riesgo de trastornos músculo-
esqueléticos crónicos laborales. Medicina Interna de México, 370-379.
Coloma Coloma, M. A. (2019). Trastornos musculoesqueléticos de posible origen
laboral asociado a posturas forzadas en el personal operativo de limpieza del Ministerio
de Agricultura y Ganadería del EcuadorQuito. Facultad de Ciencias del Trabajo y
Comportamiento Humano, 1(1), 1-6.
Comisión Nacional de Seguridad y Salud en el Trabajo. (2008). Enfermedades
Profesionales de los Agricultores. Grupo de Trabajo "Sector Agrario", 1(1), 1-36.
D.A. Bravo M, C. R. (2016). Comparación de dos Sistemas de Captura de Movimiento
por medio de las Trayectorias Articulares de Marcha. Revista Mexicana de Ingeniería
Biomédica, 37(2), 149-160.
Faisal, A. I., Majumder, S., Mondal, T., Cowan, D., Naseh, S., & Deen, M. J. (2019).
Monitoring methods of human body joints: State-of-the-art and research challenges.
Sensors, 19(11), 2629. https://doi.org/10.3390/s19112629
Guerrero Aguirre, A., & Ramos Giraldo, P. J. (2014). Sistema embebido de bajo costo
para visión artificial. Scientia et Technica Año XIX, 163-173.
Luttmann, A., Jager, M., Griefahn, B., & Caffer, G. (2004). Prevención de Trastornos
muscoloesqueleticos en el lugar de trabajo. Berlín: Serie protección de salud de los
trabajadores.
Organización Mundial de la Salud. (9 de Agosto de 2019). Trastornos
musculoesqueléticos. Recuperado el 22 de Junio de 2020, de
https://www.who.int/es/news-room/fact-sheets/detail/musculoskeletal-conditions
Pérez, M., Cavanzo Nisso, G. A., & Villavisán Buitrago, F. (2018). Sistema embebido
de detección de movimiento mediante visión artificial. Visión Eléctróncia, 97-101.
https://doi.org/10.14483/22484728.15087
Raju J.B.V.P., Reddy Y.C., G P.R. (2020) Smart Posture Detection and Correction
System Using Skeletal Points Extraction. In: Satapathy S.C., Raju K.S., Shyamala K.,
Krishna D.R., Favorskaya M.N. (eds) Advances in Decision Sciences, Image
Processing, Security and Computer Vision. Learning and Analytics in Intelligent
Systems, vol 3. Springer, Cham. https://doi.org/10.1007/978-3-030-24322-7_23
Sandoval, S. (2017). Trastornos musculoesqueléticos de origen laboral en el cuello y las
extremidades superiores de los fisioterapeutas en Cataluña. Cataluña: Universitat de
Lleida.
Shilpashree, K. S., Lokesha, H., & Shivkumar, H. (2015). Implementation of image
processing on Raspberry Pi. International Journal of Advanced Research in Computer
and Communication Engineering, 4(5), 199-202.
https://doi.org/10.17148/IJARCCE.2015.4545
Vergara, T. A., & Dixon, C. S. G. (2005). Sistema de reconocimiento de posturas del
cuerpo humano. Pontificia Universidad Javeriana., 1 (1), 1-6.