detecção de poses

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

A API ML Kit Pose Detection é uma solução leve e versátil para que desenvolvedores de apps possam detectar a posição de um corpo de assunto em tempo real a partir de um vídeo contínuo ou de uma imagem estática. Uma posição descreve a posição do corpo em um momento no tempo com um conjunto de pontos de referência esqueléticos. Os pontos turísticos correspondem a diferentes partes do corpo, como os ombros e o quadril. As posições relativas dos pontos de referência podem ser usadas para distinguir uma posição de outra.

iOS Android

A detecção de poses do kit de ML produz uma correspondência esquelética de 33 pontos em todo o corpo que inclui pontos de referência faciais (orelhas, olhos, boca e nariz) e pontos nas mãos e nos pés. A figura 1 abaixo mostra os pontos de referência que observam a câmera pelo usuário, portanto, é uma imagem espelhada. O lado direito do usuário aparece à esquerda da imagem:

Figura 1. Pontos de referência

A detecção de poses do kit de ML não exige equipamentos especializados nem experiência em ML para alcançar ótimos resultados. Com essa tecnologia, os desenvolvedores podem criar experiências exclusivas para os usuários com apenas algumas linhas de código.

O rosto do usuário precisa estar presente para detectar uma pose. A detecção de poses funciona melhor quando todo o corpo da pessoa está visível no frame, mas também detecta uma posição de corpo parcial. Nesse caso, os pontos de referência não reconhecidos recebem coordenadas fora da imagem.

Principais recursos

  • Suporte multiplataforma: aproveite a mesma experiência no Android e no iOS.
  • Monitoramento completo do corpo: o modelo retorna 33 pontos de referência esqueléticos principais, incluindo as posições das mãos e dos pés.
  • Pontuação InFrameLikelihood: para cada ponto de referência, uma medida que indica a probabilidade de que o ponto de referência esteja dentro do frame da imagem. A pontuação tem um intervalo de 0,0 a 1,0, em que 1,0 indica alta confiança.
  • Dois SDKs otimizados. O SDK base é executado em tempo real em smartphones modernos, como o Pixel 4 e o iPhone X. Ela retorna resultados a uma taxa de ~30 e ~45 qps, respectivamente. No entanto, a precisão das coordenadas do ponto de referência pode variar. O SDK preciso retorna resultados em um frame rate mais lento, mas produz valores de coordenadas mais precisos.
  • Z Coordinate para análise de profundidade Esse valor pode ajudar a determinar se partes do corpo do usuário estão na frente ou atrás dos quadris. Para mais informações, consulte a seção Coordenadas Z abaixo.

A API Pose Detection é semelhante à API Facial Recognition, porque retorna um conjunto de pontos de referência e a localização deles. Ainda que a detecção de rosto também tente reconhecer recursos como uma boca sorridente ou olhos abertos, a detecção de poses não anexa qualquer significado às pontos de referência em uma pose ou na própria pose. Você pode criar seus próprios algoritmos para interpretar uma posição. Consulte Dicas de classificação de poses para ver alguns exemplos.

A detecção de poses só pode detectar uma pessoa em uma imagem. Se duas pessoas estiverem na imagem, o modelo atribuirá pontos de referência à pessoa detectada com a maior confiança.

Coordenada Z

A coordenada Z é um valor experimental calculado para cada ponto de referência. Ela é medida em "pixels de imagem" como as coordenadas X e Y, mas não é um valor verdadeiro de 3D. O eixo Z é perpendicular à câmera e passa entre os quadris de uma pessoa. A origem do eixo Z é aproximadamente o ponto central entre os quadris (esquerda/direita e frontal/traseira em relação à câmera). Os valores Z negativos estão em direção à câmera, e os valores positivos estão longe dela. A coordenada Z não tem um limite superior ou inferior.

Resultados da amostra

A tabela a seguir mostra as coordenadas e o InFrameLikelihood para alguns pontos de referência na posição à direita. As coordenadas Z da mão esquerda do usuário são negativas, porque estão na frente dos quadris do assunto, na direção central e em direção à câmera.

Ponto de referênciaTipoCargoInFrameLikelihood
11Left_SHOULDER(734.9671, 550.7924, -118.11934)0,9999038
12 RIGHT_SHOULDER (391.27032, 583.2485, -321.15836) 0,9999894
13 Left_ELBOW (903.83704, 754.676, -219.67009) 0,9836427
14 RIGHT_ELBOW (322.18152, 842.5973, -179.28519) 0,99970156
15 ESQUERDO_PULSO (1073.8956, 654.9725, -820.93463) 0,9737737
16 RIGHT_WRIST (218.27956, 1015.70435, -683.6567) 0,995568
17 Left_PINKY (1146.1635, 609.6432, -956.9976) 0,95273364
18 RIGHT_PINKY (176.17755, 1065.838, -776.5006) 0,9785348

Configurações avançadas

Para mais detalhes de implementação sobre os modelos de ML subjacentes para essa API, confira nossa postagem do blog do Google AI.

Para saber mais sobre nossas práticas de imparcialidade de ML e como os modelos foram treinados, consulte nosso Card de modelo