engiAI
- Requisiti
- Cosa fa
- Ottenimento delle licenze
L’interfaccia di engiAI è disponibile in italiano: i nomi di pulsanti e campi in questo manuale sono riportati così come appaiono nel programma.
Contenuti
- 1. Perché engiAI e il metodo ZONA-COPPIA?
- 1.1. Quali vantaggi offre questo metodo rispetto alla classificazione dell'intera immagine?
- 1.2. Velocità: L'IA analizza solo le informazioni rilevanti.
- 1.3. Quale livello di precisione aspettarsi: calcoliamo in base alla nostra fotocamera
- 1.4. Avvio rapido: le impostazioni sono già configurate, le aree e il modello possono essere selezionate in pochi clic.
- 2. Interfaccia del programma in un minuto
- 3. Telecamere: collegamento e configurazione
- 3.1. Quali telecamere sono supportate
- 3.2. Finestra della telecamera: aggiungere, riconfigurare, eliminare
- 3.3. Tab "Camera" per HIKROBOT e SICK
- 3.4. Scheda "Camera" per webcam/telecamera USB
- 3.5. Impostazioni della fotocamera salvate (preset)
- 3.6. Rete GigE e riconnessione
- 4. Modello ZONA-COPPIA: dal set di dati alla modellazione appresa
- 4.1. Come funziona il metodo: un modello, una classe per ogni zona.
- 4.2. Creare un modello
- 4.3. Segnare le aree di pagamento
- 4.4. Segnalare il riferimento: area di allineamento
- 4.5. Immagine per zona: normale e i relativi dati sintetici
- 4.6. Dati sintetici: correzione in due passaggi: l'elemento si sposta insieme alla base.
- 4.7. Anomalie delle zone: finestra delle impostazioni
- 4.8. Riferimento alle zone: piastre di saldatura e editor di zona
- 4.9. Addestramento del modello
- 5. Ispezione
- 5.1. Definire il modello e verificare le aree.
- 5.2. Soglia di riconoscimento dell'area
- 5.3. Sistema di trasporto continuo: funzionamento in qualsiasi posizione
- 5.4. Quale segnale analizzare
- 5.5. Zone gialle: disattivare la zona cliccando
- 5.6. Cosa si può vedere sullo schermo e nella console
- 6. Sensori: sensore esterno sul corpo della fotocamera.
- 7. Uscite: porta di uscita, uscite discrete per le telecamere e TCP
- 7.1. Guida: Uscite: contatti e verifica con un multimetro
- 7.2. Finestra OUTPUT: regola per la zona
- 7.3. Invio di pacchetti TCP a un robot o a un PLC
- 7.4. Uscita discreta della telecamera
- 7.5. Segnali acustici: possibilità di impostare un suono specifico per ogni zona.
- 7.6. Registro degli eventi e database
- 8. Altri regimi e compiti
- 9. Impostazioni, interfaccia, requisiti e licenza
- 10. Un elenco di controllo breve e individuazione dei problemi
Come utilizzare il manuale. La sezione 1 spiega lo scopo del metodo e i risultati attesi. Le sezioni 3-5 illustrano il percorso dalla programmazione iniziale all'esecuzione di un'ispezione funzionante, da seguire in ordine. Le sezioni 6-7 riguardano la connessione dei sensori, delle uscite e del TCP. Le sezioni 8-10 descrivono le altre funzionalità, le impostazioni e la lista di controllo.
1. Perché engiAI e il metodo ZONA-COPPIA?
engiAI Ethernet System – un programma di ispezione visiva per linee di produzione. Utilizza un'immagine acquisita da una telecamera industriale o standard, la suddivide in zone, verifica ogni zona tramite una rete neurale addestrata e trasforma il risultato in un'azione: un segnale all'uscita digitale della telecamera, un pacchetto TCP per un robot o un PLC, o la registrazione in un registro. Il metodo ZONA-COPPIA è progettato per prodotti in cui ogni componente ha la sua posizione corretta: schede elettroniche, assemblaggi, set di componenti in un contenitore, imballaggi con layout specifico.
1.1. Quali vantaggi offre questo metodo rispetto alla classificazione di un intero fotogramma
L'approccio tradizionale prevede un'unica modellazione, con due classi ("normale" / "anomalia") applicate all'intera immagine o a tutte le zone contemporaneamente. In questo caso, il sistema non funziona correttamente: la mancanza di segnale sotto il ponte BR1 nella zona 2 indica un difetto, mentre la stessa mancanza di segnale in un'altra area della scheda è considerata normale. Un'unica modellazione non è sufficiente per gestire questa situazione. L'altra estrema soluzione è quella di utilizzare un modello separato per ogni singolo componente, il che richiederebbe decine di addestramenti e decine di file in memoria.
ZONA-COPPIA risolve il problema in questo modo: esiste un solo modello, ma un numero di classi pari al numero di zone. ``Zona` – un rettangolo che racchiude un singolo componente. ``Classe` – una cartella contenente immagini su cui la rete impara. Ogni zona ha una coppia specifica: `zone_001` (zona 1 normale, ad esempio il condensatore C30) e `zone_001_anomaly` (zona 1 difettosa); `zone_002` e `zone_002_anomaly` – il ponte BR1. Durante il controllo della zona 1, il programma esamina solo la sua coppia, le risposte relative alla zona 2 non sono considerate. Le classi di anomalie sono opzionali: la modifica della zona causata da "difetto" diminuisce automaticamente la confidenza nella zona "normale"; tuttavia, utilizzando dati sintetici (sezione 4.6), possono essere create con un singolo clic e aumentano significativamente l'affidabilità.

1.2. Velocità: L'IA analizza solo le parti rilevanti
La rete neurale non riceve mai un intero fotogramma. Per ogni zona viene estratto solo il rettangolo corrispondente, e il numero della zona viene associato a due classi. Le zone di un singolo fotogramma vengono elaborate in parallelo (fino a quattro thread), e il risultato di tutte le zone viene visualizzato sullo schermo in un unico pacchetto, anziché per zona.
- La velocità di analisi è determinata dal tempo. La barra "Analisi al secondo (AI)" nella scheda "Camera" indica esattamente N analisi al secondo, e non "ogni N-esimo fotogramma". Il limite è determinato dalla frequenza della fotocamera e dal tempo di elaborazione.
- Utilizzo predefinito della GPU. L'inferenza avviene tramite ONNX Runtime con CUDA; in caso di assenza di una scheda grafica NVIDIA, il programma passa automaticamente all'utilizzo del processore e lo indica nello stato (GPU (CUDA) o CPU).
- Buffer senza sprechi. La memoria viene utilizzata una sola volta per ogni blocco di dati e poi riutilizzata; il tempo di analisi rimane costante, senza variazioni da un fotogramma all'altro.
- Configurazione per il compito specifico. Per ZONA-COPPIA, il programma imposta automaticamente le dimensioni di input a 128 px e la rete YOLO11 di dimensione "s": il ritaglio dell'area subisce una minima modifica, mentre la rete ha una capacità sufficiente per gestire centinaia di coppie di classi.
- Un sistema di produzione automatizzato consente di risparmiare personale. Il componente viene inserito nella linea di produzione non più frequentemente rispetto al periodo di ricerca; il componente viene individuato e posizionato una sola volta, e solo successivamente vengono tagliate le aree corrispondenti.
- La visualizzazione non interferisce con l'analisi. L'immagine viene ridimensionata non più di 25 volte al secondo e solo a partire dal nuovo fotogramma della telecamera. L'immagine viene ridotta alle dimensioni del tile fino a quando non viene visualizzata sullo schermo, mentre il registro viene scritto su un file da un processo in background. L'interfaccia rimane reattiva anche con fotogrammi a 8 megapixel e centinaia di aree.
Nella barra di stato sopra il video, si possono visualizzare i valori reali: fps (frame al secondo) e i millisecondi dell'ultima analisi, oltre a Eff, che indica il numero di analisi effettivamente eseguite al secondo.
1.3. Quale precisione aspettarsi: calcoliamo con la nostra telecamera
Il programma non promette uno scostamento di "0,5 mm" indipendentemente dalla fotocamera e dall'obiettivo. La sensibilità allo scostamento dipende dal numero di pixel per millimetro dell'oggetto e dal limite di apprendimento del modello. Questo viene calcolato in due righe:
Lo spostamento minimo rilevabile è di circa 5 pixel diviso per il rapporto pixel/millimetro
Il numero 5 px rappresenta il limite inferiore dello scostamento sintetico nelle impostazioni predefinite per le anomalie (con una deviazione normale di 0–2 px). Le impostazioni predefinite sono calcolate per 11 px/mm: a questa scala, 0,5 mm corrispondono a 5–6 px, che è l'obiettivo concordato durante lo sviluppo. Inserite i vostri valori:
| Fotocamera (larghezza del fotogramma) | Campo visivo: 100 mm | 200 mm | 300 mm | 400 mm |
|---|---|---|---|---|
| 3264 px (8 MP tramite USB, come nelle foto) | 0,03 mm/px → scostamento ≈ 0,15 mm | 0,06 → ≈ 0,3 mm | 0,09 → ≈ 0,45 mm | 0,12 → ≈ 0,6 mm |
| 2448 pixel (sensore HIKROBOT da 5 MP) | 0,04 → ≈ 0,2 mm | 0,08 → ≈ 0,4 mm | 0,12 → ≈ 0,6 mm | 0,16 → ≈ 0,8 mm |
| 1920 pixel (picocamera SICK, HIKROBOT 2 MP) | 0,05 → ≈ 0,25 mm | 0,10 → ≈ 0,5 mm | 0,16 → ≈ 0,8 mm | 0,21 → ≈ 1,0 mm |
1.4. Avvio rapido: le impostazioni sono già configurate, le aree e il modello possono essere selezionate in pochi clic.
Questo metodo è progettato per consentire a un tecnico senza esperienza nel machine learning di ottenere un modello funzionante in una sola giornata. Tutto ciò che può essere selezionato in anticipo è già disponibile e memorizzato nel database del programma:
- Definizione dell'area in un minuto. Nell'editor ROI, trascina il rettangolo attorno all'elemento e specifica le dimensioni dell'area (ad esempio, 256 px). Se ci sono molti elementi disposti in modo regolare, trascina il rettangolo su tutta la griglia: il programma calcolerà automaticamente le righe e le colonne.
- Dati predefiniti per la modalità normale e per la modalità difetto. I pulsanti "Predefinito", "Offset elementi" e "Colore e tonalità" selezionano i profili preconfigurati. Il numero di file, i fotogrammi della fotocamera e il tempo previsto vengono visualizzati prima di premere il pulsante "Scatta".
- I parametri di addestramento vengono impostati automaticamente. Dopo la prima immagine, il programma imposta le seguenti impostazioni: dimensione dell'immagine 128, dimensione del modello "s", numero di epoche 50, dimensione del batch 64. Durante l'addestramento, vengono disattivate le tecniche di data augmentation che potrebbero interferire con le classi di anomalie.
- La fotocamera viene impostata tramite pulsanti. La funzione "Auto-impostazione per l'IA (per fotogramma)" regola tempi di esposizione, guadagno, gamma e bilanciamento del bianco; per le fotocamere USB sono disponibili le opzioni "Auto-impostazione per forme" e "Memorizza i parametri".
- Set di impostazioni della fotocamera. Le impostazioni selezionate vengono salvate sotto un nome e possono essere selezionate da un elenco. La fotocamera le accetta immediatamente e le memorizza nella sua memoria.
- Un singolo file ONNX come risultato. Il modello addestrato viene esportato automaticamente e viene immediatamente sottoposto a verifica, senza ulteriori passaggi.
Procedimento completo: collegare la telecamera → creare il modello → identificare le aree → definire le aree di allineamento → "Immagini per area" su più schede funzionanti → "Anomalie nelle aree" → addestrare il modello AI → scheda "Ispezione". Successivamente, è necessario assegnare suoni, uscite e TCP alle aree. Per iniziare: un computer con Windows 10/11 (per un'ispezione rapida, una scheda video NVIDIA), la telecamera, una scheda funzionante e una connessione internet per l'installazione dell'ambiente di apprendimento. Non sono necessarie schede difettose.
2. Interfaccia del programma in un minuto
La finestra principale è divisa in due parti. A sinistra, è presente un video in diretta da telecamere e una barra di stato sopra. A destra, si trova una barra con schede, dove è possibile gestire tutte le funzioni. È possibile trascinare il bordo tra le due parti. Il programma memorizza le dimensioni, la posizione di tutte le finestre e la disposizione nella sua base di dati.

Pulsanti sopra il video
| Pulsante | Funzione |
|---|---|
| NASCONDI VIDEO | Rimuove l'immagine dallo schermo. L'analisi continua, risparmiando solo il rendering. |
| USCITE | Finestra di riferimento: contatti delle uscite discrete delle telecamere HIKROBOT e SICK, verifica con un tester, collegamento del carico (sezione 7.1). |
| TELECAMERE | Finestra "Impostazioni delle telecamere collegate": aggiunta, riconnessione, eliminazione delle telecamere e visualizzazione di tutti i parametri letti dall'hardware (sezione 3.2). |
| SENSORI | Collegamento di un sensore esterno all'ingresso discreto della telecamera, con schema e pinout (sezione 6). |
| MODELLI GENERALI | Insiemi predefiniti "camera → modello", assegnati all'intero sistema con un'unica selezione (sezione 8). |
| Layout (colonne) | Numero di piastre da visualizzare in fila; "■" – modalità singola (la telecamera in grande formato), "Auto" – in base al numero di telecamere, "⛶" – telecamere per l'intero monitor (uscita Esc). |
| Visualizzazione delle zone di interesse (ROI) | Disegnare una griglia di zone sullo schermo video. |
Schede a destra
| Scheda | Assegnazione |
|---|---|
| Camera | Parametri della telecamera selezionata: tempo di esposizione, amplificazione, colore, risoluzione, impostazioni automatiche per l'IA, set di impostazioni salvate, velocità di analisi. I limiti dell'IA non sono più presenti qui, ma solo nella scheda "Ispezione". |
| OUTPUT | Scartatore: regole nelle zone – invio TCP al robot/PLC, uscite discrete della telecamera e notifiche sonore, registro degli eventi, database. |
| AI Model | Creazione del modello: cartella, classi, griglia di zone, foto per zona, anomalie nelle zone, riferimento scheda, impostazioni e avvio dell'addestramento. |
| Inspect | Tab principale: quale modello esegue l'ispezione, quali aree e soglie, nastro trasportatore attivo, quale segnale utilizzare per acquisire l'immagine, slot per l'ispezione multi-modello. |
| Settings | Lingua dell'interfaccia (14 lingue), acquisto della licenza, salvataggio e caricamento delle impostazioni, registrazione video. |
| Console | Registro degli eventi: connessione delle telecamere, andamento della formazione, funzionamento del dispositivo Scart, avvisi. Lo schermo visualizza le ultime 800-1000 righe, mentre l'intero registro viene salvato nei file logs\engiai-*.log. |
Riga di stato
Accanto ai pulsanti, viene indicato lo stato della telecamera attiva: LIVE (Android): 3264×2448 [Telecamera USB HD] – tipo, risoluzione e nome; AI: IN ATTESA o AI: GPU (CUDA) – su quale componente opera il modello e quanto tempo ha impiegato l'ultimo analisi; Rete: totale … attiva … Mbit/s – carico sulla rete proveniente dalle telecamere GigE (verde fino al 40% della banda, arancione fino al 70%, oltre il quale rosso). La barra Exp Load indica quale percentuale dell'intervallo di tempo è occupata dalla velocità dell'otturatore: se è impostata a destra, la telecamera non sarà in grado di raggiungere la frequenza desiderata.
Ogni fotocamera ha un'intestazione con il suo nome, lo stato "LIVE | AI:ON" e un pulsante di riconnessione. Cliccando con il tasto destro sull'immagine, si apre il menu della zona. Cliccando con il tasto destro e trascinando, si visualizza una panoramica dell'immagine ingrandita.
3. Telecamere: connessione e configurazione
3.1. Quali telecamere sono supportate
| Tipo | Come connettere | Cosa configurare dal programma |
|---|---|---|
| HIKROBOT MV-CS (GigE, USB3) | SDK MVS nativo. Si apre solo con il numero di serie, l'ordine di elencazione non è importante. | Valore di uscita: 6 мкс, guadagno in dB, FPS (fotogrammi al secondo), risoluzione (AOI), livello nero: 0…4095. Tutti i parametri GenICam (modalità automatiche, gamma, nitidezza, bilanciamento del bianco R/G/B, spostamento digitale, inversione, pacchetti GigE) sono configurabili direttamente sulla fotocamera. Ingresso discreto Line 0, uscita Line 1, GPIO Line 2. |
| SICK picoCam (IDS uEye, GigE) | Driver uEye. La telecamera deve essere visibile in IDS Camera Manager con lo stato "configurata correttamente". Il numero di serie viene verificato con la telecamera, poiché l'ID del dispositivo cambia ad ogni avvio. | Contrasto, intensità 0…100, FPS (frame per secondo), risoluzione, livello del nero 0…255, clock del pixel, amplificazione del segnale, potenziamento hardware dei canali R/G/B, gamma hardware, disposizione di Bayer. I parametri vengono scritti nella memoria della fotocamera. Ingresso del trigger sull'accoppiamento ottico, uscita Flash (150 mA). |
| Webcam USB (nella lista: Android) | DirectShow tramite OpenCV, differiscono per moniker, quindi due telecamere identiche non si confondono. | Support fino a 8K, FPS, con tutte le impostazioni del driver: luminosità, contrasto, saturazione, tonalità, nitidezza, gamma, amplificazione, tempo di esposizione (automatico), messa a fuoco (automatico), bilanciamento del bianco (automatico), compensazione dell'abbagliamento, ecc. Non ci sono ingressi e uscite discrete, è disponibile solo TCP. |
| Telecamera IP RTSP | L'indirizzo del tipo rtsp://admin:password@192.168.1.64:554/… deve essere inserito manualmente. | Tempo di esposizione, amplificazione, risoluzione e FPS sono impostabili tramite l'interfaccia web della telecamera stessa. Nella programmazione sono presenti: zone, modello e TCP. |
Non ci sono limiti al numero di telecamere: le telecamere possono essere disposte in una griglia con qualsiasi numero; su apparecchiature reali sono state utilizzate otto e nove telecamere contemporaneamente. Ogni telecamera ha i propri modelli, le proprie zone, il proprio limite e il proprio ritmo di analisi.
3.2. Finestra TELECAMERE: aggiungere, riconnettere, eliminare
Le opzioni sotto l'elenco si applicano alla telecamera selezionata: Telecamera attiva (altrimenti viene disconnessa dal dispositivo e scompare dallo schermo), Mostra video/zone (solo visualizzazione, l'analisi è sempre attiva), Intelligenza artificiale abilitata per la telecamera selezionata. Il pulsante Riconnetti esegue una disconnessione e una riconnessione completa, riavviando il flusso di intelligenza artificiale e ricaricando i modelli.
La parte destra della finestra mostra tutti i parametri acquisiti dalla telecamera al momento della connessione, raggruppati e con le unità di misura appropriate: "Mostrare i parametri di", Rileggere dalla telecamera, Copiare negli appunti. Questa è solo una visualizzazione: è possibile modificare i parametri nella scheda "Telecamera".
3.3. Scheda "Camera" per HIKROBOT e SICK
La scheda funziona con la fotocamera, la cui griglia è evidenziata da una cornice blu. Quando il programma è connesso, non scrive nulla nella fotocamera: la fotocamera è la fonte di verità, e le impostazioni si adattano automaticamente ai suoi valori. Le impostazioni possono essere salvate solo consapevolmente, premendo il pulsante "Salva parametri".
Blocco "Hikrobot: parametri della telecamera (GenICam)"
Vengono visualizzate solo le impostazioni che la telecamera fornisce. Righe: Esposizione automatica (Off / Una volta / Continua), Aumento automatico, Gamma e modalità gamma, Nitidezza, Tonalità, Saturazione, Bilanciamento automatico del bianco, Bilanciamento del bianco per canale, Spostamento digitale, Livello nero attivo, Limite FPS attivo, Rotazione orizzontale e verticale, GigE: dimensione del pacchetto, GigE: ritardo tra i pacchetti, GigE: limite di banda, Immagine di test. Il pulsante "Rileggere i parametri dalla telecamera" modifica la tabella.
Blocco "COLORE DELL'IMMAGINE"
Configurazione di Bayer (Авто / BGGR / RGGB / GRBG / GBRG), Saturazione 0…200 %, Gamma 0,30…3,00, Contrasto 50…200 %, pulsante di reset. L'elaborazione software è applicata a tutti i frame: visualizzazione, registrazione, inferenza e immagini per l'addestramento, quindi l'immagine è identica sia durante l'addestramento che durante l'ispezione. Per HIKROBOT, la configurazione viene presa dal formato dei pixel della telecamera, mentre per i sensori SICK, viene presa dal sensore e specificata nel primo frame.
| Parametro | Cosa fa | Effetto |
|---|---|---|
| Analisi al secondo (AI) | Limite massimo del ritmo di ispezione, 1…200 | minore carico sulla scheda video; non dipende dalla connessione della telecamera |
| Soglia di riconoscimento dell'IA | non impostabile nella scheda "Camera" | soglia di riconoscimento dell'area – solo nella scheda "Inspect" (sezione 5.2), una per telecamera |
| Exposure | tempo di esposizione | in breve – minore sfocatura degli oggetti in movimento; non consentito |
| Gain / Gain boost | potenziamento del segnale della matrice | aumenta la luminosità, ma aggiunge rumore |
| Pixel clock (SICK) | frequenza del sensore | modifica i valori di FPS e di esposizione, che vengono riletti |
| FPS | frequenza dei fotogrammi in modalità libera | non utilizzata in modalità trigger |
| Larghezza / Altezza | Dimensione del fotogramma (AOI) | Fotogramma più piccolo = frequenza più alta e traffico inferiore |
3.4. Scheda "Camera" per webcam USB/rete
Per le webcam USB, la scheda mostra il blocco "Webcam USB: risoluzione, FPS e proprietà". Le proprietà del driver che la webcam non fornisce non vengono visualizzate; i limiti del campo sono definiti dal programma, poiché DirectShow non fornisce informazioni sui range.
3.5. Impostazioni della camera salvate (preset)
Il blocco "Impostazioni della camera salvate" è disponibile per USB, SICK e HIKROBOT. Selezionando i parametri in base al prodotto, è possibile salvarli con un nome specifico: per un'altra scheda o per un'altra illuminazione, è sufficiente scegliere un preset dalla lista.
- Salva come… – legge i valori attuali dalla fotocamera e chiede il nome del gruppo. Se il nome è già presente, offre la possibilità di sovrascriverlo.
- Selezionare un set di parametri dall'elenco consente di inserirli immediatamente nella telecamera e salvarli: per USB, nella base dati; per SICK e HIKROBOT, in un file di parametri e nella memoria della telecamera (UserSet1 / EEPROM). Successivamente, il sistema legge i valori dal dispositivo e mostra quanti parametri sono stati accettati e quanti sono stati modificati.
- Sovrascrivere sovrascrive l'insieme di valori selezionato con i valori attuali; Rinomina e Elimina agiscono solo sulla voce nel database, mentre i parametri della telecamera non vengono modificati.
Cosa include il set: per USB, risoluzione, FPS, proprietà del driver e modalità automatiche; per SICK, guadagno, tempo di esposizione, FPS, livello del nero, frequenza del pixel, guadagno, bilanciamento del bianco R/G/B, gamma hardware e colore software; per HIKROBOT, guadagno, tempo di esposizione, FPS, livello del nero e tutti i nodi GenICam. La dimensione del frame delle tele industriali non è inclusa nel set: la sua modifica riavvia la registrazione. I set sono comuni per tutti i tipi di tele, quindi su un banco con tele identiche, un set viene posizionato su ciascuna.
3.6. Rete GigE e riconnessione
- La dimensione del pacchetto GigE di HIKROBOT viene impostata automaticamente al valore ottimale all'apertura; manualmente è possibile modificarla nella sezione GenICam. Pacchetti di grandi dimensioni (8164–9000) riducono il carico, mentre per pacchetti frammentati, impostare 1500 e aumentare il ritardo tra i pacchetti.
- La riga `Net` calcola il carico proveniente da ciascuna telecamera in base ai propri dati (dimensione del carico utile × frequenza) e lo confronta con il traffico di rete effettivo. Una discrepanza significativa indica la perdita di fotogrammi o la presenza di traffico non desiderato. Gli adattatori virtuali e i filtri NDIS (come GigEVision, uEye, Npcap) sono esclusi dal calcolo.
- Se la telecamera è visibile ma il flusso video non è attivo, cliccare su "Riconnetti" (nella finestra della telecamera o sulla tile). Solitamente, il problema è dovuto alla larghezza di banda della rete o alla connessione USB.
- La fotocamera picoCam perde le impostazioni quando il descrittore viene chiuso; se non è presente un file di parametri all'interno della fotocamera, il programma applica il file e suggerisce di premere "Salva impostazioni" per registrarle nella fotocamera.
4. Modello ZONA-COPPIA: dalla griglia al modello addestrato
4.1. Come funziona il metodo: un modello, una classe per ogni zona
Il modello ZONA-COPPIA è una rete di classificazione YOLO11 standard, con un numero di classi pari al numero di zone, più classi opzionali per anomalie. Una classe corrisponde a una cartella all'interno di `train` e `val`. Il programma crea automaticamente tutte le cartelle; non è necessario crearle manualmente. Ecco come appare la cartella del modello nell'esempio dopo l'addestramento:



I file real_…jpg sono immagini reali acquisite dalla fotocamera (presenti sia nel set di training che nel set di validazione), syn_…jpg rappresentano dati sintetici, edit_…jpg sono immagini generate dall'editor della zona. Nell'esempio, dopo aver scattato foto di diverse schede: zone_001 corrisponde a 502 file nel set di training e 111 nel set di validazione, zone_001_anomaly corrisponde a 680 e 144, zone_002 corrisponde a 813 e 181, zone_002_anomaly corrisponde a 340 e 60.
Il programma riconosce automaticamente il modello come "плата" in base alla presenza di classi di tipo zone_NNN. Il numero della classe corrisponde al numero univoco della zona nella griglia (1…N). Da questo, deriva la regola principale del metodo:
4.2. Creare il modello
4.3. Segnare le zone sulla scheda

Zone rosse: eliminare la zona da dati sintetici con un singolo clic
Nella scheda "Modello AI", cliccate con il pulsante sinistro del mouse sulla zona già creata direttamente sul video: la zona diventerà rossa e non sarà inclusa nelle immagini per area o nelle anomalie. Un secondo clic la ripristinerà. I contatori di file nelle finestre "dati sintetici" vengono aggiornati immediatamente, e l'etichetta "disatt. N" sopra il fotogramma indica quante zone sono disattivate. L'elenco delle zone rosse è memorizzato per ogni telecamera e modello; nella scheda "Ispezione", la stessa zona rimane normale (insieme alle altre zone gialle, sezione 5.5).
4.4. Associare il riferimento: area di allineamento
Le aree di ispezione sono definite in base alla posizione di una singola scheda. Per consentire l'inserimento di un'altra scheda sulla linea, con uno spostamento e una rotazione, il software memorizza un riferimento: un'immagine di esempio e un'area di allineamento, una sezione della scheda che contiene dettagli utilizzati per localizzare il prodotto in ogni nuovo fotogramma. Una volta individuata l'area, il software trasferisce le aree di ispezione sulla nuova scheda. Questo è il funzionamento della cattura delle immagini, dell'elaborazione dei dati e dell'ispezione.


| Modello di allineamento | Quando utilizzare |
|---|---|
| Automatica (consigliata) | La scheda viene allineata rigidamente (spostamento, rotazione, scala); la prospettiva viene attivata solo se si allinea in modo significativamente migliore. Precisione in un'area di allineamento limitata: 1-2 px. |
| Rigida | La telecamera guarda direttamente dall'alto, la scheda è posizionata in piano. La soluzione più stabile, se l'area di allineamento è piccola. |
| Prospettiva | La telecamera è inclinata o la scheda è inclinata. È necessaria un'area ampia con punti lungo tutta la larghezza, altrimenti la prospettiva "deforma". |
La pulsante "riferimento con zone" apre il riferimento salvato con la griglia e i numeri delle zone (sezione 4.8). La placca trovata viene controllata per verificarne la validità: l'area deve essere compresa tra 0,5 e 2 aree di riferimento, deve essere un poligono convesso e i punti di appoggio devono occupare almeno un quarto dell'area lungo ciascun asse – in caso contrario, il risultato viene scartato e nella console viene visualizzato il messaggio "placca non trovata".
4.5. Scatto per zona: normale e i suoi dati sintetici
Il pulsante "ZONA-COPPIA: immagine per zone" svolge una funzione fondamentale: divide l'immagine in zone, estrae i dati di ogni zona e li inserisce nella sua classe zone_NNN, aggiungendo dati sintetici "normali". I dati sintetici "normali" rappresentano la variabilità intrinseca dell'acquisizione, e non un difetto: potrebbero essere dovuti a un posizionamento leggermente errato del circuito, a una diversa illuminazione o al rumore del sensore.

| Impostazioni | Funzioni predefinite e opzioni |
|---|---|
| Opzioni per ogni area | Numero di file sintetici da creare per ogni area. Si consiglia di utilizzare 20, 0 (solo per riferimento) o al massimo 500. |
| Immagini temporali: ogni variante da un nuovo frame della fotocamera | Attivo, periodo di 800–1200 ms (almeno la durata dell'esposizione). Ogni variante viene estratta da un nuovo frame reale: rumore, vibrazioni e riflessi della luce reali, anziché disegnati. |
| Ogni variante include anche una probabilità in %, ad esempio: | 20 %. Il file di riferimento è sempre presente: in Ultralytics, ogni classe deve essere presente sia nella cartella "normale" che in quella "anomalie e ispezione". |
| Addestramento in scala di grigi | Flag generale del modello: il colore viene rimosso dalle cartelle "normale", "anomalie e ispezione". Non è possibile mescolare file a colori e in scala di grigi nella stessa modello; il programma avviserà. |
| Spostamento, px · verso dove | La finestra di spostamento si muove su tutta l'immagine di 0…2 pixel nelle direzioni specificate (← → ↑ ↓); la porzione mancante viene prelevata dall'area adiacente del circuito, mantenendo un taglio uniforme. Il simbolo tutte le direzioni indica che per ogni direzione è presente un file, mentre una direzione casuale indica un unico file. |
| Rotazione, ° · verso | Di default è disattivato: non ci sono rotazioni, e l'attivazione sfuma il confine con il difetto. Le opzioni "sinistra/destra" e "tutte le direzioni/una casuale" funzionano come per lo scorrimento. |
| Scala, % · riduzione / aumento | Per impostazione predefinita, è disattivato. Due caselle di controllo corrispondono a due opzioni: riduzione (<100) e aumento (>100, l'area di riferimento include anche i pixel adiacenti). Ogni casella di controllo selezionata corrisponde a un file specifico. |
| Luminosità / Contrasto / Gamma | Valore casuale all'interno dell'intervallo per ogni opzione: luminosità 88…112, contrasto 88…112 %, gamma 98…102 % (nella foto); nel profilo "Spostamento degli elementi", la luminosità è più ampia per evitare che diventi un segno distintivo. |
| Rumore (sigma) / Sfocatura | Sensore a 3…8 livelli, leggera sfocatura 0,4…0,8 px. |
| Colonna "generale" | Con l'opzione spuntata, l'elemento viene incluso nel file generale insieme agli altri; senza di essa, viene creato un file separato "riferimento + solo questo elemento". Più elementi ci sono, più file vengono creati per ogni opzione. |


4.6. Dati sintetici: spostamento dell'elemento rispetto alla base con due tocchi
L'osservazione su cui si basa il dataset sintetico. Il modello si addestra particolarmente bene quando, invece di mostrare una macchia disegnata come difetto, gli viene presentato l'elemento stesso da ispezionare, insieme agli elementi della scheda circostante: le linee di serigrafia, le piste, il colore e la texture del substrato. Il programma riduce le dimensioni dell'area visualizzata fino alla dimensione dell'elemento, e poi sposta o ruota questa area, riempiendo i bordi con i pixel adiacenti dell'immagine. In questo modo, l'elemento si trova nella sua posizione corretta rispetto al substrato: esattamente come lo vede l'operatore durante un'ispezione reale, con il rumore reale del sensore, la luce reale e la scheda reale.
Una zona "normale" e una zona "anomala" si distinguono solo per la posizione dell'elemento rispetto alla base. Tutto il resto è identico, quindi la rete apprende la relazione "elemento ↔ scheda", e non le sfumature della macchia o l'illuminazione.
Due tocchi:
Non è necessario apportare ulteriori modifiche: non è necessario disegnare difetti o cercare schede difettose. Successivamente, ALLENA IL MODELLO DI IA.
Prima e dopo: cosa ottiene il programma




Cartelle di anomalie, come le vede l'utente
Confrontare con le cartelle "normali" della sezione 4.5: la differenza è solo nella posizione del dettaglio rispetto alla base.


Marcatura dei dettagli: perché la linea è "spessa" e come si configura
Sulle componenti, sono presenti delle marcature: scritte e linee sottili di 1-2 px. Queste marcature variano da lotto a lotto: diverso tipo di carattere, la scritta sul condensatore è orientata in modo diverso, alcuni simboli sono cancellati. Se un difetto sintetico, come un "graffio", viene rappresentato con una linea simile, il sistema non sarà in grado di distinguerlo dalla linea di marcatura e dal rumore del sensore, e inizierà a scartare le schede corrette provenienti da un lotto diverso.
I dati sintetici ZONA-COPPIA risolvono questo problema da entrambe le parti. Innanzitutto, il difetto principale, ovvero lo spostamento dell'elemento, sposta anche la marcatura insieme al corpo, quindi la scritta non diventa un indicatore: appare allo stesso modo sia in condizioni normali che anomale. In secondo luogo, la linea disegnata/il graffio, per impostazione predefinita, è spesso (⅛ dello spazio, non meno di 3 pixel) ed è chiaramente diverso da una linea di marcatura. Lo spessore ora è specificato esplicitamente: il campo "Spessore linea, pixel" (0 = automatico) influisce sia sulla linea che sulla croce.
I difetti disegnati (rettangoli, cerchi, linee, "elemento mancante", macchie sfocate e altri) sono raggruppati in un'area espandibile Difetti sintetici sulla zona tagliata. Per impostazione predefinita, è disattivata e ripiegata: il difetto principale è lo spostamento. Attivala per compiti specifici: area inondata, goccia in eccesso, etichetta cancellata.
| Parametri delle forme | Cosa definisce |
|---|---|
| Dimensione: da … a, % della zona / px | Dimensione o lunghezza della forma. In percentuale, in relazione al lato più piccolo della zona; in px, uguale per tutte le zone, comodo quando si conosce la dimensione del difetto reale in pixel dell'immagine. |
| Riempimento | continuo / bordo / misto (il bordo è anche "spesso"). |
| Spessore della linea, px | Linea / graffio e croce. 0 = automatico (spesso). Per la marcatura dei dettagli, non scendere al di sotto dei 3 px. |
| Dove si trova il difetto | Al centro, a sinistra, a destra, in alto, in basso: dove posizionare la figura (con una leggera dispersione casuale). La casella "tutte le posizioni" indica che verrà creato un file per ogni posizione selezionata; la casella "una posizione casuale" indica che verrà creato un solo file, con la posizione scelta casualmente tra quelle selezionate. Il contatore dei file, situato nella parte inferiore della finestra, tiene conto di queste opzioni immediatamente. |
| Colori delle forme: 5 slot | Cinque slot invece di un elenco di nomi. La casella di controllo indica se lo slot è attivo; il colore viene scelto casualmente tra quelli selezionati (±12 per canale, per evitare che ci siano solo tonalità simili). Il pulsante con un campione permette di scegliere un colore dalla tavolozza, mentre la "pipetta" (indicata con 💧) consente di selezionare un colore da un'immagine reale (il cerchio permette di zoomare, il pulsante destro permette di effettuare una panoramica) e di prenderlo da un dettaglio o da un componente reale. Di default, sono attivi due slot: uno scuro e uno chiaro, mentre gli altri tre sono disattivati. |
| Colonna "generale" | La forma del difetto contrassegnato viene salvata in un file comune insieme ad altri "comuni" (ad esempio, un graffio su un elemento spostato). Senza la casella di controllo, viene creato un file separato "normale + solo questo difetto". La forma con "tutte le posizioni" è sempre separata. |
4.7. Anomalie di zona: finestra delle impostazioni
Il pulsante "ZONA-COPIA: anomalie delle zone" crea classi "zone_NNN_anomaly" basate su immagini normali. Tutte le zone vengono prese, ad eccezione di quelle rosse (disattivate tramite un clic nell'AI Model, sezione 4.3). Le classi di anomalie non sono necessarie ovunque: aggiungetele solo per le zone in cui l'anomalia è effettivamente presente, mentre il modello verificherà le altre zone tramite riconoscimento.

| Impostazioni | Cosa fa |
|---|---|
| Copia del difetto | Un unico valore per tutti i tipi: quante copie con parametri casuali devono essere create per ogni tipo specificato (predefinito: 10). |
| ▸ Difetti sintetici sulla zona ritagliata | Gruppo predefinito: rettangolo, piccoli rettangoli, cerchio, ellisse, triangolo, otto, linea/graffio, croce, elemento mancante, macchia sfocata, patch di rumore, frammento di un'altra area. Parametri delle forme, posizione e tavolozza: sezione 4.6. |
| Traslazione, px · dove · forma | Il principale difetto del circuito. L'area (un cerchio o un quadrato) si sposta di 5-12 pixel nelle direzioni specificate: ← → ↑ ↓ e le due diagonali ⤡ ⤢. Scala verticale / orizzontale, ±% – dimensione dell'area rispetto alla zona: 0 – l'intera zona, -30 – un'area del 30% più piccola (si sposta solo l'elemento, la base rimane), +30 – un'area più grande della zona (include anche gli elementi adiacenti dell'immagine). Tutte le direzioni – per ogni lato, in base al file. |
| Rotazione, ° · forma | L'area (cerchio o quadrato, con la stessa scala ±%) viene ruotata a un angolo casuale all'interno di un intervallo in entrambe le direzioni. |
| Scala, % · riduzione / aumento | L'area come difetto: riduzione del 60-85% o aumento del 120-160%. Ogni lato specificato corrisponde a un file. Di solito è disattivato. |
| "Generale" per traslazione e rotazione | Se entrambe le caselle sono spuntate, questo significa che si tratta di un singolo elemento in un unico file: la traslazione e la rotazione vengono applicate con una singola trasformazione (non in sequenza, altrimenti si otterrebbe un risultato confuso), e la scala dell'area e la forma sono comuni e vengono definite nella traslazione. |
| ▸ Zone | L'area viene divisa in 2, 4 o 9 parti, e all'interno di ciascuna viene ruotata o traslata una propria area; l'opzione "una foto per ogni zona" produce un file per ogni parte. È necessario per aree ampie con più elementi. |
| Illuminazione e rumore sulla zona di ogni file difettoso | Attivo e uguale a "normale": il difetto deve differire per geometria, non per illuminazione. |
| Immagini nel tempo / in val | Ogni copia da un nuovo frame della telecamera (800 ms), 20% in val, il primo file di una classe in val è sempre presente. |
4.8. Riferimento alle zone: punti di saldatura e editor di zona
Il pulsante "riferimento con zone" apre la vista predefinita con la griglia. In questa modalità, i dati vengono generati senza l'utilizzo di una telecamera: lo zoom viene controllato con il rotellino, il pulsante destro permette di effettuare una panoramica, il pulsante sinistro consente di selezionare le zone (Ctrl per aggiungere, la barra di trascinamento per definire i bordi, Ctrl+A per selezionare tutto), e un doppio clic apre l'editor della zona.
- Piastre di saldatura per le aree selezionate… – finestra "Piastre di saldatura: collegamento tra le tracce". Il programma individua automaticamente le tracce nell'area (soglia di Ots, strisce chiare di larghezza ≥ 2 px), applicando una goccia di saldatura nello spazio tra le tracce, utilizzando il colore delle tracce, con un bordo scuro e un riflesso. Impostazioni: tra le tracce verticali o orizzontali, le piastre nelle immagini 1…3, dimensione dell'area da 8…18 %, immagini per area (5), dove applicare: nell'anomalia o nella normale, illuminazione della superficie, in "val" – nuova immagine con un'illuminazione diversa o copia esatta.
- Strumento per la zona: pennello, beccuccio, colore, copia zona, incolla, timbro, zona per componenti; tavolozza "saldatura / area", "scheda", "ombra / maschera", bianco, nero; campo "Copia" e pulsante Crea immagine. In questo modo si può individuare un difetto che non era presente sulla linea: area in eccesso, elemento superfluo, mancanza di etichettatura.
I file dell'editor ricevono nomi del tipo `edit_…` e vengono classificati all'interno di una zona o di un'anomalia. Nella scheda "Ispeziona", la stessa finestra si apre, ma solo per la visualizzazione.
4.9. Addestramento del modello
Il gruppo "Impostazioni di addestramento" nella scheda "Modello AI" viene compilato automaticamente dopo la prima acquisizione delle immagini, con i seguenti valori: Dimensione immagine 128, Dimensione modello s, Epoche 50, Batch 64. Questi valori sono adatti per le zone di 108–137 pixel. Per le zone di 256 pixel, come nell'esempio, impostare la "Dimensione immagine" a 192 o 256: in questo modo, la ritaglio subisce una compressione minima (nella schermata principale, sono impostate 100 epoche e una "Dimensione immagine" di 192). Verificare i valori e premere ADDESTRA MODELLO AI.
| Parametro | Cosa significa | Come scegliere |
|---|---|---|
| Epochs | quante volte il modello visualizzerà l'intero set | 50 per la scheda predefinita; 100-150 se ci sono molte classi di anomalie |
| Batch Size | quante immagini per ogni passo | 64; se la memoria video è insufficiente, riducila |
| Image Size | a quale dimensione vengono ridotte le aree, multiplo di 32 | dimensione approssimativa dell'area: 128 per l'area di 108-137 px; 192-256 per le aree di 256 px, come nell'esempio |
| Model Size | n / s / m / l / x | s — ottimale per centinaia di coppie di classi; n — insufficiente, m e superiori — più lento |
| Device | su cosa addestrare | 0 (GPU) con scheda video NVIDIA; senza CUDA, il programma passa automaticamente all'utilizzo della CPU |
| Workers | numero di thread per la preparazione dei dati | 12 (predefinito per processori multi-core) |
5. Ispezione
Tutto il lavoro viene svolto nella scheda "Ispezione". Il modello è già stato addestrato; resta da verificare le aree, impostare la soglia, selezionare la sorgente del ritmo e, se la scheda funziona in qualsiasi posizione, attivare la modalità di funzionamento continuo.

5.1. Assegnare il modello e verificare le zone
5.2. Soglia di riconoscimento della zona
Per ogni zona, la rete fornisce le probabilità di tutte le classi, ma la decisione viene presa solo all'interno di una coppia. La percentuale "normale" q = p(zone_N) / (p(zone_N) + p(zone_N_anomaly)) viene moltiplicata per un fattore di "confidenza" che indica quanto la coppia influisce sull'output della rete (una confidenza del 10% o superiore indica una forte correlazione). Il punteggio finale, espresso in una scala da 0 a 100%, viene confrontato con una soglia: se il punteggio è superiore alla soglia, si classifica come normale; altrimenti, si classifica come anomalia.
Il valore predefinito è del 50%, memorizzato in `board.json` insieme al modello, e viene applicato immediatamente, senza necessità di riavvio. Se il valore è inferiore al 50%, la soglia si sposta verso il normale: 25% → esclusione del 6%, 10% → 0,4%, 1% → quasi tutto verde; 99% permette solo di identificare le aree sicure. Questa scala serve a far notare all'operatore la differenza tra il 5% e il 99%, piuttosto che avere solo aree completamente rosse.
5.3. Pipeline in tempo reale: la scheda in qualsiasi posizione
"Galochka Nastro di controllo: ricerca della scheda in qualsiasi posizione include la ricerca della scheda in base all'area di allineamento prima di ogni analisi: l'immagine viene allineata con il riferimento, le zone vengono tagliate dall'immagine allineata, e i confini dell'area di allineamento e delle zone (verdi = normale, rosse = anomalia) vengono disegnati sull'immagine. Il campo Periodo, ms specifica la frequenza di ricerca (impostazione predefinita: 1000, in foto: 2000). L'indicatore accanto mostra: verde "normale · N punti", rosso "ANOMALIA · N punti", arancione "scheda non trovata" o "nessun riferimento – da confermare". La decisione viene presa in base a un'unica analisi, senza accumulo.
Il riferimento e l'area di allineamento vengono fissati con lo stesso pulsante Fissa il riferimento, come durante la ripresa (sezione 4.4); Riferimento con zone permette di visualizzarlo. Nel video, vengono visualizzati i bordi dell'area di allineamento e i punti di riferimento blu utilizzati per l'allineamento. Le zone che si estendono oltre i bordi dell'immagine dopo l'allineamento vengono ignorate e contrassegnate con SKIP.
5.4. Su quale segnale analizzare
La fonte del segnale è sempre la stessa: quando viene inserito un nuovo segnale, il programma elimina quello precedente.
| Metodo | Come attivare | Quando utilizzare |
|---|---|---|
| Tramite telecamera | Casella di controllo "Tramite telecamera" | Controllo continuo; la velocità è limitata tramite la manopola "Analisi al secondo" nella scheda Telecamera |
| Tramite timer | Casella di controllo "Tramite timer" e intervallo in millisecondi | Controllo sporadico, ad esempio una volta al secondo |
| Tramite trigger | Selezionare la connessione nella lista "Trigger" e il fronte "analisi con + in ingresso" o "con -" | Sistema a nastro con sensore in ingresso della telecamera: l'immagine viene acquisita nel momento in cui l'oggetto arriva – il metodo più preciso (sezione 6) |
| GPU | Casella di controllo "GPU" | Attiva per impostazione predefinita; l'attivazione riavvia il modello |
| Analisi in scala di grigi | Casella di controllo "Analisi in scala di grigi" | Attiva automaticamente per i modelli addestrati in scala di grigi; le aree vengono convertite in scala di grigi prima dell'inferenza |
5.5. Zone gialle: disattivare con un clic
In alcune aree, per motivi temporanei, potrebbe essere necessario disattivare il controllo: l'elemento non è presente in questa versione, l'area è bloccata da un dispositivo, si sta effettuando la risoluzione dei problemi. Per farlo, non è necessario modificare la griglia o il modello; le aree vengono disattivate direttamente sullo schermo, solo nella scheda "Inspect".
Cosa fanno le aree gialle? Una casella di controllo generale "Le aree gialle (disattivate con un clic) non emettono alcun suono" si trova nella finestra OUTPUT, nella scheda "Audio" (abilitata per impostazione predefinita):
| Casella di controllo | Comportamento delle zone gialle |
|---|---|
| Attiva (per impostazione predefinita) | La zona non viene analizzata: l'area non viene inviata alla rete, l'etichetta è "OFF", non ci sono comunicazioni TCP o chiusura della telecamera. In un ambiente di produzione, una zona gialla non influisce sulla decisione "normale / anomalia". |
| Disattivato | Il bordo giallo rimane solo come indicazione: la zona è in fase di analisi e funziona normalmente. È utile per contrassegnare le zone da controllare senza interrompere il monitoraggio. |
5.6. Cosa si vede sullo schermo e nella console
- Il risultato è stato registrato per ogni area; il bordo è colorato in base alla tabella delle aree, e diventa rosso quando viene attivato un trigger. Quando ci sono più di 50 aree, l'area "normale" viene visualizzata solo con un bordo verde, mentre le aree anomale e incerte ricevono un bordo rosso. Un gran numero di etichette su ogni fotogramma rendeva difficile la lettura dell'immagine e aumentava il carico di rendering. Le aree gialle sono state disabilitate con un clic (sezione 5.5).
- La sezione "Analisi per trigger" nella parte inferiore della scheda mostra ogni evento in una riga: [hh:mm:ss.mmm] Telecamera di ingresso + TRIGGER 4 ms | IA 12 ms #57 e il risultato per ogni zona. Queste righe non vengono salvate nel database.
- Clic destro sulla zona nel video: "Classificazione nella zona → definire come «…»" rinomina la risposta del modello per quella zona (non modifica il modello, ma lo scartatore e il log vedranno il nuovo nome); nella stessa schermata, si trova anche "Definire lo scartatore per questa zona" e il contatore delle regole.
- Gallina Conservare le immagini delle ispezioni e la cartella: le immagini con le aree disegnate vengono salvate come file inspect_….jpgOgni fotocamera ha le proprie impostazioni.
- Ogni 10 minuti, una sottocartella chiamata "diag" viene popolata con un'immagine del nastro trasportatore e una lista di testo delle aree, conservando le ultime 20 immagini – per l'analisi di casi controversi senza necessità di espandere la cartella.
6. Trigger: sensore esterno sull'ingresso della telecamera
Modalità principale per la linea di produzione: la telecamera acquisisce l'immagine in base al segnale elettrico del sensore al suo ingresso discreto. Questo è il momento di acquisizione più preciso: il prodotto è sempre nella stessa posizione nell'immagine, e l'analisi viene eseguita una sola volta per prodotto. La sezione "TRIGGER" raccoglie la connessione "sensore → telecamera" e disegna lo schema di collegamento per il connettore selezionato.


Schema di connessione dei connettori
| Pin | HIKROBOT MV-CS, 6 pin | SICK picoCam, 6 pin |
|---|---|---|
| 1 | DC_PWR — Alimentazione della telecamera: 9–24 V | GND — messa a terra dell'alimentazione della telecamera |
| 2 | OPTO_IN — Ingresso Line 0 (+), segnale di attivazione | VCC — alimentazione della telecamera (12–24 V) |
| 3 | GPIO — Line 2, ingresso o uscita | Trigger — Ingresso del trigger, fototransistor (−) |
| 4 | OPTO_OUT — Uscita della linea 1 (+) | Trigger + — Ingresso del segnale del trigger, fototransistor (+) |
| 5 | OPTO_GND — Ottorete generale, cavo di ritorno | Flash + — uscita discreta (+) |
| 6 | GND — messa a terra dell'alimentazione della telecamera | Flash − — uscita discreta (−) |
7. Uscite: Scartatore, uscite discrete delle telecamere e TCP
Lo "scartatore" trasforma il risultato dell'ispezione in un'azione. La regola viene creata in una zona specifica (o immediatamente in tutte le zone del modello, della classe o delle zone designate) e viene attivata quando il modello rileva la classe specificata in quella zona. Le azioni possibili sono tre: invio di un pacchetto TCP al robot o al PLC, commutazione dell'uscita digitale della telecamera e segnalazione acustica all'operatore. Ogni attivazione viene registrata nel log.
7.1. Guida Uscite: contatti e verifica con un multimetro
La pulsante "USCITA" accanto al video apre una finestra di aiuto che non permette di effettuare alcuna configurazione: mostra quali sono i contatti di uscita, come verificarli con un multimetro senza alimentazione e come collegare il carico.


- Uscita: "contatto secco" dell'ottorelay: non fornisce la propria tensione, ma solo chiude il circuito. È necessario un alimentatore esterno.
- Verifica con multimetro in modalità Ω: uscita DISATTIVATA — interruzione (OL), ATTIVATA — centinaia di Ohm. L'indicatore acustico non emette alcun suono in entrambi i casi, consultare i valori. Se non si verificano cambiamenti, invertire le sonde, l'ottorelay è polarizzato.
- Carico: +24 V → lampada → pin "+", pin "-" → GND. Per HIKROBOT, il limite è di 25 mA: superato questo limite, ridurre l'alimentazione o utilizzare un relè intermedio. Per SICK, la corrente massima è di 20-30 mA, quindi può essere collegata direttamente.
7.2. Finestra OUTPUT: regola per la zona
Il pulsante "OUTPUT" sulla barra laterale (o il clic destro sull'area → "Crea un rilevatore per questa area") apre la finestra "OUTPUT - Pacchetti TCP e uscite discrete delle telecamere". A sinistra, è presente una struttura ad albero "Telecamere → modelli di intelligenza artificiale → classi → aree", con le aree selezionate; a destra, ci sono le schede "Regole dell'area", "Registro degli eventi" e "Database".

Una singola zona può contenere più regole TCP (diversi ricevitori), ma non più di una regola di uscita discreta per classe e non più di un suono per classe. La regola è memorizzata nel database e viene eseguita da un flusso di inferenza: le regole sono memorizzate in memoria, una ricerca per indirizzo di zona per fotogramma, mentre i socket e l'SDK della telecamera sono gestiti da un flusso separato, in modo che l'analisi non dipenda dalla rete.
7.3. Trasmissione TCP al robot o al PLC
Il programma funziona come un client TCP: si connette all'indirizzo IP e alla porta del destinatario, mantiene la connessione aperta e la riutilizza. In caso di interruzione, tenta una volta di ristabilire la connessione e ripetere l'operazione. La stringa di testo viene inviata in formato UTF-8, con un carattere di ritorno a capo (CR+LF) alla fine.
| Campo | Assegnazione |
|---|---|
| Tempo di attesa per la connessione, ms | 1000 di default, 100...10000. |
| Tempo di attesa per l'invio delle regole, ms | Intervallo minimo tra l'invio automatico delle regole; 0 = senza intervallo. Anche il cambio di classe richiede questo intervallo. |
| Comando | Il testo viene tradotto letteralmente: «up» – pacchetto «up». È necessario un angolo di riferimento – aggiungere un placeholder: «J6 {class}» → «J6 235». Vuoto – si utilizza il modello «Dati». |
| Dati propri | Testo generico, utilizzato al posto di `{data}`. |
| Dati | Modello per la spedizione. Vuoto = "numero e nome della zona" ({zoneId} {zone}). Cliccando su "Aggiungi", viene inserito; cliccando di nuovo, viene eliminato; "Tutti i campi" crea un modello strutturato. |
| Sostituzione | Valore | Sostituzione | Valore |
|---|---|---|---|
| {zoneId} | Numero della zona (1, 2, 3...) | {camera} | Nome della telecamera |
| {zone} | Nome della zona (modificabile nel database) | {model} | Nome del modello di IA |
| {class} | Classe identificata dal modello | {time} | Orario (HH:MM:SS.millisecondi) |
| {conf} | Livello di confidenza, % (punto come separatore) | {date} | Data (AAAA-MM-GG) |
| {data} | Testo proveniente da "Dati propri" |
Esempio di modello strutturato: `zoneId={zoneId};zone={zone};class={class};conf={conf};camera={camera};model={model};time={time};date={date};data={data}. I numeri devono essere sempre nel formato invariabile, in modo che "87,6" non interrompa l'analisi con il PLC.
- Verificare la connessione serve solo ad aprire la porta e a segnalare se la connessione è stata stabilita o se non c'è risposta entro N millisecondi.
- Inviare il test effettivamente invia la stringa; il risultato viene visualizzato accanto al pulsante, anziché all'interno della finestra.
- Invio di notifiche. Se la casella "ripetere" non è selezionata, la regola invia un singolo messaggio al cambio di classe e lo ripete finché il destinatario non risponde con la stringa ok <messaggio>. Se la casella è selezionata, la ripetizione avviene a intervalli, finché la classe rimane attiva.
- "L'ultima operazione ha la precedenza": se il modello ha generato più risultati mentre l'operatore era occupato, l'ultima operazione avrà la precedenza. La coda è limitata a 512 operazioni.
7.4. Uscita discreta della telecamera

| Campo | Assegnazione |
|---|---|
| Uscita | Metodo: automatico (per SICK: pin Flash (livello costante) o GPIO; per HIKROBOT: UserOutputValue o LineInverter (strobo spento)). I modelli MV-CS020/016-10GC del modulo UserOutput non hanno, quindi il programma sceglierà automaticamente LineInverter. |
| Linea | Pin Flash / GPIO1…6 (per SICK); Line1 (uscita), Line2 (bidirezionale) (per HIKROBOT); Line0 – solo ingresso. |
| Livello | true / false / off. "off" – indica che c'è una regola, ma l'uscita non viene attivata. |
| Impulso, ms (0 – mantenimento) | 0 – il livello viene mantenuto fino al cambio di classe; altrimenti, l'impulso è di 10…5000 ms con ritorno. |
I pulsanti "Attiva uscita", "Disattiva uscita", "Impulso" vengono testati con un multimetro o una lampadina; "Funzionalità della telecamera" interroga tutti i metodi e genera un rapporto. I test manuali vengono scritti nello stesso registro.
7.5. Avviso acustico: suono personalizzato per ogni zona
Il terzo tipo di regola riguarda l'emissione di un segnale sonoro tramite un programma su un computer. L'operatore non deve guardare lo schermo: tramite il segnale, percepisce quando una zona è in uno stato anomalo, e diversi suoni provenienti da diverse zone indicano esattamente dove si trova il problema. Il segnale è disponibile per qualsiasi telecamera, inclusi quelle USB e RTSP, che non dispongono di uscite dedicate.
| Funzionamento | Come funziona |
|---|---|
| Senza l'opzione "ripetere" | Il segnale viene emesso una sola volta al confermare il cambio di stato della zona (dopo "Conferma cambio stato"). Finché lo stato rimane invariato, non si sente alcun suono. |
| Con l'opzione "ripetere finché lo stato rimane invariato" | Il segnale viene ripetuto tramite "Intervallo di ripetizione", ma non più frequentemente della pausa tra i suoni, finché la zona rimane nello stato indicato. |
| Più zone in uno stato anomalo contemporaneamente | Ogni zona emette il proprio suono; i segnali provenienti da diverse zone non si annullano a vicenda, ma solo il segnale di una zona specifica viene ripetuto. |
| Registro | Ogni evento viene registrato nel "Registro degli eventi" con la riga "Suono «…»"; se il file non viene trovato o il dispositivo audio non funziona, la riga di errore viene visualizzata e il programma continua a funzionare. |
| Verifica | Verificare questa regola fa sì che il suono venga riprodotto immediatamente; Simulare l'attivazione della zona riproduce il suono insieme al TCP e alle uscite, attraverso il canale di comunicazione. |
7.6. Registro degli eventi e database
La scheda "Registro degli eventi" mostra le ultime 300 voci, organizzate in righe come "HH:MM:SS.mmm ✔/✖ Telecamera · Modello · Classe · Zona → Azione [messaggio]", e viene aggiornata in tempo reale. I pulsanti "Aggiorna" e "Cancella registro".

Scheda Database: il programma memorizza tutto in un file SQLite rejectors.db accanto all'eseguibile, non ci sono servizi separati, la porta non è in ascolto, non è necessario installare nulla. Tabelle: settings (impostazioni), cameras (profili delle telecamere), camera_models (modelli per le telecamere), zones (nomi e geometria delle zone), rejectors (regole), reject_log (registro), camera_param_files (copie dei parametri delle telecamere), camera_presets (set di impostazioni per le telecamere). Salvare una copia del database… crea una copia completa utilizzando il comando VACUUM INTO direttamente sul database attivo; Caricare il database da una copia… ripristina il database, salvando prima la versione corrente. È possibile visualizzare il database in DBeaver senza chiudere il programma; non è consigliabile scrivere nel database da fuori.
8. Altri modalità e funzioni
Modelli standard: normali / anomale e qualsiasi classe
Lo stesso editor ROI funziona anche per la classificazione standard: compresse, tappi, etichette, componenti all'interno del contenitore. Le classi vengono definite nel dialogo "Nuovo modello AI" (di default normal e anomaly, con nomi in maiuscolo), le zone vengono assegnate ai prodotti, il pulsante Scatta foto con un numero di cerchi da 1…50, la serie Crea foto tramite la fotocamera (fotogramma/immagine) o l'encoder. Pannello dati sintetici per l'AI: angoli precisi di 90°/180°, rotazione completa di 360° con passo e intervallo, specchio, "classi in gradi" (ogni angolo in una classe specifica - scartatore invierà l'angolo tramite TCP), intervalli di luminosità e contrasto. L'addestramento avviene con le complete augmentazioni di Ultralytics. Il limite di confidenza per questi modelli viene impostato nello stesso punto in cui viene impostato per ZONA-COPPIA, nella scheda "Ispeziona".
Ispezione multi-modale (slot 1-20)
Su una singola telecamera è possibile gestire fino a 20 modelli: Aggiungere ONNX nello slot, quindi ROI → Aggiungere la classe al modello selezionato – ogni modello nello slot ha la propria definizione delle aree, e i risultati di tutti i modelli vengono visualizzati su un singolo fotogramma.
Quando l'ispezione multi-modale viene applicata:
| Situazione | Come configurare |
|---|---|
| Diverse funzioni sullo stesso frame | ZONA-COPPIA verifica la disposizione e la presenza degli elementi, mentre il modello standard nel secondo slot indica l'etichetta, l'adesivo, il colore del connettore o la direzione della chiave. Le zone del secondo modello vengono inserite separatamente tramite "ROI → Aggiungi classe al modello selezionato". |
| Prodotto senza griglia fissa | Compresse, coperchi, componenti nel contenitore: diversi tipi di prodotti nelle normali configurazioni. Simili tipi sono disposti in slot separati per evitare sovrapposizioni. |
| Due schede diverse in un'unica immagine | Due modelli ZONA-COPPIA in slot diversi, ognuno con il proprio riferimento e la propria griglia. La linea di produzione opera con il riferimento del modello principale. |
| Periodo di transizione | Il modello precedente e addestrato rimane nello slot fino a quando il nuovo modello ZONA-COPPIA non ha raccolto dati statistici; entrambi sono visibili in un'unica immagine, e le regole del sistema di smistamento vengono trasferite in base alla fiducia. |
I limiti, il ritmo di analisi, le zone gialle e le regole del gestore si applicano a tutti i modelli di telecamera. Il pulsante "ELIMINA MODELLO" pulisce e svuota le cartelle, quindi richiede conferma; "Elimina la selezionata" rimuove un modello dalla cartella, ma i suoi file e le zone nel database rimangono.
Modelli standard
Il pulsante "MODELLI GENERALI" conserva un insieme di "modello → camera" con il nome: "Creare da modelli esistenti", "Applicare a tutte le camere", "Aggiornare da quelli esistenti", "Rinomina", "Elimina l'insieme". Il passaggio da un set di otto camere a un altro prodotto è una singola operazione. L'eliminazione dell'insieme rimuove solo il raggruppamento: cartelle, ONNX, zone e regole rimangono. Le zone appartengono alla coppia "camera + modello": un modello per otto camere – otto marcature indipendenti.
Encoder e sistema di smistamento sulla linea
Per le linee con encoder collegato alla porta COM (115200, ESP32): collegamento COLLEGA ENCODER, connessione automatica, posizione, passo dell'acquisizione e correzione, IMPOSTA ZERO + ACQUISIZIONE. L'acquisizione per l'addestramento e l'analisi può essere eseguita "tramite encoder", il che garantisce che i fotogrammi siano uniformemente distribuiti lungo il percorso del prodotto. Un vecchio sistema di scansione, con ritardo e protezione antispam, invia il comando REJECT al controller dell'encoder.
Registrazione video e immagini
Scheda "Impostazioni": INIZIA REGISTRAZIONE VIDEO dalla telecamera attiva, salvando il file come record_data_ora.avi (MJPG, frame rate effettivo della telecamera). Le immagini per l'addestramento sono real_….jpg, mentre le immagini per l'ispezione sono inspect_….jpg e includono aree evidenziate.
9. Impostazioni, console e requisiti di licenza
Settings
- SALVARE IN FILE / CARICARE DA FILE – tutte le impostazioni (telecamere, modelli, regole) in formato JSON, comodo prima di reinstallare o per trasferirle a un altro computer. La fonte di verità è il database, mentre il file JSON rappresenta una copia di sicurezza in caso di indisponibilità. Ogni modifica alle impostazioni viene salvata automaticamente.
- RISESTABIRE IMPOSTAZIONI PREDEFINITE — è un'operazione irreversibile: elimina le impostazioni e la disposizione delle finestre.
- Lingua dell'interfaccia: 14 lingue; la finestra principale si attiva immediatamente, mentre le altre si attivano al successivo avvio.
- Posizione, dimensioni e monitor di tutte le finestre, posizioni dei separatori: memorizzati nel database; quando il monitor è disattivato, la finestra ritorna nell'area visibile.
Console
Le caselle "Telecamere" e "Trigger" sono disabilitate per impostazione predefinita e visualizzano i messaggi corrispondenti (nel caso del trigger, i messaggi della telecamera vanno nella sezione "Trigger"); tutti i messaggi vengono scritti nei file logs\engiai-*.log, prima dei filtri. La console è progettata per funzionare per diverse settimane senza intervento: sullo schermo vengono visualizzate 800 righe, e le 1000 righe precedenti vengono eliminate; le nuove righe vengono accumulate a gruppi di 4 volte al secondo, anziché una alla volta; la funzione di scorrimento verso il basso è attiva fino a quando non si scorre manualmente verso l'alto; la console non emette alcun suono. Le modifiche alle zone vengono registrate non più di 10 righe al secondo (il resto viene raggruppato in un contatore), il file di log ha una dimensione di 20 MB, i file più vecchi di 14 giorni vengono eliminati all'avvio, e la base di dati memorizza le ultime 20.000 voci. Gli errori non gestiti vengono indicati nella sezione crash.log, mentre le cause del termine forzato sono indicate nella sezione runtime.log accanto al file exe. Se qualcosa non funziona correttamente, consultate queste sezioni per prima cosa.
Requisiti
| Componente | Requisito |
|---|---|
| Sistema operativo | Windows 10/11 x64. |
| Scheda video per l'ispezione | NVIDIA con driver CUDA; le librerie CUDA 13 e cuDNN 9 sono incluse nel software. L'ispezione avviene automaticamente sulla CPU in assenza di scheda video. |
| Formazione | Python 3 (con l'opzione "Aggiungi python.exe a PATH" durante l'installazione) e i pacchetti ultralytics, onnx, onnxslim, onnxruntime: il programma li installa automaticamente durante la prima fase di addestramento, è necessario una connessione internet. La GPU per l'addestramento viene determinata automaticamente da PyTorch; senza CUDA, l'addestramento avviene sulla CPU, ma con lo stesso risultato. |
| Telecamere SICK | Driver IDS uEye; la telecamera deve essere visibile in IDS Camera Manager. |
| Telecamere HIKROBOT | SDK MVS (la libreria è inclusa nel software); per GigE, è necessaria una scheda di rete con supporto per frame jumbo. |
Licenza e modalità di prova
All'avvio, il programma si connette al server delle licenze engi.live; vengono trasmessi solo gli hash degli identificativi dell'hardware e della versione, senza numeri di serie o nomi utente. Se il server non è disponibile, ma l'autorizzazione è stata memorizzata nella cache, il programma funziona utilizzando la cache (utile per le connessioni senza internet). In assenza di licenza, è attivo un periodo di prova di 20 minuti: nella barra del titolo della finestra e nella barra di stato, viene visualizzato il conto alla rovescia "TEST MM:SS". Il pulsante "ACQUISTA" nella scheda Impostazioni apre la pagina di acquisto. Quando è attiva una licenza, il conto alla rovescia non viene visualizzato.
10. Breve elenco di controllo e individuazione dei problemi
Lista di controllo per la scheda:
Se qualcosa non funziona
| Sintomo | Cosa controllare |
|---|---|
| La telecamera non appare nell'elenco | Alimentazione e cavo; per SICK: IDS Camera Manager e IP dalla sottorete dell'adattatore; per HIKROBOT: attendere fino a 25 secondi dopo la chiusura di emergenza e "Riconnetti" |
| Immagine scura, grigia o con colori errati | Telecamera → «Impostazione automatica per l'IA»; per SICK a colori: schema di Bayer e bilanciamento del bianco; per USB: «Impostazioni predefinite», quindi «Salva i parametri» |
| Immagini interrotte, rete rossa | GigE: dimensione del pacchetto 1500 o jumbo sulla scheda di rete, ritardo tra i pacchetti; FPS o numero di fotogrammi inferiori; scheda di rete dedicata alla telecamera |
| "Scheda non trovata" / immagine mancante | Riferimento non acquisito o acquisito in condizioni di luce diverse; poche aree di riferimento – utilizzare un'area di allineamento più ampia e dettagliata; l'area è stata interessata da un tavolo o da una linea di produzione; aumentare il periodo di ricerca |
| Le zone si spostano su un'altra scheda | La scheda è stata cercata utilizzando le stesse aree di ispezione: fissare nuovamente il riferimento con l'area di allineamento in base ai dettagli della scheda (sezione 4.4); modello di allineamento "automatico" |
| Mancano schede funzionanti di un'altra serie di componenti | L'etichettatura sui corpi è diversa: aggiungere immagini normali di questa serie; non creare graffi sintetici più sottili di 3 px (sezione 4.6); verificare che il difetto sia uno spostamento, e non un cambiamento di colore |
| Aree contrassegnate con NO_ZONE_CLASS | La griglia è cambiata dopo l'addestramento; ripristinare la griglia o creare un nuovo modello e scattare nuove immagini |
| Tutte le zone sono rosse sulla scheda funzionante | Altra opzione: pagamento o posizione diversa senza sistema di trasporto attivo; soglia troppo alta; le immagini sono state scattate con un'illuminazione diversa; file a colori e in scala di grigi mescolati |
| Il modello non rileva lo spostamento dell'elemento | Ricalcolare px/mm (sezione 1.3): a una piccola scala, lo spostamento è inferiore a 5 px; ridurre il campo visivo o utilizzare una fotocamera con una risoluzione maggiore; non espandere lo spostamento normale |
| L'apprendimento è lento o molto lento | Device = cpu, se non è presente una scheda NVIDIA; ridurre la dimensione del batch; controllare la console; verificare che Python sia presente nella variabile PATH |
| L'ispezione non funziona | è stato selezionato best.onnx; è attivo il timer (tramite fotocamera / cronometro / trigger); è stata disattivata l'opzione "NON UTILIZZARE L'IA"; la casella "IA attiva" è spuntata sulla fotocamera |
| La regola "scartatore" è inattiva | è stata premuta l'opzione "Creare su N zone"; è selezionata l'opzione "Attivo"; la classe della regola corrisponde alla risposta del modello (anomalia / normale); per disattivare, il livello non è "off"; le fotocamere USB non hanno uscite, solo TCP |
| Non si sente alcun suono | La regola è stata creata e inclusa; il file si trova nella cartella "sounds" (o "sounds\custom"); c'è un'interruzione tra i suoni? Se non è attivo l'opzione "ripeti", il suono viene riprodotto solo quando cambia la classe; volume di Windows e dispositivo di output. |
| Il pacchetto TCP viene inviato una sola volta. | senza la necessità di "ripetere", il sistema attende una risposta "ok <spedizione>" dal destinatario; spuntare la casella "ripeti finché la classe è attiva" oppure configurare la risposta sul PLC. |
engiAI Ethernet System. I nomi dei pulsanti e dei campi sono indicati come appaiono nel programma nella vostra lingua (screenshot dal'interfaccia russa). Gli screenshot sono stati realizzati sul modello "model_4" (due zone da 256x256: condensatore C30 e ponte BR1), fotocamera USB 3264x2448, il modello è stato addestrato in scala di grigi. Versione 3, settembre 2026: esempio per due zone, creazione delle cartelle del modello, area di allineamento, dati sintetici "elemento con base" con immagini "prima / dopo", palette e spessore della linea, zone rosse, console.
