La Computer Vision (CV) è oggi uno dei rami dell’Artificial intelligence più in via di sviluppo. Ne abbiamo parlato in vari articoli, ma oggi entreremo nel dettaglio di come costruire  modelli di reti neurali per il riconoscimento di vari oggetti: veicoli, targhe, persone, animali, ecc.

 

Capiamo i dati nella Computer Vision

I modelli di reti neuronali in Deep Learning si focalizzano principalmente sui dati. Più dati hai, maggiore sarà la precisione che otterrai con il tuo modello. Ma a cosa servono tali dati?

Dati= Immagini+Labels

Per fare in modo che la soluzione di Computer Vision funzioni abbiamo la necessità di far capire alla macchina il collegamento tra un dato (immagine/video) e la rispettiva label. Quindi, nel caso in cui avessimo immagini senza labels, il computer non sarebbe in grado di riconoscere gli oggetti che desideri rilevare. Di conseguenza, dovremo creare le labels manualmente per ogni singola immagine nel dataset.

Esempio:

Vogliamo che il computer riconosca dei veicoli. Innanzitutto dobbiamo creare la labels delle immagini disegnando manualmente una bounding-box intorno all’oggetto che vogliamo riconosca. Questo per comunicare alla macchina le coordinate in cui si trova all’interno dell’immagine completa. Il computer comprende solo valori numerici, per cui tale passaggio è necessario a comunicare che quei pixel, in tale posizione corrispondono al veicolo-x.

Vediamo un’immagine per comprendere meglio:

Modelli di reti neurali- come fare le lables

Ovviamente, dopo il training del modello, il computer sarà in grado di individuare automaticamente la presenza e il tipo di veicolo.

 

Ora che conosciamo le basi, possiamo procedere con le fasi per la costruzione del modello neuronale.

 

STEP 1- Raccolta dei dati

Il primo passo consiste nel raccogliere i dati che serviranno da base per allenare il modello neuronale. Questa è una fase cruciale per via della difficoltà nel trovare dati che soddisfino le nostre esigenze. Non troveremo tutti i dati necessari nei dataset in open source, per cui avremo bisogno di crearli da zero.

Ovviamente il tipo di dato da cercare dipenderà dall’obiettivo finale che vogliamo raggiungere. Il primo ostacolo a cui andiamo incontro è che spesso i dati in open source fanno parte di raccolte miste, dove non tutti i dati ci servono. Ci troviamo quindi di fronte un “sacco di spazzatura” da cui dobbiamo estrarre solo i dati di valore per il nostro scopo.

Il numero di immagini richieste per il training dipende dal tipo di dati che una rete neurale valuterà. In generale, ogni caratteristica e ogni grado di quella caratteristica che la rete neurale deve valutare richiede una serie di immagini di addestramento. Più immagini vengono fornite per ciascuna categoria, più finemente la rete neurale può imparare a valutare quelle categorie.

 

STEP 2- EDA (Exploratory Data Analysis)

In questa fase, dobbiamo filtrare i dati dal sacco della spazzatura digitale. Qui, dobbiamo ordinare tutte le immagini e le rispettive labels presenti nel dataset. Abbiamo la necessità di controllare i valori mancanti nelle labels, eseguire image augmentation e dividere il dataset per scopi di addestramento e test del nostro modello. Ma prima di ciò, dobbiamo tenere a mente che maggiore è il numero di immagini nel dataset da addestrare, maggiore sarà la capacità del sistema richiesta. Per addestrare un qualsiasi modello di Deep Learning con più immagini, assicuriamoci di avere la GPU abilitata e con le capacità necessarie per garantire l’accuratezza del modello.

 

STEP 3- Conversione del formato

Il secondo ostacolo che possiamo incontrare è la diversità dei formati delle annotation. Se stiamo addestrando il nostro modello con alcuni dataset in open source potremmo trovarci di fronte a diversi formati. Ad esempio possiamo averli in XML, CSV, Excel, TXT, JSON, ecc.

Quindi, la sfida risiede nel filtrare i dati che di cui abbiamo bisogno e trasformarli tutti in un unico formato.

 

 STEP 4- Selezione e Training del Modello

Una volta che il data set è pronto, passiamo allo step successivo: la costruzione del modello, iniziando dalla ricerca dell’algoritmo più adeguato allo scopo.

Successivamente modificheremo l’algoritmo integrandolo con i dati raccolti precedentemente che serviranno per il suo training. L’addestramento del modello implica molti fattori per il training dell’algoritmo, il quale potrebbe richiedere ore e giorni a seconda delle dimensioni del dataset.

Sfruttare il transfer learning o utilizzare una rete pre-addestrata per un’altra attività può accelerare questo processo.

 

STEP 5- Test del Modello Neuronale

L’ultimo step, ma non per questo meno importante, è il test del modello costruito. In questa fase verificheremo l’efficienza di quanto creato. Per la prova sottoporremo al computer immagini non presenti nel nostro dataset di addestramento, per controllare che il modello non commetta errori. La differenziazione dei dati di addestramento da quelli del test garantisce che una rete neurale non si alleni accidentalmente sui dati utilizzati in seguito per la valutazione.

A seconda del punteggio di precisione prodotto dal modello, possiamo dire se il modello che abbiamo costruito funziona bene per il nostro problema oppure no. Un punteggio di accuratezza >80% produrrà prestazioni migliori, altrimenti sarà necessario ricostruire il modello mettendo a punto i parametri e correggendo gli errori commessi nelle annotazioni o qualsiasi altro fattore considerato che diminuisce l’efficienza del modello.

Soluzioni di Pragma Etimos

Pragma Etimos offre soluzioni di Computer Vision su misura alle esigenze del cliente. Questo perché crediamo fortemente che non sia il lavoro umano a doversi adattare alla tecnologia, ma che debba essere quest’ultima ad essere ideata e ottimizzata per le necessità dell’uomo.

 

Ricerca targa: l’inserimento di un numero di targa nel campo di ricerca abilita la funzione di elaborazione in background di analisi del video. Qualora si dovesse intercettare un veicolo con la targa in oggetto verrà proposto nell’interfaccia il frame dove è stata intercettata e verrà scritto un file immagine con le stesse informazioni per un accurato controllo successivo.

 

Ricerca oggetti: è possibile avviare una ricerca di oggetti (veicoli, monopattini, animali, ecc.). La selezione della ricerca oggetti abilita la funzione di elaborazione in background di analisi del video. Nel frattempo il software continuerà la ricerca dell’oggetto in altri frame.

 

Ricerca persone: è possibile identificare gruppi di persone e singoli soggetti in real-time. Qualora si dovesse intercettare la persona o il gruppo richiesto, verrà proposto nell’interfaccia il frame dove sono stati intercettati e verrà scritto in un file immagine con le stesse informazioni per un accurato controllo successivo.

 

Analisi dei volti: a partire da un volto restituisce informazioni sull’età, il genere e l’emozione di una persona. Inoltre è in grado di confrontare due visi e capire se si tratta o meno dello stesso soggetto.

POTREBBE INTERESSARTI ANCHE…

facerecognition- computer vision

IDENTIFICAZIONE BIOMETRICA: FACE RECOGNITION E FACE COMPARISON

La biometria viene sempre più utilizzata per l’identificazione e l’autenticazione di una persona attraverso tecnologie di Face Recognition e Face Comparison. La biometria facciale, acquisisce un volto da un’immagine o un video e lo trasforma in dati digitali in base…

Leggi tutto

Image & Video Recognition

IMAGE & VIDEO RECOGNITION: L’AI CHE ESTRAE VALORE DAI DATI VISIVI

Sono sempre di più le soluzioni di Intelligenza Artificiale che permettono alle macchine di comprendere i dati visivi. In particolare, possiamo definire quella branca di AI che replica le funzioni dell’apparto visivo umano come Computer Vision. Un esempio è l’Image…

Leggi tutto

Modelli di Reti Neurali utili alla Computer Vision

 

Modelli di reti Neurali: come costruirli

I modelli di reti neurali partono dai dati.

I modelli di reti neurali e il deep learning

Share This