Un detector nel calcio ha valutato una testa calva come un pallone al 98%. Ho creato un gate fisico che respinge i rilevamenti impossibili a valle di qualsiasi detector.
Visione artificialeAnalisi sportivaTracciamento degli oggetti

Una telecamera automatizzata ha seguito una testa calva per un'intera partita di calcio. Ho costruito il gate fisico che dice no.

Ashutosh SinghalAshutosh Singhal15 luglio 202610 min

Nell'ottobre del 2020, una telecamera automatizzata dell'Inverness Caledonian Thistle trascorse gran parte di una partita di calcio a seguire la testa calva di un guardalinee anziché il pallone. Sotto i riflettori la testa brillava come una palla, la telecamera Pixellot seguì il rilevamento con la confidenza più alta che le era stato passato, e gli spettatori a casa si ritrovarono un lungo e costante primo piano di un uomo calvo che faceva jogging lungo la linea laterale mentre la partita si svolgeva fuori campo (documentato sulla pagina della nostra soluzione WP43).

Quella storia mi è rimasta impressa per l'intera durata di questo sviluppo, perché è l'immagine più limpida che conosca di un fallimento che chiunque si occupi di computer vision ha percepito e che quasi nessuno definisce correttamente. Il detector non era rotto. Ha fatto esattamente ciò che fa un detector: ha valutato una porzione di pixel, il riflesso sulla testa ha ottenuto un punteggio alto e ogni sistema a valle si è fidato di quel punteggio. Plumbline, la demo che ho costruito, si trova all'indirizzo https://veriprajna.com/demos/physics-constrained-computer-vision, e l'intera demo sostiene un'unica tesi: la soluzione non risiede all'interno del detector.

Il momento in cui ho smesso di dare la colpa al modello

Ho trascorso il primo giorno di questo lavoro a cercare di immaginare un detector migliore, e non sono riuscito a eliminare il problema. Un object detector è indipendente dal fotogramma. Valuta ogni immagine in base a texture e forma, senza alcuna memoria di dove si trovasse un oggetto reale un istante prima o di dove possa fisicamente trovarsi un istante dopo. Così, sotto l'illuminazione dello stadio, una testa calva è localmente un pallone eccellente. Si può addestrare un modello più preciso, ma nel fotogramma in cui il riflesso raggiunge il picco continuerà comunque a presentare un pallone con confidenza del 98% posizionato sulla testa di un uomo. La confidenza non sta mentendo sui pixel: sta rispondendo a una domanda che non ha nulla a che fare con la possibilità che un pallone possa trovarsi lì.

È stato allora che la prospettiva si è ribaltata per me.

Il vostro sistema di visione non ha un problema di confidenza. Ha un problema di fisica.

Un pallone reale rispetta vincoli a cui una testa calva non obbedisce, e nessuno di questi vincoli risiede nel punteggio del detector. Questo singolo cambio di prospettiva ha determinato l'intera architettura. Ho smesso di cercare di rendere più intelligente il detector e ho iniziato a costruire un layer che si colloca dopo di esso e impone la fisica di cui il detector non ha mai saputo nulla.

Che aspetto ha "fisicamente impossibile" nel codice

Volevo vedere un rilevamento venire respinto per un motivo leggibile in linguaggio chiaro, quindi è stata questa la prima cosa che ho costruito. Plumbline si colloca a valle di qualsiasi detector ed esegue tre gate deterministici su ogni candidato prima che qualsiasi componente intervenga su di esso. Il gate cinematico utilizza un filtro di Kalman, nello specifico un Unscented Kalman Filter sul percorso sintetico con un modello di moto del proiettile, per prevedere dove possa trovarsi un pallone reale subito dopo, quindi misura quanto ciascun candidato si discosti da tale previsione come distanza di Mahalanobis: accetta sotto i 3 sigma, rifiuta oltre i 5 sigma, contrassegna per revisione la fascia tra 3 e 5 sigma. Il gate del flusso ottico confronta il movimento locale dei pixel di un candidato con la velocità prevista della traiettoria e rifiuta un "pallone" il cui flusso punti nella direzione errata o che si muova a malapena a gioco aperto. Il gate geometrico utilizza un modello pinhole per calcolare quanti pixel una palla da 22 cm possa sottendere alla profondità implicita del candidato, scartando le dimensioni che non possono essere reali.

Nessuno di questi è un modello. Sono semplice codice numpy e scipy leggibile riga per riga, collocato all'esterno di qualsiasi rete, ed è proprio questo il motivo per cui mi fido di loro. La fiducia qui non dipende da una black box che cerca di spiegarsi a posteriori.

La testa calva fallisce tutti e tre i gate contemporaneamente. Ho iniettato quell'impostore deliberatamente, come riproduzione dell'incidente di Inverness del 2020 anziché come fortuito errore organico, perché il caso che manda in crisi una telecamera è esattamente quello che non compare mai nel test set di un detector. Nel fotogramma peggiore della clip sintetica la testa ottiene un punteggio di 82,3 sigma rispetto al moto previsto del pallone, il che non è un margine risicato: è cinematicamente assurdo. Il pallone reale, con una confidenza di 0,87 e 0,4 sigma, passa senza problemi e la telecamera rimane puntata su di esso.

Il feed dei gate di Plumbline che rifiuta una testa calva con confidenza del 98% mentre il tracker ingenuo vi si aggancia
Lo scenario del guardalinee calvo. Il detector fornisce a entrambi i tracker un "pallone" ad alta confidenza sulla testa del guardalinee (fino al 98%); il riquadro ingenuo a sinistra vi si aggancia, mentre il feed dei gate del riquadro a destra rifiuta l'impostore su tutti e tre i gate contemporaneamente (stazionario a gioco aperto, cinematicamente assurdo a 82,3 sigma nel fotogramma peggiore, dimensioni impossibili in profondità) e prosegue per inerzia sulla propria previsione.

Ogni rifiuto lascia una motivazione registrata

Non volevo che nulla di tutto questo fosse un atto di fede, quindi ogni decisione scrive un record che è possibile aprire. Il log delle decisioni esportato riporta in alto il seed, lo scenario, l'ID del detector e le soglie dei gate, seguiti da una riga per fotogramma per candidato: la classe e la confidenza emesse dal detector, il verdetto numerico di ciascun gate con la motivazione in linguaggio chiaro ("Mahalanobis 82 sigma >= 5 sigma: kinematically impossible") e l'azione finale. Nello scenario del guardalinee calvo, i gate rifiutano tutti i 18 falsi rilevamenti ad alta confidenza dell'impostore, e il tracker basato sulla fisica mantiene il pallone il 97,7% delle volte contro il 59,1% del metodo basato sulla confidenza più alta e il 20,5% per una soglia rialzata (scena sintetica, seed 7).

Per chiunque abbia la responsabilità di una decisione visiva automatizzata, quel record rappresenta la differenza tra un report di incidente e una scrollata di spalle. È progettato per costituire una prova archiviabile del motivo per cui una telecamera ha fatto ciò che ha fatto: non un certificato di conformità, ma semplicemente la motivazione fisica, registrata, fotogramma per fotogramma.

Il log delle decisioni esportato dei gate fisici per lo scenario bald_linesman
Il log delle decisioni esportato, scenario bald_linesman, seed 7. 98% di tempo sul bersaglio per la fisica contro il 59% e il 20% per le due baseline, con il verdetto di ciascun gate per ogni fotogramma e la motivazione in chiaro riportati sotto.

Alzare la soglia di confidenza è la manopola sbagliata

Quando mostro agli ingegneri il rifiuto della testa calva, il primo istinto è quasi sempre lo stesso: basta alzare la soglia di confidenza finché il falso pallone non sparisce. Ho costruito la demo per rispondere a questo istinto con i numeri, perché sembra una mossa giusta, ma è sbagliata. Sulla scena sintetica pulita, priva di alcun impostore, alzare la soglia scarta il 43,2% dei palloni reali a bassa confidenza, mentre i gate fisici limitano le mancate rilevazioni sul set pulito al 2,3%, che corrisponde a un singolo fotogramma di latenza di acquisizione anziché a un pallone perso. La soglia scambia un falso positivo con una montagna di falsi negativi.

I gate fisici operano su un asse completamente diverso. Possono respingere il rilevamento impossibile senza scartare quello reale e debole, perché ciò che verificano (un pallone può trovarsi qui, muoversi in questo modo e con queste dimensioni?) non ha alcuna relazione con l'intensità con cui il detector ha votato. È proprio questa ortogonalità che ho voluto rendere innegabile attraverso il test sulla scena pulita.

La verifica di correttezza sulla scena pulita: 2% di mancate rilevazioni con la fisica contro il 43% della baseline con soglia rialzata
La verifica di correttezza sulla scena pulita senza impostore. La fisica perde il 2% dei fotogrammi (latenza di acquisizione di un singolo fotogramma) contro il 43% della baseline a soglia rialzata, e le note indicano chiaramente che l'impostore della testa calva è una riproduzione iniettata dell'incidente di Inverness del 2020, non un errore emergente.

C'è un dettaglio secondario a cui mi sono affezionato durante i test: il caso dell'occlusione. Un giocatore passa davanti al pallone per una dozzina di fotogrammi, ogni candidato viene rifiutato e, anziché agganciare il giocatore, il tracker fisico prosegue per inerzia sulla propria previsione attraverso l'interruzione e riacquisisce il pallone quando riappare. Vederlo mantenere una traccia vuota piuttosto che bluffare su una traccia sbagliata è stato il momento in cui quel layer è sembrato meno un filtro e più una forma di giudizio.

Il numero che per poco non ho mostrato

Stavo quasi per tagliare il test sui filmati reali, e mantenerlo è la decisione di cui vado più orgoglioso nell'intero progetto. Tutto quanto descritto sopra gira su una scena sintetica con ground truth nota, il che rende possibile un benchmark pulito, ma è facile diffidare di una vittoria ottenuta sui dati sintetici. Così ho preso una clip televisiva reale, vi ho eseguito rilevamenti YOLO11x reali fotogramma per fotogramma, ho iniettato la testa del guardalinee come falso pallone a partire dal rilevamento effettivo della persona e ho eseguito gli stessi tre gate senza modifiche. Ne sono scaturiti due compromessi onesti. Una singola clip televisiva non calibrata non possiede profondità metrica, quindi in quel caso il gate cinematico opera sul piano dell'immagine come filtro di Kalman bidimensionale anziché nello spazio reale, e simulare un filtro 3D sarebbe stata una menzogna. E il punteggio è sceso. Sulla clip reale i gate fisici mantengono il pallone il 68,3% delle volte, contro il 43,8% del metodo basato sulla confidenza più alta e il 30,0% della soglia rialzata.

Ho riflettuto a lungo su quel 68,3%, perché il 97,7% è il numero che si vende bene, mentre il 68,3% è il numero reale su video complessi. Ho mantenuto quello onesto sul tabellone dei punteggi, all'interno dell'applicazione, dove chiunque può leggerlo. Un layer di verifica che promette troppo ha già fallito nell'unico compito che dichiara di svolgere. Ciò che conta davvero è la direzione: lo stesso codice dei gate, inalterato, supera entrambe le baseline sia sui rilevamenti reali sia su quelli simulati, e dichiara apertamente i propri limiti.

Il tabellone dei filmati reali: 68% sul bersaglio per la fisica contro il 44% del tracker ingenuo
Il pannello "Informazioni su questa demo" per i filmati reali. Sulla clip televisiva reale con rilevamenti YOLO11x reali, i gate fisici mantengono il 68% sul bersaglio contro il 44% del metodo basato sulla confidenza più alta, onestamente inferiore al limite massimo sintetico perché i filmati reali sono più complessi e vengono misurati come tali.

Ciò di cui questo è realmente il substrato

Non mi ero prefissato di costruire un prodotto per il calcio, e voglio essere cauto su ciò che questa demo è e non è. Non sostengo che il nostro sistema tracci meglio di qualunque telecamera in commercio, poiché il firmware successivo di Pixellot gestisce già il caso letterale della testa calva, e il detector non è il prodotto. Il prodotto è il layer sottile e ispezionabile posto tra un detector e qualsiasi elemento agisca sul suo output. Queste metriche misurano la qualità del tracciamento, non il tasso di errore del detector, ed è per questo che il valore resta valido a prescindere da quanto diventi accurato il detector sottostante.

Quel layer conta oggi più di quando ho iniziato. La computer vision sta diventando agentica, con sistemi che non si limitano a etichettare un fotogramma ma intervengono su di esso, e la questione di governance ancora irrisolta alla base di tutti loro è come impedire a un agente autonomo di agire sulla base di un rilevamento fisicamente impossibile. SoccerNet definisce ancora il tracciamento di oggetti multipli "tutt'altro che risolto", senza alcun metodo consapevole della fisica integrato finora nei suoi benchmark. La testa calva non è mai stata la parte interessante per me. La parte interessante è che il vincolo che la individua — ovvero che un oggetto reale debba obbedire alla fisica — resta valido anche contro un futuro detector perfetto, perché una palla che fluttua a un'altezza costante muovendosi a tre miglia all'ora è errata con qualsiasi livello di confidenza. Se volete vedere un rilevamento venire annullato e leggere il motivo esatto per cui è stato respinto, la demo si trova all'indirizzo https://veriprajna.com/demos/physics-constrained-computer-vision, con l'esecuzione affiancata della clip reale e delle scene sintetiche.

E se preferite guardarlo con i vostri occhi anziché fidarvi della mia parola, ecco l'intero sistema in esecuzione da cima a fondo, con la clip reale e le scene sintetiche affiancate.

La telecamera ha seguito una testa calva perché nessuno le aveva mai spiegato cosa può fare un pallone. Tutto ciò che ho costruito è semplicemente quell'istruzione, messa nero su bianco dove potete verificarla.

Ricerca correlata

Pubblicato anche su

Costruisci la tua IA con fiducia.

Collabora con un team che vanta una profonda esperienza nella creazione della prossima generazione di IA aziendale. Lascia che ti aiutiamo a progettare, sviluppare e implementare una strategia di IA di cui ti puoi fidare.

Veriprajna società di consulenza Deep Tech è specializzata nella creazione di sistemi di IA safety-critical per i settori sanitario, finanziario e regolamentato. Le nostre architetture sono validate rispetto a protocolli consolidati con una documentazione di conformità completa.