Vai al contenuto principale
Torna ai casi studio Cliente riservato

Ispezione di viti con la visione artificiale

Visione artificiale per ispezionare viti M2. Cliente riservato, in produzione su linee di montaggio; demo con dataset pubblico.

Computer Vision Visione artificiale Python PyTorch Controllo qualità Industria
93,2%
Accuratezza OK/NOK nel test
1.536
Foto reali di test
13–22 ms
Per foto, su CPU
Cliente riservato - Panoramica del progetto

Progetto di visione artificiale sviluppato da Soamee per un cliente industriale, oggi in produzione su linee di montaggio con macchinari reali. Un accordo di riservatezza ci impedisce di nominare il cliente.

In produzione e demo pubblica

Quello che vedi in questa pagina è una replica: l’abbiamo addestrata e valutata con un dataset pubblico. Schermate, immagini e metriche qui sotto provengono da lì. Il sistema del cliente funziona in produzione su linee di montaggio e, per l’accordo di riservatezza, non possiamo mostrarne nulla.

Una configurazione possibile comprende alimentatore vibrante, trasportatore, telecamere per testa e filetto e scarto pneumatico controllato da PLC. È un esempio di macchinari compatibili, non l’identificazione delle attrezzature del cliente.

Le immagini provengono dal M2 Screw Defect Detection Dataset, pubblicato da R. P. Prastio e R. W. Indrawan (Università Airlangga) con licenza CC BY 4.0: 5.536 foto di viti M2 scattate in una stazione di ispezione ottica.

La sfida

In una linea di viteria il controllo si fa di solito a campione: si prelevano alcuni pezzi per lotto e si verificano a mano o con un calibro. Una vite M2 misura due millimetri di diametro, e un difetto sul filetto o sulla testa si vede a fatica senza lente.

Il dataset fotografa ogni vite due volte: la testa dall’alto, su fondo nero, e il filetto di profilo, in controluce. Ogni foto è etichettata come OK o NG (difettosa). Nelle NG si vedono bave, filetti schiacciati, teste deformate o stampate male e macchie sul metallo.

Come l’abbiamo risolto

Ritaglio automatico

Nella foto originale la vite occupa pochissimo dell’inquadratura. Se si riduce l’immagine intera per darla a una rete neurale, il difetto sparisce. Per questo il primo passo individua la vite (la testa luminosa sul fondo nero, o la sagoma scura contro la luce) e ritaglia un quadrato attorno.

Un classificatore per zona

Abbiamo addestrato due reti ResNet-18, una per la testa e una per il filetto, partendo dai pesi pubblici di ImageNet. Ognuna impara da 1.700 foto e ne usa altre 300 per scegliere la versione migliore durante l’addestramento. Le foto di test degli autori (536 di testa e 1.000 di filetto) restano intatte fino alla fine.

Dove ha guardato il modello

Una rete che dice “NG” senza spiegare perché è difficile da difendere davanti a un responsabile qualità. Per ogni pezzo scartato calcoliamo una mappa Grad-CAM, che evidenzia la zona dell’immagine che ha pesato di più nella decisione. La dashboard la segna con un riquadro. Non è un contorno misurato del difetto: è un indizio che dice all’operatore dove guardare.

Galleria di ispezioni dalla dashboard della viteria

Architettura

Architettura del sistema di ispezione delle viti

Il modello esporta un JSON per lotto che alimenta una dashboard statica: foto ispezionate, pezzi scartati per zona, decisioni del modello rispetto all’etichetta reale e la galleria delle ispezioni, errori compresi.

Risultati della valutazione pubblica

Valutazione sulle 1.536 foto di test degli autori:

ZonaAccuratezzaRileva NGPrecisione NGBuoni scartatiFoto
Testa95,9%95,7%96,4%3,9%536
Filetto91,8%85,6%97,7%2,0%1.000

Nel complesso indovina il 93,2% delle foto e impiega tra 13 e 22 ms per foto su un portatile, senza GPU.

La testa funziona bene: di 279 viti difettose ne sfuggono 12, e di 257 buone ne scarta 10. Il filetto è più difficile. Scarta pochissime viti buone (10 su 500), ma lascia passare 72 difettose su 500. In una linea reale è quel numero che va abbassato, anche a costo di scartare qualche vite buona in più: abbassare la soglia di decisione, aggiungere una seconda vista del filetto o migliorare l’illuminazione del profilo.

La galleria delle ispezioni mostra anche questi errori, con l’etichetta reale accanto al verdetto del modello.

Cosa si costruisce sopra

Il modello è il cuore, ma in fabbrica lo si usa attraverso delle schermate. Queste tre funzionano con i risultati del lotto di test.

Postazione operatore: verdetto, zona del difetto e conferma dello scarto

Postazione operatore. Il verdetto si legge da due metri, con la zona su cui si è concentrato il modello e la sua confidenza. L’operatore conferma lo scarto con un tasto o manda il pezzo in revisione se pensa che sia buono. La qualità riceve un avviso quando la quota di difettosi che passano come buoni supera il limite accettabile, come il 14,4% del filetto in questo lotto.

Revisione e riaddestramento: coda di pezzi dubbi e prestazioni del modello

Revisione e riaddestramento. I pezzi con confidenza bassa e gli errori del modello formano una coda che la qualità rivede: in questo lotto sono 104 foto, 82 di filetto e 22 di testa. Con queste si addestra una nuova versione, che sostituisce quella in linea solo se migliora sullo stesso test.

Qualità per zona: accuratezza, decisioni del modello ed errori del lotto

Qualità per zona. Accuratezza e scarti di testa e filetto, il dettaglio delle decisioni del modello e gli errori concreti da rivedere. La fase successiva è collegare lo scarto al PLC della linea e portare i NOK su MES ed ERP. Questa integrazione con PLC l’abbiamo già in produzione in un progetto che non possiamo pubblicare per motivi di riservatezza.

Prima di portarlo in un altro ambiente

  • Foto della linea del cliente: con la sua telecamera, la sua illuminazione e i suoi difetti. Un modello addestrato con le foto di un’altra stazione non si può installare così com’è.
  • Una soglia decisa con la qualità: quanto costa un pezzo difettoso che arriva al cliente rispetto a uno buono scartato. Da lì si sceglie il punto di taglio.
  • Integrazione con la linea: scatto della telecamera sincronizzato con il trasportatore e un segnale al PLC per deviare il pezzo scartato.

Partiamo sempre con una fase di fattibilità in stabilimento: qualche settimana a fotografare pezzi reali prima di impegnarci su cifre di rilevamento.

Stack tecnico

ComponenteTecnologia
RitaglioPython, OpenCV
ClassificazionePyTorch, ResNet-18 riaddestrata (testa e filetto)
SpiegazioneGrad-CAM
ValutazioneFoto di test degli autori, non usate nell’addestramento
DashboardHTML statico, Chart.js

Foto: M2 Screw Defect Detection Dataset, R. P. Prastio e R. W. Indrawan, Università Airlangga (2026), doi:10.17632/2y6mcsyrpy.2, CC BY 4.0. Ritagliate per l’addestramento e la galleria.

Metodologia

Come lavoriamo

Ogni progetto segue il nostro processo artigianale, adattato alle esigenze specifiche di ogni cliente.

01

Discovery & Requisiti

Immersione nel business, utenti e obiettivi. Workshop di ideazione, ricerca di mercato e definizione dell'ambito MVP.

02

Design & Architettura

Wireframe, prototipi interattivi e architettura tecnica. Validazione con il cliente prima di scrivere codice.

03

Sviluppo & Testing

Sprint di 2 settimane con demo. CI/CD, code review e testing continuo. Feedback a ogni iterazione.

04

Consegna & Evoluzione

Deploy in produzione, monitoraggio e supporto. Metriche post-lancio e roadmap di miglioramenti continui.

Pronto per costruire qualcosa di incredibile?

Parliamo di come possiamo aiutare la tua azienda a raggiungere risultati come questi.

Visione artificiale per il controllo della viteria

Raccontaci la tua sfida. Ti proponiamo la soluzione.

Senza impegno. Rispondiamo entro 24 ore e in 48 ore ricevi una proposta con ambito, tempistiche e budget. Nessuna clausola nascosta.

Prenota una call gratuita →