Analysez les tirs de basket-ball et les poses de tir grâce à l'apprentissage automatique !
Il s'agit d'une application basée sur l'IA et axée sur la détection d'objets pour analyser les tirs de basket-ball. L'application permet aux utilisateurs de télécharger des vidéos de basket-ball à des fins d'analyse ou de soumettre des requêtes POST à une API. Les résultats incluent une analyse détaillée des prises de vue et des poses basée sur les données de détection d'objets. Le projet utilise OpenPose pour calculer les points clés du corps et d'autres mesures.
AI Basketball Analysis exploite l'intelligence artificielle pour décomposer les tirs de basket-ball en détectant les mouvements des joueurs, la précision des tirs et les données de pose. Il utilise le framework populaire OpenPose pour l'estimation de la pose humaine. Que vous soyez développeur ou analyste sportif, ce projet permet d'explorer comment l'IA peut automatiser et améliorer l'analyse du basket-ball.
Important : ce projet est uniquement destiné à un usage de recherche non commercial , car il utilise la licence OpenPose. Veuillez consulter la LICENCE pour plus de détails.
Si vous débutez dans l'estimation de la pose humaine, consultez cet article récapitulatif qui détaille les concepts clés d'OpenPose.
Pour obtenir une copie du projet, exécutez la commande suivante :
clone git https://github.com/chonyy/AI-basketball-analysis.git
Avant d'exécuter le projet, assurez-vous que toutes les dépendances nécessaires sont installées en exécutant :
pip install -r exigences.txt
Remarque : Ce projet nécessite un GPU prenant en charge CUDA pour exécuter OpenPose efficacement, notamment pour l'analyse vidéo.
Une fois que tout est configuré, vous pouvez héberger le projet localement avec une simple commande :
application python.py
Cela lancera l'application localement, où vous pourrez télécharger des vidéos ou des images de basket-ball pour analyse.
Si vous préférez ne pas exécuter le projet localement, vous pouvez essayer ces alternatives :
Grâce à hardik0, vous pouvez expérimenter l'analyse AI Basketball dans Google Colab sans avoir besoin de votre propre GPU :
Ce projet est également disponible sur Heroku, mais notez que des calculs lourds comme TensorFlow peuvent provoquer des erreurs de délai d'attente sur Heroku en raison de ressources limitées. Pour de meilleures performances, il est recommandé d'exécuter l'application localement.
Voici une ventilation des éléments clés du projet :
app.py : Fichier principal pour exécuter l'application Web.
/static : contient tous les actifs statiques tels que les images, CSS et JavaScript.
/models : Répertoire contenant des modèles pré-entraînés pour la détection d'objets.
/scripts : Scripts utilitaires pour le traitement des données et la formation de modèles.
Analysez les tirs de basket-ball à partir de la vidéo d'entrée, en déterminant les tirs réussis et manqués. Les points clés de différentes couleurs représentent :
Bleu : Basket détecté en état normal
Violet : Tir indéterminé
Vert : Tir réussi
Rouge : Tir raté
Grâce à OpenPose, le projet analyse les angles du coude et du genou du joueur lors d'un tir, aidant ainsi à déterminer les angles et les temps de déclenchement.
Cette fonctionnalité visualise la détection des tirs, affichant les niveaux de confiance et les coordonnées pour chaque détection.
Le projet comprend une API REST pour la détection, vous permettant de soumettre des images via une requête POST et de recevoir une réponse JSON avec les points clés détectés et d'autres données.
POST /detection_json
CLÉ : image
VALEUR : Image d'entrée
Le modèle est basé sur l'architecture Faster R-CNN , formée sur l' ensemble de données COCO . Pour plus de détails, reportez-vous au zoo modèle TensorFlow.
Transition du modèle vers YOLOv4 pour de meilleures performances.
Implémentez l’algorithme de suivi SORT pour filtrer les fausses détections.
Améliorez les fonctionnalités de visualisation pour des résultats plus clairs.
Optimisez l’efficacité pour une meilleure intégration des applications Web.
Nous apprécions les contributions de la communauté ! Voici comment vous pouvez vous impliquer :
Forker le référentiel
Créer une branche : git checkout -b feature/your-feature-name
Validez vos modifications : git commit -m 'Add some feature'
Push vers la branche : git push origin feature/your-feature-name
Ouvrir une demande de tirage
Pour plus d’informations sur la contribution, visitez Make A Pull Request.