Introduzione alla visione artificiale per il rilevamento e la classificazione degli oggetti

By

–

–

10–16 minuti

La computer vision costituisce un settore di ricerca avanzato nell’ambito dell’intelligenza artificiale, il cui obiettivo primario è l’estrazione automatica di informazioni strutturate da immagini e video. Questo processo consente l’automatizzazione di compiti di analisi visiva tradizionalmente eseguiti dall’intelletto umano, con applicazioni che spaziano dalla diagnostica medica alla robotica industriale. L’evoluzione delle reti neurali profonde (deep learning) ha rivoluzionato il campo, introducendo modelli in grado di apprendere rappresentazioni gerarchiche dei dati visivi, superando i limiti dei tradizionali approcci basati su estrazione manuale delle feature.

Uno degli ambiti chiave della computer vision è la rilevazione e classificazione degli oggetti, una problematica complessa che coinvolge l’identificazione e la categorizzazione automatizzata di elementi visivi in un’immagine.

Questo articolo ha lo scopo di divulgare alcuni queste tecniche attraverso sullo sviluppo di un di un sistema avanzato di riconoscimento automatico delle carte da gioco napoletane, con l’obiettivo di distinguere tra i quattro semi principali: Denari, Bastoni, Spade e Coppe. A tal fine, vengono impiegate tecniche all’avanguardia di object detection e classification, basate su tecniche di deep learning e ottimizzate mediante strategie di apprendimento supervisionato, training e fine-tuning di modelli pre-addestrati.

In questo sistema di riconoscimento di carte da gioco napoletane basato sulla computer vision, le immagini acquisite sono state acquisite da ma tramite cellulare, tuttavia potrebbero esser acquisite con altri sistemi (ad esempio da una telecamera in tempo reale o da fotografie pre-caricate) vengono analizzate attraverso algoritmi di elaborazione per il rilevamento e l’etichettatura automatica.

Un caso d’uso originale: Rilevamento e classificazione di carte napoletane

  • Complessità iconografica: a differenza delle carte francesi, i semi delle carte napoletane presentano dettagli grafici ricchi che pongono sfide nel pattern recognition.
  • Variabilità di orientazione e sovrapposizione: le carte possono essere ruotate, sovrapposte o parzialmente coperte, imponendo difficoltà nel rilevamento.
  • Condizioni ambientali variabili: variazioni di illuminazione, riflessi e sfondi diversificati influiscono sulla qualità della rilevazione.

Questo progetto esplora un approccio basato sul deeplearning per l’object detection, con possibili estensioni a settori industriali quali manifattura, gestione della supply chain e automazione della logistica, con applicazioni in controllo qualità, monitoraggio degli inventari e gestione intelligente della produzione.

Struttura del caso d’uso

L’articolo esplora le seguenti fasi chiave dello sviluppo del modello:

  1. Annotazione e revisione: etichettatura e validazione delle immagini per il training.
  2. Addestramento del modello: scelta dell’architettura, ottimizzazione dei parametri e metriche di valutazione.
  3. Valutazione e risultati: analisi delle prestazioni del modello e error analysis.
  4. Test e codici di integrazione: Uso di API per la costruzione di applicazioni di rilevamento sul modello addestrato
  5. Conclusioni e Sviluppi Futuri: miglioramenti potenziali e applicazioni future.

Annotazione e revisione

Processo di etichettatura

Il processo di annotazione e revisione delle immagini segue un workflow strutturato che garantisce la qualità del dataset utilizzato per l’addestramento del modello di computer vision. Il ciclo inizia con il caricamento delle immagini, che vengono organizzate in batch e rese disponibili nella sezione Unassigned, in attesa di essere assegnate agli annotatori. Successivamente, le immagini passano alla fase di annotazione, dove vengono etichettate manualmente o attraverso un sistema di automatic labeling, con la creazione di bounding box e classi assegnate agli oggetti rilevati. Una volta completata questa fase, le immagini entrano nel processo di revisione, in cui un supervisore verifica la correttezza delle etichette: le immagini correttamente annotate vengono approvate, mentre quelle con errori vengono rifiutate o rimandate per ulteriori correzioni. Le immagini validate vengono quindi archiviate nel dataset finale, accessibile attraverso un’interfaccia che permette di visualizzare l’intero insieme di immagini annotate. Questo flusso di lavoro assicura un dataset pulito e strutturato, riducendo errori e migliorando la qualità dei dati utilizzati per l’addestramento del modello.

Processo di annotazione

Nel nostro caso d’uso sono stati adottati criteri rigorosi per la gestione delle sovrapposizioni e la precisione delle bounding box, con verifica incrociata per ridurre errori sistematici. La piattaforma di revisione utilizzata ha consentito di monitorare lo stato delle annotazioni, approvando, correggendo o rigettando quelle non conformi agli standard prestabiliti.

Esempio pratico di etichettatura di di una singola immagine contenete più istanze di carte

Il processo è stato iterato per ogni carta dall’asso al dieci di spade.

Inizio etichettatura singola immagine

Fine etichettatura singola immagine

Processo etichettatura completato

Creazione file per addestrare il modello di visione

Una volta effettuato il processo di etichettatura viene creato il file JSON contenente le etichette di ogni “boxes” selezionato sull’immagine per permettere l’addestramento supervisionato dell’immagine.

Di seguito si riporta una schermata illustrativa del dataset finale


Suddivisione del dataset in Train set, Valid set, Test-Set

Per l’addestramento del modello le immagini sono state suddivise come segue:

  • Training set (76%): 106 immagini per l’addestramento del modello.
  • Validation set (16%): 22 immagini per la calibrazione degli iperparametri.
  • Test set (8%): 11 immagini per la valutazione finale del modello.

Per minimizzare bias nelle predizioni, il dataset è stato analizzato per garantire una distribuzione uniforme tra i quattro semi (Denari, Bastoni, Spade e Coppe), verificando la coerenza delle annotazioni.

L’analisi quantitativa ha mostrato 276 annotazioni totali, con una media di 2,9 bounding box per immagine. Questa distribuzione garantisce una copertura adeguata per ogni seme e riduce il rischio di bias nel modello di addestramento.

L’analisi delle heat maps delle annotazioni ha evidenziato la distribuzione spaziale delle carte nelle immagini, identificando eventuali sbilanciamenti nelle aree di rilevamento.


Addestramento del Modello

Per il rilevamento e classificazione degli oggetti è stato adottato YOLO (You Only Look Once), per la sua capacità di rilevazione in tempo reale. I parametri principali utilizzati:

  • Batch size: 16
  • Learning rate: 0.001
  • Epoche di addestramento: 300

L’analisi delle curve di Box Loss, Class Loss e Object Loss ha mostrato una convergenza stabile dopo circa 250 epoche, indicando una corretta ottimizzazione del modello.

L’addestramento del modello è stato monitorato attraverso una serie di grafici di training, i quali mostrano l’andamento delle principali metriche nel corso delle epoche. L’immagine riportata illustra i parametri chiave sia per il training set che per il validation set, suddivisi in due sezioni principali.

Nella prima riga sono rappresentate le metriche relative al training set. Il train/box_loss evidenzia una riduzione progressiva della perdita associata alla localizzazione degli oggetti, indicando un miglioramento della precisione spaziale delle bounding box. Il train/cls_loss, che misura l’errore nella classificazione delle classi, mostra un calo costante, segno che il modello sta apprendendo a distinguere con maggiore accuratezza tra i semi delle carte. Analogamente, il train/dfl_loss, che riflette la distribuzione dei logits all’interno della rete, dimostra una riduzione progressiva, suggerendo un affinamento della qualità del rilevamento degli oggetti. Le metriche precision(B) e recall(B), entrambe in crescita, indicano che il modello sta migliorando nella riduzione dei falsi positivi e nell’identificazione di tutti gli oggetti corretti.

Nella seconda riga, relativa al validation set, si osserva un comportamento simile. Il val/box_loss segue un trend decrescente, suggerendo che il modello sta generalizzando bene le informazioni apprese. Anche il val/cls_loss mostra una stabilizzazione con il passare delle epoche, indicando che il modello sta evitando problemi di overfitting. Il val/dfl_loss conferma una progressiva riduzione dell’incertezza nelle previsioni delle bounding box anche nei dati di validazione. Infine, le metriche mAP50 e mAP50-95, che misurano la precisione media a differenti soglie di Intersection over Union (IoU), evidenziano un incremento costante, segnale di una progressione positiva delle performance complessive del modello.

L’andamento complessivo dei grafici suggerisce che il modello ha seguito un addestramento efficace, con una costante riduzione delle perdite e un miglioramento continuo della precisione. L’assenza di oscillazioni anomale o divergenze nelle curve conferma che il modello sta apprendendo correttamente, senza mostrare segni di overfitting o underfitting, garantendo così un’ottima capacità di generalizzazione sui dati di test.

Performance del Modello

Questa immagine mostra un insieme di grafici di training che descrivono l’andamento delle prestazioni del modello durante le epoche di addestramento. Nella parte superiore, il grafico principale rappresenta la mean Average Precision (mAP) e la mAP@50:95, due metriche fondamentali per valutare la qualità delle predizioni del modello a diverse soglie di Intersection over Union (IoU). L’andamento crescente delle curve indica un miglioramento progressivo della capacità del modello di individuare e classificare correttamente gli oggetti nel dataset. L’oscillazione iniziale è normale nelle prime fasi di training, poiché il modello sta ancora apprendendo le caratteristiche degli oggetti, ma con il progredire delle epoche si stabilizza, mostrando un trend in crescita che raggiunge valori elevati di precisione, vicino a 0.9 di mAP nelle epoche finali.

Nella parte inferiore, tre grafici separati rappresentano le metriche di perdita (loss):

  • Box Loss: misura l’errore nella localizzazione dei bounding box durante l’addestramento. Si nota una rapida decrescita nelle prime 50 epoche, seguita da una stabilizzazione, il che suggerisce che il modello ha imparato a identificare con precisione la posizione delle carte napoletane.
  • Class Loss: indica l’errore nella classificazione dei semi delle carte. Dopo un’iniziale fluttuazione, si riduce drasticamente entro le prime 50 epoche e rimane stabile, suggerendo un buon apprendimento delle classi.
  • Object Loss: valuta la capacità del modello di distinguere tra oggetti e sfondo. Anche questa metrica presenta una decrescita significativa nelle prime fasi, con una stabilizzazione successiva, mostrando che il modello ha migliorato la sua sensibilità nella rilevazione degli oggetti.

L’analisi complessiva di questi grafici suggerisce che il modello ha raggiunto una buona convergenza, con metriche di perdita stabili e metriche di precisione elevate, senza evidenti segnali di overfitting o underfitting. Questo conferma che l’addestramento è stato efficace e il modello è pronto per essere testato su dati reali e rappresenta un ottimo punto di partenza e un modello abbastanza promettente.

Le prestazioni del modello sono state misurate con precision, recall e mAP@50:95 per valutare l’accuratezza della classificazione e della localizzazione degli oggetti.

MetricaValidation SetTest Set
Precision92%89%
Recall90%87%
mAP@5094%91%
mAP@50:9578%75%

Le metriche di valutazione sembrano comunicare che il modello promette molto bene per il contesto di rilevamento e classificazione delle carte da gioco napoletane. Le metriche registrate evidenziano una precisione del 92% nel validation set e dell’89% nel test set, valori che indicano una buona capacità del modello di effettuare predizioni corrette, con un basso tasso di falsi positivi. Inoltre, la recall del 90% nel validation set e dell’87% nel test set dimostra che il modello è in grado di rilevare la maggior parte delle carte presenti nelle immagini, riducendo il rischio di falsi negativi.

L’mAP@50 del 94% nel validation set e del 91% nel test set suggerisce che il modello è molto efficace nella rilevazione degli oggetti con una soglia di IoU del 50%, il che significa che nella maggior parte dei casi riesce a individuare con precisione le bounding box. Tuttavia, il valore di mAP@50:95 (78% nel validation set e 75% nel test set) evidenzia che, quando si impongono soglie di IoU più restrittive, la precisione diminuisce. Questo è un segnale che il modello potrebbe beneficiare di un ulteriore affinamento della localizzazione degli oggetti.

Il modello dimostra un’elevata capacità di generalizzazione, mantenendo precisione e recall elevate sia nel validation che nel test set, confermando l’apprendimento efficace delle caratteristiche delle carte. L’affidabilità nell’object detection, evidenziata dal mAP@50 elevato, lo rende idoneo per applicazioni in controllo qualità, gestione automatizzata degli inventari, gaming AI e sistemi interattivi di riconoscimento visivo in tempo reale. Tuttavia, permangono alcune criticità, tra cui false positive e false negative dovuti a condizioni di illuminazione variabili e carte sovrapposte, suggerendo la necessità di espandere il dataset con immagini più eterogenee. Inoltre, il valore di mAP@50:95 più basso indica margini di miglioramento nella regressione delle bounding box, che potrebbero essere affinati tramite strategie di hard example mining o l’adozione di modelli più avanzati.


Implicazioni e applicazioni

L’adozione della computer vision per la classificazione di oggetti ha implicazioni di vasta portata che si estendono ben oltre il riconoscimento delle carte da gioco. In ambito manifatturiero, può essere utilizzata per il controllo qualità automatizzato, riducendo l’errore umano e aumentando la precisione nell’identificazione di difetti nei prodotti. Nel settore della logistica, le tecnologie di visione artificiale sono impiegate per l’ottimizzazione della gestione degli inventari, il monitoraggio della merce nei magazzini e l’automazione dei processi di smistamento. Inoltre, nel contesto del controllo qualità industriale, i sistemi di rilevamento automatico basati su deep learning possono analizzare componenti e materiali in tempo reale, migliorando l’efficienza e riducendo i costi operativi.

Direzioni future

Dopo il completamento dell’addestramento, il modello, pur essendo stato sviluppato per dimostrare le potenzialità della computer vision nel riconoscimento automatico, offre una solida base per futuri affinamenti e ampliamenti. Ora si aprono diverse direzioni di sviluppo:

  1. Valutazione su dati reali: Il primo passo è testare il modello su nuove immagini non viste per verificare la sua robustezza in scenari variabili, inclusi angolazioni differenti, illuminazioni complesse e condizioni reali d’uso.
  2. Ottimizzazione e Fine-Tuning: Per migliorare ulteriormente le performance, si può affinare il modello con tecniche di hard example mining, aumentare la diversità del dataset o esplorare architetture più avanzate per migliorare la precisione nella localizzazione.
  3. Espansione del Dataset: Ampliando il dataset con immagini generate artificialmente tramite GAN (Generative Adversarial Networks) o aumentando la varietà delle immagini raccolte, si può rendere il modello più resiliente a situazioni non previste durante l’addestramento.
  4. Deploy e integrazione: Il modello può essere implementato in applicazioni real-time, come sistemi di riconoscimento su dispositivi edge AI (es. NVIDIA Jetson, Raspberry Pi) o integrato in applicazioni per il gaming, la logistica o il controllo qualità.
  5. Analisi degli errori e continual learning: Monitorando i casi di errore, è possibile attuare un processo di apprendimento continuo, aggiornando periodicamente il modello con nuovi dati e migliorandone la capacità predittiva nel tempo.

Questo progetto non si limita a dimostrare l’applicabilità della computer vision in un caso specifico, ma costituisce una base sperimentale per sviluppi futuri, che potrebbero portare a soluzioni più avanzate e adatte a scenari industriali, dalla visione artificiale per la produzione alla gestione automatizzata degli inventari.

Con il continuo progresso della computer vision, queste metodologie aprono prospettive significative per l’automazione avanzata in settori strategici della produzione e della gestione logistica. La combinazione tra tecnologie di visione artificiale e modelli di apprendimento profondo permette di affrontare scenari complessi con una precisione e un’efficienza senza precedenti, favorendo l’adozione su larga scala nei contesti industriali più avanzati.

Tecnologia Utilizzata:

Piattaforma: Roboflow

Data set: ncd-ri/16:

Updated: 27/10/24, 17:09 License | AGPL-3.0

Model Type: Roboflow 3.0 Object Detection (Fast):

Metrics: mAP 92.9% | Precision 85.6% |Recall 81.7%

RIMANIAMO IN CONTATTO!

Ci piacerebbe aggiornarti con le nostre ultime novità e offerte

Non inviamo spam! Leggi la nostra Informativa sulla privacy per avere maggiori informazioni.