Estimación de poses

La estimación de pose es la tarea de usar un modelo ML para estimar la pose de una persona a partir de una imagen o un video al estimar las ubicaciones espaciales de las articulaciones clave del cuerpo (puntos clave).

Empezar

Si es nuevo en TensorFlow Lite y está trabajando con Android o iOS, explore las siguientes aplicaciones de ejemplo que pueden ayudarlo a comenzar.

Ejemplo de Android Ejemplo de iOS

Si está familiarizado con las API de TensorFlow Lite , descargue el modelo inicial de estimación de pose MoveNet y los archivos de soporte.

Descargar modelo de inicio

Si desea probar la estimación de la pose en un navegador web, consulte la demostración de TensorFlow JS .

Descripcion del modelo

Cómo funciona

La estimación de poses se refiere a las técnicas de visión por computadora que detectan figuras humanas en imágenes y videos, de modo que uno podría determinar, por ejemplo, dónde aparece el codo de alguien en una imagen. Es importante tener en cuenta el hecho de que la estimación de poses simplemente estima dónde están las articulaciones clave del cuerpo y no reconoce quién está en una imagen o video.

Los modelos de estimación de pose toman una imagen de cámara procesada como entrada y salida de información sobre puntos clave. Los puntos clave detectados se indexan mediante un ID de pieza, con una puntuación de confianza entre 0,0 y 1,0. La puntuación de confianza indica la probabilidad de que exista un punto clave en esa posición.

Proporcionamos una implementación de referencia de dos modelos de estimación de poses de TensorFlow Lite:

  • MoveNet: el modelo de estimación de poses de última generación disponible en dos sabores: iluminación y trueno. Vea una comparación entre estos dos en la sección a continuación.
  • PoseNet: el modelo de estimación de pose de la generación anterior lanzado en 2017.

Las diversas articulaciones del cuerpo detectadas por el modelo de estimación de pose se tabulan a continuación:

Identificación Parte
0 nariz
1 ojo izquierdo
2 Ojo derecho
3 oreja izquierda
4 oreja derecha
5 hombro izquierdo
6 hombro derecho
7 codo izquierdo
8 codo derecho
9 Muñeca izquierda
10 muñeca derecha
11 cadera izquierda
12 cadera derecha
13 rodilla izquierda
14 rodilla derecha
15 tobillo izquierdo
dieciséis tobillo derecho

A continuación se muestra un ejemplo de salida:

Animación que muestra la estimación de pose

Puntos de referencia de rendimiento

MoveNet está disponible en dos sabores:

  • MoveNet.Lightning es más pequeño, más rápido pero menos preciso que la versión Thunder. Puede ejecutarse en tiempo real en los teléfonos inteligentes modernos.
  • MoveNet.Thunder es la versión más precisa pero también más grande y lenta que Lightning. Es útil para los casos de uso que requieren una mayor precisión.

MoveNet supera a PoseNet en una variedad de conjuntos de datos, especialmente en imágenes con imágenes de acción de fitness. Por lo tanto, recomendamos usar MoveNet sobre PoseNet.

Los números de referencia de rendimiento se generan con la herramienta que se describe aquí . Los números de precisión (mAP) se miden en un subconjunto del conjunto de datos COCO en el que filtramos y recortamos cada imagen para que contenga solo una persona.

Modelo Tamaño (MB) mapa Latencia (ms)
Pixel 5 - CPU 4 subprocesos Píxel 5 - GPU Raspberry Pi 4 - CPU 4 hilos
MoveNet.Thunder (FP16 cuantificado) 12,6 MB 72.0 155ms 45ms 594ms
MoveNet.Thunder (INT8 cuantificado) 7,1 MB 68,9 100ms 52ms 251ms
MoveNet.Lightning (FP16 cuantificado) 4,8 MB 63.0 60ms 25ms 186ms
MoveNet.Lightning (INT8 cuantificado) 2,9 MB 57.4 52ms 28ms 95ms
PoseNet (red troncal MobileNetV1, FP32) 13,3 MB 45.6 80ms 40ms 338ms

Más lecturas y recursos

  • Consulte esta publicación de blog para obtener más información sobre la estimación de poses con MoveNet y TensorFlow Lite.
  • Consulte esta publicación de blog para obtener más información sobre la estimación de poses en la web.
  • Consulte este tutorial para aprender a ejecutar MoveNet en Python con un modelo de TensorFlow Hub.
  • Coral/EdgeTPU puede hacer que la estimación de poses se ejecute mucho más rápido en dispositivos de borde. Consulte los modelos optimizados para EdgeTPU para obtener más detalles.
  • Lea el artículo de PoseNet aquí

Además, echa un vistazo a estos casos de uso de estimación de pose.