La pasta italiana AI con OpenVINO su Edge Hardware

Follow the article, in the next few hours I will publish all the code updates.

Italian Pasta AI Edge whit OpenVino

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.

feature explorer

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