Estimación de poses

La estimación de la pose es la tarea de utilizar un modelo de ML para estimar la pose de una persona a partir de una imagen o un vídeo estimando 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 de MoveNet y los archivos de soporte.

Descargar modelo inicial

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

Descripcion del modelo

Cómo funciona

La estimación de pose se refiere a técnicas de visión por computadora que detectan figuras humanas en imágenes y videos, de modo que se pueda determinar, por ejemplo, dónde aparece el codo de alguien en una imagen. Es importante ser consciente del hecho de que la estimación de pose simplemente calcula dónde están las articulaciones clave del cuerpo y no reconoce quién está en una imagen o vídeo.

Los modelos de estimación de pose toman una imagen de cámara procesada como entrada y generan información sobre puntos clave. Los puntos clave detectados están indexados por 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 pose de TensorFlow Lite:

  • MoveNet: el modelo de estimación de pose de última generación disponible en dos versiones: Lighting y Thunder. Vea una comparación entre estos dos en la sección siguiente.
  • 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 resultado de ejemplo:

Animación que muestra la estimación de pose.

Puntos de referencia de rendimiento

MoveNet está disponible en dos versiones:

  • 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 teléfonos inteligentes modernos.
  • MoveNet.Thunder es la versión más precisa pero también más grande y más lenta que Lightning. Es útil para casos de uso que requieren mayor precisión.

MoveNet supera a PoseNet en una variedad de conjuntos de datos, especialmente en imágenes con imágenes de acción física. Por lo tanto, recomendamos utilizar MoveNet en lugar de 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)
Píxel 5: CPU de 4 subprocesos Píxel 5: GPU Frambuesa Pi 4 - CPU 4 hilos
MoveNet.Thunder (FP16 cuantizado) 12,6MB 72.0 155ms 45ms 594ms
MoveNet.Thunder (INT8 cuantificado) 7,1MB 68,9 100 ms 52ms 251ms
MoveNet.Lightning (FP16 cuantizado) 4,8MB 63.0 60 ms 25 ms 186ms
MoveNet.Lightning (INT8 cuantificado) 2,9MB 57,4 52ms 28ms 95ms
PoseNet (red troncal MobileNetV1, FP32) 13,3MB 45,6 80ms 40 ms 338ms

Más lecturas y recursos

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

Consulte también estos casos de uso de estimación de pose.