Apple Vision vs MediaPipe: Qual é Melhor para Detecção de Posturas de Yoga?
Uma comparação técnica ao construir o Eight Angle, um app de yoga para iOS.
Apple Vision (esquerda) não conseguiu detectar esta postura de Cachorro Olhando para Baixo. MediaPipe (direita) encontrou todas as 19 articulações. Verde = alta confiança, amarelo = média, vermelho = baixa.
Ao construir o Eight Angle, precisávamos de detecção de posturas confiável para identificar posturas de yoga em tempo real. Começamos com o framework Vision da Apple, mas logo notamos problemas: o detector não encontrava posturas em muitas de nossas imagens de treinamento, especialmente quando os corpos estavam invertidos ou parcialmente ocluídos. Então testamos o MediaPipe do Google como alternativa.
O resultado? MediaPipe detectou 26% mais posturas e alcançou 4% mais precisão na classificação. Veja o que descobrimos.
Contexto: Como Funciona a Detecção de Posturas
A detecção de posturas é a tarefa de visão computacional de encontrar a posição do corpo de uma pessoa em uma imagem. O detector produz um “esqueleto” — um conjunto de pontos articulares (tornozelos, joelhos, quadris, ombros, pulsos, etc.) com coordenadas X/Y e pontuações de confiança.
Apple Vision produz 19 articulações. MediaPipe na verdade fornece 33 pontos de referência, mas usamos as 19 que correspondem às articulações do Vision para manter a comparação justa. Para cada articulação, você obtém:
- Posição: Coordenadas X e Y (normalizadas 0-1)
- Confiança: Quão certo o detector está (0-1)
O yoga apresenta desafios únicos para detectores de posturas:
- Inversões: Paradas de cabeça e de mão invertem a orientação esperada do corpo
- Oclusões: Braços atrás do corpo, pernas cruzadas entre si
- Formas incomuns: Posturas como a Roda ou Eight Angle não se parecem com posturas em pé típicas
Esses casos extremos importam porque um app de yoga precisa funcionar em toda a gama de posturas, não apenas posições em pé.
A Configuração da Comparação
Avaliamos ambos detectores usando as mesmas condições:
- 1.603 imagens de treinamento em 21 classes de posturas de yoga
- Mesma extração de características: 31 características geométricas (ângulos articulares, distâncias, medidas de simetria)
- Mesmo classificador: Random Forest com validação cruzada de 5 dobras
- Mesmo hardware: Todo o processamento em Apple Silicon
O pipeline de características transforma coordenadas articulares brutas em medições significativas como “ângulo do quadril” ou “simetria dos joelhos” — isso importa mais para classificação do que posições brutas.
Descoberta Chave #1: Taxa de Detecção
A maior diferença foi quantas posturas cada detector conseguiu encontrar.
| Detector | Detectadas | Total | Taxa de Detecção |
|---|---|---|---|
| Apple Vision | 1.142 | 1.603 | 71,2% |
| MediaPipe | 1.562 | 1.603 | 97,4% |
MediaPipe detectou 420 posturas a mais — um aumento de 36,8% em dados de treinamento utilizáveis do mesmo conjunto de imagens.
A diferença foi maior para posturas desafiadoras:
| Postura | Amostras Vision | Amostras MediaPipe | Ganho |
|---|---|---|---|
| forward_fold | 51 | 123 | +72 |
| crow | 47 | 117 | +70 |
| downward_dog | 63 | 130 | +67 |
| bridge | 26 | 91 | +65 |
| handstand | 37 | 91 | +54 |
Vision teve mais dificuldade com posturas onde o corpo está dobrado ou invertido. Forward Fold, por exemplo, tem a cabeça abaixo dos quadris com pernas potencialmente ocluindo o torso — Vision detectou menos da metade dessas imagens.
Postura Crow: Vision (esquerda) encontrou apenas 10 articulações, principalmente com baixa confiança. MediaPipe (direita) detectou todas as 19 articulações claramente.
Descoberta Chave #2: Precisão da Classificação
Mais posturas detectadas também significaram melhor classificação:
| Detector | Precisão | Desv. Pad. |
|---|---|---|
| Apple Vision | 89,6% | ±1,8% |
| MediaPipe | 93,4% | ±1,2% |
A precisão do MediaPipe foi tanto mais alta quanto mais consistente (menor desvio padrão).
Vencedores Por Classe
As maiores melhorias vieram de posturas que o Vision teve dificuldade para detectar:
| Postura | Vision | MediaPipe | Mudança |
|---|---|---|---|
| low_lunge | 66,7% | 92,1% | +25,4% |
| splits | 66,7% | 80,0% | +13,3% |
| forward_fold | 82,4% | 95,1% | +12,8% |
| eight_angle | 55,9% | 68,1% | +12,2% |
| downward_dog | 90,5% | 100,0% | +9,5% |
Low Lunge melhorou dramaticamente porque o MediaPipe conseguiu detectar a perna de trás mesmo quando está atrás da perna da frente. Com Vision, essas amostras tinham dados articulares faltando que prejudicavam a classificação.
O Mistério da Parada de Cabeça
Parada de Cabeça: Ambos detectores encontraram a postura, mas note as pontuações de confiança mais altas do MediaPipe (verde) vs as mais baixas do Vision (amarelo/vermelho).
Uma postura quebrou a tendência: A Parada de Cabeça passou de 100% de precisão com Vision para 88% com MediaPipe.
Isso parecia contraintuitivo — por que melhor detecção levaria a pior classificação?
A causa raiz: com apenas 41 amostras de treinamento, a classe era vulnerável a ruído. Quando investigamos as 5 imagens mal classificadas, encontramos dois padrões:
- Variantes com braços retos (3 imagens): Classificadas como Parada de Mão porque os braços estavam estendidos, não dobrados
- Posturas preparatórias com joelhos recolhidos (2 imagens): Classificadas como Crow porque a posição do corpo era similar
Esses não foram erros do detector — foram casos extremos dos dados de treinamento. MediaPipe detectou mais variação no conjunto de treinamento, expondo posturas que estavam no limite entre classes.
A lição: mais dados expõem mais casos extremos. A menor taxa de detecção do Vision mascarou essas amostras ambíguas simplesmente ao não incluí-las.
Por Que a Diferença?
A vantagem do MediaPipe provavelmente vem de vários fatores:
Melhor Tratamento de Oclusões
MediaPipe teve dramaticamente menos articulações faltando. Por exemplo, knee_symmetry (que requer ambos os joelhos) faltava em 17% das amostras do Vision mas apenas em 3,5% das amostras do MediaPipe.
Limiar Efetivo Mais Baixo
Descobrimos que as posições articulares do MediaPipe são precisas mesmo com pontuações de confiança baixas. Definir o limiar em 0,001 (essencialmente aceitando todas as detecções) deu os melhores resultados:
| Limiar | Precisão |
|---|---|
| 0,10 | 92,6% |
| 0,05 | 92,4% |
| 0,001 | 93,4% |
Isso é diferente do Vision, onde articulações de baixa confiança frequentemente são imprecisas. MediaPipe parece produzir pontuações de confiança mais conservadoramente.
Dados de Treinamento
MediaPipe foi treinado em um conjunto de dados de posturas maior e mais diverso. Os papers de pesquisa do Google mencionam tratamento para oclusão, orientações incomuns e visibilidade parcial — exatamente os cenários que importam para yoga.
O Que Escolhemos
Para o Eight Angle, mudamos nosso pipeline de treinamento para MediaPipe. Os fatores decisivos:
- A taxa de detecção importava mais. Com imagens de treinamento limitadas, conseguir 420 amostras utilizáveis a mais foi significativo. Mais dados significa melhor generalização.
- Posturas de yoga são inerentemente desafiadoras. Inversões, equilíbrios de braços e flexões profundas são centrais à prática — não podíamos ignorar 30% dessas posturas.
- O ganho de precisão foi um bônus. Esperávamos que mais dados ajudariam, mas a melhoria de 4% na precisão confirmou que as posições articulares do MediaPipe são genuinamente mais confiáveis para nosso caso de uso.
Vision não é uma má escolha para aplicações mais simples — se você está apenas detectando alguém em pé ou andando, funciona bem. Mas para yoga, onde o objetivo é colocar seu corpo em posições incomuns, MediaPipe lida com os casos extremos que importam.
Interessado em ver como o Eight Angle ajuda você a melhorar sua prática de yoga? Entre na lista de espera para obter acesso antecipado.
Estatísticas Resumo
| Métrica | Apple Vision | MediaPipe | Vencedor |
|---|---|---|---|
| Taxa de Detecção | 71,2% | 97,4% | MediaPipe (+26%) |
| Precisão da Classificação | 89,6% | 93,4% | MediaPipe (+4%) |
| Desv. Pad. da Precisão | ±1,8% | ±1,2% | MediaPipe (mais consistente) |
| Amostras Utilizáveis | 1.142 | 1.562 | MediaPipe (+420) |