Il livello di fiducia a runtime tra il modello di visione e l'attuatore
Un modello al 97% in laboratorio può arrivare a un tasso di falso scarto del 14% in produzione, non perché il modello sia peggiorato ma perché i riflessi, gli stampi freddi e i cambi turno hanno fatto uscire gli input dalla distribuzione su cui era stato validato. L'Inspection Trust Gate confronta ogni immagine con l'inviluppo validato del modello, applica cancelli deterministici che il modello non può sovrascrivere, trattiene per revisione umana tutto ciò che è fuori inviluppo e scrive un record di lineage di audit per pezzo. Gli agenti consigliano, il codice decide.
0
Pezzi buoni in deriva scartati automaticamente dal cancello
La baseline ingenua produce falsi scarti dal 95.5 al 100% (split held-out MVTec metal_nut)
93/93
Pezzi difettosi in deriva comunque intercettati o in escalation
Mai approvati automaticamente (stesso split held-out)
1.00
AUROC dell'inviluppo su una famiglia di deriva held-out
Mai tarato su di essa, quindi il controllo non è circolare (split held-out MVTec metal_nut)
Questa è una demo eseguibile. L'attuatore PLC e il sink MES sono adapter simulati che registrano ciò che farebbero, le immagini dei pezzi sono fotografie reali MVTec AD metal_nut, e la deriva è una corruzione onesta delle immagini applicata a foto reali di pezzi buoni.
La modalità di fallimento che blocca i deployment di ispezione edge è un fallimento degli input, non un fallimento del modello.
Il caso canonico della nostra ricerca è una pressa a stampo progressivo da 200 tonnellate a 40 colpi al minuto: un modello di visione che ha raggiunto il 97% di accuratezza in validazione collassa a un tasso di falso scarto del 14% in produzione. Il modello non è peggiorato. I riflessi delle luci a soffitto del capannone variano per angolo di colpo, il lubrificante si accumula in modo diverso su stampi caldi e freddi, e i primi 50 pezzi di un turno arrivano prima dell'equilibrio termico. Gli input sono usciti dalla distribuzione su cui il modello era stato validato, e nessun modello, a qualsiasi accuratezza, è affidabile lì.
Il pattern di settore dice che il modello non è mai stato il progetto. I sistemi AOI out-of-box scartano per errore dal 5 al 15% dei pezzi buoni, mentre i sistemi ben tarati scendono sotto il 2%: un problema di calibrazione e di dati, non di architettura del modello. L'integrazione è il 60% della timeline di un deployment e l'addestramento del modello il 15%, e l'84% dei progetti di system integration fallisce o fallisce in parte.
La regolazione alza la posta. Gli obblighi ad alto rischio dell'EU AI Act, che coprono le decisioni di qualità critiche per la sicurezza ai sensi dell'Allegato III, sono pienamente applicabili dal 2 agosto 2026, con sanzioni massime di 35 milioni di euro o il 7% del fatturato globale per le violazioni più gravi, di pratica vietata. Un attuatore di scarto che si attiva su un verdetto di un modello non validato, senza alcun record del perché, è esattamente ciò che quel regime è progettato per far emergere.
La soluzione non è un modello migliore. Anche un modello perfetto è valido solo su input all'interno del suo inviluppo validato. Ciò di cui la linea ha bisogno è un livello a runtime che conosca quell'inviluppo, rifiuti di attuare al di fuori di esso, e possa dimostrare, pezzo per pezzo, cosa ha deciso e perché.
Un cancello deterministico decide cosa viene attuato, non un modello e non un LLM.
Ogni pezzo percorre la stessa pipeline:
immagine → feature fisiche + di texture → controllo dell'inviluppo (OOD) → verdetto di difetto → cancello deterministico → attua / trattiene → record di audit
Un EnvelopeDetector calcola la distanza di Mahalanobis nello spazio dei segnali fisici (esposizione, contrasto, gamma dinamica, fuoco, dettaglio ad alta frequenza, dominante di colore termica, saturazione, frazione di glare), calibrato su 220 immagini train-good. Risponde a una sola domanda: questa immagine è all'interno delle condizioni di acquisizione su cui il modello è stato validato? Fuori inviluppo significa che nessun output del modello è ritenuto affidabile.
Codice puro, esterno a qualsiasi LLM, che il modello non può sovrascrivere: soglie di confidenza calibrate adattate dai dati della demo stessa (auto-pass sotto 0.948, auto-reject sopra 1.30) e un budget di latenza rigido di 750 ms sulla finestra di colpo. Ogni pezzo viene instradato a AUTO_PASS, AUTO_REJECT o HOLD, che lo invia a una coda di escalation umana.
Ogni decisione scrive un record JSONL: id del pezzo, stazione, id e versione del modello, hash del dataset, confidenza di difetto, punteggio OOD, segnali fisici, le regole del cancello che si sono attivate, latenza rispetto al budget, log di attuazione e MES, e il tag di rischio high-risk:quality-gate (EU AI Act Allegato III, eff. 2026-08-02). Un clic esporta il turno.
Il DefectDetector della demo è una distanza kNN verso i pezzi train-good nello spazio della texture (PatchCore-lite), che fa da sostituto del tuo NVIDIA Metropolis, Cognex o modello custom dietro un'interfaccia fissa. È un sostituto realmente funzionante (AUROC 0.845 su buoni puliti versus difetto), riportato con onestà, e la tesi di prodotto non poggia mai su di esso. Il valore duraturo è il livello intorno: gating sulla deriva, provenienza e attuazione governata reggono a qualsiasi accuratezza del modello, così il livello sopravvive a ogni upgrade del modello.
Quando i pezzi si accumulano nella coda HOLD, una coppia agentica Drift Triage spiega perché: un agente di diagnosi legge le deviazioni dei segnali fisici, classificate per rango, dei pezzi trattenuti e propone un'ipotesi di causa radice con un'azione raccomandata, e un agente critico verifica quell'ipotesi rispetto all'evidenza numerica, declassandola a indagine manuale se il segnale citato non è in realtà la deviazione dominante. Gli agenti sono costruiti su Pydantic AI e il provider è intercambiabile; senza chiave API configurata, il triage ricade su un template deterministico così l'intera demo gira offline. In ogni caso, gli agenti si limitano a consigliare. Il cancello ha già deciso.
Un turno scriptato sulla stazione Line 3, riproposto su pezzi di test held-out reali MVTec AD metal_nut. Ogni immagine sotto è uno screenshot dell'app in esecuzione.
Prima della deriva, i pezzi buoni puliti passano automaticamente con margine: il log di audit incluso nella demo mostra il pezzo test-good-288 a 37.7 ms e test-good-289 a 24.4 ms rispetto al budget di 750 ms della finestra di colpo, ciascuno con un record di lineage completo. La dashboard mostra la pipeline di decisione live per pezzo, con il wall-clock misurato di ogni stadio e l'evidenza dietro il suo output.
Poi scatta il marker scriptato: SHIFT CHANGE 06:00, stampi freddi, luci a soffitto accese. Dodici pezzi buoni held-out arrivano corrotti con glare, defocus e dominante termica (corruzione onesta delle immagini applicata a foto reali di pezzi buoni, etichettata come tale nell'app). Il monitor dell'inviluppo diventa rosso. Il cancello li trattiene tutti per revisione umana invece di lasciare che l'attuatore si attivi su un verdetto che il modello non era mai stato validato a dare.
Il pannello di confronto fa passare gli identici pezzi attraverso la baseline ingenua senza inviluppo e il Trust Gate. La baseline produce falsi scarti sui pezzi buoni in deriva; il cancello ne scarta automaticamente 0 e li trattiene, portando il KPI di falso scarto dal 57.1% allo 0% in questo turno scriptato. Un pannello di proiezione estrapola il tasso di falso scarto ingenuo misurato a un turno intero (40 colpi al minuto per 8 ore sono 19,200 pezzi) a $2.42 per pezzo, un costo di scarto di ordine di grandezza con fonte (caso di un produttore di biscotti: $94K di risparmio annuo da una riduzione dell'8.7% dello scarto). La cifra in dollari è sempre una proiezione etichettata, mai un risparmio misurato.
Il gating sulla deriva sarebbe inutile se i difetti si nascondessero sotto di esso. Un vero difetto strutturale grave (classe flip MVTec, pezzo test-flip-264) viene auto-scartato, e l'attuatore simulato registra REJECT actuated in 25 ms rispetto al budget di 750 ms. Il drill-in geometrico dichiara che su questo pezzo non è stato localizzato nulla: lo scarto poggia solo sulla confidenza di texture, e la regola di zona è ricaduta sul default del centro. Mostrare quel testo è deliberato. La demo mostra la regola che si astiene piuttosto che fingere. Su tutto lo split held-out, i pezzi difettosi iniettati durante la deriva vengono comunque intercettati o in escalation, 93 su 93, mai approvati automaticamente.
Clicca su qualsiasi pezzo e il cassetto di audit mostra il suo record di lineage completo: model id metalnut-defect-knn version v7, hash del dataset ae95b5b533c8, punteggio OOD, segnali fisici, le regole che si sono attivate, latenza rispetto al budget, i log di attuazione e MES, e il tag di rischio high-risk:quality-gate (EU AI Act Allegato III, eff. 2026-08-02). Export Audit scarica il turno come inspection_audit.jsonl; la completezza dell'audit è il 100% dei pezzi decisi sullo split held-out. Esegui Drift Triage e l'agente di diagnosi propone una causa radice per i pezzi trattenuti mentre l'agente critico la verifica rispetto all'evidenza numerica prima che ottenga un badge verified.
Tutte le misurazioni provengono dallo script di benchmark della demo sullo split di test held-out ufficiale MVTec AD metal_nut (220 immagini train-good usate per il fit; 22 pezzi di test buoni e 93 difettosi), confrontando la baseline ingenua senza inviluppo con il Trust Gate sulle stesse immagini. La baseline produce falsi scarti dal 95.5 al 100% dei pezzi buoni in deriva per famiglia di deriva (media 98.9%); il cancello ne scarta automaticamente lo 0.0% e ne trattiene il 100%. Il detector di inviluppo ottiene AUROC 1.00 su una famiglia di deriva held-out (sottoesposizione) su cui non è mai stato tarato. Le corruzioni sono a piena intensità, quindi il collasso della baseline è quasi totale per costruzione: la tesi onesta è la direzione, un modello validato su input puliti collassa una volta che gli input escono dall'inviluppo, non la percentuale esatta. Queste sono misurazioni di demo su un benchmark di ricerca, mai garanzie a mondo aperto.
Lo stesso confronto che la demo esegue live, sugli stessi pezzi.
| Criterio | AOI ingenuo (nessun controllo dell'inviluppo) | Inspection Trust Gate |
|---|---|---|
| Input fuori inviluppo | Verdetto del modello ritenuto affidabile comunque | Nessun output del modello ritenuto affidabile; pezzo trattenuto per revisione |
| Pezzi buoni in deriva (glare, defocus, dominante termica) | Dal 95.5 al 100% di falsi scarti per famiglia di deriva | 0 auto-scartati; 100% trattenuti (split held-out MVTec metal_nut) |
| Chi aziona l'attuatore | Il verdetto del modello, direttamente | Un cancello deterministico che il modello non può sovrascrivere |
| Responsabilità sulla latenza | Nessuna | Budget rigido di 750 ms sulla finestra di colpo, misurato per pezzo |
| Audit trail | Nessuno | Record di lineage JSONL per pezzo, esportabile per turno |
| Quando la linea deriva | Lo scarto si accumula finché qualcuno se ne accorge | Coda di escalation più Drift Triage consultivo (agente di diagnosi, agente critico) |
Di solito perché gli input sono in deriva, non perché il modello sia peggiorato. I riflessi delle luci a soffitto, gli stampi freddi e i primi pezzi di un turno prima dell'equilibrio termico spostano le immagini fuori dalla distribuzione su cui il modello è stato validato, e nessun modello è affidabile su input fuori dal suo inviluppo validato. Un modello al 97% in laboratorio che arriva a un tasso di falso scarto del 14% in produzione su una pressa di stampaggio è l'esempio canonico. La soluzione duratura è un cancello che rileva gli input fuori inviluppo e trattiene quei pezzi per revisione invece di attuare.
No. L'Inspection Trust Gate avvolge il tuo modello dietro un'interfaccia fissa; nella demo il detector di difetto è un sostituto deliberato di un motore NVIDIA Metropolis, Cognex o custom. Il prodotto è il livello intorno al modello: il controllo dell'inviluppo, il cancello deterministico, la coda di escalation e il lineage di audit. Quel livello continua a guadagnarsi il posto a ogni upgrade del modello, perché il fallimento che previene è un fallimento degli input, non un fallimento del modello.
Il cancello è codice puro con un budget di latenza rigido: la decisione di scarto deve atterrare dentro la finestra di colpo di 750 ms di una pressa a 40 colpi al minuto. Nel log di audit incluso nella demo, le decisioni atterrano in decine di millisecondi, per esempio 24.4 ms e 37.7 ms rispetto al budget di 750 ms, e la dashboard riporta il p99 live. Queste sono misurazioni di demo, non una garanzia di produzione, ma il budget è imposto per pezzo.
Le decisioni di qualità critiche per la sicurezza rientrano negli obblighi ad alto rischio dell'Act (Allegato III), pienamente applicabili dal 2 agosto 2026, con sanzioni massime di 35 milioni di euro o il 7% del fatturato globale per le violazioni più gravi, di pratica vietata. La demo scrive un record di lineage per pezzo: id e versione del modello, hash del dataset, punteggio OOD, le regole che si sono attivate, latenza rispetto al budget, log di attuazione e il tag di rischio, esportabile come JSONL. Quel record è progettato come evidenza archiviabile per un fascicolo di conformità ad alto rischio; non è una certificazione.
No. L'attuazione è decisa da un cancello deterministico: soglie di confidenza adattate e un budget di latenza in codice puro che nessun output di modello e nessun LLM può sovrascrivere. La parte agentica, Drift Triage, è un agente di diagnosi più un agente critico che spiegano perché la linea è in deriva; consigliano e non attuano mai. Senza chiave API configurata, il triage decade a un fallback deterministico e l'intera demo gira offline.
Questo è il controllo di indipendenza che abbiamo eseguito: il detector di inviluppo ha ottenuto AUROC 1.00 su una famiglia di deriva held-out (sottoesposizione) su cui non è mai stato tarato, misurato sullo split held-out MVTec metal_nut. È calibrato su 220 immagini known-good nello spazio dei segnali fisici, quindi segnala la deriva di acquisizione che sposta quei segnali, non solo le famiglie di deriva che abbiamo costruito. Le corruzioni sono a piena intensità, quindi la separazione è netta per costruzione; la tesi onesta è la direzione, non la percentuale esatta.
Una demo eseguibile che dimostra il meccanismo. L'EtherNet/IP verso l'attuatore di scarto Allen-Bradley ControlLogix e il sink MES sono adapter simulati che registrano ciò che farebbero, e la telecamera è uno stream registrato di fotografie reali MVTec AD metal_nut; la deriva è una corruzione onesta delle immagini applicata a foto reali di pezzi buoni. Il controllo dell'inviluppo, il cancello deterministico, la coda di escalation e l'export di audit sono reali e girano esattamente come mostrato, e ogni cifra in evidenza è misurata sullo split di test held-out MVTec metal_nut.
La ricerca dietro questa demo — l'architettura, il design di verifica e il blueprint enterprise.
Soluzione completa
Esplora la soluzione Edge AI per l'ispezione qualità in manifattura →Il livello di fiducia tra il modello e l'attuatore è la parte difficile. Lo costruiamo noi.
Se il tuo team sta lottando con i falsi scarti dopo ogni cambio turno, o con cosa significano gli obblighi ad alto rischio dell'EU AI Act per una linea che decide a 40 colpi al minuto, ci farebbe davvero piacere sentire come ci state pensando. Il problema è di tutto il settore e lo saranno anche le risposte.