La pasta italiana AI con OpenVINO su Edge Hardware

Il modello AI è stato allenato per riconoscere i diversi formati di pasta italiana. All'interno di questa ricerca vengono descritti tutti i passaggi e gli strumenti utilizzati per la creazione del modello e del codice.

Su GitHub trovi tutto il codice sorgente.

Creazione del dataset

La creazione del modello è basata su 5 formati di pasta italiana (conchiglie, ditalini, fusilli, farfalle, sedani).

Ecco alcuni strumenti molto utile e veloci per la creazione del label : edgeimpulse.com e darwin.v7labs.com.  Alla Fine di questo articolo ho aggiunto una lista di alcuni Data Labeling Platform interessanti che possono essere utilizzate in modo gratuito o con un ampio livello free:

Per la creazione del modello sono state utilizzate 375 immagini divisi in 5 gruppi, utilizzando 80% dataset train e 20% in  test.  
I dati di addestramento vengono utilizzati per addestrare il modello, mentre i dati di test servono per verificare l'accuratezza del modello dopo l'addestramento. È consigliato un rapporto di suddivisione approssimativo di 80/20 tra addestramento e test per i dati, per ogni classe (o etichetta) nel dataset, sebbene dataset particolarmente grandi possano richiedere meno dati di test.

Creazione del modello

Confronta le prestazioni di addestramento delle varianti ottimizzate del modello. È possibile scegliere un'ottimizzazione durante la distribuzione.

Da questi dati sono stati generati tre modelli in modo da poter confrontare le singole performance:
- Il primo FOMO (Faster Objects, More Objects) MobileNetV2 0.1 , un modello di rilevamento degli oggetti basato su MobileNetV2 (alpha 0.1) progettato per segmentare grossolanamente un'immagine in una griglia di sfondo rispetto a oggetti di interesse. Questi modelli sono progettati per avere una dimensione inferiore a 100KB e supportano un ingresso in scala di grigi o RGB a qualsiasi risoluzione.
- Il secondo modello usa YOLOv5 un modello di apprendimento basato su Ultralytics YOLOv5 , che viene trasferito utilizzando i pesi yolov5n.pt. Esso supporta l'input RGB a qualsiasi risoluzione, ma è limitato a immagini quadrate.
- Il terzo modello, poi utilizzato, è stato fatto usando un dataset in formato Darwin 2.0 (JSON) e mediante PyTorch e poi ottimizzato con OpenVINO.

Risultati del test fatto su i modelli

I risultati ottenuti dal test sono abbastanza buoni con un livello di accuracy oltre 88%, dove si evidenzia un livello di carenza dei dati relativi a solo due tipologie di pasta (sedani e fusilli).

Applicazione pratica e codice python

L'applicazione in esempio effettua il riconoscimento mediante una webcam live dei diversi tipi di pasta in diversi contesti, oltre a classificare conta il quantitativo individuando il peso.

Caratteristiche dell'applicazione:
- Classificazione tipi di pasta
- Conteggio numero per tipo
- Calcolo peso approssimato

(Codice in scrittura ... aggiungi tra i preferiti questa  pagina e ritorna tra qualche ora).

Data Labeling Platform

Le Data Labeling Platform, o piattaforme di etichettatura dei dati, sono sistemi software utilizzati per annotare e classificare i dati, in particolare per scopi di apprendimento automatico e intelligenza artificiale. Queste piattaforme consentono agli utenti di etichettare grandi quantità di dati, come immagini, testi, file audio o video, assegnando loro etichette o categorie specifiche.

Questa etichettatura è fondamentale nel processo di apprendimento supervisionato, dove il modello di apprendimento automatico impara da un set di dati precedentemente etichettato per fare previsioni o classificazioni su nuovi dati. Le etichette fungono da guida per il modello, indicando cosa è presente nei dati o quale comportamento si sta cercando di predire.

Ecco una lista di alcuni Data labeling Platform interessanti:

GitHub - cvat-ai/cvat: Annotate better with CVAT, the industry-leading data engine for machine learning. Used and trusted by teams at any scale, for data of any scale.
Annotate better with CVAT, the industry-leading data engine for machine learning. Used and trusted by teams at any scale, for data of any scale. - cvat-ai/cvat
V7 | The AI Data Engine for Computer Vision & Generative AI
The full infrastructure for enterprise training data covering labeling, workflows, datasets, and humans in the loop.
Edge Impulse - The Leading edge AI platform
Edge Impulse is the leading development platform for machine learning on edge devices.
Open Source Data Labeling | Label Studio
A flexible data labeling tool for all data types. Prepare training data for computer vision, natural language processing, speech, voice, and video models.
Labelbox | Data-centric AI Platform for Building & Using AI
Discover how leading teams use Labelbox to build AI applications, train and fine-tune models, and automate tasks with LLMs