Está en la página 1de 6

Miniproyecto 2

Desarrollo de una Aplicación de Estimación de Postura con MediaPipe para Interacción en


Tiempo Real

Stephanny Patricia Martinez Cordoba Daniel Lopez Dominguez


Universidad Autónoma De Occidente Universidad Autónoma De Occidente
Facultad De Ingeniería Facultad De Ingeniería
Cali, Colombia Cali, Colombia
stephanny.martinez@uao.edu.co daniel.lopez_dom@uao.edu.co

Resumen— Este informe presenta el desarrollo de una articulaciones, lo que es fundamental para comprender y
aplicación que utiliza la estimación de postura, basada en la replicar el movimiento humano.
arquitectura de MediaPipe, para detectar y clasificar al menos
cinco posturas humanas. La aplicación permite la interacción en 2. Técnicas de Estimación de Postura
tiempo real con un enfoque en el control de hardware mediante
Arduino. Se aborda la necesidad de detectar posturas para Existen varias técnicas para la estimación de postura, que
mejorar la interacción en juegos y aplicaciones de control de incluyen:
hardware. A través del uso de técnicas de estimación de postura,
• Métodos Basados en Marcadores: Estos métodos
se logra un sistema versátil y preciso que promete diversas
requieren que los sujetos utilicen marcadores en el
aplicaciones.
cuerpo para ayudar al sistema a rastrear la postura.
Palabras clave— Estimación de postura, MediaPipe, Aunque precisos, estos métodos pueden resultar
Detección de posturas, Interacción en tiempo real, Control de incómodos y limitar la libertad de movimiento.
hardware, Aplicación. • Métodos Basados en Modelos 3D: Utilizan modelos
tridimensionales del cuerpo humano y buscan ajustar
I. INTRODUCCIÓN estos modelos a las imágenes para determinar la
postura. Son precisos, pero requieren un modelado
En la era de la inteligencia artificial y el aprendizaje detallado y son computacionalmente intensivos.
profundo, la estimación de postura se ha convertido en una
aplicación de vanguardia con una amplia variedad de • Métodos Basados en Visión por Computadora: Estos
aplicaciones en áreas que van desde la atención médica y la métodos, como MediaPipe, utilizan redes neuronales
seguridad hasta la interacción humano-computadora. Este convolucionales para detectar puntos clave en el
proyecto se enfoca en el desarrollo de una aplicación que cuerpo y estimar la postura. Son ampliamente
aprovecha el poder de la estimación de postura a través de una utilizados debido a su capacidad para trabajar en
arquitectura tipo MediaPipe, o sistemas similares, para detectar tiempo real y su capacidad de adaptación.
y clasificar posturas específicas.
El informe que sigue a continuación abordará en detalle los 3. MediaPipe y Arquitecturas Similares
pasos clave para desarrollar esta aplicación, incluyendo la MediaPipe es una arquitectura de red neuronal
selección de la arquitectura, la creación del conjunto de datos convolucional desarrollada para estimar la postura en tiempo
personalizado, el entrenamiento de la red neuronal, y la real a partir de imágenes o secuencias de video. Utiliza una red
implementación de la aplicación final. A través de este neuronal profunda para predecir la posición de las
proyecto, se busca explorar el potencial y la aplicabilidad de la articulaciones clave en el cuerpo. MediaPipe se ha convertido
estimación de postura en situaciones del mundo real y en una tecnología fundamental en aplicaciones interactivas y
demostrar cómo esta tecnología puede habilitar nuevas de visión por computadora debido a su velocidad y precisión
oportunidades en la interacción humano-máquina. en la estimación de postura [Revisar sección III. MediaPipe y
su arquitectura].
II. MARCO TEORICO
4. Aprendizaje Profundo en Estimación de Postura
1. Estimación de Postura: Definición y Significado El aprendizaje profundo, en particular las redes neuronales
La estimación de postura se refiere a la capacidad de un convolucionales (CNN), ha revolucionado la estimación de
sistema de visión por computadora para identificar y seguir la postura. Estas redes son capaces de aprender características
posición y orientación de las articulaciones y extremidades del complejas y representaciones de imágenes, lo que es esencial
cuerpo humano en imágenes o videos. Esto implica la para identificar y rastrear las articulaciones del cuerpo humano
determinación de la posición tridimensional de estas en diferentes posturas. Las bibliotecas de aprendizaje profundo,
como TensorFlow y PyTorch, ofrecen herramientas y marcos 5. API de Alto Nivel:
para entrenar y desplegar modelos de estimación de postura.
MediaPipe proporciona una API de alto nivel que facilita a
los desarrolladores la creación de aplicaciones que aprovechan
5. Creación de Conjuntos de Datos Personalizados sus capacidades de procesamiento de medios.
Para entrenar modelos de estimación de postura, es
fundamental contar con conjuntos de datos personalizados que
contengan imágenes de ejemplo de las posturas de interés. La 6. Compatibilidad Multiplataforma:
creación y etiquetado de estos conjuntos de datos son procesos
cruciales que requieren una atención meticulosa para garantizar MediaPipe es compatible con múltiples plataformas,
que el modelo sea preciso y generalizable. incluyendo Android, iOS, Linux y Windows, lo que permite la
implementación de aplicaciones en una variedad de
6. Interacción con Hardware y Software dispositivos.
La estimación de postura se puede aplicar para interactuar
con hardware y software. Por ejemplo, es posible manipular 7. Módulos Personalizables:
juegos, activar dispositivos como Arduino o crear interfaces de
usuario intuitivas basadas en gestos. Esto abre un amplio Los desarrolladores pueden personalizar y ampliar
espectro de aplicaciones en áreas como el entretenimiento, la MediaPipe utilizando módulos de procesamiento
atención médica y la robótica. personalizados para satisfacer las necesidades específicas de su
aplicación.
III. MEDIAPIPE Y SU ARQUITECTURA
8. Pipeline de Datos Complejo:
MediaPipe es una plataforma de procesamiento de medios
en tiempo real desarrollada por Google. Su arquitectura se MediaPipe admite pipelines de procesamiento complejos
centra en el procesamiento eficiente de flujos de datos que pueden involucrar múltiples módulos de procesamiento
multimedia en tiempo real. A continuación, se detallan los interconectados para tareas avanzadas de visión por
componentes clave de su arquitectura: computadora y procesamiento de medios.

1. Flujo de Datos en Tiempo Real:


Se especializa en el procesamiento de flujos de datos en
tiempo real, como imágenes de cámara o secuencias de video.
Estos datos fluyen a través de una serie de módulos de
procesamiento de manera continua (ver fig. 1. Gráfico de
solución de manos de MediaPipe).

Fig. 1. Gráfico de solución de manos de MediaPipe. [1]


2. Grafo de Procesamiento:
En lo que respecta a las redes neuronales y las técnicas de
Utiliza un grafo de procesamiento en el que los módulos se
optimización y regularización utilizadas en MediaPipe:
conectan en una estructura de grafo dirigido. Cada nodo del
grafo representa un módulo de procesamiento específico.
• MediaPipe emplea redes neuronales convolucionales
3. Módulos de Procesamiento: (CNN) y otras arquitecturas de redes neuronales
profundas para tareas de visión por computadora. Estas
Los módulos de procesamiento son componentes redes se adaptan según la tarea específica, como la
funcionales en la arquitectura de MediaPipe. Cada módulo detección de objetos, la detección facial o el
realiza una tarea específica, como detección de objetos, seguimiento de manos.
seguimiento de manos, detección facial o estimación de pose.
• Algunas arquitecturas de red específicas incluyen
MobileNet para aplicaciones móviles, SSD (Single
4. Optimización de Rendimiento: Shot MultiBox Detector) para detección de objetos y
redes personalizadas como BlazeFace para la detección
Utiliza técnicas de optimización de rendimiento, como el facial en tiempo real.
uso de aceleración de hardware, para garantizar que los
algoritmos de procesamiento funcionen de manera eficiente en • Para el entrenamiento de estas redes, se utilizan
tiempo real, incluso en dispositivos móviles y sistemas optimizadores como el Descenso de Gradiente
embebidos. Estocástico (SGD) o variantes como Adam. Además,
se aplican técnicas de regularización, como la
disminución del coeficiente de aprendizaje y la
regularización L1 y L2, para evitar el sobreajuste y b) Creación de Conjuntos de Datos: Se requerirá la
mejorar el rendimiento. construcción de un conjunto de datos personalizado que
contenga imágenes representativas de al menos cinco
En relación con la arquitectura empleada en esta solución, posturas. El etiquetado preciso de estas imágenes será
se utiliza “MediaPipe Hands” que combina diferentes modelos crucial para el entrenamiento del modelo.
para la detección y clasificación de gestos realizados con las
manos: c) Desarrollo de la Aplicación: La creación de una
aplicación funcional que permita la captura en tiempo
Modelo de Detección de la Palma: Este componente se real de imágenes de una cámara y la estimación de
encarga de identificar y delimitar la posición y orientación de posturas a través del modelo seleccionado. La aplicación
la mano en la imagen capturada. Su tarea principal es debe ser capaz de clasificar las posturas y,
proporcionar un cuadro delimitador que englobe la mano posteriormente, activar acciones específicas para cada
detectada. una de ellas.
Modelo de Referencia de la Mano: Una vez que el modelo d) Plataforma de Implementación: La elección de la
de detección de la palma ha localizado la mano, el modelo de plataforma en la que se desplegará la aplicación es
referencia de la mano entra en acción. Este segundo relevante. La aplicación debe ser compatible con
componente se enfoca en la región de la imagen recortada,
entornos colaborativos en línea, configuraciones locales
definida por el cuadro delimitador generado previamente. Su o páginas web, según las necesidades del proyecto.
objetivo es identificar y devolver puntos clave de la mano en
un espacio tridimensional (3D). e) Interacción con Hardware y Software: El desafío
consiste en integrar la estimación de postura con
acciones concretas. Esto podría incluir la manipulación
de juegos, la activación de hardware, como Arduino, o
cualquier otra acción deseada.

V. PLANTEAMIENTO DE LA SOLUCIÓN

Fig. 2. Puntos de referencia de las manos y sus índices. [2] La solución implementada se basa en la combinación de la
biblioteca MediaPipe para la estimación de la postura de la
mano y la biblioteca Pygame para crear un juego de
IV. DESCRIPCION DEL PROBLEMA plataformas 2D. A continuación, se detalla cómo funciona esta
solución:
El problema central de esta actividad radica en la
implementación de un sistema que aproveche la estimación de
postura utilizando arquitecturas tipo MediaPipe o tecnologías 1. Estimación de Postura con MediaPipe:
similares. Se plantea el desafío de crear una aplicación capaz
La solución utiliza la biblioteca MediaPipe para realizar
de detectar, clasificar y actuar en función de al menos cinco la estimación de la postura de la mano en tiempo real a través
posturas corporales distintas. La aplicación puede ser ejecutada de una cámara. Esto se logra mediante el uso de la función
en diversas plataformas, ya sea en un entorno colaborativo en `mp.solutions.hands` de MediaPipe, que detecta las
línea como Google Colab, en una configuración local articulaciones de la mano y los dedos.
utilizando una distribución de Python como Anaconda, o a
través de una página web accesible al público. El proceso
implica la captura de imágenes en tiempo real a través de una
cámara y la realización de acciones específicas con cada 2. Captura de Imágenes y Procesamiento:
postura estimada, como la manipulación de un juego o el La cámara captura imágenes en tiempo real, que se
control de hardware, como dispositivos Arduino. procesan para identificar las coordenadas de las articulaciones
y dedos de la mano. Se definen varios puntos clave de interés
en la mano, incluyendo los dedos pulgar, índice, medio, anular
Para abordar este problema, se deben considerar varios y meñique.
aspectos críticos:

3. Cálculo de Estados de los Dedos:


a) Selección de Tecnología: La elección de una arquitectura La solución determina el estado de cada dedo en función
adecuada, como MediaPipe o tecnologías análogas, para de su posición y relación con otros dedos. Por ejemplo, se
la estimación de postura es fundamental. Esta elección verifica si el pulgar está extendido o doblado, si el índice está
afectará significativamente la precisión y eficiencia de la levantado o si el dedo medio está extendido.
detección de posturas.
4. Control de un Juego de Plataformas:
La aplicación incluye un juego de plataformas en 2D
implementado con la biblioteca Pygame. El jugador se
representa como un cuadrado de colores, y el objetivo es mover
al jugador en el entorno del juego.

5. Interacción Basada en la Estimación de Postura:


La estimación de postura se utiliza para controlar la
acción del juego. Los estados de los dedos detectados (mano
cerrada, mano abierta, índice levantado, pulgar solo o índice y
medio levantados) determinan cómo el jugador se mueve o
interactúa en el juego.
Fig. 3. Mano abierta, comando “A”: acción de agacharse.

6. Visualización y Retroalimentación:
La solución proporciona una visualización en tiempo real
de la mano, resaltando las posiciones de las articulaciones y
dedos. Además, muestra información en pantalla sobre el
estado de los dedos y su efecto en el juego, como el número de
dedos levantados y el cambio de colores.

7. Generación de Plataformas Aleatorias:


El juego genera plataformas de manera aleatoria para que
el jugador pueda moverse y saltar. La generación de
plataformas se controla por un proceso de probabilidades.

8. Control Multihilo: Fig. 4. Mano cerrada, comando “W”: acción de saltar.

Para lograr la estimación de postura y el funcionamiento


del juego de forma paralela, se implementa un sistema de hilos.
Dos hilos se ejecutan de manera simultánea: uno para el
seguimiento de la mano (estimación de postura) y otro para el
funcionamiento del juego.

VI. RESULTADOS

En esta sección, se presentan los resultados visuales que


evidencian la interacción en tiempo real entre la estimación de
postura de la mano y el juego de plataformas 2D. A través de
una serie de capturas de pantalla, se ilustra cómo la detección
precisa de posturas, como la mano abierta, el pulgar solo, el
índice levantado y otros gestos, se traduce en acciones (a)
específicas dentro del juego. Cada captura de pantalla refleja
momentos clave de la interacción, demostrando cómo los
movimientos de la mano influyen directamente en el
comportamiento del personaje del juego. Estas imágenes
ofrecen una representación visual de cómo la tecnología de
estimación de postura permite una experiencia de juego
inmersiva y basada en gestos, explorando el potencial de la
interacción humano-máquina en el entretenimiento interactivo.
(b)
Fig. 5. (a)(b) Pulgar levantado, comando “D”: acción de desplazarse a la
derecha.

(b)
Fig. 7. (a)(b) Índice y medio levantado, comando “SPACE”: acción de
cambiar de color al personaje.

CONCLUSIONES
(a) La realización exitosa de este proyecto, que se centra en el
uso de la estimación de postura con una arquitectura tipo
MediaPipe y su aplicación en un juego de plataformas 2D,
resalta el poder transformador de la tecnología de visión por
computadora en el ámbito del entretenimiento interactivo y
más allá. Durante el desarrollo de este proyecto, se ha logrado
una interacción efectiva y dinámica entre los gestos de la mano
del usuario y las acciones dentro del juego, demostrando la
eficacia de la arquitectura MediaPipe en la detección y
clasificación de posturas.
La capacidad de controlar el movimiento del personaje,
saltar y cambiar colores mediante gestos de la mano, como la
(b)
mano abierta o el pulgar solo, ofrece una experiencia de juego
Fig. 6. (a)(b) Índice levantado, comando “S”: acción de desplazarse a la única y cautivadora. Además, la detección y clasificación de al
izquierda.
menos cinco posturas distintas demuestra la versatilidad de la
tecnología de estimación de postura en la creación de
aplicaciones interactivas.
Este proyecto no solo tiene aplicaciones en el ámbito del
entretenimiento, sino que también sugiere un amplio abanico
de posibilidades en el contexto de la accesibilidad y la
interacción humano-máquina. La tecnología de estimación de
postura, respaldada por arquitecturas como MediaPipe, se
presenta como un recurso valioso que promete innovaciones
futuras en la interacción basada en gestos.

REFERENCES

[1] Introduction to MediaPipe | LearnOpenCV. (1 de marzo de 2022).


(a)
Accedido el 20 de octubre de 2023. [Imagen]. Disponible:
https://learnopencv.com/introduction-to-mediapipe/
[2] Face and Hand Landmarks Detection using Python - Mediapipe,
OpenCV - GeeksforGeeks. (12 de octubre de 2021). Accedido el 20 de
octubre de 2023. [Imagen]. Disponible:
https://www.geeksforgeeks.org/face-and-hand-landmarks-detection-
using-python-mediapipe-opencv/
[3] Cao, Z., Simon, T., Wei, S. E., & Sheikh, Y. (2017). "Realtime multi-
person 2D pose estimation using part affinity fields." En Proceedings of
the IEEE Conference on Computer Vision and Pattern Recognition
(CVPR), pp. 7291-7299.
[4] Chen, Y., Wang, Z., Peng, Y., Zhang, Z., Yu, G., & Sun, J. (2018).
"Cascaded pyramid network for multi-person pose estimation." En
Proceedings of the IEEE Conference on Computer Vision and Pattern python/#:~:text=Para%20instalar%20MediaPipe%20en%20nuestro,tene
Recognition (CVPR), pp. 7103-7112. r%20previamente%20instalado%20Python%203.&text=Pero%20si
[5] Kendall, A., & Cipolla, R. (2017). "MediaPipe: A convolutional %20en%20realidad%20no,puedes%20seguir%20los%20mismos%20pas
network for real-time 6-DOF camera relocalization." En Proceedings of os.&text=pip%20install%20mediapipe%20.
the International Conference on Computer Vision (ICCV), pp. 2938- [8] J. Cáceres. “Sistema de reconocimiento de gestos utilizando técnicas de
2946. Machine Learning en un entorno quirúrgico”. oa.upm. Accedido el 18 de
[6] Cheng, Y., Wang, D., Zhou, P., & Zhang, T. (2019). "Modeling 3D octubre de 2023. [En línea]. Disponible:
human poses from 2D joint locations." En Proceedings of the IEEE https://oa.upm.es/70354/1/TFG_JAVIER_CACERES_BORDALLO.pdf
International Conference on Computer Vision (ICCV), pp. 4385-4393.
[7] “? Como instalar MEDIAPIPE | Python » omes-va.com”. OMES.
Accedido el 18 de octubre de 2023. [En línea]. Disponible: https://omes-
va.com/como-instalar-mediapipe-

También podría gustarte