Come etichettare i difetti per l'ispezione visiva con IA: guida all'annotazione con bounding box

Il primo modello di rilevamento difetti che abbiamo addestrato era pessimo, ed era colpa nostra. Le foto andavano bene e il modello andava bene. I riquadri che avevamo disegnato intorno ai difetti erano uno diverso dall'altro, e il modello ha imparato esattamente quello che gli avevamo mostrato, cioè la confusione.
Da allora abbiamo etichettato parecchi pezzi, e lo hanno fatto anche le persone con cui lavoriamo, e saltano sempre fuori le stesse poche cose. Nessuna è complicata. Quasi tutte sono ovvie appena qualcuno te le fa notare. Questo articolo è quel qualcuno che te le fa notare.
In breve
Scatta le foto da angolazioni, distanze e luci diverse, così il modello impara il difetto e non l'allestimento. Poi etichetta ogni difetto in ogni immagine, disegna ogni riquadro aderente, etichetta sempre allo stesso modo, lascia che i riquadri di tipi di difetto diversi si sovrappongano e parti con classi dettagliate che puoi unire in seguito. In pratica, un riquadro onesto vale più di dieci difetti mancati, i campioni confusi vanno tolti dal dataset e, se due persone lo disegnerebbero in modo diverso, probabilmente il riquadro è sbagliato.
Scattare le foto: un solo principio
Un modello generalizza grazie alla varietà. Se ogni foto di un microforo è scattata dallo stesso punto sotto la stessa lampada, il modello impara quel punto e quella lampada, e la prima volta che arriva un pezzo leggermente ruotato va in crisi. Quindi l'unica cosa che vale davvero la pena fare mentre raccogli le immagini di addestramento è muoverti.
Angolazioni diverse. Gira intorno al difetto e fotografalo da più lati. Lo stesso microforo appare diverso visto di fronte e a 45 gradi, e il modello deve conoscerli entrambi.

Luce e sfondo diversi. Luce forte, luce debole, in ombra, sul banco, in linea. Cambiare lo sfondo è il modo in cui il modello impara a ignorarlo.

Distanze diverse. Avvicinati, allontanati. Un difetto che riempie l'inquadratura e un difetto che è solo un puntino nell'angolo sono entrambe cose che il modello vedrà in produzione.

Se la tua fotocamera è fissa sulla linea, niente di tutto questo è un problema. Una posizione fissa ti dà immagini molto coerenti e un modello molto bravo su quell'unica inquadratura. La varietà conta soprattutto quando tieni l'iPhone in mano, o quando un solo modello deve coprire più di una stazione.
Etichettatura: cinque pilastri
Non sono regole di Enao. Valgono per qualsiasi annotazione di immagini per il rilevamento di oggetti, e fanno la differenza tra un modello sicuro di sé e uno che continua a chiederti di ricontrollare.
1. Etichetta ogni difetto nell'immagine

È proprio quello che abbiamo sbagliato per primo. Se un'immagine ha tre difetti e ne metti in un riquadro solo due, hai appena detto al modello che il terzo è sfondo. Fallo qualche decina di volte in un dataset e i veri allarmi e i falsi allarmi iniziano a confondersi, perché lo stesso schema è stato mostrato in entrambi i modi. Se lo vedi, mettilo in un riquadro.
2. Disegna il riquadro aderente al difetto

Un riquadro aderente con qualche pixel di margine insegna l'intero schema del difetto e nient'altro. Se lo tagli, una parte dello schema va persa. Se lo lasci largo, il modello deve imparare a ignorare tutto quello sfondo, e servono più esempi di quanti chiunque abbia voglia di etichettare. Tra l'altro un riquadro aderente è anche più veloce da disegnare, il che non guasta.
3. Etichetta sempre allo stesso modo

Ci sono due modi perfettamente validi per gestire un gruppo di piccoli difetti. Un riquadro per ciascuno, oppure un unico riquadro intorno al gruppo. Funzionano entrambi. Quello che non funziona è fare un po' e un po', perché poi il modello vede la stessa situazione etichettata in due modi e non sa decidere. Scegli quello che il tuo team trova più facile da applicare con coerenza e scrivilo da qualche parte.
4. I riquadri sovrapposti di difetti diversi vanno bene

Un graffio che attraversa una macchia è la normalità. Metti un riquadro sul graffio, uno sulla macchia e lasciali sovrapporre. La sovrapposizione parziale non crea alcun problema. Quello da evitare sono due riquadri di classi diverse quasi esattamente uno sopra l'altro, perché a quel punto non c'è modo di capire a quale classe appartengano i pixel.
5. Parti dettagliato, unisci dopo

Se non sei sicuro che graffio profondo, graffio sottile e segno di sfregamento siano una classe o tre, parti con tre. Unirle dopo è questione di un clic. Dividere una classe in cui avevi messo tutto insieme significa ripassare ogni immagine da capo. Il segnale che è ora di unire arriva quando il modello continua a confondere due classi tra loro, il che di solito vuol dire che per la fotocamera si somigliano, anche se per te significano cose diverse.
In pratica: quattro cose che abbiamo imparato a nostre spese
I pilastri sono le regole. Queste invece sono le scelte di buon senso che emergono solo quando sei davvero lì a disegnare riquadri.
Tanti difetti, un solo riquadro

Quindici riquadri minuscoli intorno a quindici puntini richiedono un'eternità, e più o meno all'undicesimo riquadro te ne sfugge uno. Lo sappiamo perché è successo a noi. Un riquadro onesto intorno all'intero gruppo è più veloce, e al modello va bene lo stesso. La coerenza batte i riquadri piccoli.
Sii efficiente, non dogmatico

A volte la risposta giusta è un riquadro per il gruppo e uno per il difetto isolato. Sì, così mescoli gli stili. È comunque meglio di un enorme riquadro pieno di sfondo solo per prendere anche quello isolato, o di quindici riquadri singoli con tre difetti mancati. La regola che sta sotto tutte le regole è etichettare in modo che chi viene dopo di te etichetterebbe esattamente allo stesso modo.
Butta fuori dal dataset i campioni confusi

Alcune immagini sono semplicemente impossibili da etichettare in modo coerente. Tre difetti sovrapposti, bordi che non riesci a separare, cinque persone che disegnerebbero cinque serie diverse di riquadri. Toglile e non sentirti in colpa. Un dataset pulito di duecento immagini batte uno rumoroso di mille, e il modello riconoscerà comunque i difetti sovrapposti in produzione. Semplicemente non deve imparare da quelle immagini.
Meglio più sfondo che riquadri soggettivi

Un graffio lungo può essere un riquadro solo o sei riquadri corti, e se lasci decidere ai singoli otterrai entrambe le cose. Un riquadro con un po' di sfondo in più è uguale per tutti. Ogni volta che una scelta di etichettatura dipende da chi tiene in mano il mouse, allarga il riquadro finché non dipende più da nessuno.
Quante immagini ti servono?
Meno di quanto pensi, se sono buone. Per un tipo di difetto su un prodotto, da 25 a 50 immagini ben etichettate di solito bastano per un primo modello da mettere in linea e da cui imparare. Quello che fa naufragare i progetti di solito non sono le poche immagini, sono cento immagini etichettate in tre modi diversi. Parti in piccolo, etichetta con cura, prova il modello, poi aggiungi immagini dove è più debole.
Domande frequenti
Cos'è l'annotazione con bounding box?
Significa disegnare un rettangolo, il riquadro, intorno a ogni cosa che vuoi che il modello trovi, in questo caso ogni difetto, così impara che aspetto ha e dove tende a comparire. È il tipo più comune di annotazione delle immagini per l'ispezione visiva.
Il riquadro deve includere lo sfondo?
Qualche pixel di margine, non di più. Quanto basta perché il bordo del difetto stia dentro il riquadro, ma non così tanto che il modello debba imparare a ignorare ciò che c'è intorno.
Come etichetto un difetto parzialmente nascosto?
Metti un riquadro aderente sulla parte che vedi. Non tirare a indovinare il resto. Se è quasi tutto nascosto, chiediti se quell'immagine debba stare nel dataset.
Devo etichettare anche i pezzi buoni?
Sì, lasciandoli senza riquadri. Le immagini senza difetti e senza riquadri insegnano al modello com'è un pezzo normale, e ti servono tanto quanto le immagini con i difetti.
E se due persone non sono d'accordo su un'etichetta?
È il segnale che devi cambiare la regola, non scegliere un vincitore. Allarga il riquadro, unisci le classi o scarta il campione, finché non lo disegnereste entrambi allo stesso modo.
Provalo sui tuoi pezzi
Il modo migliore per capire se tutto questo regge è etichettare 25 immagini di qualcosa della tua linea e addestrarci sopra un modello. Prova la demo, senza registrazione, in sessanta secondi oppure inizia gratis.
Explore with AI
Discuss this article with your favorite AI assistant