Analise arremessos de basquete e poses de arremesso com aprendizado de máquina!
Este é um aplicativo baseado em IA focado na detecção de objetos para analisar arremessos de basquete. O aplicativo permite que os usuários carreguem vídeos de basquete para análise ou enviem solicitações POST para uma API. Os resultados incluem análise detalhada de fotos e poses com base em dados de detecção de objetos. O projeto utiliza OpenPose para calcular pontos-chave do corpo e outras métricas.
A AI Basketball Analysis aproveita a inteligência artificial para analisar os arremessos de basquete, detectando movimentos dos jogadores, precisão dos arremessos e dados de pose. Ele usa a popular estrutura OpenPose para estimativa de pose humana. Quer você seja um desenvolvedor ou analista esportivo, este projeto ajuda a explorar como a IA pode automatizar e aprimorar a análise do basquete.
Importante : Este projeto é apenas para uso em pesquisa não comercial , pois utiliza a licença do OpenPose. Por favor, revise a LICENÇA para obter detalhes.
Se você é novo na estimativa de pose humana, confira este artigo de resumo que detalha os principais conceitos do OpenPose.
Para obter uma cópia do projeto, execute o seguinte comando:
clone do git https://github.com/chonyy/AI-basketball-análise.git
Antes de executar o projeto, certifique-se de que todas as dependências necessárias estejam instaladas executando:
pip instalar -r requisitos.txt
Nota : Este projeto requer uma GPU com suporte CUDA para executar o OpenPose com eficiência, especialmente para análise de vídeo.
Depois que tudo estiver configurado, você poderá hospedar o projeto localmente com um comando simples:
aplicativo python.py
Isso iniciará o aplicativo localmente, onde você poderá enviar vídeos ou imagens de basquete para análise.
Se preferir não executar o projeto localmente, você pode tentar estas alternativas:
Graças ao hardik0, você pode experimentar a análise de basquete AI no Google Colab sem precisar de sua própria GPU:
Este projeto também está disponível no Heroku, mas observe que cálculos pesados como o TensorFlow podem causar erros de tempo limite no Heroku devido a recursos limitados. Para melhor desempenho, é recomendado executar o aplicativo localmente.
Aqui está uma análise dos principais componentes do projeto:
app.py : arquivo principal para executar a aplicação web.
/static : contém todos os ativos estáticos, como imagens, CSS e JavaScript.
/models : diretório contendo modelos pré-treinados para detecção de objetos.
/scripts : scripts utilitários para processamento de dados e treinamento de modelo.
Analise arremessos de basquete a partir do vídeo de entrada, determinando arremessos bem-sucedidos e perdidos. Os pontos-chave em cores diferentes representam:
Azul : basquete detectado em status normal
Roxo : Tiro indeterminado
Verde : tiro bem sucedido
Vermelho : tiro perdido
Usando o OpenPose, o projeto analisa os ângulos do cotovelo e do joelho do jogador durante uma tacada, ajudando a determinar os ângulos e tempos de lançamento.
Este recurso visualiza a detecção de disparos, mostrando níveis de confiança e coordenadas para cada detecção.
O projeto inclui uma API REST para detecção, permitindo enviar imagens por meio de uma solicitação POST e receber uma resposta JSON com pontos-chave detectados e outros dados.
POST /detecção_json
CHAVE : imagem
VALOR : imagem de entrada
O modelo é baseado na arquitetura Faster R-CNN , treinada no conjunto de dados COCO . Para obter mais detalhes, consulte o Zoológico de modelos do TensorFlow.
Faça a transição do modelo para YOLOv4 para melhor desempenho.
Implemente o algoritmo de rastreamento SORT para filtrar detecções falsas.
Melhore os recursos de visualização para obter resultados mais claros.
Otimize a eficiência para uma melhor integração de aplicativos da web.
Aceitamos contribuições da comunidade! Veja como você pode se envolver:
Bifurque o repositório
Crie um branch : git checkout -b feature/your-feature-name
Confirme suas alterações : git commit -m 'Add some feature'
Envie para o branch : git push origin feature/your-feature-name
Abra uma solicitação pull
Para obter mais informações sobre como contribuir, visite Faça uma solicitação pull.