O Dia da Comunidade de ML é dia 9 de novembro! Junte-nos para atualização de TensorFlow, JAX, e mais Saiba mais

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 seguintes aplicativos de exemplo que podem ajudá-lo a começar.

Exemplo Android exemplo iOS

Se você está familiarizado com as Lite APIs TensorFlow , baixar o modelo de estimativa postura arranque MoveNet e arquivos de suporte.

Baixe o modelo inicial

Se você quiser tentar a estimativa pose em um navegador web, confira o TensorFlow JS Demonstração .

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, de modo 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 os 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 que exista 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 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:

Identificação 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 leftHip
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 estimativa de pose

Benchmarks de desempenho

O MoveNet está disponível em dois sabores:

  • O MoveNet.Lightning é menor, mais rápido, mas menos preciso do 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 os casos de uso que requerem 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 de MoveNet em vez de PoseNet.

Números de benchmark de desempenho são gerados com a ferramenta descrita aqui . Precisão (MAP) números são medidos em um subconjunto do conjunto de dados COCO em que filtrar e cortar 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 (backbone MobileNetV1, FP32) 13,3 MB 45,6 80ms 40ms 338ms

Leitura adicional e recursos

  • Confira este post para saber mais sobre estimativa de postura usando MoveNet e TensorFlow Lite.
  • Confira este post para saber mais sobre estimativa de postura na web.
  • Confira este tutorial para aprender sobre o funcionamento MoveNet em Python utilizando um modelo de TensorFlow Hub.
  • Coral / EdgeTPU pode fazer a estimativa de pose funcionar muito mais rápido em dispositivos IoT. Veja modelos EdgeTPU otimizado para mais detalhes.
  • Ler o jornal PoseNet aqui

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