Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
tensorflow
GitHub Repository: tensorflow/docs-l10n
Path: blob/master/site/pt-br/lite/models/pose_estimation/overview.md
25118 views

Estimativa de pose

Estimativa de pose é a tarefa de usar um modelo de aprendizado de máquina para estimar a pose de uma pessoa em uma imagem ou vídeo. Isso é feito estimando-se as localizações espaciais de juntas importantes do corpo (pontos-chave).

Como começar

Se você estiver apenas começando a usar o TensorFlow Lite e estiver trabalhando com Android ou iOS, confira os exemplos de aplicativo abaixo que podem te ajudar a começar.

Exemplo do Android Exemplo do iOS

Se você já conhecer bem as APIs do TensorFlow Lite, baixe o modelo inicial de estimativa de pose MoveNet e os arquivos de suporte.

Baixar modelo inicial

Se você quiser testar a estimativa de pose em um navegador, confira a Demonstração em JS do TensorFlow.

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 determinar, por exemplo, onde o cotovelo de uma pessoa aparece em uma imagem. É importante saber que a estimativa de pose estima apenas onde estão as juntas importantes do corpo e não reconhece quem está em uma imagem ou vídeo.

Os modelos de estimativa de pose recebem uma imagem de câmera pré-processada como entrada e geram como saída informações sobre os pontos-chave. Os pontos-chave detectados são indexados por um ID da parte do corpo, com uma pontuação de confiança entre 0,0 e 1,0. A pontuação de confiança indica a probabilidade de um ponto-chave existir nessa posição.

Fornecemos a implementação de referência de dois modelos de estimativa de pose do TensorFlow Lite:

  • MoveNet: modelo moderno de estimativa de pose em duas versões: Lighting e Thunder. Confira o comparativo entre as duas na seção abaixo.

  • PoseNet: modelo de estimativa de pose da geração anterior, lançado em 2017.

As diversas juntas do corpo detectadas pelo modelo de estimativa de pose estão tabuladas abaixo:

ID Parte do corpo
0 nose (nariz)
1 leftEye (olho esquerdo)
2 rightEye (olho direito)
3 leftEar (orelha esquerda)
4 rightEar (orelha direita)
5 leftShoulder (ombro esquerdo)
6 rightShoulder (ombro direito)
7 leftElbow (cotovelo esquerdo)
8 rightElbow (cotovelo direito)
9 leftWrist (punho esquerdo)
10 rightWrist (punho direito)
11 leftHip (lado esquerdo do quadril)
12 rightHip (lado direito do quadril)
13 leftKnee (joelho esquerdo)
14 rightKnee (joelho direito)
15 leftAnkle (tornozelo esquerdo)
16 rightAnkle (tornozelo direito)

Veja um exemplo de saída abaixo:

Animation showing pose estimation

Referenciais de desempenho

MoveNet está disponível em duas versões:

  • MoveNet.Lightning é menor, mas menos exata do que a versão Thunder. Pode ser executada em tempo real em smartphones modernos.

  • MoveNet.Thunder é a versão mais exata e lenta do que a versão Lightning. É útil para casos de uso que exigem maior exatidão.

O MoveNet tem desempenho melhor do que o PoseNet para diversos datasets, especialmente com imagens de exercícios físicos. Portanto, recomendamos usar o MoveNet em vez do PoseNet.

Os números de referencial de desempenho são gerados com a ferramenta descrita aqui. Os números de exatidão (mAP) são mensurados em um subconjunto do dataset COCO, em que filtramos e cortamos cada imagem para que contenha somente uma pessoa.

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

Leituras e recursos adicionais

  • Confira esta postagem no blog para saber mais sobre a estimativa de pose usando o MoveNet e o TensorFlow Lite.

  • Confira esta postagem no blog para saber mais sobre a estimativa de pose na web.

  • Confira este tutorial para saber mais sobre como executar o MoveNet no Python usando um modelo do TensorFlow Hub.

  • O Coral/EdgeTPU pode deixar a execução da estimativa de pose muito mais rápida em dispositivos de borda. Confira mais detalhes em Modelos otimizados para EdgeTPU.

  • Leia o artigo do PoseNet aqui

Além disso, confira estes casos de uso de estimativa de pose: