Tullio Facchinetti

Computer vision e machine learning per il tracking di una palla in ambito sportivo

by Davide Giuffrida

Categories: article thesis lang_it article_it


Obiettivi

Il progetto di Davide Giuffrida nasce dalla necessità di una startup Pavese di estrarre dati automaticamente dalle riprese di partite di basket. Tra i dati ritenuti più interessanti ci sono quelli riguardanti la posizione del pallone in ogni istante del match. Queste informazioni, unite al tracciamento della posizione dei giocatori, permettono di analizzare varfi aspetti dell’incontro, come ad esempio la buona riuscita delle tattiche di gioco.

Lo scopo del progetto è quindi quello di realizzare un sistema non intrusivo in grado di riconoscere e tracciare un pallone da basket regolamentare. Il requisito di non intrusività esclude la possibilità di intervenire “attivamente” sul campo (tramite ad esempio l’applicazione di sensori al pallone). Ci si concentra invece su immagini acquisite durante la partita.

Una volta ottenuto il video di una sequenza di gioco, il procedimento consiste nell’applicare ai vari frame una serie di algoritmi di visione artificiale per riconoscere il pallone.

L’implementazione utilizza il linguaggio Python e fa uso della libreria OpenCV.

Preprocessing

Uno dei frame ai quali verrà applicato il processo di detection del pallone.

Il primo passo dell’elaborazione consiste nel cosiddetto cleaning e preprocessing. Vengono applicati dei filtri alle immagini per scartare ciò che sicuramente non è associabile ad un pallone. Sostanzialmente i processi sono due:

A questo frame è stato sottratto tutto ciò che non si muove.

In questo frame sono stati eliminati i colori dissimili da quelli del pallone.

Rilevazione

Il secondo step prevede l’impiego di algoritmi di detection per stimare dove, tra i pixel “sopravvissuti” al preprocessing, potrebbe trovarsi il pallone. Tramite l’implementazione dell’algoritmo Circle Hough transform è possibile stabilire degli oggetti come “candidati palloni” in funzione della loro forma circolare. Diversi oggetti presenti nell’immagine possono ricordare una palla se ci si basa solamente sul colore e la forma circolare. Basti ad esempio pensare alla spalla dei giocatori in canottiera.

In blu si notano diversi oggetti che soddisfano i requisiti minimi di forma e dimensione per essere considerati possibili palloni.

A questo punto viene applicato un algoritmo di classificazione basato su machine learning chiamato Support Vector Machine (SVM). Una SVM viene inizialmente allenata a riconoscere le caratteristiche di un pallone. Il suo compito sarà quello di stabilire quali tra i candidati è davvero il pallone.

La Support Vector Machine stabilisce quale dei candidati è davvero un pallone.

Tracciamento

L’ultimo passo consiste nell’associare le posizioni del pallone in frame successivi del video. Per far ciò viene sfruttato un algoritmo di tracciamento chiamato particle filter.

Sostanzialmente, il particle filter “pesa” zone del frame a campione cercando di stimare quale potrebbe contenere il pallone in funzione dell’ultima coordinata nota. L’applicazione reiterata di questi step permette di stimare con ottima precisione la posizione del pallone in ogni frame del video.

Le coordinate stimate vengono esportate in un file con formato standard CSV (Comma Separated Values), in modo da renderli disponibili per successive elaborazioni.

Risultati

I risultati ottenuti sono visibili nel video. Il quadrato verde rappresenta la vera posizione del pallone. Il quadrato blu invece è la posizione stimata del pallone, ottenuta con il procedimento illustrato in questo articolo. I due quadrati si sovrappongono mediamente per l'85% della loro superficie, questo è una indicazione della buona qualità del riconoscimento del pallone nella sequenza di immagini che costituiscono il video.


Highlights

  • Students and theses
  • Publications
  • Thesis topics
  • Curated awesome list of CLI apps
  • Last updates (English)

  • Students and theses ()
  • Students and theses - English ()
  • Learn enough C to survive ()
  • Workflow for writing theses collaboratively ()
  • Guidelines for theses and presentations ()
  • Projects ()
  • Shortcuts for Bash ()
  • Last updates (Italian)

  • Risultati FdI 21-25 Novembre 2022 ()
  • Studenti e tesi ()
  • Risultati FdI 29 Settembre 2022 ()
  • Risultati FdI 02 Settembre 2022 ()
  • Risultati FdI 28 Luglio 2022 ()
  • Risultati FdI 29 Giugno 2022 ()
  • Interfacciamento client-server con il simulatore di propagazione del calore Energy2D ()
  • List of categories

    article article_en article_it C courses fdi lang_en lang_it latex programming project research results robotics software teaching thesis tips