¡Analiza tiros de baloncesto y posturas de tiro con aprendizaje automático!
Se trata de una aplicación impulsada por IA centrada en la detección de objetos para analizar tiros de baloncesto. La aplicación permite a los usuarios cargar videos de baloncesto para analizarlos o enviar solicitudes POST a una API. Los resultados incluyen análisis detallados de tomas y poses basados en datos de detección de objetos. El proyecto utiliza OpenPose para calcular puntos clave del cuerpo y otras métricas.
AI Basketball Analysis aprovecha la inteligencia artificial para analizar los tiros de baloncesto detectando los movimientos de los jugadores, la precisión de los tiros y los datos de pose. Utiliza el popular marco OpenPose para estimar la pose humana. Ya sea desarrollador o analista deportivo, este proyecto le ayuda a explorar cómo la IA puede automatizar y mejorar el análisis del baloncesto.
Importante : este proyecto es únicamente para uso de investigación no comercial , ya que utiliza la licencia de OpenPose. Revise la LICENCIA para obtener más detalles.
Si eres nuevo en la estimación de la pose humana, consulta este artículo resumido que desglosa los conceptos clave de OpenPose.
Para obtener una copia del proyecto, ejecute el siguiente comando:
clon de git https://github.com/chonyy/AI-basketball-analysis.git
Antes de ejecutar el proyecto, asegúrese de que todas las dependencias necesarias estén instaladas ejecutando:
instalación de pip -r requisitos.txt
Nota : este proyecto requiere una GPU con soporte CUDA para ejecutar OpenPose de manera eficiente, especialmente para análisis de video.
Una vez que todo esté configurado, puedes alojar el proyecto localmente con un simple comando:
aplicación python.py
Esto iniciará la aplicación localmente, donde podrá cargar videos o imágenes de baloncesto para su análisis.
Si prefiere no ejecutar el proyecto localmente, puede probar estas alternativas:
Gracias a hardik0, puedes experimentar con el análisis de baloncesto AI en Google Colab sin necesidad de tu propia GPU:
Este proyecto también está disponible en Heroku, aunque tenga en cuenta que los cálculos pesados como TensorFlow pueden causar errores de tiempo de espera en Heroku debido a recursos limitados. Para obtener el mejor rendimiento, se recomienda ejecutar la aplicación localmente.
Aquí hay un desglose de los componentes clave del proyecto:
app.py : Archivo principal para ejecutar la aplicación web.
/static : contiene todos los activos estáticos como imágenes, CSS y JavaScript.
/models : directorio que contiene modelos previamente entrenados para la detección de objetos.
/scripts : Scripts de utilidad para procesamiento de datos y entrenamiento de modelos.
Analice los tiros de baloncesto del vídeo de entrada, determinando los tiros acertados y fallidos. Los puntos clave en diferentes colores representan:
Azul : baloncesto detectado en estado normal.
Morado : Tiro indeterminado
Verde : disparo exitoso
Rojo : tiro fallido
Usando OpenPose, el proyecto analiza los ángulos del codo y la rodilla del jugador durante un tiro, ayudando a determinar los ángulos y tiempos de lanzamiento.
Esta función visualiza la detección de disparos, mostrando niveles de confianza y coordenadas para cada detección.
El proyecto incluye una API REST para la detección, que le permite enviar imágenes mediante una solicitud POST y recibir una respuesta JSON con puntos clave detectados y otros datos.
ENVIAR /detection_json
CLAVE : imagen
VALOR : Imagen de entrada
El modelo se basa en la arquitectura Faster R-CNN , entrenada en el conjunto de datos COCO . Para obtener más detalles, consulte el zoológico de modelos de TensorFlow.
Realice la transición del modelo a YOLOv4 para obtener un mejor rendimiento.
Implemente el algoritmo de seguimiento SORT para filtrar detecciones falsas.
Mejore las funciones de visualización para obtener resultados más claros.
Optimice la eficiencia para una mejor integración de aplicaciones web.
¡Agradecemos las contribuciones de la comunidad! Así es como puedes participar:
Bifurcar el repositorio
Crea una rama : git checkout -b feature/your-feature-name
Confirme sus cambios : git commit -m 'Add some feature'
Empujar a la rama : git push origin feature/your-feature-name
Abrir una solicitud de extracción
Para obtener más información sobre cómo contribuir, visite Realizar una solicitud de extracción.