YOLOv7: L’Intelligenza Artificiale che Legge le Etichette Metalliche come Nessun Altro nell’Industria dei Semiconduttori!
Ciao a tutti! Oggi voglio raccontarvi di una sfida affascinante che abbiamo affrontato nel mondo super preciso della produzione di semiconduttori. Immaginate: siete in una fabbrica high-tech, dove ogni componente deve essere perfetto. Un piccolo errore, come montare il pezzo sbagliato su una macchina, può causare un disastro produttivo. Nello specifico, parliamo dei diamond dressers, componenti cruciali usati nel processo di Chemical Mechanical Polishing (CMP), quella tecnica sofisticata per rendere le superfici dei wafer di silicio piatte come specchi.
Il Problema: Etichette su Metallo, un Osso Duro
Il problema è che questi diamond dressers hanno delle etichette incise al laser sulla loro superficie metallica. Queste etichette contengono informazioni vitali, come il nome della specifica e il Lot-ID (il numero di lotto). Leggerle non è affatto semplice! Perché?
- Superfici Riflettenti: Il metallo riflette la luce in modi strani, rendendo difficile la lettura.
- Incisioni Variabili: La profondità dell’incisione laser può variare, a volte è poco visibile.
- Illuminazione: Cambiamenti nella luce ambientale o l’invecchiamento delle luci LED usate per l’ispezione possono alterare l’immagine.
- Rumore Visivo: Segni lasciati dalla lavorazione del metallo o le tracce stesse dell’incisione laser possono confondere i sistemi di riconoscimento.
- Caratteri Simili: Lettere come “S” e il numero “5”, oppure “O” e “0”, possono essere facilmente scambiate, specialmente da software non specificamente addestrati.
Tradizionalmente, si usano sistemi OCR (Optical Character Recognition) per leggere il testo dalle immagini. Ma abbiamo visto che, in questo contesto industriale così specifico, con superfici metalliche e codici non standard, l’OCR tradizionale a volte fa cilecca. Spesso si basa su modelli linguistici generici che possono interpretare male codici specifici (ad esempio, scambiare la lettera “I” iniziale di un codice per il numero “1”). Inoltre, la presenza di altri elementi nell’immagine, come fori per le viti o scritte non pertinenti, aumenta la complessità e può peggiorare i risultati dell’OCR. Affidarsi solo all’ispezione manuale? Troppo lento, costoso e soggetto a errori umani, specialmente con la crescente diversità di prodotti.
La Svolta: E se usassimo l’Object Detection? Ecco YOLOv7!
Qui entra in gioco la nostra idea: perché non provare un approccio diverso? Invece di “leggere” il testo come fa l’OCR, potremmo usare un modello di object detection, cioè un sistema di intelligenza artificiale addestrato a “riconoscere oggetti” specifici all’interno di un’immagine. Abbiamo scelto uno dei modelli più performanti e veloci in circolazione: YOLOv7 (You Only Look Once).
L’idea di base di YOLO è geniale nella sua semplicità: guarda l’immagine una sola volta (da cui il nome) e identifica tutti gli oggetti presenti e la loro posizione tramite “bounding box” (rettangoli che li contornano). E se trattassimo ogni singolo carattere (“A”, “B”, “C”, “1”, “2”, “3”, “-“, ecc.) come un oggetto distinto da riconoscere?
Il Nostro Percorso: Addestrare YOLOv7 per l’Impresa
Mettere in pratica questa idea ha richiesto un po’ di lavoro e qualche trucco intelligente. Ecco come abbiamo fatto:
1. Acquisizione Immagini: Abbiamo usato un sistema di acquisizione immagini già esistente, progettato per analizzare le caratteristiche superficiali dei diamond dressers. Non era perfetto per il nostro scopo (catturava anche parti non necessarie come il blister di plastica), ma ci siamo adattati.
2. Preprocessing delle Immagini: Le immagini originali erano enormi (6000×4000 pixel). Le abbiamo prima ritagliate per tenere solo il retro del dresser (4000×4000) e poi ridimensionate a 800×800 pixel. Questo ha due vantaggi: riduce il “rumore” visivo (come i segni di lavorazione) e rende le immagini compatibili con YOLOv7, che preferisce dimensioni multiple di 32.
3. L’Astuzia: Usare l’OCR per Etichettare! Addestrare un modello come YOLOv7 richiede dati etichettati: devi dirgli dove si trova ogni oggetto (carattere) nell’immagine di training. Farlo manualmente per migliaia di caratteri su decine di immagini sarebbe stato un lavoro immane (abbiamo calcolato oltre 6 ore!). E qui l’idea: abbiamo usato un software OCR open-source (PaddleOCR) non per il riconoscimento finale, ma per fare il “lavoro sporco” iniziale! L’OCR ha identificato i caratteri e le loro coordinate nelle nostre immagini “golden sample” (campioni perfetti con tutte le lettere, numeri e simboli). Abbiamo poi convertito queste coordinate nel formato richiesto da YOLOv7. Un bel risparmio di tempo e maggiore coerenza nelle etichette!
![]()
4. Data Augmentation: Rendere YOLOv7 Robusto. Avevamo un numero limitato di immagini “golden sample”. Per rendere il modello capace di gestire le variazioni del mondo reale (testo leggermente ruotato, diversa luminosità, colori, profondità di incisione), abbiamo usato tecniche di data augmentation direttamente in YOLOv7. In pratica, durante l’addestramento, il sistema genera automaticamente nuove versioni delle immagini: ruotate di qualche grado (fino a ±10°), con saturazione, esposizione e tonalità dei colori leggermente modificate, e aggiungendo persino un po’ di “rumore gaussiano”. È come mostrare al modello tantissime varianti diverse, preparandolo ad affrontare le condizioni reali.
5. Addestramento e Valutazione: Abbiamo addestrato il modello YOLOv7 (usando una GPU Nvidia RTX 2070 e il framework Darknet). Abbiamo monitorato attentamente le metriche come Precision, Recall, F1-score e, soprattutto, la mAP (mean Average Precision), che ci dice quanto è bravo il modello in generale a riconoscere correttamente tutti i tipi di caratteri. Abbiamo raggiunto una mAP@0.5 impressionante del 99% dopo circa 2400 iterazioni di addestramento, senza segni di overfitting (cioè il modello non si era limitato a imparare a memoria le immagini di training, ma aveva generalizzato bene).
I Risultati: YOLOv7 Batte l’OCR!
E ora, il momento della verità. Abbiamo testato il nostro YOLOv7 addestrato su un set di 79 immagini reali (diverse da quelle usate per l’addestramento) e lo abbiamo confrontato con tre sistemi OCR open-source noti: Tesseract OCR, MMOCR e PaddleOCR. Abbiamo misurato due cose:
- Character Accuracy (CA): La percentuale di singoli caratteri riconosciuti correttamente.
- Word Accuracy (WA): La percentuale di intere etichette (nomi di specifica o Lot-ID) riconosciute perfettamente. Questa è la metrica più importante per noi, perché un solo carattere sbagliato rende l’intera etichetta errata!
I risultati sono stati entusiasmanti!
- Nomi di Specifica (mix lettere/numeri): YOLOv7 ha ottenuto una Word Accuracy media del 98.7%, superando nettamente gli altri. La sua Character Accuracy è stata quasi perfetta (99.9%). Gli OCR, pur avendo una buona CA, inciampavano più spesso nel riconoscere l’intera parola correttamente, probabilmente confusi da caratteri simili o dal contesto non standard.
- Lot-ID (solo numeri): Qui YOLOv7 ha raggiunto una Word Accuracy del 97.5%. Tesseract OCR è andato molto male (sotto il 30%), mentre MMOCR e PaddleOCR si sono comportati bene a livello di carattere (PaddleOCR leggermente meglio di YOLOv7 sulla CA), ma YOLOv7 manteneva un vantaggio sulla WA.
Un aspetto molto positivo di YOLOv7 è che ha imparato a ignorare gli elementi non pertinenti dell’immagine, come i fori delle viti o altre scritte non etichettate durante il training. Non ha mai confuso un foro con uno “0” o una “O”, cosa che può succedere con altri metodi. Si è concentrato solo su ciò che doveva riconoscere: i caratteri delle etichette importanti.

Abbiamo notato un caso in cui YOLOv7 ha fallito nel riconoscere un Lot-ID. Analizzando l’immagine, abbiamo visto che l’incisione era estremamente superficiale e l’esposizione molto alta, rendendo i caratteri quasi invisibili persino all’occhio umano. Questo ci indica dove possiamo migliorare ulteriormente.
Vantaggi Concreti e Prospettive Future
Passare da un’ispezione manuale (con un’accuratezza stimata dell’86.3%) a YOLOv7 (con WA del 97.5% sui Lot-ID) non è solo una questione di precisione. Abbiamo stimato un risparmio enorme: i costi annuali di manodopera per l’ispezione potrebbero ridursi da 1.8 milioni a 600.000 (un risparmio di 1.2 milioni all’anno!). Anche il tempo si riduce drasticamente: ispezionare 10.000 immagini richiederebbe 13 ore in meno, passando da 60 secondi a soli 10 secondi per immagine.
Certo, c’è ancora margine di miglioramento. Potremmo:
- Ottimizzare gli iperparametri di YOLOv7, specialmente quelli della data augmentation, per gestire meglio i casi difficili come le incisioni superficiali.
- Esplorare modelli ancora più recenti o efficienti per ridurre i tempi di addestramento.
- Ampliare il dataset con immagini di prodotti di diverse dimensioni e con incisioni su superfici curve.
- Addestrare il modello a riconoscere diversi font e dimensioni di caratteri, se necessario in futuro.
Ma la conclusione è chiara: per questo specifico compito – riconoscere etichette laser su superfici metalliche riflettenti nell’industria dei semiconduttori – l’approccio object detection con YOLOv7 si è dimostrato superiore ai metodi OCR tradizionali, offrendo maggiore accuratezza (soprattutto a livello di parola completa), robustezza al rumore e un potenziale enorme per migliorare efficienza e affidabilità nella produzione. È un esempio fantastico di come l’intelligenza artificiale possa risolvere problemi concreti e sfidanti nell’industria 4.0!
Fonte: Springer
