Pular para o conteúdo
brorn
Nº 002 · Esporte e vídeo

match.pro

Análise de um jogo por jogador: acompanha cada atleta no vídeo, calcula distância, velocidade e lances, e gera um filme só dele.

No ar
Período
2026-11 → hoje
Plataformas
Web · GPU local
Papel
Sozinho: design, código e entrega
Tecnologias
Fig. 1 · Revisão do rastreio · Vídeo: SoccerTrack v2 (CC BY 4.0)
Fig. 2 · Mapa de calor
Fig. 3 · Etapas da análise

§1O problema

As ferramentas comerciais de análise por jogador são fechadas e não deixam corrigir erros nem ficar com os dados. Eu queria algo parecido, mas corrigível e com os dados na minha mão.

§2O que eu construí

  • ImportadorTraz os jogos do match.day automaticamente (só leitura, por cópia com hard link, a cada 10 min).
  • Pipeline de análisePython: detecção de pessoas e bola, rastreio, ligação de pedaços de trilha, separação de times por cor.
  • Tela de revisãoMarcar o campo (pixel para metro) e rever o rastreio: juntar/separar trilhas, trocar de time, desfazer.
  • Quem é quemSugestão pela camisa: recortes de cada jogador são agrupados em folhas e lidos por um modelo de IA.
  • NúmerosDistância, velocidade, sprints, mapa de calor, lances por regras e ficha do jogador.
  • Filme do jogadorVídeo só de um jogador, com a câmera seguindo ele.

§3As partes difíceis

5 itens
  1. 01

    Manter a identidade de cada jogador por 60 min

    No teste foram 625 trocas de identidade em 4 min, e esse continua sendo o ponto fraco.

  2. 02

    Modelo de câmera do panorama

    Cilíndrico com correção de lente, para converter pixel em metro: erro médio de 0,8 m com 7 pontos marcados.

  3. 03

    Bug real achado na medição

    Os tempos ficavam 0,98 s defasados quando o áudio começava antes do vídeo.

  4. 04

    Avaliar com métrica de verdade

    HOTA contra um conjunto público com gabarito, em vez de só “parecer bom”.

  5. 05

    Fila de trabalhos pesados na GPU

    Um de cada vez.

§4Resultado

HOTA no clipe de teste
0,42
recall
92%
precisão
87%

No clipe de teste de 4 min com gabarito: HOTA 0,42 (versão final), recall de 92% e precisão de 87%. Para referência, o ByteTrack fica em ~0,42 e o vencedor de 2025 em 0,60. O match.pro ainda não substituiu a análise do match.day; isso só acontece quando ele der conta de 3 jogos reais de ponta a ponta.

§5Stack

  • Python (PyTorch / CUDA)
  • YOLO11
  • BoxMOT / BoT-SORT / OSNet
  • Node / Next.js 16
  • TypeScript
  • SQLite
  • ffmpeg
  • LLM por linha de comando
  • pm2
  • Tailscale