
Un nuovo software di Computer Vision firmato DotEnv
Quando parliamo di Computer Vision ci riferiamo a una branca dell’Intelligenza Artificiale che
permette al computer di riconoscere gli oggetti (azione nota come Object Detection).
Il compito del nuovo software che abbiamo realizzato consiste proprio nel riconoscere più oggetti
all’interno del riquadro di una foto o di un video.
Logistica, sicurezza e controllo del traffico sono alcuni dei campi di applicazione dov’è possibile sfruttare le potenzialità del software.
L’obiettivo è utilizzarlo nelle aree scelte direttamente dall’utente, in modo da avere un controllo più specifico a seconda del campo di applicazione in questione.
Continua a leggere per scoprire di preciso cos’abbiamo realizzato!
Passo dopo passo: dall’idea alla creazione di un innovativo software di Computer Vision
Dopo un attento studio, il nostro team di professionisti ha realizzato un’applicazione web con client in React (framework di Javascript) che si appoggia su un backend in Flask (framework di Python per applicazioni web).
Come libreria per la Computer Vision abbiamo scelto di utilizzare openCV di Python, mentre come algoritmo per il riconoscimento degli oggetti la preferenza è caduta su YOLO (acronimo di You Only Look Once... ma anche del più noto You Only Live Once). Attualmente stiamo adoperandogli Weights di Yolo, un modello già allenato su classi di Coco, che a breve andremo a sostituire con un modello già perfettamente allenato da noi.
Stiamo lavorando al raggiungimento di un preciso obiettivo: permettere all’utente di far fare direttamente il training al modello.
Per la parte di Machine Learning abbiamo usato il Deep Learning, che si basa su un set di dati forniti in partenza, e non durante il suo utilizzo. Nello specifico, per l’Object Detection occorre prendere gruppi di immagini che contengono uno o più oggetto su cui si vuole allenare il modello.
Per questo c’è la fase di Labeling: si identificano gli oggetti all’interno delle immagini, indicando al modello la dimensione e la posizione all’interno dell’immagine dell’oggetto stesso.
Durante questa fase occorre comunicare al modello dov’è l’oggetto e qual è l’oggetto dell’immagine che si desidera impari a conoscere e riconoscere. Si tratta di una fase da svolgere manualmente, perché in ciascuna foto occorre indicare l’oggetto in questione.
Infine, segue la fase di Training, sempre manuale, durante la quale carico tutte le immagini precedentemente sottoposte a Labeling, in modo che il computer inizi a vederle e a capire di preciso qual è l’oggetto in esame.
Un esempio di Object Detection e Computer Vision
Per darti un’idea concreta delle potenzialità del nuovo software, pensa a un magazzino logistico pieno di rulli che trasportano un numero elevatissimo di pacchi identici. Come si fa a controllare che siano tutti esenti da difetti? Grazie all’Object Detection, ovvero insegnando al sistema che, nel momento in cui individua un pacco diverso dal modello trasmesso, deve inviare un avviso.
Attraverso la fase di Labeling possiamo indicare il punto preciso della foto che il software deve riconoscere sul pacco fisico.
E se ci sono 10 tipi di pacchi diversi da controllare? Tramite la fase di Training si istruisce il software in modo che sia in grado di identificare 10 diverse fotografie.
Un altro esempio di Object Detection a cui tutti siamo stati sottoposti avviene in aeroporto.
Quando, dopo il check in, si passano i controlli, avviene infatti una sorta di processo inverso a quello visto fino a ora: veniamo fermati nel momento in cui nei nostri bagagli individuano un oggetto anomalo o sospetto.
Le 3 principali criticità del nuovo software di Computer Vision
Una delle difficoltà da superare è legata all’hardware: per quanto riguarda la fase di Training del modello, occorre una grossa capacità di calcolo da parte dell’hardware poiché la mole di dati da analizzare è enorme! Per ovviare a questo problema, l’Università di Ferrara ha messo a disposizione Coka, un cluster con una grande potenza di calcolo.
La seconda criticità riguarda le fasi di Labeling e Training: la prima è tanto più lunga e laboriosa quante più immagini si vogliono usare per allenare il modello; la seconda dipende dalla quantità di immagini o video da analizzare affinché il modello impari a conoscere e, quindi, a riconoscere un
determinato oggetto.
Infine, il terzo aspetto spinoso è legato alla fase di Training per l’Object Detection su video:
il valore standard per un'analisi accurata è dai 30 fps ai 60 fps (fotogrammi per secondo / frame per second) e per eseguirla la macchina impiega fino a 20 volte in più della durata del video, poiché, dovendo analizzare ogni singolo frame, il tempo si dilata parecchio.
Nonostante queste criticità, il nostro nuovo software di Computer Vision è in grado di portare numerosi vantaggi ai diversi campi di applicazione per cui viene utilizzato. Se pensi possa essere utile per ottimizzare alcuni dei tuoi processi aziendali, mettiti in contatto con noi!