Quali algoritmi di visione del computer sono utilizzati in Protracer per il volo della pallina da golf? Artboard

Ho intenzione di fare un tentativo di rispondere a questo, in quanto ha suscitato il mio interesse sia come ingegnere di visione del computer che come un (mai veramente migliorando) golfista del fine settimana. Questa risposta è basata esclusivamente su informazioni pubblicamente rilasciate (siti web, brevetti rilasciati), quindi forse qualcuno con una conoscenza più approfondita può fornire maggiori informazioni. Inoltre, non ho mai usato nessuno dei due sistemi, quindi potrei facilmente mancare altre caratteristiche basate sulla visione artificiale.

Due diversi sistemi sono stati menzionati nella domanda (Protracer e TrackMan), e per quanto posso dire sono due tecnologie diverse. Protracer ha due sistemi diversi: l'originale Protracer TV e il più recente Protracer Range. Entrambi sembrano essere più interessanti per quanto riguarda la computer vision/elaborazione delle immagini, dato che il loro sensore primario è una telecamera. Nel frattempo, TrackMan si basa pesantemente sul radar (s) al fine di determinare una traiettoria 3D stimata della palla da golf. Lasciatemi elaborare...

L'ultimo modello di TrackMan combina due sistemi radar in un'unità TrackMan per tracciare il volo della pallina da golf (o altri proiettili in altri sport) e la mazza da golf [1]. C'è anche una telecamera incorporata nel TrackMan che viene utilizzata per registrare gli swing da dietro il golfista [2]:

main-qimg-8561626e8726a0d0db6a66a17409b6be.webp

Non credo che venga utilizzata molta computer vision nel TrackMan: credo che la telecamera venga utilizzata principalmente per registrare le immagini su cui viene sovrapposta la traiettoria del volo della pallina. Tuttavia, ci sono sicuramente alcune trasformazioni di coordinate in corso per proiettare la traiettoria stimata dal radar nell'inquadratura della telecamera, e uno dei loro brevetti [3] descrive la possibilità di stimare la distanza da un bersaglio selezionato dall'utente misurando "l'estensione angolare di un modello predeterminato del bersaglio" che "può essere facilmente determinato dall'immagine con tecniche di rilevamento dei bordi". Quindi, se l'utente non conosce la distanza di un obiettivo selezionato nell'immagine della telecamera, un'altra opzione è quella di utilizzare un obiettivo con un modello noto su di esso, ad esempio un modello a scacchiera, al fine di stimare la distanza. Ma, immagino che il caso d'uso principale per TrackMan sia sul campo da golf, dove la distanza dei vari obiettivi è già nota (entro certi limiti). Ci potrebbero essere altre funzioni nel sistema che utilizzano la computer vision, però, in base all'esistenza di un "Computer Vision team" menzionato in un recente annuncio di lavoro [4].

Conversamente, il sistema Protracer TV [5] sembra essere pesantemente basato sulla computer vision/tecniche di elaborazione delle immagini per stimare e disegnare la traiettoria della palla sul video registrato da una telecamera ausiliaria. Il loro brevetto [6] mostra una telecamera ad alta risoluzione, usata come input per i loro algoritmi, montata sopra una telecamera broadcast TV in modo che ci sia una trasformazione fissa e misurabile ("aggiustamento di parallasse") tra le due telecamere, e in modo che "abbiano essenzialmente lo stesso campo visivo".

main-qimg-a59154cc8e3a2c29a77245150a72d6c0.webp

Questa trasformazione è una misura una tantum, e permette alle posizioni stimate della palla nella telecamera ad alta risoluzione di essere disegnate nella posizione corretta sul fotogramma della telecamera broadcast TV. In un'altra istanza, il loro algoritmo potrebbe potenzialmente essere eseguito sui fotogrammi provenienti dalla telecamera di trasmissione TV, eliminando la necessità di una telecamera ausiliaria ad alta risoluzione. Indipendentemente da ciò, il loro algoritmo di computer vision è lo stesso in entrambi i casi.

L'algoritmo di Protracer TV può essere suddiviso nei seguenti passi (derivati dalla lettura di uno dei loro brevetti [6]):

  1. Differenziazione della sequenza iniziale di fotogrammi: Dato un set iniziale di fotogrammi dalla telecamera di ingresso, le immagini di differenza sono calcolate tra fotogrammi consecutivi. Poi, ai valori di differenza al di sopra di una soglia viene assegnato un certo valore (ad esempio bianco) mentre alle differenze al di sotto di una seconda soglia viene assegnato un altro valore (ad esempio nero). Si ha quindi una serie di immagini binarie in cui (si spera) vengono evidenziati solo i pixel corrispondenti a cose in movimento.
  2. Identificazione dei candidati alla palla: Gruppi di pixel (blob) che sono rimasti fuori durante la differenziazione dei fotogrammi vengono poi deselezionati in base a un criterio di dimensione della palla. Si presume che la distanza approssimativa dalla telecamera al golfista/palla da golf sia nota, che può essere acquisita sia con l'inserimento manuale sia ottenendo un segnale di distanza focale dalla funzione di autofocus della seconda telecamera (TV) (dato che quella telecamera sarà focalizzata sul golfista). La dimensione attesa della pallina in pixel può quindi essere calcolata in base alla dimensione standard di una pallina da golf e all'ottica e risoluzione dell'obiettivo della telecamera ausiliaria, e i blob che non rientrano in una gamma di dimensioni accettabili vengono scartati.
  3. Selezione della pallina: Le palline candidate accettate vengono ulteriormente filtrate in base a un criterio di rotondità e considerando solo le regioni di interesse nel fotogramma in cui ci si aspetta la presenza di una palla. Poi, in una serie di tre fotogrammi consecutivi la vera palla viene identificata essenzialmente eliminando traiettorie potenziali improbabili tra i fotogrammi. Immaginate di tracciare delle linee tra tutti i candidati alla palla nel primo fotogramma e tutti i candidati alla palla nel terzo fotogramma. Le linee che non hanno un candidato palla corrispondente nel secondo fotogramma (entro una piccola distanza dalla linea) vengono scartate, così come le linee che superano un certo angolo da una linea verticale tracciata lungo il centro del fotogramma (poiché non ci aspettiamo che i colpi vadano immediatamente troppo di lato). Inoltre, la selezione può richiedere che la dimensione della palla diminuisca nei fotogrammi consecutivi (man mano che si allontana dalla telecamera) e che la velocità della palla sia entro un intervallo accettabile.
  4. Tracking: Dopo che una palla è stata selezionata, si entra nella fase di tracking. Ci sono due fasi per il tracking: iniziale e costante. Durante il tracking iniziale, i tre fotogrammi precedenti sono considerati ad ogni fotogramma N, dove le velocità dai fotogrammi (N-3) a (N-2) e (N-2) a (N-1) sono usate per prevedere la posizione della palla nel fotogramma corrente. Quando una palla è stata tracciata con questo schema fino a un certo numero di fotogrammi (diciamo 10), allora viene abilitato il tracciamento a stato costante dove solo i due fotogrammi precedenti sono usati per stimare la posizione della palla nel fotogramma successivo. Questo aiuta a ridurre la quantità di calcoli richiesti, poiché durante questa fase presumo che le fasi di differenziazione dei fotogrammi + identificazione del candidato alla palla + selezione della palla debbano ancora essere eseguite.
  5. Fine del tracking: Il tracking termina quando non viene trovato nessun candidato alla palla entro una certa soglia di distanza dalla posizione prevista nel frame corrente, per un certo numero di frame consecutivi (1-3 frame è menzionato nel brevetto).

Durante il tracking, l'immagine composita creata sovrapponendo la traiettoria della palla al frame originale della telecamera viene usata come output ed è ciò che si vede in TV. L'ovvio limite di Protracer TV è che non stima la posizione 3D della palla, che probabilmente li ha portati a sviluppare Protracer Range. Destinato all'installazione nei campi da golf, Protracer Range "offre dati come la distanza (carry e totale), la velocità della palla, l'angolo di lancio, l'altezza, la deviazione laterale, l'angolo di atterraggio, il tempo di sospensione e la distanza dal bersaglio" per un massimo di 20 campi da golf separati [7].

I sensori e gli algoritmi di Protracer Range sono un po' più difficili da dissezionare rispetto a Protracer TV, poiché non ci sono molti dettagli sul loro sito e non sono riuscito a trovare alcun brevetto rilevante. Sul loro sito menzionano "Protracer Range utilizza la stessa tecnologia di tracciamento proprietaria" di Protracer TV, ma "con sensori e software avanzati...". Credo che stiano usando due telecamere montate sopra le postazioni di battuta ad una distanza orizzontale (o linea di base) di ~30m l'una dall'altra, come mostrato in uno dei loro video promozionali [8]:

main-qimg-6443c1e01784835ec8bfee9f0be7486b.webp

Una versione più avanzata dell'algoritmo di tracciamento di cui sopra è probabilmente usata per tracciare simultaneamente più palle con una singola telecamera, e poi cercare la traccia corrispondente nella telecamera opposta per calcolare la disparità stereo e quindi la distanza dalla palla. Questo combinato con una stima della posizione orizzontale e verticale (basata sulla dimensione della palla, l'ottica e la risoluzione della telecamera, ecc.) nel tempo fornirebbe una traiettoria 3D completa, dalla quale tutti i dati elencati sopra possono essere determinati e presentati all'utente. Oppure, potrei sbagliarmi completamente e stanno usando un radar all'interno dei sensori... chi lo sa?

Ora, la vera domanda: qualcuno ha 19.000 dollari da donare per comprare un TrackMan e migliorare il mio gioco?

Riferimenti:

  1. TrackMan: ABOUT
  2. TrackMan Patent: Brevetto US20160048975 - Gruppo comprendente un radar e un elemento di imaging
  3. Patente TrackMan: Brevetto US8912945 - Metodo e apparato per determinare una deviazione tra una direzione effettiva di un proiettile lanciato e una direzione predeterminata
  4. TrackMan Careers
  5. Protracer TV
  6. Protracer (Daniel Forsgren, Fondatore) Patent: Brevetto US8077917 - Sistemi e metodi per migliorare le immagini in una registrazione video di un evento sportivo
  7. Protracer Range: Come funziona - Protracer TV
  8. Protracer Range YouTube video: Rivoluzionare il campo pratica con Protracer Range