Il rilevamento degli oggetti è uno dei problemi fondamentali e più impegnativi della computer vision. Si concentra sull’identificazione e sulla localizzazione di istanze di classi di oggetti predefinite (come barche, esseri umani, animali) nelle immagini digitali.
Che cos’è il rilevamento degli oggetti?
Rispetto alla classificazione delle immagini, il rilevamento degli oggetti fornisce maggiori informazioni sul contenuto dell’immagine. L’esempio seguente lo dimostra.
La classificazione delle immagini risponderebbe semplicemente alla domanda: “Quale oggetto è presente nell’immagine?”. – Se il modello funziona bene, la risposta è “nave”. Se il modello è in grado di prevedere diverse classi, potrebbe anche dire “nave” e “oggetto lontano”, ma questa è la massima informazione che possiamo ottenere da esso.
In confronto, il rilevamento degli oggetti non risponde solo a “Quale oggetto è presente nell’immagine?”, ma anche a “Quanti oggetti sono presenti nell’immagine?” e “Dove si trovano le immagini?”.
Naturalmente, questa è una risposta più utile in molti scenari reali, come l’evitamento delle collisioni.
Deep Learning
Queste risposte, dette anche previsioni, sono generate da modelli. Oggi i modelli sono reti neurali profonde (DNN).
Tipi di DNN
Esistono diversi tipi di DNN, ma due dominano compiti come il rilevamento degli oggetti. Il metodo di deep learning più importante per la computer vision utilizza le cosiddette reti neurali convoluzionali (CNN).
I ricercatori hanno inventato l’architettura delle CNN nel 1980. Tuttavia, il documento di svolta che ha reso popolari le CNN profonde è apparso solo nel 2012, presentando AlexNet.
Da allora, le CNN sono state un ingrediente fondamentale della computer vision. Solo pochi anni fa, nel 2017, i ricercatori di Google hanno introdotto i modelli Transformer, che sono diventati molto popolari per le loro ottime prestazioni di rilevamento.
Tuttavia, non hanno sostituito completamente le CNN, poiché i trasformatori tendono a essere più lenti, richiedono più dati per l’addestramento e una maggiore potenza di calcolo.
Come funzionano i DNN?
Questi modelli sono costituiti da diversi strati sovrapposti.
Quando si inserisce un’immagine nel modello, ogni livello la elabora e ogni livello alimenta il suo output al successivo.
Il termine “profondo” nell’apprendimento profondo si riferisce alla presenza di un gran numero di questi strati. La figura seguente mostra un layout molto semplificato di come questi strati si impilano.
Si noti che questo è solo un esempio giocattolo; in pratica, i modelli contengono molti più strati, diversi tipi di strati e altri tipi di connessioni e operazioni di elaborazione.
In modo molto semplificato, si può pensare a ogni livello come a un calcolo che utilizza l’addizione e la moltiplicazione.
Ogni livello è composto da più parametri, che sono essenzialmente semplici numeri che vengono utilizzati per le operazioni matematiche.
In termini di numero totale di parametri per modello, le DNN per il rilevamento di oggetti possono variare molto: da 2,4 milioni di parametri (YOLO26 nano, un modello basato su CNN) fino a 218 milioni di parametri (una versione di DINO che utilizza un backbone SwinL, un modello basato su trasformatori).
L’essenza della formazione: i dati
Per ottenere un modello che faccia buone previsioni, è necessario addestrarlo. Intuitivamente, durante questo processo, il modello impara come appaiono certi tipi di oggetti e come rilevarli correttamente.
Nel deep learning sono i dati a guidare il processo di addestramento. Ciò significa che, invece di dire esplicitamente al modello come appaiono certi tipi di oggetti (cosa essenzialmente impossibile), gli forniamo grandi quantità di dati e le previsioni desiderate (chiamate verità di base).
Sulla base di questi due fattori, il modello impara a generare le previsioni migliori. Sebbene possa sembrare una magia, si tratta essenzialmente di matematica: il modello apprende i valori ottimali dei parametri attraverso un processo di ottimizzazione matematica.
In effetti, apprende una funzione matematica altamente complessa e non lineare che riassume al meglio i dati forniti. Non sorprende che un set di dati di alta qualità sia essenziale per ottenere un modello affidabile con risultati di rilevamento corretti.
In genere dividiamo il set di dati in tre sottoinsiemi:
- Set di dati di addestramento: comprende immagini annotate con caselle di delimitazione ed etichette di classe. Queste annotazioni consentono al modello di imparare a rilevare e classificare gli oggetti.
- Set di dati di convalida: comprende immagini separate, non viste durante l’addestramento, che utilizziamo per mettere a punto le diverse impostazioni del modello (ad esempio, quanti strati voglio utilizzare, ovvero quanto deve essere profondo il modello?)
- Test dataset: comprende immagini separate, non viste durante l’addestramento e la validazione, che vengono utilizzate per valutare le prestazioni finali del modello.
Questa separazione consente una misurazione oggettiva delle prestazioni e supporta miglioramenti iterativi in aspetti chiave come la velocità di rilevamento, la robustezza agli oggetti multiscala (dimensioni e distanze diverse) e la precisione complessiva.
Per migliorare continuamente le prestazioni del modello, il set di dati deve essere ampliato regolarmente. I dati vengono raccolti in ambienti operativi reali e in condizioni diverse per garantire la robustezza rispetto a un’ampia gamma di scenari.
Il processo completo di raccolta dei dati è descritto in dettaglio qui: Come raccogliamo i dati per l’addestramento dell’intelligenza artificiale?
Soprattutto nel caso di utilizzo marittimo, le dimensioni degli oggetti presentano una particolare difficoltà. Spesso gli oggetti sono relativamente distanti e quindi appaiono poco dettagliati nell’immagine.
Considerate l’immagine qui sotto: gli oggetti esistono chiaramente in ogni coltura, ma a quali categorie corrispondono gli oggetti?
Dopo qualche tempo, si potrebbe intuire che il lato destro mostra una barca a vela e quello sinistro una boa sferica.
Tuttavia, non si tratta di una distinzione banale (stessa forma sferica, stesso colore nelle immagini LWIR, ecc.). Pertanto, in questi casi, è particolarmente importante disporre di un set di dati ampio e di alta qualità, in modo che il modello possa apprendere le distinzioni corrette. Ancora una volta, questo dimostra perché diamo tanta importanza a un buon set di dati.
Comprendere il rilevamento degli oggetti marittima con IA: riflessioni finali
Il rilevamento degli oggetti si concentra sulla localizzazione (dove?) e sulla classificazione (cosa?) di tutti gli oggetti presenti in un’immagine. Lo fa eseguendo una complessa operazione matematica, utilizzando l’immagine come input.
Anche se le operazioni matematiche sono complesse e di solito coinvolgono milioni di parametri, l’obiettivo è semplice: rilevare in modo robusto tutti gli oggetti in un’immagine.
Nel nostro caso, questo serve come base per evitare con successo le collisioni in mare.