A estimativa de pose é a tarefa de usar um modelo de ML para estimar a pose de uma pessoa a partir de uma imagem ou vídeo, estimando as localizações espaciais das principais articulações do corpo (pontos-chave).
iniciar
Se você é novo no TensorFlow Lite e trabalha com Android ou iOS, explore os exemplos de aplicativos a seguir que podem ajudá-lo a começar.
Exemplo Android Exemplo iOS
Se você estiver familiarizado com as APIs do TensorFlow Lite , baixe o modelo inicial de estimativa de pose MoveNet e os arquivos de suporte.
Se você quiser tentar a estimativa de pose em um navegador da web, confira a demonstração do TensorFlow JS .
Descrição do modelo
Como funciona
A estimativa de pose refere-se a técnicas de visão computacional que detectam figuras humanas em imagens e vídeos, para que se possa determinar, por exemplo, onde o cotovelo de alguém aparece em uma imagem. É importante estar ciente do fato de que a estimativa de pose apenas estima onde estão as principais articulações do corpo e não reconhece quem está em uma imagem ou vídeo.
Os modelos de estimativa de pose pegam uma imagem de câmera processada como entrada e geram informações sobre pontos-chave. Os pontos-chave detectados são indexados por um ID de peça, com uma pontuação de confiança entre 0,0 e 1,0. A pontuação de confiança indica a probabilidade de existir um ponto-chave naquela posição.
Fornecemos implementação de referência de dois modelos de estimativa de pose do TensorFlow Lite:
- MoveNet: o modelo de estimativa de pose de última geração disponível em dois sabores: Iluminação e Trovão. Veja uma comparação entre os dois na seção abaixo.
- PoseNet: o modelo de estimativa de pose da geração anterior lançado em 2017.
As várias articulações do corpo detectadas pelo modelo de estimativa de pose são tabuladas abaixo:
Eu ia | Papel |
---|---|
0 | nariz |
1 | olho esquerdo |
2 | olho direito |
3 | orelha esquerda |
4 | orelha direita |
5 | ombro esquerdo |
6 | ombro direito |
7 | cotovelo esquerdo |
8 | cotovelo direito |
9 | pulso esquerdo |
10 | direitoPulso |
11 | quadril esquerdo |
12 | quadril direito |
13 | joelho esquerdo |
14 | joelho direito |
15 | tornozelo esquerdo |
16 | tornozelo direito |
Um exemplo de saída é mostrado abaixo:
Referências de desempenho
MoveNet está disponível em dois sabores:
- MoveNet.Lightning é menor, mais rápido, mas menos preciso que a versão Thunder. Ele pode ser executado em tempo real em smartphones modernos.
- MoveNet.Thunder é a versão mais precisa, mas também maior e mais lenta que o Lightning. É útil para casos de uso que exigem maior precisão.
MoveNet supera PoseNet em uma variedade de conjuntos de dados, especialmente em imagens com imagens de ação de fitness. Portanto, recomendamos o uso do MoveNet em vez do PoseNet.
Os números de benchmark de desempenho são gerados com a ferramenta descrita aqui . Os números de precisão (mAP) são medidos em um subconjunto do conjunto de dados COCO no qual filtramos e cortamos cada imagem para conter apenas uma pessoa.
Modelo | Tamanho (MB) | mapa | Latência (ms) | ||
---|---|---|---|---|---|
Pixel 5 – CPU 4 threads | Pixel 5 – GPU | Raspberry Pi 4 - CPU 4 threads | |||
MoveNet.Thunder (FP16 quantizado) | 12,6 MB | 72,0 | 155ms | 45ms | 594ms |
MoveNet.Thunder (INT8 quantizado) | 7,1 MB | 68,9 | 100ms | 52ms | 251ms |
MoveNet.Lightning (FP16 quantizado) | 4,8 MB | 63,0 | 60ms | 25ms | 186ms |
MoveNet.Lightning (INT8 quantizado) | 2,9 MB | 57,4 | 52ms | 28ms | 95ms |
PoseNet (espinha dorsal MobileNetV1, FP32) | 13,3 MB | 45,6 | 80ms | 40ms | 338ms |
Leitura adicional e recursos
- Confira esta postagem do blog para saber mais sobre estimativa de pose usando MoveNet e TensorFlow Lite.
- Confira esta postagem do blog para saber mais sobre estimativa de pose na web.
- Confira este tutorial para saber como executar o MoveNet em Python usando um modelo do TensorFlow Hub.
- Coral/EdgeTPU pode fazer com que a estimativa de pose seja executada muito mais rapidamente em dispositivos de ponta. Consulte modelos otimizados para EdgeTPU para obter mais detalhes.
- Leia o artigo da PoseNet aqui
Além disso, verifique estes casos de uso de estimativa de pose.