BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Artigos Desafios na avaliação postural humana em aplicativos de condicionamento físico baseados em IA

Desafios na avaliação postural humana em aplicativos de condicionamento físico baseados em IA

Favoritos

Pontos Principais

  • A avaliação postural humana é uma solução popular que a IA pode oferecer. É usado para determinar a posição e orientação do corpo humano dada uma imagem contendo uma pessoa;

  • Alguns exemplos de aplicações de avaliação postural no condicionamento físico são Kaia, VAI Fitness Coach, Ally apps ou o dispositivo Millie Fit;

  • Alimentadas por visão computacional e algoritmos de processamento de linguagem natural, as tecnologias conduzem os usuários finais por uma série de exercícios e fornecem feedback em tempo real;

  • Saiba mais sobre os casos de falha nas aplicações de exercícios físicos baseados em IA com exemplos de levantamento de peso e agachamento;

  • Esta área pode ser dividida em avaliação postural 2D e 3D. Embora o nível aceitável de precisão na estimativa de pose 2D já tenha sido alcançado, a estimativa de pose 3D ainda requer mais trabalho até que modelos mais precisos sejam produzidos.

O preparo físico é uma tendência nos dias atuais. Todos os anos, a receita da indústria fitness cresce 8,7%, de acordo com o relatório da Wellness Creatives, e os aplicativos de exercícios físicos não pouparam despesas.

Existem muitos casos de como as tecnologias podem ajudar a melhorar nosso corpo, desde a orientação da atividade física até o ajuste nutricional. A questão é: Até que ponto esses aplicativos podem ajudar a melhorar o desempenho nos exercícios físicos em comparação à personal trainers humanos?

A Inteligência Artificial (conhecida pela sigla IA, um nome amplo para um grupo de métodos, ferramentas e algoritmos avançados para execução automática de várias tarefas) invadiu praticamente todas as áreas funcionais dos negócios ao longo dos anos. A avaliação postural está entre as soluções mais populares que a IA tem a oferecer. É usada para determinar a posição e orientação do corpo humano dada a imagem de uma pessoa. Sem surpresas, uma ferramenta tão útil encontrou muitos casos de uso, por exemplo, pode ser usada na animação de um avatar para realidade virtual, captura de movimento sem a necessidade de marcadores, avaliação postural no trabalho e muito mais.

Com a chegada da tecnologia de avaliação postural humana, o mercado de tecnologia de saúde e bem-estar viu crescer o número de aplicativos de personal trainer baseados na IA. Alguns exemplos de aplicação de avaliação postural no condicionamento físico são a Kaia, o VAI Fitness Coach, os aplicativos da família Ally ou o dispositivos Millie Fit. Utilizando a visão computacional, avaliação postural humana e algoritmos de processamento de linguagem natural, essas tecnologias orientam os usuários por uma série de exercícios e fornecem feedback em tempo real.

Como funciona a avaliação postural dos aplicativos de exercícios físicos

Para entender se os aplicativos de condicionamento físico podem realmente ajudar a realizar exercícios físicos de maneira adequada, vamos ver como os aplicativos baseados em avaliação postural funcionam.

No núcleo de qualquer aplicativo de avaliação postural tem um algoritmo que recebe como entrada uma imagem de uma pessoa e produz as coordenadas dos pontos-chave ou pontos de referência específicos no corpo humano (coordenadas XY em avaliações 2D ou coordenadas XYZ em 3D). Os algoritmos modernos de avaliação postural são quase exclusivamente baseados em redes neurais convolucionais com arquitetura de segmentação (conhecida como, ampulheta) ou suas variantes (veja a imagem abaixo). Essa rede consiste em duas partes principais: Um codificador convolucional que compacta a imagem de entrada na chamada representação latente e um decodificador que constrói N mapas de calor a partir da representação latente, onde N é o número de pontos-chave pesquisados.

Figura 1. Arquitetura ampulheta de uma rede convolucional, Fonte.

Como saída, é produzido um único mapa de calor. Uma imagem de canal único com a mesma resolução da imagem de entrada, na qual cada pixel tem uma probabilidade de conter o ponto-chave de destino expresso em valores entre 0 e 1.

Figura 2. Exemplo de mapas de calor produzidos pela rede neural convolucional para avaliação postural. Da esquerda para a direita: Imagem de entrada, ombro direito, cotovelo direito, mão direita, fonte.

Depois que os mapas de calor são obtidos, calcular as coordenadas dos pontos-chave é tão fácil quanto encontrar os "centros de massa" de cada área com alta probabilidade de ponto-chave.

No entanto, as complicações surgem quando o quadro contém mais de uma pessoa. Quando isso acontece, é difícil entender quais pontos-chave pertencem a cada pessoa e, portanto, é necessário um pós-processamento adicional. Esses casos são chamados de avaliação postural de várias pessoas e podem ser tratados de várias maneiras. Por exemplo, pode-se usar um modelo de detecção de objeto (como o Single Shot Detector, um SSD ou um Mask R-CNN) para detectar uma caixa delimitadora em torno de uma pessoa e, em seguida, executar o modelo de avaliação dentro da caixa detectada. Outra abordagem é usar um algoritmo de agrupamento FG (fast greedy) que conecta os pontos-chave mais próximos com base no gráfico cinemático da pessoa. Este método é usado no modelo PoseNet do Google.

Normalmente, os aplicativos de exercícios físicos baseados em IA devem ser usados em conjunto com dispositivos equipados com uma câmera, que pode gravar vídeos de até 720p e 60 fps para capturar mais quadros durante a execução de um exercício. O algoritmo comum do aplicativo de avaliação postural humana é o seguinte:

  1. Quando o usuário começa a usar o aplicativo, a câmera capta os movimentos durante o exercício e grava o vídeo;
  2. O vídeo gravado é dividido em quadros individuais que são processados com a ajuda do modelo de avaliação postural, que detecta pontos-chave no corpo do usuário formando o "esqueleto" virtual nas dimensões 2D ou 3D;
  3. O "esqueleto" virtual é analisado por meio de regras baseadas na geometria ou outros modelos, e os erros, se houverem, na execução do exercício são identificados;
  4. O usuário recebe a descrição dos erros cometidos e recomendações de como corrigi-los.

Bibliotecas e ferramentas para avaliação postural humana

Uma vez que a avaliação postural humana é uma ferramenta útil para a criação de todos os tipos de sistemas (reconhecimento de atividades suspeitas nos sistemas de vigilância, assistentes de dança interativos, realidade aumentada e muito mais), alguns instrumentos que podem ajudar a acelerar o processo de desenvolvimento aparecem naturalmente. Vamos discutir brevemente algumas das opções disponíveis.

OpenCV

Embora não forneça diretamente modelos de avaliação postural, o OpenCV inclui todos os módulos necessários. Permite a criação de uma instância de um modelo de avaliação pré-treinado, criado o framework de deep learning chamado Caffe, leitura e pré-processamento de imagens, ou até mesmo stream de vídeo, e renderização dos pontos-chave de saída. Veja o exemplo de um código, clicando aqui.

Prós:

  • Muitos tutoriais sobre como configurar e executar os modelos e ferramentas integradas para processamento de imagem.

Contras:

  • Não há muitas opções de customização disponíveis;
  • Grande probabilidade de desempenho ruim em tempo real.

OpenPose

O sistema foi desenvolvido em C++, sobre o framework Caffe, capaz de realizar avaliações posturais do corpo, rosto, mão e pé, totalizando 135 pontos-chave. A funcionalidade da biblioteca inclui a detecção de pontos-chave em 2D e 3D, bem como a detecção de várias pessoas.

Prós: Combinação de detecção de pontos-chave de corpo inteiro e operação em tempo real.

Contras: Por ser apenas para uso não comercial, o desempenho em tempo real pode ser de difícil obtenção se a carga de processamento ficar exclusivamente com a CPU. O sistema mostrou desempenho em tempo real aceitável quando testado em uma configuração com Nvidia 1080 Ti.

PoseNet

É um modelo mais leve desenvolvido pela Google e utiliza o framework de deep learning Tensorflow.

Prós: Pode ser executado em um navegador, pois possui suporte ao Javascript, ou em um app nativo Android ou iOS, usando o Tensorflow Lite, detecção de múltiplas pessoas, inferência rápida (31ms em uma CPU Pixel 3).

Contras: Precisão moderada, pode ser insuficiente para algumas aplicações de avaliação postural.

Detectron2

Uma extensa biblioteca de detecção de objetos do Facebook, os modelos são implementados baseados no framework PyTorch. Possui modelos para uma variedade de tarefas além da avaliação postural: Detecção de objetos, segmentação de instâncias e de panóptica.

Prós: Grande número de modelos disponíveis, alta precisão.

Contras: Sem desempenho em tempo real, especialmente se considerarmos execução utilizando apenas CPU.

AlphaPose

É uma biblioteca de open source para avaliação postural com suporte ao Linux e Windows que possui precisão e velocidade de inferência equilibradas.

Prós: Avaliação de várias pessoas, rastreamento de postura, alta precisão (70 mAP com COCO dataset), além de ser rápido ( 23 fps com COCO validation set).

Contras: Uso não comercial apenas, grandes possibilidades de não funcionar em tempo real em uma CPU (os autores testaram a velocidade no TITAN XP).

Riscos e erros em aplicativos de condicionamento físico com base na avaliação postural humana

Seria interessante que um único aplicativo de condicionamento físico pudesse cobrir todas as questões relacionadas ao condicionamento físico, mas infelizmente, isso ainda não é uma realidade. Neste artigo, gostaria de revisar alguns casos de falha em aplicativos de condicionamento físico baseados em IA que ainda podem ser enfrentados. Como exemplo, fiz a avaliação postural em exercícios de agachamento, uma vez que são bons para ilustrar os erros que às vezes podem acarretar sérios problemas de saúde.

Dentre outras atividades físicas, o levantamento de peso é uma das formas mais populares de condicionamento físico. O agachamento é o exercício básico realizado pelos atletas. Por ser simples à primeira vista, muitas vezes esse exercício não é executado corretamente devido ao grande peso da barra, por isso muitos atletas precisam de um personal trainer.

Agora, suponhamos que um personal trainer humano seja substituído por um aplicativo baseado em IA. Mostrará as mesmas capacidades de avaliação de exercícios que os humanos? Aqui estão os possíveis erros que descobrimos ao investigar a tecnologia de avaliação postural.

Particularidades dos corpos masculinos e femininos

Ao treinar modelos de avaliação postural humana para aplicativos de condicionamento físico, é necessário considerar que os corpos dos homens e mulheres são fisiologicamente diferentes. Se o modelo foi treinado apenas com imagens de homens, ele retornará resultados precisos apenas para usuários do sexo masculino, mas será impreciso no caso do sexo oposto. Como a diferença nas posturas corporais de homens e mulheres durante o treinamento físico é muito grande, o modelo pode gerar resultados incorretos mesmo se o exercício for executado corretamente. Portanto, é importante considerar esse aspecto ao desenvolver um aplicativo de condicionamento físico com base na avaliação postural humana.

Fisiologias específicas

Não existem corpos humanos com proporções ideais. Todos nós temos desproporcionalidades, seja no comprimento das pernas, braços ou tronco. É importante entender que o modelo de avaliação postural analisará o corpo do usuário com base nas imagens de pessoas usadas no treinamento. Assim, a percepção do modelo do corpo do usuário será baseada nos corpos das pessoas a partir das imagens do treinamento. Não há garantia que o conjunto de dados de treinamento foi incluído imagens com uma estrutura corporal semelhante.

Considerando este fator, suponhamos que um usuário seja uma pessoa com características corporais incomuns, como comprimento das pernas ou braços fora do padrão. Ao comparar o desempenho do exercício de tal usuário com os de referência, a precisão do resultado pode ser baixa, mesmo que o exercício tenha sido executado corretamente.

Identificação do início do exercício

A avaliação do exercício envolve a detecção do início e fim do exercício e se espera que o aplicativo também analise o período de duração do exercício. Ao fazer um agachamento terra, o aplicativo pode analisar as posições das mãos e ombros do usuário usando limiares codificados arbitrariamente. O erro pode ocorrer, por exemplo, quando os ângulos do braço ficarem levemente acima do limite arbitrário.

Figura 3. Erro na detecção de início do exercício. A condição é interrompida aleatoriamente depois que a pessoa já começou o exercício, Fonte.

Erro de visão frontal

A comparação dos movimentos entre duas pessoas é mais uma técnica para avaliar a correção do desempenho do exercício. Os dados são usados como quadros de dois registros de vídeo: O vídeo de referência com a técnica de exercício correta e o vídeo de entrada de um usuário que utiliza o aplicativo para analisar o desempenho do exercício. Para comparar esses dois vídeos, é necessário identificar a posição dos pontos-chave 3D em ambos os vídeos, alinhá-los e medir as distâncias entre as articulações do usuário e as articulações de um atleta a partir do vídeo de referência.

O problema está em movimentos incomuns e limitações de conjuntos de dados existentes. Quando o modelo de avaliação postural humana processa quadros com uma visão estritamente frontal, a qualidade dos resultados pode ser baixa, isso porque o conjunto de dados utilizados no treinamento dos modelos de avaliação podem ainda não conter imagens suficientes de movimentos, posturas e perspectivas diferentes.

Figura 4. Comparação de movimentos complexos (vídeo 1, vídeo 2) utilizando análise postural 3D (visão à direita). Problema: Baixa qualidade na avaliação postural de perna, Fonte.

Movimentos rápidos na parte inferior do corpo

Agachar não é o único exemplo de exercícios que aplicativos baseados em IA podem retornar erros. Outro caso é o chute nas artes marciais. Quando uma pessoa dá um chute rápido, o modelo de deep learning pode não captar o movimento. A razão para isso pode ser a transição rápida da perna, podendo causar desfoque parcial dos pontos-chave do membro.

Outra possível razão é que o dataset de ponto-chave 2D (o COCO no caso) pode não conter esse tipo de imagens de membros, portanto, as previsões 3D para a parte inferior do corpo podem não refletir os movimentos reais, uma vez que as detecções 2D que são usadas como entrada para a avaliação postural 3D foram detectados incorretamente.

Figura 5. Detecções 2D de baixa qualidade (pontos laranja no vídeo original. O modelo falha em detectar pontos-chave da perna direita durante o movimento rápido) que levam a detecções 3D ruins, Fonte.

Posição horizontal

Flexões também podem ser um desafio para o modelo de avaliação postural. Ao detectar pontos-chave 2D de braços e pernas no vídeo do atleta fazendo flexões, o modelo retorna um número significativo de erros. Decidimos verificar se funcionaria bem se virássemos o vídeo para analisar os movimentos do atleta na posição vertical, e o resultado foi positivo! Esse problema comprovou a suposição sobre a insuficiência de dados visuais nos dataset abertos mais uma vez.

Figura 6. Detecção de baixa qualidade quando uma pessoa está em uma posição horizontal incomum (esquerda) e melhoria das detecções quando a postura é alterada para uma vertical mais comum (direita), Fonte.

Articulações Obstriuídas

Há exercícios em que partes do corpo são obstruídas por outros objetos ou mesmo por partes do próprio corpo. Um exemplo é shoulder press. Quando a barra tapa a posição das mãos, o detector 2D posiciona os pontos-chave no local errado. Assim, a saída do modelo de avaliação postural 3D é incorreta.

Figura 7. Erro de detecção quando as articulações são obstruídas, no caso, a mão esquerda está obstruída por pesos da barra, Fonte.

A falta de precisão

Alguns algoritmos de avaliação postural que realizam as detecções 2D não têm precisão suficiente para aplicativos de exercícios físicos. Particularmente se usado em dispositivos móveis, por exemplo, usando o modelo PoseNet, cujo objetivo é avaliar posturas humanas em tempo real, é possível ver que as detecções não conseguem acompanhar a velocidade dos movimentos.

Figura 8. Baixa precisão da avaliação em relação a velocidade de inferência no uso de um modelo leve, Fonte.

Como o PoseNet é um modelo leve que deve ser executado a partir do navegador, é possível gerar resultados ruins ao executá-lo em um aplicativo de exercícios físicos a partir de um dispositivo móvel.

Observe que os desafios descritos acima são apenas exemplos de quais problemas podem ser enfrentados ao desenvolver aplicativos de condicionamento físico com base na avaliação postural humana. Superamos a maioria desses desafios pesquisando e testando aplicativos de preparo físico baseados em IA para a avaliação postural em 3D. A estratégia de desenvolvimento de um aplicativo dessa natureza depende de muitos fatores. Por mais básico que pareça, primeiro e mais importante são os requisitos de negócios e os resultados esperados.

Perspectivas de futuro na avaliação de postura humana

Se considerarmos os pontos discutidos acima, seria ótimo ter uma visão mais ampla do que está acontecendo na área de avaliação postural e o que podemos esperar para os próximos anos.

No geral, a área pode ser dividida em avaliação postural 2D e 3D. Embora o nível aceitável de precisão na avaliação 2D já tenha sido alcançado, no caso do 3D ainda requer mais trabalho até que os modelos mais precisos sejam produzidos, especialmente para inferência de uma única imagem e sem informações de profundidade (alguns métodos utilizam várias câmeras apontadas para o pessoa ou informações de sensores de profundidade para obter melhores avaliações).

Parte dos problemas de avaliação postural 3D está na falta de grandes datasets coletados com pessoas em ambientes abertos (alguns datasets da Human3.6M foram todos capturados em ambientes fechados). Há um esforço contínuo para produzir novos datasets que incluam dados mais diversos em termos de condições ambientais, variedade de roupas, articulações fortes, etc. A esperança é que possamos alcançar um melhor desempenho de avaliação postural nestes tipos de condições no futuro.

Outra linha de pesquisa está preocupada em criar modelos rápidos e precisos. O objetivo é permitir que os modelos de avaliação postural (2D e 3D) sejam executados em dispositivos com mais restrições de hardware. Isso é possível explorando mais a fundo as arquiteturas mais eficientes (como o MobileNet e o DenseNet), bem como técnicas que permitem reduzir o tamanho dos modelos e aumentar a velocidade de processamento, removendo a redundância de parâmetros (poda de rede).

Em suma, os esforços feitos para avançar dão fortes evidências de que haverá modelos mais robustos no futuro, capazes de lidar com avaliação postural 3D em estado bruto rodando em uma gama cada vez mais ampla de dispositivos periféricos.

Sobre o autor

Maksym Tatariants é Cientista de Dados na MobiDev. Com formação em Engenharia Mecânica e Ambiental, Ciência de Materiais e Química. Está interessado em obter novas ideias e experiências nos setores de Ciência de Dados e Machine Learning. Está particularmente interessado em tecnologias baseadas em Deep Learning e sua aplicação para casos de uso de negócios.

Avalie esse artigo

Relevância
Estilo/Redação

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

BT