Estimativa de pose

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 está trabalhando com Android ou iOS, explore os aplicativos de exemplo a seguir que podem ajudá-lo a começar.

Exemplo de Android Exemplo de 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.

Baixe o modelo inicial

Se você quiser experimentar a estimativa de pose em um navegador da Web, confira a Demo 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 emitem 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 nessa 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: Lighting e Thunder. Veja uma comparação entre esses 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:

Identidade 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 pulso direito
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:

Animação mostrando a estimativa de pose

Referências de desempenho

O MoveNet está disponível em dois sabores:

  • O MoveNet.Lightning é menor, mais rápido, mas menos preciso que a versão Thunder. Ele pode ser executado em tempo real em smartphones modernos.
  • O MoveNet.Thunder é a versão mais precisa, mas também maior e mais lenta que o Lightning. É útil para os casos de uso que exigem maior precisão.

O MoveNet supera o 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 referência 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 recortamos cada imagem para conter apenas uma pessoa .

Modelo Tamanho (MB) mapa Latência (ms)
Pixel 5 - threads da CPU 4 Pixel 5 - GPU Raspberry Pi 4 - CPU 4 threads
MoveNet.Thunder (FP16 quantizado) 12,6 MB 72,0 155ms 45ms 594 ms
MoveNet.Thunder (INT8 quantizado) 7,1 MB 68,9 100 ms 52ms 251 ms
MoveNet.Lightning (FP16 quantizado) 4,8 MB 63,0 60ms 25ms 186 ms
MoveNet.Lightning (INT8 quantizado) 2,9 MB 57,4 52ms 28ms 95ms
PoseNet (backbone MobileNetV1, FP32) 13,3 MB 45,6 80ms 40ms 338 ms

Leitura adicional e recursos

  • Confira esta postagem do blog para saber mais sobre a estimativa de pose usando o MoveNet e o 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 borda. Consulte Modelos otimizados para EdgeTPU para obter mais detalhes.
  • Leia o artigo PoseNet aqui

Além disso, confira esses casos de uso de estimativa de pose.