- Trackea la pelota
- Detecta lineas de la cancha
- Detecta a los jugadores
Para tracker la bola uso TrackNet - una deep learning network para trackear objetos a rápidas velocidades.
Para los detectores de personas ResNet50.
Ejemplo usando: Ejemplo de videos
Input | Output |
---|---|
Este proyecto requiere compatibilidad GPU para Instalar el Tensorflow, puedes correr: Google Colaboratory with Tipo de Runtime cambiado a GPU.
- Los videos Input tienen que ser rallies del juego y no pueden contener ningun comercial o placa , o pausa o a Espectadores en el cuadro por que se comienza a fallar la detección..
- Clona este repositorio
- Download el yolov3 Pesa: (237 MB) desde aqui y agrega tu Yolov3 carpeta.
- Instala los requerimientos usando pip
- Corre los siguientes comandos:
- Google Colab upload todos los archivos del Google Drive, incluyendo el yolov3 pasan del paso 2.
-
Creaun Google Colaboratory Notebook en el mismo directorio
predict_video.py
, canbia el Tuntime: GPU y conecta it to Google drive -
Cambia el directorio de trabajo para uno: en Colab Notebook y
predict_video.py
es en mi caso, - Instala 2 requerimientos, por que Colab ya tiene el rest
-
Adentro del notebook Corre el comando:
predict_video.py
git clone https://github.com/avilaroman/pickleball.git
pip install -r requirements.txt
python3 predict_video.py --input_video_path=VideoInput/video_input3.mp4 --output_video_path=VideoOutput/video_output.mp4 --minimap=0 --bounce=0
python3 predict_video.py --input_video_path=pickleball.mp4 --output_video_path=pickleball_output.mp4 --minimap=1 --bounce=0
from google.colab import drive
drive.mount('/content/drive')
import os
os.chdir('drive/MyDrive/Colab Notebooks/tennis-tracking')
!pip install filterpy sktime
!python3 predict_video.py --input_video_path=VideoInput/video.mp4 --output_video_path=VideoOutput/video_output.mp4 --minimap=0 --bounce=0
o tambien:
!python3 predict_video.py --input_video_path=pickleball.mp4 --output_video_path=pickleball_output.mp4 --minimap=1 --bounce=0
Despùés de la compilación es Completada, un nuevo video se creará en la Carpeta: VideoOutput SI el Minimap: --minimap
fué seteado 0
, si: --minimap=1
3 videos seran creados del juego: 1) Video del juego 2) Video del minimap y 3) Combinados los 2 Videos
Si te parece muy dificil o sale un error o tienes alguna pregunta contactame: by em@il: avilaroman@gmail.com Pickleball
CABE DESTACAR QUE ESTE SOFTWARE TAMBIÉN FUNCIONA PARA CASI CUALQUIER DEPORTE DE PALETA PELOTA: Ping Pong / Padel / Squash / Tenis en distintas superficies. se debe cambiar las 9 imagenes de reconocimiento de la cancha: Los Sprites en la carpeta/pickleball/court_configurations/
History This branch is 0 commits ahead of avilaroman/pickleball:main. This branch is 18 commits ahead of ArtLabss/tennis-tracking:main. Folders and files parent directory .. court_conf_1.png court_conf_10.png court_conf_11.png court_conf_12.png court_conf_2.png court_conf_3.png court_conf_4.png court_conf_5.png court_conf_6.png court_conf_7.png court_conf_8.png court_conf_9.png court_reference.png
y ya se lo adapta para el mejor judgado, pero igual sino igual también anda con un 85%.
- Detecta las lineas de la cancha (Mejorada)
- Detección del Jugador (Optimizada en cuadros)
- El algoritmo ahora trabaja practicamente en cualquier color de cancha y pelotas verdes o de otro color
- Algoritmo mas RAPIDO
- Dynamic Mini-Mapa Dinámico con seguimiento de jugadores y pelota, para activarlo usá el argumento:
--minimap
--minimap=0 |
--minimap=1 |
---|---|
Para predecir los puntos de rebote en el la Librería del Machine Learning por el tiempo de las series. sktime fue usado. Specificamente, TimeSeriesForestClassifier fue entrenado en 3 variables: X
, Y
coordenadas de la pelota y V
para Velocidad (V2-V1/t2-t1
). Ejemplo de Data del modelo ya entrenado: - df.csv
- Como especificando:
--bounce=1
Puntos que pican y rebotan pueden ser detectadas y mostradas:
Este Modelo predice: Verdaderos negativos (sin rebotar) con una precisión de hasta un: 98% Porciento de los Verdaderos Positivos (Rebotadas) con un: 83%.
- Tennis Tracking @MaximeBataille
- Tennis Project @avivcaspi
- TrackNet
Inicio del Juego (0:00-0:03):
El juego comienza con un saque del equipo de la izquierda (jugador de camiseta amarilla y su compañera).
El jugador de amarillo golpea la pelota, la cual rebota en el suelo y va al lado contrario.
La jugadora del equipo de la derecha intenta devolverla con un golpe, pero la pelota termina saliendo de la cancha.
El punto va para el equipo de la izquierda.
Intercambio de puntos y movimientos (0:03-0:32):
El juego sigue con varios intercambios rápidos, donde ambos equipos intentan colocar la pelota estratégicamente.
Se pueden ver golpes cruzados, voleas cerca de la red y algunos intentos de remate.
Se aprecia un buen nivel de habilidad en la manipulación de la pelota y agilidad en los movimientos de ambos equipos.
En varias ocasiones, se pueden ver golpes con muy poca altura sobre la red, exigiendo movimientos rápidos por parte de los jugadores.
Continuación del juego (0:32-1:01):
Los equipos siguen alternándose puntos y se pueden ver jugadas de gran intensidad.
Se observan algunos saques que resultan en puntos directos.
En un punto, se ve a una jugadora del equipo de la derecha dar un salto para darle a la pelota lo que hace mas dinamico y llamativo el juego.
Ambos equipos muestran la importancia de trabajar en equipo para cubrir bien los espacios.
Los movimientos rápidos de ambos equipos demuestran que es un juego de mucha agilidad.
Fase final del partido (1:01-1:34):
Los jugadores muestran un poco de cansancio pero siguen dando lo mejor de si mismos.
Hay algunos intercambios largos donde la pelota pasa varias veces de un lado al otro de la red antes de que un equipo gane el punto.
Un jugador del equipo de la izquierda da un giro muy vistoso con el que impacta la pelota.
El partido sigue muy igualado con varios puntos de gran calidad por parte de ambos equipos.
Se ven jugadas mas cerradas a la red y se puede apreciar como la habilidad de los jugadores empieza a marcar diferencia.
El juego termina con un punto espectacular donde los jugadores de ambos equipos lucieron sus mejores habilidades.
Consideraciones Adicionales:
Ambiente: El partido se juega de noche, en una cancha iluminada con focos, lo que añade un toque especial a la atmósfera del juego.
Actitud: Los jugadores muestran una actitud de competencia y deportividad, disfrutando del juego y esforzándose al máximo.