Come costruire un sistema di tracciamento della palla per il cricket

Contenuti

Panoramica

  • Impara a costruire il tuo sistema di tracciamento della palla da cricket usando Computer Vision e Python
  • Comprendere diversi approcci per tracciare oggetti in rapido movimento in un video sportivo.
  • Discuteremo anche i vari casi d'uso di un sistema di tracciamento della palla..

introduzione

Il sistema di revisione delle decisioni (DRS) è abbastanza onnipresente nello sport del cricket in questi giorni. Los equipos están empezando a depender en gran misura de la DRS para anular las decisiones estrictas de los árbitros y eso, abbastanza spesso, puoi cambiare la partita a tuo favore.

Questo concetto di tracciare la palla, parte del DRS, ora è uno spettacolo per famiglie per gli appassionati di cricket:

cricket_ball_tracking-6223641

Questo mi ha fatto pensare: ¿podría construir mi propio sistema de seguimiento de bolas utilizando mi conocimiento de apprendimento profondo e Python?

Sono un grande fan del cricket e sono costantemente alla ricerca di diversi casi d'uso in cui posso applicare algoritmi di machine learning o deep learning.. L'idea di costruire un sistema di tracciamento della palla mi è venuta quando stavo lavorando al mio precedente progetto incentrato sulla generazione di intuizioni dai dati di feedback del cricket..

Anche le squadre e le franchigie di cricket usano questa idea di tracciamento della palla per comprendere i punti deboli dei giocatori avversari.. In quale posizione è vulnerabile un particolare battitore?? Dov'è che il giocatore di bowling getta costantemente la morte??

I sistemi di tracciamento della palla aiutano i team ad analizzare e comprendere queste domande. Ecco un esempio della recente partita di cricket:

  • I giocatori di bowling neozelandesi hanno seguito una strategia contro Virat Kohli nel precedente tour dall'India alla Nuova Zelanda. Le prime palle che Virat ha affrontato erano nella sua zona debole. Questo lo metteva a disagio e perdeva regolarmente la finestra in anticipo.

sistema-occhio-di-falco-5974405

In questo articolo, esamineremo i vari aspetti di un sistema di tracciamento della palla e poi ne creeremo uno in Python usando l'esempio del cricket. Questa promette di essere un'esperienza di apprendimento unica!!

Nota: Se sei completamente nuovo nel mondo del deep learning e della computer vision, Ti suggerisco di dare un'occhiata alle seguenti risorse:

Sommario

  1. Che cos'è un sistema di tracciamento della palla?
  2. Casi d'uso del sistema di tracciamento della palla nello sport
  3. Diversi approcci al sistema di tracciamento della palla
  4. Implementazione: sviluppa il tuo primo sistema di tracciamento della palla per Cricket usando Python

Che cos'è un sistema di tracciamento della palla?

Facciamo rapidamente conoscenza con due termini popolari nella visione artificiale prima di una discussione sul sistema di tracciamento della palla.: rilevamento di oggetti e tracciamento di oggetti.

Rilevamento di oggetti è uno dei concetti più affascinanti della computer vision. Ha un ruolo potente in diversi domini come la difesa, spazio, sport e altri campi. Qui, Ho elencato alcuni casi d'uso interessanti per il rilevamento di oggetti in difesa e nello spazio:

  • Puntatore di destinazione automatico
  • Formazione de robots en simulaciones de palabras reales para recuperar personas en entornos físicos peligrosos
  • Rilevamento di detriti spaziali

Ma, Che cos'è il rilevamento di oggetti??

Classificazione delle immagini + Posizione = Rilevamento oggetto

Il rilevamento di oggetti è il compito di identificare un oggetto e la sua posizione in un'immagine. Il rilevamento degli oggetti è simile a un problema di classificazione delle immagini, ma con un compito in più (identificare anche la posizione di un oggetto), un concetto noto come location.

selezione_170-3752583

Come puoi vedere qui, la posizione dell'oggetto è rappresentata da una scatola rettangolare che è popolarmente conosciuta come Bounding Box.. Bounding Box rappresenta le coordinate dell'oggetto in un'immagine. Ma aspetta, In che modo il rilevamento degli oggetti è diverso dal rilevamento degli oggetti?? Rispondiamo a questa domanda ora.

Inseguimento di oggetti è un caso speciale di rilevamento di oggetti. Si applica solo ai dati video. Sul tracciamento degli oggetti, l'oggetto e la sua posizione sono identificati in ogni fotogramma di un video.

Il rilevamento di oggetti applicato a ogni fotogramma di un video diventa un problema di tracciamento degli oggetti.

Ricorda che il rilevamento degli oggetti è per un'immagine, mentre il tracciamento dell'oggetto è per la sequenza di fotogrammi in rapido movimento. Entrambi i problemi comportano lo stesso compito, ma i termini sono usati in modo intercambiabile a seconda del tipo di dati con cui stai lavorando.

Quindi, Come si applica al monitoraggio della palla??

Il sistema di tracciamento della palla è uno dei casi d'uso più interessanti per il rilevamento e il tracciamento di oggetti negli sport. Un sistema di tracciamento della palla viene utilizzato per trovare la traiettoria della palla in un video sportivo. Hawk-eye è il sistema di tracciamento della palla più avanzato utilizzato in diversi sport come il cricket, tennis e calcio per identificare la traiettoria della palla da telecamere ad alte prestazioni.

Possiamo sviluppare un sistema simile utilizzando i concetti di visione artificiale identificando la palla e la sua posizione in ogni fotogramma di un video.. Ecco una demo di ciò che creeremo in questo articolo:

Degno di nota, verità?

Casi d'uso del sistema di tracciamento della palla nello sport

Il sistema di tracciamento della palla, come sicuramente avrai già capito, è un concetto potente che trascende le industrie. In questa sezione, mostrerò alcuni casi d'uso popolari del monitoraggio della palla negli sport.


Caso d'uso 1: Processo decisionale critico

Ne abbiamo già parlato e sono sicuro che molti di voi avranno familiarità con l'occhio di falco nel cricket..

La traiettoria della palla aiuta a prendere decisioni critiche durante il gioco. Ad esempio, nel cricket, durante la gamba prima del wicket (di LBW), la traiettoria della palla aiuta a decidere se la palla è stata lanciata dentro o fuori dai ceppi. Include anche informazioni sul fatto che la palla colpisca o meno i perni..

Allo stesso modo, nel tennis, durante il servizio o una giocata, il sistema di tracciamento della palla aiuta a sapere se la palla è stata lanciata dentro o fuori dalle linee consentite sul campo:

screenshot-da-2020-05-15-19-19-35-1078241

Caso d'uso 2: identificare le zone forti e deboli di un battitore

Ogni squadra ha una serie di giocatori vincenti. Scegliere il terreno il prima possibile è fondamentale per qualsiasi squadra per vincere le partite. Con l'aiuto della tecnologia di tracciamento della palla, possiamo analizzare i video grezzi e generare mappe di calore.

Da queste mappe di calore, possiamo facilmente identificare la zona forte e debole di un battitore. Ciò aiuterebbe la squadra a sviluppare una strategia contro tutti i giocatori prima di una partita.:

Riesci a pensare ad altri casi d'uso per un sistema di tracciamento della palla nello sport?? Fatemi sapere nella sezione commenti qui sotto!!

Approcci diversi ai sistemi di tracciamento della palla

Esistono diversi algoritmi di tracciamento, così come modelli precedentemente addestrati per tracciare l'oggetto in un video. Ma, ci sono alcune sfide con loro quando si tratta di tracciare una palla da cricket in rapido movimento.

Queste sono le poche sfide che dobbiamo conoscere prima di seguire una palla in rapido movimento in un video di cricket.

  • La palla da cricket si muove a una velocità molto elevata di circa 130-150 km / h. A causa di ciò, la palla va per la sua strada.
  • Gli oggetti a forma di palla sul terreno possono essere difficili da classificare. Ad esempio, i punti di 30 metri sul campo se visti dall'alto sembrano quasi una palla.

screenshot-da-2020-05-23-02-14-12-4678160

Perciò, in questo articolo, mi concentrerò su 2 semplici approcci per tracciare una palla in rapido movimento in un video sportivo:

  • Finestra scorrevole
  • Segmentazione por color

Discutiamoli in dettaglio ora..

Metodo 1: finestra scorrevole

Uno dei modi più semplici potrebbe essere quello di dividere l'immagine in toppe più piccole, diciamo griglie di 3 * 3 oh 5 * 5, e quindi classificare ogni patch in uno di 2 Lezioni, se una toppa contiene o meno una palla. Questo approccio è noto come approccio a finestra scorrevole., poiché facciamo scorrere la finestra di una patch in ogni parte di un'immagine.

Ricorda che la formazione della griglia può anche sovrapporsi. Tutto dipende da come vuoi formulare il problema.

Prossimo, viene mostrato un esempio che mostra le griglie che non si sovrappongono:

1-7-9418169

Questo metodo è davvero semplice ed efficace. Ma è un processo che richiede tempo, in quanto considera varie patch dell'immagine. Un altro svantaggio dell'approccio della finestra scorrevole è che è costoso, poiché considera ogni patch di un'immagine.

Quindi, prossimo, Discuterò l'approccio alternativo alla finestra scorrevole.

Messa a fuoco 2: segmentazione del colore

Invece di considerare ogni patch, possiamo ridurre le toppe per classificarle in base al colore della palla. Come conosciamo il colore della palla, possiamo facilmente differenziare i cerotti che hanno un colore simile alla palla dal resto dei cerotti.

diagramma-senza titolo-1-1-9974604

Ciò si traduce in meno patch da ordinare. Questo processo di combinazione di parti simili di un'immagine attraverso il colore è noto come segmentazione del colore.

Implementazione: sviluppa il tuo primo sistema di tracciamento della palla per Cricket in Python

È ora di programmare! Sviluppiamo un semplice sistema di tracciamento della palla che traccia la palla sul campo usando Python. Scarica i file di dati necessari da qui.

Primo, leggiamo un file video e salviamo i fotogrammi in una cartella:

Riquadri di lettura:

Poiché il nostro obiettivo è tracciare la palla in campo, dobbiamo estrarre i frame che contengono il pitch. Qui, Sto usando il concetto di rilevamento della scena per portare a termine il compito:

Produzione:

scena-5047494

Il valore anomalo nel grafico indica il numero di fotogramma durante il quale cambia la scena. Perciò, imposta la soglia per ottenere i fotogrammi prima di un cambio di scena:

Ora, abbiamo ottenuto le cornici che contengono un tono. Prossimo, implementeremo un approccio di segmentazione che abbiamo discusso in precedenza in questo articolo. Esaminiamo ora tutti i passaggi dell'approccio a frame singolo.

Leggeremo il fotogramma e applicheremo la sfocatura gaussiana per rimuovere il rumore in un'immagine:

Produzione:

screenshot-dal-2020-05-23-02-06-04-3886320

Come fai a sapere il colore della palla?, possiamo facilmente segmentare oggetti bianchi in un'immagine. Qui, 200 funge da soglia. Qualsiasi valore di pixel inferiore a questo 200 sarà contrassegnato come 0 e al di sopra 200 sarà contrassegnato come 255.

Produzione:

screenshot-dal-2020-05-23-02-09-28-8377336

Come puoi vedere qui, gli oggetti bianchi sono segmentati. Il bianco indica gli oggetti bianchi e il nero indica tutti gli altri colori. E questo è! Abbiamo separato gli oggetti bianchi dagli altri.

Ora, troveremo i contorni degli oggetti segmentati in un'immagine:

Disegna i contorni sull'immagine originale:

Produzione:

screenshot-da-2020-05-23-02-10-55-1430174
Prossimo, estrarre patch da un'immagine usando i contorni:

È ora di costruire un classificatore di immagini per identificare la patch contenente la palla.

Leggere e preparare il set di dati:

Dividi il set di dati in formazione e convalida:

Costruisci un modello di base per identificare la patch contenente la palla:

Valutare il modello sui dati di validazione:

Ripeti i passaggi simili per ogni fotogramma in un video seguito dalla valutazione:

Dai un'occhiata ai fotogrammi contenenti la palla insieme alla posizione:

screenshot-da-2020-03-30-19-32-24-2930221

Prossimo, disegneremo il riquadro di delimitazione attorno ai fotogrammi contenenti la palla e lo salveremo nella cartella:

Trasformiamo ora i fotogrammi in un video:

Produzione:

Quant'è fico? Congratulazioni per aver creato il tuo sistema di tracciamento della palla da cricket!!

Note finali

È tutto per oggi! Questo ci porta alla fine del tutorial sul monitoraggio della palla da cricket.. Si noti che viene creato un modello di base per le attività di classificazione delle immagini. Pero todavía hay mucho margen para mejorar nuestro modelo. E anche, ci sono pochi iperparametri in questo approccio, come la dimensione del filtro gaussiano e il valore di soglia da regolare in base al tipo di video.

Cosa ne pensi del sistema che costruiamo? Condividi le tue idee e commenti nella sezione commenti qui sotto e parliamo..

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.