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.
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:
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.