8000 GitHub - avilaroman/pickleball: Ojo de Alcón para Pickleball Open-source Monocular Python
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Ojo de Alcón para Pickleball Open-source Monocular Python

License

Notifications You must be signed in to change notification settings

avilaroman/pickleball

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pikleball Tracker 🎾



con ❤️ por avilaroman

Objectivos:

  • 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
input output
input_img1 output_img1
input_img2 output_img2
input_img3 output_img3

Como correrlo:

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..
  1. Clona este repositorio
  2. git clone https://github.com/avilaroman/pickleball.git
    
  3. Download el yolov3 Pesa: (237 MB) desde aqui y agrega tu Yolov3 carpeta.
  4. Instala los requerimientos usando pip
  5. pip install -r requirements.txt
  6. Corre los siguientes comandos:
  7. 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 
  8. Google Colab upload todos los archivos del Google Drive, incluyendo el yolov3 pasan del paso 2.
  9. Creaun Google Colaboratory Notebook en el mismo directorio predict_video.py, canbia el Tuntime: GPU y conecta it to Google drive
  10. from google.colab import drive
    drive.mount('/content/drive')
  11. Cambia el directorio de trabajo para uno: en Colab Notebook y predict_video.py es en mi caso,
  12. import os 
    os.chdir('drive/MyDrive/Colab Notebooks/tennis-tracking')
  13. Instala 2 requerimientos, por que Colab ya tiene el rest
  14. !pip install filterpy sktime
  15. Adentro del notebook Corre el comando: predict_video.py
  16.  !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%.

Que Hace y lo nuevo?

  • 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
input_img1 output_img1

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%.

Repositorios de Ayuda / Consulta:

EJEMPLO de sintetización descriptiva del video:
Usando GEMINI 2.0 Nativo

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.

About

Ojo de Alcón para Pickleball Open-source Monocular Python

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 62.2%
  • Jupyter Notebook 37.8%
0