engiAI

  • Requisiti
Windows 10/11 x64. Analisi CPU e GPU – versioni RTX 50+.

⬇ engiAI.rar (900 MB)

⬇ engiAI-ZONA-PARA-IT.pdf (5.4 MB)

⬇ engiAI-doc-new-IT.pdf (12 MB)

SICK IDS Camera Manager ⬇ ids-software-suite-win-4.96.1.zip (184 MB)

SICK IDS Camera Manager - link 2

Registrazione

Richiedere l'accesso a engiAI

EngiAI (engiAI Ethernet System) – un programma per desktop di visione artificiale per l'ispezione industriale e la selezione di prodotti sulla linea di produzione. Scritto in C# (.NET 9, WinForms), viene compilato in un unico file eseguibile autonomo per Windows x64.

⬇ engiAI Descrizione.pdf (74 KB)
  • Cosa fa
Acquisizione da telecamere: telecamere industriali Hikrobot (SDK), USB/DirectShow, IDS uEye, nonché telecamere Android tramite OpenCV. Possibilità di utilizzare più telecamere contemporaneamente.

Ispezione IA: le reti neurali YOLO (ONNX Runtime / GPU-CUDA o CPU) rilevano oggetti e difetti in tempo reale.

Zone ROI (Area of Interest): Aree di controllo personalizzabili, con classi e regole, zone denominate, catalogo.

Dispositivo di reset (Rilevatore di errori): in base all'analisi dell'IA, genera un segnale per un'uscita dedicata (reset), con la configurazione dei pin e la verifica tramite un tester.

Trigger: acquisizione dell'immagine in base a un segnale esterno (ingressi discreti, encoder).

Addestramento dei modelli: set di dati, dati sintetici (rotazioni/specchiature/luminosità), addestramento di YOLO11 direttamente dal programma.

Archiviazione: database SQLite locale (rejectors.db) – modelli, zone, registro degli eventi, stato delle telecamere.

  • Ottenimento delle licenze
Versione: modalità (prova / licenza / blocco)

Senza licenza: modalità di prova per 20 minuti; con licenza: funzionamento senza limitazioni.

Vincolo all'hardware, controllo di tutti gli istanze in esecuzione.

engiAI Ethernet System
ZONA-COPIA — ispezione visiva di circuiti stampati e assemblaggi

L’interfaccia di engiAI è disponibile in italiano: i nomi di pulsanti e campi in questo manuale sono riportati così come appaiono nel programma.

L'essenza dell'ispezione risiede nella zonizzazione a coppie (ZONA-COPPIA). Sulla scheda vengono definite delle zone, ognuna delle quali rappresenta un componente da controllare. Ogni modello associa a ciascuna zona una coppia di classi "normale/anomalia" e prende decisioni solo all'interno di questa coppia. Nell'esempio del manuale, ci sono due zone: il condensatore C30 e il ponte BR1; nella scheda reale, potrebbero essercene centinaia, ma il metodo è lo stesso.
Dati sintetici – spostamento automatico dell'elemento rispetto alla base. Il programma prende la parte insieme alla zona del circuito circostante (linee, tracce, colore della base), riduce l'area fino alle dimensioni della parte e la sposta o la ruota. La creazione di un esempio difettoso richiede solo due clic, senza la necessità di una singola scheda difettosa.
Guida per l'utente: come collegare la telecamera, definire le aree, impostare i punti di riferimento, rilevare anomalie e addestrare il modello, avviare l'ispezione e collegarla al sistema di acquisizione: tramite segnali acustici, uscite digitali delle telecamere SICK e HIKROBOT e invio TCP al robot o al PLC.
Passo 1Fotocamera
Passo 2Rete di zone
Passo 3Valori normali e anomalie
Passo 4Formazione
Passo 5Ispezione
Passo 6Uscite e TCP
Tutte le schermate sono state acquisite utilizzando il software funzionante: modulo vtlift, telecamera USB 3264×2448, modello model_4 per due zone 256×256 (condensatore C30 e ponte BR1), addestrato in scala di grigi. Il software funziona con telecamere HIKROBOT (GigE e USB3), SICK picoCam (uEye), telecamere USB/web e telecamere IP tramite RTSP. Versione 3 – settembre 2026.

Contenuti

  1. 1. Perché engiAI e il metodo ZONA-COPPIA?
  2. 1.1. Quali vantaggi offre questo metodo rispetto alla classificazione dell'intera immagine?
  3. 1.2. Velocità: L'IA analizza solo le informazioni rilevanti.
  4. 1.3. Quale livello di precisione aspettarsi: calcoliamo in base alla nostra fotocamera
  5. 1.4. Avvio rapido: le impostazioni sono già configurate, le aree e il modello possono essere selezionate in pochi clic.
  6. 2. Interfaccia del programma in un minuto
  7. 3. Telecamere: collegamento e configurazione
  8. 3.1. Quali telecamere sono supportate
  9. 3.2. Finestra della telecamera: aggiungere, riconfigurare, eliminare
  10. 3.3. Tab "Camera" per HIKROBOT e SICK
  11. 3.4. Scheda "Camera" per webcam/telecamera USB
  12. 3.5. Impostazioni della fotocamera salvate (preset)
  13. 3.6. Rete GigE e riconnessione
  14. 4. Modello ZONA-COPPIA: dal set di dati alla modellazione appresa
  15. 4.1. Come funziona il metodo: un modello, una classe per ogni zona.
  16. 4.2. Creare un modello
  17. 4.3. Segnare le aree di pagamento
  18. 4.4. Segnalare il riferimento: area di allineamento
  19. 4.5. Immagine per zona: normale e i relativi dati sintetici
  20. 4.6. Dati sintetici: correzione in due passaggi: l'elemento si sposta insieme alla base.
  21. 4.7. Anomalie delle zone: finestra delle impostazioni
  22. 4.8. Riferimento alle zone: piastre di saldatura e editor di zona
  23. 4.9. Addestramento del modello
  24. 5. Ispezione
  25. 5.1. Definire il modello e verificare le aree.
  26. 5.2. Soglia di riconoscimento dell'area
  27. 5.3. Sistema di trasporto continuo: funzionamento in qualsiasi posizione
  28. 5.4. Quale segnale analizzare
  29. 5.5. Zone gialle: disattivare la zona cliccando
  30. 5.6. Cosa si può vedere sullo schermo e nella console
  31. 6. Sensori: sensore esterno sul corpo della fotocamera.
  32. 7. Uscite: porta di uscita, uscite discrete per le telecamere e TCP
  33. 7.1. Guida: Uscite: contatti e verifica con un multimetro
  34. 7.2. Finestra OUTPUT: regola per la zona
  35. 7.3. Invio di pacchetti TCP a un robot o a un PLC
  36. 7.4. Uscita discreta della telecamera
  37. 7.5. Segnali acustici: possibilità di impostare un suono specifico per ogni zona.
  38. 7.6. Registro degli eventi e database
  39. 8. Altri regimi e compiti
  40. 9. Impostazioni, interfaccia, requisiti e licenza
  41. 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.

Modello 1
per tutte le zone di pagamento, invece di centinaia di modelli diversi.
2 zone
Nel caso di esempio fornito: il condensatore C30 e il ponte BR1. Su una scheda elettronica, potrebbero esserci centinaia di questi componenti.
≈5 px
spostamento dell'elemento a cui è stata impostata la soglia "normale / difetto"
2 volte
Da un singolo fotogramma a fotogrammi normali e sintetici per l'addestramento

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à.

Esempio di fotogramma: due zone – il ponte BR1 nella parte superiore a destra e il condensatore C30 nella parte inferiore a sinistra, entrambe di colore verde con l'etichetta "normal". Le linee blu indicano i confini dell'area di allineamento, i punti blu sono i punti di riferimento utilizzati per individuare il fotogramma.
Esempio di fotogramma: due zone – il ponte BR1 nella parte superiore a destra e il condensatore C30 nella parte inferiore a sinistra, entrambe di colore verde con l'etichetta "normal". Le linee blu indicano i confini dell'area di allineamento, i punti blu sono i punti di riferimento utilizzati per individuare il fotogramma.
Decisione interna alla coppia Durante il controllo della zona 17, vengono prese in considerazione solo due opzioni: "normale per la zona 17" e "anomalia per la zona 17". Le altre centinaia di classi non sono coinvolte, quindi zone simili adiacenti non influenzano il risultato.
Un segnale proveniente da un'altra zona non viene riconosciuto come tale Se due zone di copertura raggiungono meno del 10% della copertura della rete, la zona viene considerata "non riconosciuta": ciò indica un segnale proveniente da un'altra zona o una copertura della rete diversa. In questo caso, la zona viene considerata un errore, piuttosto che una "zona con alta probabilità di riconoscimento".
La dimensione del difetto è proporzionale alla zonaLe dimensioni e la posizione dei difetti sintetici sono espresse in relazione alla dimensione della zona. Uno spostamento di un elemento di mezzo millimetro in un'immagine da 8 megapixel non è rilevabile, mentre all'interno di una zona di 128x128 pixel, corrisponde a 5-6 pixel, che rappresenta una differenza significativa.
Autorizzazione completa L'estrazione dell'area di 108–137 pixel viene trasmessa sulla rete 128×128 quasi senza ridimensionamento. L'intero fotogramma dovrebbe essere compresso in 128 pixel, perdendo dettagli in decine di volte.
Confine di riferimento "normale / difetto" I dati sintetici "normale" generano una variazione di 0-2 pixel, mentre i dati sintetici "difetto" indicano uno spostamento di 5 pixel. La rete impara a riconoscere proprio questo confine, e non le variazioni casuali di illuminazione.
Risultato indirizzabile Ogni zona ha un indirizzo stabile (modello, tabella, cella) e un nome. È possibile associare a qualsiasi zona una propria regola di filtraggio: un avviso acustico, l'invio di un TCP con il numero della zona o un'uscita discreta della telecamera.
Adattamento in qualsiasi posizione L'operatore individua sull'immagine l'area di allineamento, ovvero la sezione della scheda con i componenti. A partire da questi punti di riferimento, ogni immagine viene allineata con la scheda di riferimento, e le aree di ispezione si trovano sulla nuova scheda, anche se questa è stata posizionata in modo diverso o ruotata di 180° (vedi sezione 4.4).
Difetto proveniente dalla scheda Un difetto sintetico non è una macchia disegnata, ma un elemento spostato o inclinato insieme a una parte della scheda. Il modello impara la relazione "elemento ↔ scheda", e non il colore della macchia. Viene realizzato con due tocchi (sezione 4.6).
Le anomalie vengono segnalate gradualmente Le classi di difetto vengono aggiunte solo dove il difetto si verifica effettivamente: giunti di saldatura, elementi mancanti, spostamenti, graffi. Il modello viene riaddestrato, mentre la griglia rimane invariata.

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:

px/mm = larghezza dell'immagine in pixel diviso per la larghezza del campo visivo in millimetri
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 mm200 mm300 mm400 mm
3264 px (8 MP tramite USB, come nelle foto)0,03 mm/px → scostamento ≈ 0,15 mm0,06 → ≈ 0,3 mm0,09 → ≈ 0,45 mm0,12 → ≈ 0,6 mm
2448 pixel (sensore HIKROBOT da 5 MP)0,04 → ≈ 0,2 mm0,08 → ≈ 0,4 mm0,12 → ≈ 0,6 mm0,16 → ≈ 0,8 mm
1920 pixel (picocamera SICK, HIKROBOT 2 MP)0,05 → ≈ 0,25 mm0,10 → ≈ 0,5 mm0,16 → ≈ 0,8 mm0,21 → ≈ 1,0 mm
Importante. Si tratta di una valutazione da basso verso per la misurazione dello spostamento di un elemento in presenza di un'illuminazione stabile e di un'immagine nitida. Per verificare i risultati, utilizzare il pulsante "ZONA-COPIA: zona ↔ modello" e il limite di riconoscimento (sezione 5.2): ogni zona ha i suoi confini, e quindi un livello di precisione diverso. Più piccolo è il campo visivo e più elevato è il numero di pixel della fotocamera, più piccolo sarà l'errore che il modello sarà in grado di rilevare.

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.

Finestra principale: a sinistra, la visualizzazione in tempo reale del circuito con due zone (entrambe verdi, "normali"); a destra, la scheda "Ispeziona" con il modello model_4\best.onnx. La visualizzazione in tempo reale è attiva, con l'indicatore "normale · 112 punti".
Finestra principale: a sinistra, la visualizzazione in tempo reale del circuito con due zone (entrambe verdi, "normali"); a destra, la scheda "Ispeziona" con il modello model_4\best.onnx. La visualizzazione in tempo reale è attiva, con l'indicatore "normale · 112 punti".

Pulsanti sopra il video

PulsanteFunzione
NASCONDI VIDEORimuove l'immagine dallo schermo. L'analisi continua, risparmiando solo il rendering.
USCITEFinestra di riferimento: contatti delle uscite discrete delle telecamere HIKROBOT e SICK, verifica con un tester, collegamento del carico (sezione 7.1).
TELECAMEREFinestra "Impostazioni delle telecamere collegate": aggiunta, riconnessione, eliminazione delle telecamere e visualizzazione di tutti i parametri letti dall'hardware (sezione 3.2).
SENSORICollegamento di un sensore esterno all'ingresso discreto della telecamera, con schema e pinout (sezione 6).
MODELLI GENERALIInsiemi 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

SchedaAssegnazione
CameraParametri 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".
OUTPUTScartatore: regole nelle zone – invio TCP al robot/PLC, uscite discrete della telecamera e notifiche sonore, registro degli eventi, database.
AI ModelCreazione del modello: cartella, classi, griglia di zone, foto per zona, anomalie nelle zone, riferimento scheda, impostazioni e avvio dell'addestramento.
InspectTab 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.
SettingsLingua dell'interfaccia (14 lingue), acquisto della licenza, salvataggio e caricamento delle impostazioni, registrazione video.
ConsoleRegistro 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

TipoCome connettereCosa 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 RTSPL'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

1
Premi il pulsante "CAMERE" sopra il video. Si aprirà una finestra a schermo intero con le "IMPOSTAZIONI DELLE CAMERE COLLEGATE" (per chiuderla, premi Esc).
2
Fare clic su + Aggiungi telecamere. Il programma interrogherà la rete e la porta USB e mostrerà tutti i dispositivi trovati in un'unica lista: Hikrobot … SN: … IP: …, SICK … SN: … DeviceID: …, Android …. Le telecamere SICK richiedono fino a 4 secondi per essere rilevate, poiché il dispositivo GigE non appare immediatamente nel driver. Una telecamera SICK occupata o con un indirizzo errato sarà contrassegnata con il simbolo ⚠ e la causa.
3
Selezionate le telecamere desiderate e cliccate su "Aggiungi". Per aggiungere una telecamera IP, utilizzate il pulsante "+". Per le telecamere RTSP, inserite il link... Mentre le telecamere si connettono, viene visualizzata una schermata di attesa con il pulsante "Salta telecamera".
4
La telecamera apparirà nell'elenco con la riga `nome | tipo | numero di serie | LIVE o OFFLINE | AI:ON | Disp:ON`, mentre il suo video sarà nella parte sinistra della finestra principale.

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".

Importante. La telecamera HIKROBOT basata su GigE mantiene una connessione esclusiva. In caso di chiusura accidentale del programma, rimane occupata fino alla scadenza del segnale di heartbeat; il programma attende fino a 25 secondi (10 tentativi) e segnala "la telecamera è occupata da un altro processo". Per SICK, se l'indirizzo IP è errato, il programma tenta una volta di correggerlo automaticamente, a condizione che non sia parte della sottorete dell'adattatore.

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".

1
Nella sezione inferiore, inserire Larghezza (W) e Altezza (H) del fotogramma (oppure selezionare un preset dalla lista, che contiene solo le dimensioni supportate da questa fotocamera) e cliccare su APPLICA DIMENSIONE. Di solito si utilizza l'intero fotogramma della fotocamera. La dimensione viene arrotondata per eccesso, seguendo i passaggi AOI della fotocamera.
2
Clicca su "Impostazione automatica per l'IA (in base all'immagine)". Il programma regola l'esposizione (priorità) e l'intensità (non superiore al 40) in modo che il 99,5° percentile della luminosità rientri nell'intervallo da 220 a 248 senza sovraesposizione, quindi imposta la gamma a 1,50, la saturazione al 115% e l'autocorrezione del bianco. Selezionando la casella "automatico", si attiva la modalità continua: il sistema controlla e regola ogni 3 secondi, nel caso in cui la luce cambi.
3
Se necessario, regolati manualmente: Esposizione (slider in microsecondi, indicazione in ms, fino a 1 secondo), Guadagno, FPS, Livello nero. Per SICK, in aggiunta: Frequenza di clock dei pixel (definisce il limite massimo degli FPS e il tempo di esposizione minimo), Aumento del guadagno, Gamma hardware, Bilanciamento del colore (rosso/verde/blu).
4
Premere "Salva le impostazioni": il file camera_params\<SN>.ini verrà salvato e le impostazioni verranno memorizzate nella memoria della telecamera come "UserSet1" per HIKROBOT (con configurazione predefinita) e nella memoria EEPROM per SICK. Il risultato viene visualizzato direttamente sul pulsante ("✔ Salvato"). Per HIKROBOT, è presente una casella di controllo per l'autosalvataggio delle impostazioni nella telecamera (UserSet1) dopo 5 secondi dalla modifica.

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.

ParametroCosa faEffetto
Analisi al secondo (AI)Limite massimo del ritmo di ispezione, 1…200minore carico sulla scheda video; non dipende dalla connessione della telecamera
Soglia di riconoscimento dell'IAnon impostabile nella scheda "Camera"soglia di riconoscimento dell'area – solo nella scheda "Inspect" (sezione 5.2), una per telecamera
Exposuretempo di esposizionein breve – minore sfocatura degli oggetti in movimento; non consentito
Gain / Gain boostpotenziamento del segnale della matriceaumenta la luminosità, ma aggiunge rumore
Pixel clock (SICK)frequenza del sensoremodifica i valori di FPS e di esposizione, che vengono riletti
FPSfrequenza dei fotogrammi in modalità liberanon utilizzata in modalità trigger
Larghezza / AltezzaDimensione del fotogramma (AOI)Fotogramma più piccolo = frequenza più alta e traffico inferiore
Importante. Scattate le immagini per l'addestramento nelle stesse condizioni in cui opererà il sistema: la stessa illuminazione, la stessa velocità, la stessa posizione della telecamera. Dopo aver modificato le impostazioni, il programma ricorda nella console che è necessario riaddestrare il modello con le nuove immagini.

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.

1
Risolvi e Applica. Il pulsante Verifica seleziona le dimensioni standard, da VGA a 8K, e mostra nella lista solo quelle accettate dalla fotocamera. La riga "Formato fotocamera" indica le dimensioni e il frame rate effettivi.
2
Lasciate che la funzione di auto-esposizione, l'autofocus e l'auto-bilanciamento del bianco si regolino automaticamente, quindi premete il pulsante "Salvare impostazioni (disattivare l'autofocus, salvare come è)": l'autofocus si disattiva e il programma regola manualmente il tempo di esposizione per ottenere lo stesso livello di luminosità (il driver, quando l'autofocus è attivo, fornisce l'ultimo tempo di esposizione manuale, ma non quello calcolato automaticamente). I valori e il formato vengono salvati nel database e vengono ripristinati ogni volta che si collega questa fotocamera.
3
Serie Con intelligenza artificiale: Selezione automatica per forme (20–60 secondi, regolazione dell'esposizione e del contrasto in base a fotogrammi reali, criterio: nitidezza dei contorni senza sovraesposizione), Forme, senza colore, Forme, morbide, Ritorna, Tipiche.
4
I valori inseriti nei campi vengono immediatamente registrati nella fotocamera, senza la necessità di premere il tasto "Invio", e vengono quindi salvati nel database. Il pulsante "Rileggere proprietà dalla fotocamera" conferma che la fotocamera ha effettivamente acquisito i dati.
Suggerimento. Per l'intelligenza artificiale, è preferibile rimuovere il colore non regolando la saturazione della fotocamera, ma utilizzando l'opzione generale "Addestramento in scala di grigi (impostazione generale del modello)" nella scheda "Fotocamera" (nella scheda "Modello AI" ha lo stesso nome: "Addestramento in scala di grigi"): in questo modo, sia le immagini utilizzate per l'addestramento che quelle utilizzate per l'ispezione saranno in scala di grigi, mentre la fotocamera continuerà a fornire informazioni a colori all'operatore. Il modello nell'esempio è stato addestrato in scala di grigi.

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:

Cartella model_4: immagini di training e validazione, data.json: aree, live_template: riferimento della scheda, board.json: soglia, best.onnx: rete addestrata.
Cartella model_4: immagini di training e validazione, data.json: aree, live_template: riferimento della scheda, board.json: soglia, best.onnx: rete addestrata.
model_4\ train\ Immagini per la formazione zone_001\ zone normali 1 (C30): real_... dalla telecamera, syn_... dati sintetici zone_001_anomaly\ Difetto della zona 1: syn_…_combo1_d, _rotate1 … zone_002\ zone normali 2 (BR1) zone_002_anomaly\ Difetto nella zona 2 val\ Set di dati di test: le stesse quattro cartelle, che vengono popolate automaticamente data.json Aree: tabelle, coordinate, dimensioni, colore, attivato/disattivato; classi; slot live_template.png / .txt riferimento alla scheda: fotogramma, area di allineamento, zone rosse (escluse) live_template_zones.png riferimento con aree disegnate e numeri indicati board.json Soglia di riconoscimento dell'area: 0.50 train_gray.txt Caratteristica "gamma di grigi" best.onnx Un modello addestrato viene utilizzato e assegnato per l'ispezione runs\ diag\ *.cache servizio: percorso di apprendimento, immagini per l'analisi, cache di apprendimento
train: due cartelle per ogni zona – normale e anomala.
train: due cartelle per ogni zona – normale e anomala.
val: la stessa struttura, il programma la riempie automaticamente durante la registrazione.
val: la stessa struttura, il programma la riempie automaticamente durante la registrazione.

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.

Un singolo spazio di archiviazione. Tutte le informazioni relative al modello – le aree di ispezione, le aree di allineamento, le classi e gli slot – sono memorizzate esclusivamente nella cartella del modello: data.json e live_template.txt. Nella base di dati non sono più presenti le aree, quindi le sezioni "ROI" nella scheda "Modello AI" e nella scheda "Ispezione" mostrano le stesse aree, e l'intera cartella del modello può essere copiata su un altro computer senza perdere nulla. I modelli precedenti vengono trasferiti automaticamente al file al primo momento in cui vengono aperti.

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:

Importante. Le zone fanno parte del modello. Una volta create, non è possibile modificarle (aggiungere, eliminare, spostare le tabelle): i numeri delle zone non corrisponderebbero più alle classi, e tali zone verrebbero contrassegnate con NO_ZONE_CLASS. Se è necessario modificare le zone, è necessario creare un nuovo modello.

4.2. Creare il modello

1
Accedere alla scheda "Modello AI" e cliccare su "Crea un nuovo modello AI".
2
Indica la cartella padre e il nome del modello (il programma suggerisce un valore predefinito model_N); la lista di classi predefinita contiene normal e anomaly; per ZONA-COPPIA non sono necessarie, poiché le classi delle zone verranno create automaticamente durante la prima acquisizione per zone. Puoi eliminarle o lasciarle vuote: prima dell'addestramento, il programma suggerirà di eliminare le classi vuote.
3
Cliccare su "Crea modello". Appariranno le cartelle "train" e "val", e il modello sarà disponibile per la modifica (non sarà disponibile per l'ispezione). Se il modello esiste già, invece, utilizzare l'opzione "Seleziona cartella modello".

4.3. Segnare le zone sulla scheda

1
Posizionate la scheda correttamente all'interno della fotocamera, esattamente come sarà posizionata sulla linea. Quindi, cliccate su ROI → Aggiungi alla classe (modello di apprendimento).
2
Nel dialogo "Salvataggio ROI in classe", selezionare qualsiasi classe (per la marcatura non è importante) oppure inserire un nuovo nome e premere OK + apri ROI. Successivamente, in questa stessa finestra, saranno visibili tutte le classi di aree, raggruppate secondo il modello zone_###: un clic sulla gruppo la seleziona, un secondo clic la deseleziona; il pulsante Elimina gruppo rimuove l'intero gruppo, insieme alle immagini associate.
3
Si aprirà la finestra "Seleziona area ROI". Trascina il cursore per creare un rettangolo attorno all'elemento. Apparirà il campo "Dimensione area, px": inserisci la dimensione (che sarà automaticamente arrotondata a un multiplo di 32, ad esempio 256) e premi Invio: il rettangolo diventerà un quadrato regolare con l'indicazione delle dimensioni. Ripeti per ogni elemento da controllare. Nell'esempio, ci sono due aree: una attorno a C30 e una attorno a BR1.
4
Se ci sono molte parti e sono disposte in modo regolare, è più comodo utilizzare una griglia: estendere la cornice lungo l'intera superficie e specificare le dimensioni della zona – l'indicazione mostrerà il numero di righe e colonne risultanti. In alternativa, è possibile definire nella sezione Griglia di zone il numero di righe, colonne, larghezza e altezza delle celle e fare clic su Crea griglia. La griglia può essere trascinata con il mouse direttamente sull'oggetto.
5
La sezione a destra mostra ogni zona, con le dimensioni e l'indicazione "attiva". Una zona disattivata non genera alcuna categoria, mentre una tabella completamente nascosta non partecipa all'ispezione. I pulsanti Tutte le zone ✓ / ✗, Colore, Elimina, Elimina TUTTE le zone. Chiudere la finestra con il tasto Invio: le zone verranno salvate in data.json e visualizzate in giallo sullo schermo.
Risultato della marcatura nella scheda AI Model: due zone gialle in un'immagine live – BR1 in alto a destra e C30 in basso a sinistra. A destra, i pulsanti per il modello ZONA-COPPIA, la casella di controllo "Associare le zone al prodotto tramite marcatori" e le impostazioni di addestramento.
Risultato della marcatura nella scheda AI Model: due zone gialle in un'immagine live – BR1 in alto a destra e C30 in basso a sinistra. A destra, i pulsanti per il modello ZONA-COPPIA, la casella di controllo "Associare le zone al prodotto tramite marcatori" e le impostazioni di addestramento.
Consiglio. Il componente deve occupare una porzione significativa dell'area, lasciando spazio per il circuito stampato: piste, etichette, piazzamenti. È proprio questa "base" che viene utilizzata successivamente nella fase di generazione dei dati sintetici (sezione 4.6). Per schede con componenti 0603-1206, con una risoluzione di 11 px/mm, una dimensione di 128 px è ideale; per condensatori, interruttori e connettori, si consigliano 192-256 px, come nell'esempio. La dimensione dell'ingresso della rete (Image Size) dovrebbe quindi essere approssimativamente uguale alla dimensione dell'area.

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.

Due rettangoli diversi. Le aree di ispezione sono quelle che il modello controlla (in verde). Area di allineamento è il punto di riferimento utilizzato per individuare il componente (il rettangolo arancione). I punti di riferimento non devono essere posizionati all'interno delle aree di ispezione: se si cercasse il componente direttamente sul condensatore, un condensatore spostato "trascinerebbe" con sé anche l'area di ispezione, rendendo il difetto invisibile. Per questo motivo, nell'area di allineamento, è necessario utilizzare la serigrafia, i fori, i contatti e i circuiti stampati nelle vicinanze, ma non il tavolo e la linea di produzione.
1
Nella scheda "Modello AI", spuntate la casella "Definire le aree relative al prodotto in base ai marcatori" e specificate il "periodo di ricerca, ms" (il valore predefinito è 100). Posizionate il modulo sotto la telecamera e cliccate su "Definire riferimento".
2
Si aprirà una finestra con l'intestazione "Area di allineamento: dove cercare i componenti", che mostra un'immagine in tempo reale e aree verdi di ispezione. Trascina il bordo della finestra sulla sezione del circuito con i componenti. A destra, vedrai immediatamente "Punti di riferimento: N · Allineamento: rigido / prospettico": dovrebbero esserci centinaia di punti. Se il numero è basso, espandi la finestra. La nuova finestra sostituisce quella precedente, mentre il pulsante destro la elimina.
3
Clicca ✔ Cerca le aree evidenziate. Il secondo pulsante ✔ Cerca le aree in base alle zone di ispezione seleziona le aree direttamente, solo quando non ci sono altre aree adiacenti. Se l'opzione Chiedi conferma per ogni area è disattivata, la successiva operazione di fissaggio riporterà all'area precedente senza richiedere conferma.
4
Il programma scrive "Riferimento acquisito. Zona N, punti di riferimento 1, punti K" e salva i valori live_template.png e live_template.txt (fotogramma, area, zone rosse). La casella di controllo Mostra le zone di ripresa sul fotogramma evidenzia le zone rilevate nel video, mentre i punti di riferimento utilizzati per l'allineamento vengono visualizzati come punti blu: attraverso di essi è possibile capire a cosa si riferisce il programma.
Area di allineamento: cornice arancione – area della scheda con i dettagli (3000 punti di riferimento), zone verdi – zone di ispezione C30 e BR1, che non rientrano nella cornice.
Area di allineamento: cornice arancione – area della scheda con i dettagli (3000 punti di riferimento), zone verdi – zone di ispezione C30 e BR1, che non rientrano nella cornice.
Immagine finale dopo l'allineamento: le zone sono identificate sui rispettivi dettagli e contrassegnate come "normale", le linee blu – i confini dell'area di allineamento, i punti blu – i punti di riferimento corrispondenti sui dettagli della scheda (che non rientrano nelle zone).
Immagine finale dopo l'allineamento: le zone sono identificate sui rispettivi dettagli e contrassegnate come "normale", le linee blu – i confini dell'area di allineamento, i punti blu – i punti di riferimento corrispondenti sui dettagli della scheda (che non rientrano nelle zone).
Modello di allineamentoQuando 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.
RigidaLa telecamera guarda direttamente dall'alto, la scheda è posizionata in piano. La soluzione più stabile, se l'area di allineamento è piccola.
ProspettivaLa 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".

Importante. Se in precedenza le aree "di uscita" erano limitate a poche aree per fotogramma, la ragione era che il pagamento veniva richiesto in base alle singole aree. È necessario ricontrollare il riferimento, concentrandosi sui dettagli del circuito: il numero di aree trovate nel circuito presente in questo manuale è aumentato da 46-51 a 106-112 su un totale di 134.

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.

Finestra "ZONA-COPPIA: immagini per zona": numero di opzioni, immagini per intervallo di tempo, percentuale in val, traslazione/rotazione/scala della zona all'interno dell'immagine, selezione "verso dove", illuminazione e rumore, contatore finale di file. La finestra può essere ridimensionata con il mouse.
Finestra "ZONA-COPPIA: immagini per zona": numero di opzioni, immagini per intervallo di tempo, percentuale in val, traslazione/rotazione/scala della zona all'interno dell'immagine, selezione "verso dove", illuminazione e rumore, contatore finale di file. La finestra può essere ridimensionata con il mouse.
ImpostazioniFunzioni predefinite e opzioni
Opzioni per ogni areaNumero 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 fotocameraAttivo, 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 grigiFlag 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 doveLa 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, ° · versoDi 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 / aumentoPer 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 / GammaValore 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) / SfocaturaSensore 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.
1
Clicca su "ZONA-COPPIA: foto per zona". Nella riga in fondo alla finestra, viene preimpostato il seguente: "Per 1 file: 21 foto nella zona di train, circa 5 nella zona di val. In totale, circa 52 file da una singola foto. Foto dalla fotocamera: 20, circa 16". (per due zone).
2
Seleziona il profilo: Predefinito (spostamento 0–2 px, luminosità ±5, contrasto 95–105 %), Spostamento degli elementi (spostamento 0–1 px, luminosità −10…10) o Colore e saturazione (spostamento 0–2 px, luminosità ±2, contrasto e saturazione disattivati, in modo che la tonalità rimanga un indicatore).
3
Premere su "Inizia". La generazione avviene in background, con una finestra di avanzamento che mostra "zone 1/2 · file 26 · fotogramma 4/20" e un pulsante per annullare. Al termine, viene visualizzato il messaggio: "Completato: 2 zone → classi zone_001…zone_002, file: 52". Il programma imposta automaticamente le impostazioni di addestramento in base alla scheda: Dimensione immagine 128, Dimensione modello s, Epoche 50, Batch 64 (sezione 4.9).
4
Ripetete la foto con lo stesso pulsante su diverse schede funzionanti. Per un modello affidabile, è necessario avere almeno 80 file per categoria, e soprattutto, diversi esemplari reali (5-10 schede), piuttosto che una singola foto con centinaia di varianti.
trainzone_001: un normale C30 nel compartimento: real_... con fotocamera e syn_... _n1...n20 con suffissi di spostamento (shiftd, shiftl, shiftr, shiftu). La scritta è sempre posizionata correttamente rispetto alla base.
trainzone_001: un normale C30 nel compartimento: real_... con fotocamera e syn_... _n1...n20 con suffissi di spostamento (shiftd, shiftl, shiftr, shiftu). La scritta è sempre posizionata correttamente rispetto alla base.
trainzone_002 - operazione standard BR1: real_... con tre passaggi e varianti che includono rotazione (rotl, rotr) e traslazione.
trainzone_002 - operazione standard BR1: real_... con tre passaggi e varianti che includono rotazione (rotl, rotr) e traslazione.

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:

1
ZONA-COPPIA: foto per zonaScattare. Le porzioni normali di ogni zona, con 20 varianti di posizionamento della fotocamera (spostamento finestra da 0 a 2 px, luminosità, rumore), vengono classificate in zone_NNN.
2
ZONA-COPPIA: anomalie delle zoneCreare. Le impostazioni predefinite includono già entrambi i tipi di spostamento: spostamento della zona di 5-12 px in tutte le direzioni e rotazione dell'area dell'elemento (70% della zona, cerchio) di 15-180°. I file vengono spostati nelle classi zone_NNN_anomaly.

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

PRI: immagine live di una scheda funzionante. Entrambe le zone sono verdi, "normali".
PRI: immagine live di una scheda funzionante. Entrambe le zone sono verdi, "normali".
DOPO: le stesse zone vengono riempite con dati sintetici provenienti dalle cartelle di anomalie: C30 spostato a destra e verso il basso, BR1 ruotato. Entrambe le zone sono rosse, "anomalia". La scheda apparirà anche in caso di difetto reale sulla linea.
DOPO: le stesse zone vengono riempite con dati sintetici provenienti dalle cartelle di anomalie: C30 spostato a destra e verso il basso, BR1 ruotato. Entrambe le zone sono rosse, "anomalia". La scheda apparirà anche in caso di difetto reale sulla linea.
Grande, zona 1 (C30): a sinistra, normale come catturato dalla fotocamera, a destra, dati sintetici: l'elemento insieme alla base è spostato verso il basso e a destra, il bordo è occupato da altri elementi dell'immagine.
Grande, zona 1 (C30): a sinistra, normale come catturato dalla fotocamera, a destra, dati sintetici: l'elemento insieme alla base è spostato verso il basso e a destra, il bordo è occupato da altri elementi dell'immagine.
Grande, zona 2 (BR1): a destra, l'area dell'elemento è ruotata di 180 gradi: le piattaforme sono al loro posto, il corpo non è rivolto nella direzione corretta.
Grande, zona 2 (BR1): a destra, l'area dell'elemento è ruotata di 180 gradi: le piattaforme sono al loro posto, il corpo non è rivolto nella direzione corretta.

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.

train\zone_001_anomaly — errore C30. In ogni copia di t000, t001… ci sono nove file: combo1_d, _dl, _dr, _l, _r, _u, _ul, _ur — l'area è spostata di 5-12 px in otto direzioni (d = verso il basso, u = verso l'alto, l = verso sinistra, r = verso destra), rotate1 — l'area del condensatore è ruotata.
train\zone_001_anomaly — errore C30. In ogni copia di t000, t001… ci sono nove file: combo1_d, _dl, _dr, _l, _r, _u, _ul, _ur — l'area è spostata di 5-12 px in otto direzioni (d = verso il basso, u = verso l'alto, l = verso sinistra, r = verso destra), rotate1 — l'area del condensatore è ruotata.
train\zone_002_anomaly — problema BR1: il telaio è stato spostato su ogni una delle otto superfici e orientato a un angolo casuale. La superficie della scheda e delle piazzole sono autentiche.
train\zone_002_anomaly — problema BR1: il telaio è stato spostato su ogni una delle otto superfici e orientato a un angolo casuale. La superficie della scheda e delle piazzole sono autentiche.
Come leggere i nomi dei file. syn_<data>_t003_combo1_dr.jpg – copia 3, file generale, spostamento a destra-in basso (d = down, r = right, u = up, l = left); …_rotate1.jpg – rotazione dell'area dell'elemento; …_scale1_dn/_up – scala verso l'alto o verso il basso; …_tl/_c/_br – posizione dell'area (angolo, centro). Dal nome è sempre possibile identificare il difetto specifico nel file, e l'elemento in eccesso viene eliminato tramite il pulsante "Elimina dati sintetici di classe (training + validation)" nella finestra delle aree.

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 formeCosa definisce
Dimensione: da … a, % della zona / pxDimensione 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.
Riempimentocontinuo / bordo / misto (il bordo è anche "spesso").
Spessore della linea, pxLinea / graffio e croce. 0 = automatico (spesso). Per la marcatura dei dettagli, non scendere al di sotto dei 3 px.
Dove si trova il difettoAl 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 slotCinque 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.

La finestra "ZONA-COPPIA: anomalia di zona": copia del difetto in cima; gruppo espandibile di forme disegnate con parametri, posizione e tavolozza; spostamento, rotazione e scala della zona con forma dell'area e scala ±%; sottodivisioni; illuminazione sopra il difetto; immagini nel tempo e val.
La finestra "ZONA-COPPIA: anomalia di zona": copia del difetto in cima; gruppo espandibile di forme disegnate con parametri, posizione e tavolozza; spostamento, rotazione e scala della zona con forma dell'area e scala ±%; sottodivisioni; illuminazione sopra il difetto; immagini nel tempo e val. La finestra si espande con il mouse.
ImpostazioniCosa fa
Copia del difettoUn unico valore per tutti i tipi: quante copie con parametri casuali devono essere create per ogni tipo specificato (predefinito: 10).
▸ Difetti sintetici sulla zona ritagliataGruppo 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 · formaIl 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, ° · formaL'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 / aumentoL'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 rotazioneSe 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.
▸ ZoneL'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 difettosoAttivo e uguale a "normale": il difetto deve differire per geometria, non per illuminazione.
Immagini nel tempo / in valOgni copia da un nuovo frame della telecamera (800 ms), 20% in val, il primo file di una classe in val è sempre presente.
1
Cliccare su "ZONA-COPPIA: anomalie delle zone". Il risultato è predeterminato: "Zone: 2 · su copia: 2 file · su zona: 20 · totale ≈ 40 (+ parte in val)". Con "tutte le direzioni", lo spostamento dei file su copia diventa di nove, come nelle cartelle precedenti.
2
Seleziona il profilo: Predefinito (spostamento della zona 5–12 px + rotazione dell'area, delle figure e delle sottosezioni, che vengono automaticamente rimpilgate e disattivate), Spostamento degli elementi (solo spostamento di 4–12 px, con effetto di luce simile al normale) o Colore e tonalità (figure, "elemento nascosto", colori dalla tavolozza, senza spostamento). Le modifiche apportate vengono memorizzate immediatamente, ad ogni pressione.
3
Fare clic su "Crea". Le classi "zone_NNN_anomaly" appariranno nell'albero del modello. Per aggiungere un difetto specifico da una linea, aggiungerlo alle stesse classi tramite "ROI → Aggiungi alla classe".
Importante. Il limite inferiore dello scostamento sintetico (5 px) si trova immediatamente sopra l'intervallo normale (0–2 px). Non estendere l'intervallo normale fino a 5 px e non ridurre l'anomalia a 2 px: il limite si sfumerebbe e il modello oscillerebbe in modo errato sulle effettive schede. Se è necessario un'altra sensibilità, modificare entrambi i limiti in modo coerente e convertirli in millimetri (sezione 1.3).

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.

ParametroCosa significaCome scegliere
Epochsquante volte il modello visualizzerà l'intero set50 per la scheda predefinita; 100-150 se ci sono molte classi di anomalie
Batch Sizequante immagini per ogni passo64; se la memoria video è insufficiente, riducila
Image Sizea quale dimensione vengono ridotte le aree, multiplo di 32dimensione approssimativa dell'area: 128 per l'area di 108-137 px; 192-256 per le aree di 256 px, come nell'esempio
Model Sizen / s / m / l / xs — ottimale per centinaia di coppie di classi; n — insufficiente, m e superiori — più lento
Devicesu cosa addestrare0 (GPU) con scheda video NVIDIA; senza CUDA, il programma passa automaticamente all'utilizzo della CPU
Workersnumero di thread per la preparazione dei dati12 (predefinito per processori multi-core)
1
Prima dell'avvio, il programma verifica: suggerisce di eliminare le classi vuote, le cartelle inutili in "val" e di riempire "val" dove è vuoto. Durante il primo avvio, viene installato l'ambiente di addestramento (Python 3, pacchetti ultralytics, onnx, onnxslim, onnxruntime) – è necessario una connessione internet e alcuni minuti.
2
Per il modello ZONA-COPPIA, l'addestramento avviene senza "erasing", "flip", "crop" e "randaugment": queste operazioni di augmentazione sono in conflitto con le classi di anomalie (una zona capovolta è già un'altra zona). Nella console viene visualizzata la corrispondente riga.
3
Il pulsante diventa rosso e visualizza "STOP AI MODEL". L'anello a destra indica la percentuale di completamento per ogni epoca. L'andamento dell'addestramento è visibile nella console. Per due zone e 100 epoche, l'elaborazione sulla scheda grafica richiede circa 10-15 minuti.
4
Al termine del processo, il programma esporta best.onnx nella cartella principale del modello e lo assegna immediatamente al controllo. Il pulsante "Esporta ONNX" ripete l'esportazione senza richiedere un nuovo addestramento.
Consiglio. Per l'ulteriore addestramento dopo aver aggiunto un difetto o nuove funzionalità, utilizzare lo stesso pulsante: l'insieme di dati viene ampliato, il modello di intelligenza artificiale viene riaddestrato, best.onnx e sovrascritto. Durante questo processo, non modificare la griglia.

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.

Funzione "Ispeziona" nell'utilizzo: modello model_4\best.onnx, riga "Classi di ispezione: SCHEDA - zona 2, anomalie di classe 2. La zona N viene gestita all'interno della coppia zone_N / zone_N_anomaly, con soglia del 50%", nastro trasportatore attivo con un periodo di 2000 ms e indicatore "normale · 112 punti", in
Funzione "Ispezione" nell'applicazione: modello model_4\best.onnx, riga "Classi di ispezione: SCHEDA - zona 2, anomalie di classe 2. La zona N è gestita all'interno della coppia zone_N / zone_N_anomaly, con soglia del 50%, con una linea di produzione attiva con un periodo di 2000 ms e un indicatore "normale · 112 punti", e nella parte inferiore una fonte di velocità e delle caselle "GPU", "Analisi in scala di grigi". Nell'immagine, entrambe le zone sono verdi, indicando "normale".

5.1. Assegnare il modello e verificare le zone

1
Se il modello non è stato assegnato, cliccare su "SELEZIONA MODELLO ONNX PER L'ISPEZIONE" e specificare il percorso della cartella del modello in best.onnx. La riga "Classi di ispezione" mostrerà tutte le classi; i nomi vengono presi direttamente dal file ONNX, quindi i numeri di uscita corrispondono sicuramente ai nomi.
2
Premere su AREA-COPPIA: aree ↔ modello (verifica soglia). La finestra mostra: "Numero di aree nella griglia: 2 / Numero di classi zone_NNN nel modello: 2, numero di classi di anomalie: 2 / Ogni area della griglia ha la sua classe ✔". Gli avvisi "Aree senza classe nel modello" o "Classi senza area nella griglia" indicano che la griglia è stata modificata dopo l'addestramento.
3
DISABILITARE L'IA disabilita temporaneamente l'analisi su questa telecamera, senza cancellare le impostazioni (ogni telecamera ha il suo flag); RIMUOVERE IL MODELLO rimuove completamente il modello e le relative porte.

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.

Suggerimento. Impostate un limite di decine di schede che siano sicuramente funzionanti: aumentate il valore finché tutte le aree rimangono verdi, quindi verificate sulle schede con difetti noti. Ogni 10 secondi, il programma scrive nella console la riga "[COPIA-AREA] … normale N, anomalia M, limite 0,50; valori peggiori: z17:0,31 …" – questo permette di vedere quali aree sono più vicine al limite.

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.

MetodoCome attivareQuando utilizzare
Tramite telecameraCasella di controllo "Tramite telecamera"Controllo continuo; la velocità è limitata tramite la manopola "Analisi al secondo" nella scheda Telecamera
Tramite timerCasella di controllo "Tramite timer" e intervallo in millisecondiControllo sporadico, ad esempio una volta al secondo
Tramite triggerSelezionare 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)
GPUCasella di controllo "GPU"Attiva per impostazione predefinita; l'attivazione riavvia il modello
Analisi in scala di grigiCasella 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".

1
Cliccate con il pulsante sinistro sulla zona desiderata sulla fotocamera: la zona diventerà gialla e verrà esclusa dall'analisi. Un altro clic la riattiverà.
2
Gruppo di zone: tenete premuto il tasto sinistro e trascinate il rettangolo sulla scheda. Tutte le zone che entrano nel rettangolo vengono disattivate; se tutte erano già gialle, il rettangolo le riattiva. Funziona anche con lo zoom.
3
L'elenco delle zone gialle è memorizzato nel database per ogni telecamera e modello, e persiste anche dopo il riavvio del programma e la riconnessione della telecamera. Nella console viene visualizzata la stringa "[Zone] … disattivate zone: N".

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 controlloComportamento 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".
DisattivatoIl 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.
Consiglio. Non è necessario disattivare le regole del "rimozione" nelle zone gialle: una volta attivate, le zone funzioneranno immediatamente, mentre disattivandole, non produrranno alcun risultato.

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.

Finestra TRIGGER per HIKROBOT (6 pin): sensore PNP, segnale al pin 2, pin comune al 5, schema di connessione.
Finestra TRIGGER per HIKROBOT (6 pin): sensore PNP, segnale al pin 2, pin comune al 5, schema di connessione.
Lo stesso per SICK picoCam (6 pin): segnale al pin 4 (Trigger +), pin comune al 3 (Trigger -).
Lo stesso per SICK picoCam (6 pin): segnale al pin 4 (Trigger +), pin comune al 3 (Trigger -).
1
Cliccare su "TRIGGER" sopra il video. Selezionare "Tipo di sensore" (ad esempio, sensore ottico BAOLSEN QAF-Q2P, con 4 fili; qualsiasi sensore con uscita PNP o NPN può essere collegato allo stesso modo), "Connettore della telecamera" (HIKROBOT a 6 pin o SICK picoCam a 6 pin), "Telecamera (quale)" e "Tipo di uscita del sensore": PNP – il segnale attiva il "positivo" (caso normale), NPN – il segnale attiva il "negativo", è necessario un resistore da 1-4,7 kΩ a 24 V.
2
Assemblare lo schema seguendo il disegno: alimentazione del sensore e della telecamera da un unico alimentatore da 24 V, cavo di segnale del sensore all'ingresso della telecamera, cavo di ritorno dell'ingresso a 0 V. Il cavo bianco del sensore è il secondo uscita, non va collegato.
3
Fare clic su "Crea collegamento". Il collegamento viene salvato nel database; i collegamenti identici non vengono duplicati. Il pulsante "Rimuovi collegamento" elimina il collegamento selezionato.
4
Nella scheda "Inspect", selezionare la connessione dalla lista "Trigger" e il fronte: "analisi in ingresso +" (fotogramma al rilevamento di 24 V) o "analisi in ingresso -". Il programma mette la telecamera in modalità trigger: per HIKROBOT, TriggerMode = On, TriggerSource = Line0, mentre per SICK, interrompe l'acquisizione, imposta la modalità e riavvia. Il cerchio accanto indica il livello di ingresso.

Schema di connessione dei connettori

PinHIKROBOT MV-CS, 6 pinSICK picoCam, 6 pin
1DC_PWR — Alimentazione della telecamera: 9–24 VGND — messa a terra dell'alimentazione della telecamera
2OPTO_IN — Ingresso Line 0 (+), segnale di attivazioneVCC — alimentazione della telecamera (12–24 V)
3GPIO — Line 2, ingresso o uscitaTrigger — Ingresso del trigger, fototransistor (−)
4OPTO_OUT — Uscita della linea 1 (+)Trigger + — Ingresso del segnale del trigger, fototransistor (+)
5OPTO_GND — Ottorete generale, cavo di ritornoFlash + — uscita discreta (+)
6GND — messa a terra dell'alimentazione della telecameraFlash − — uscita discreta (−)
Importante. I connettori "papà" sulla fotocamera e "mamma" sul cavo sono simmetrici. L'unico riferimento è la chiave (un'apertura nella spina); nel caso di SICK, si trova tra i contatti 1 e 6 e, con il cavo, si dirige verso destra. Identificate i contatti da quella parte che tenete in mano. Un errore nella connessione significa un circuito bruciato: accanto si trovano l'alimentazione e l'uscita. Verificate la disposizione dei contatti di SICK tramite un test.
Consiglio. Misurate la tensione in corrispondenza del segnale "+", non del punto più basso: sul circuito reale, la variazione di tensione tra il punto più alto e quello più basso è stata di 4,2 ms, mentre tra il punto più alto e quello più basso è stata di 40,7 ms. Verifica del sensore: il collegamento tra il cavo marrone e quello blu deve sempre fornire 24 V, che è la tensione di alimentazione; il segnale deve essere presente tra il cavo nero e quello blu, quando il fascio di luce li attraversa. Se il segnale non cambia, inserite un resistore da 2 a 10 kΩ tra il cavo nero e quello marrone; in questo caso, 24 V↔0 V indica un transistor NPN.

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.

HIKROBOT — uscita Line 1 (ottorelay) sui pin 4 (+) e 5 (−), corrente massima 25 mA.
HIKROBOT — uscita Line 1 (ottorelay) sui pin 4 (+) e 5 (−), corrente massima 25 mA.
SICK picoCam — pin flash (ottorelay) sui pin 5 (+) e 6 (−), 150 mA in continuo.
SICK picoCam — pin flash (ottorelay) sui pin 5 (+) e 6 (−), 150 mA in continuo.
  • 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".

Finestra OUTPUT: albero delle zone a sinistra, elenco delle regole della zona, gruppo "Regola" e scheda TCP con impostazioni.
Finestra OUTPUT: albero delle zone a sinistra, elenco delle regole della zona, gruppo "Regola" e scheda TCP con impostazioni.
1
Selezionate una zona nell'albero (l'intestazione a destra mostrerà il percorso Telecamera USB HD → model_5 → 1 → Zona 1 (T1.C1)). Quindi, cliccate su + Nuovo TCP, + Nuovo discreto o + Nuovo audio.
2
Nel gruppo "Regola", selezionare "Classe AI" a cui applicare la regola (per ZONA-COPPIA, può essere "anomalia" o "normale"; "*" indica qualsiasi classe), spuntare la casella "Attivato", e, se necessario, selezionare l'opzione "Ripetere finché la classe persiste" specificando l'intervallo di ripetizione e il valore "Conferma cambio di classe, ms" (il valore predefinito è 1500: la nuova classe deve persistere per questo numero di intervalli consecutivi affinché il cambio venga riconosciuto).
3
Compilare la sezione TCP (sezione 7.3), Uscita della telecamera (sezione 7.4) o Audio (sezione 7.5).
4
Verificate la catena senza attendere un errore: Verificare questa regola (invia un pacchetto o genera un segnale di uscita), Simulare l'attivazione della zona (fa passare tutte le regole della zona attraverso un ciclo di test con anti-rumore e registro).
5
Cliccare su "Crea per 1 zona". Se sono selezionate più zone, il pulsante cambia in "Crea per N zone"; per il nodo del modello: "Salva per l'intera modello", per il nodo della classe: "Salva per la classe". Nella parte inferiore: "Attiva / Disattiva / Elimina per le selezionate".

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.

CampoAssegnazione
Tempo di attesa per la connessione, ms1000 di default, 100...10000.
Tempo di attesa per l'invio delle regole, msIntervallo minimo tra l'invio automatico delle regole; 0 = senza intervallo. Anche il cambio di classe richiede questo intervallo.
ComandoIl 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 propriTesto generico, utilizzato al posto di `{data}`.
DatiModello 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.
SostituzioneValoreSostituzioneValore
{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

Scheda "Uscita telecamera": metodo di uscita, linea, livello, impulso, pulsanti di controllo manuale. Le telecamere USB non hanno uscite discrete, ma è disponibile solo TCP.
Scheda "Uscita telecamera": metodo di uscita, linea, livello, impulso, pulsanti di controllo manuale. Le telecamere USB non hanno uscite discrete, ma è disponibile solo TCP.
CampoAssegnazione
UscitaMetodo: 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.
LineaPin Flash / GPIO1…6 (per SICK); Line1 (uscita), Line2 (bidirezionale) (per HIKROBOT); Line0 – solo ingresso.
Livellotrue / 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.

Più zone sullo stesso pin. Se su un pin sono presenti regole per più zone, l'uscita viene interpretata come un "AND" logico: HIGH solo se tutte le zone richiedono HIGH, altrimenti (se anche solo una zona richiede LOW), l'uscita diventa LOW. Questo si traduce nel registro come "zone sull'uscita N richiedono LOW k → HIGH/LOW". In questo modo, un'uscita "funzionale" viene creata combinando centinaia di zone presenti sulla scheda.
Importante. Nel caso di SICK, il pin flash ha la stessa funzione sia per l'uscita digitale che per l'illuminazione: se è collegato a una lampada a impulsi, utilizzare GPIO. Le regole anti-rumore sono: 500 ms di default (minimo 200), e gli eventi senza segnale non vengono registrati.

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.

1
Selezionate una zona nell'albero e cliccate su "+ Nuovo suono". Nella sezione "Regola", specificate la categoria (ad esempio "anomalia") e spuntate la casella "Attivo".
2
Nella scheda "Suono", selezionare un segnale dall'elenco. Sono disponibili dieci segnali predefiniti: breve, doppio, triplo, tono basso e tono alto, segnale ascendente e discendente, allarme-sirena, segnale lungo, campanello. Il pulsante "Ascolta" riproduce il segnale selezionato.
3
Il tuo suono: clicca su "Carica il tuo file" e seleziona WAV, MP3 o WMA. Il file viene copiato nella cartella "sounds\custom" accanto al programma (è possibile rimuovere la chiavetta USB) e appare nell'elenco con l'etichetta "proprio". Il pulsante "Cartella suoni" apre questa cartella: è possibile inserire i file direttamente.
4
Imposta il tempo di pausa tra i segnali, in millisecondi compreso tra 1000 e 10000. Durante questo periodo, dopo il segnale, il suono non viene ripetuto, anche se la classe della zona cambia nuovamente: con 10000 ms, l'operatore sentirà al massimo un segnale ogni 10 secondi.
5
Fare clic su "Crea per 1 zona" oppure selezionare le zone con le caselle di controllo e creare la regola per tutte. Assegnare un suono diverso a ciascuna zona: ripetere l'operazione con un altro segnale per un'altra zona.
6
La casella di controllo Zone gialle (disattivate tramite clic) sono silenziate è abilitata per impostazione predefinita: le zone disattivate tramite il clic nella scheda "Ispeziona" (sezione 5.5) non producono alcun suono e non attivano la trasmissione TCP o l'attivazione della telecamera in tutta la modellazione.
FunzionamentoCome 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 contemporaneamenteOgni 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.
RegistroOgni 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.
VerificaVerificare 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.
Consiglio. Utilizzate sirene o segnali tripli per le zone più importanti (connettori, componenti di potenza), e segnali brevi per le altre. In questo modo, un singolo suono indicherà chiaramente se è necessario correre immediatamente verso la linea. La regola per l'emissione di un segnale per l'intera serie di modelli viene definita selezionando il modello o la serie nel diagramma: un segnale per ogni difetto.

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": dove vengono memorizzati i dati, copia e ripristino del database tramite un singolo file.
Scheda "Database": dove vengono memorizzati i dati, copia e ripristino del database tramite un singolo file.

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.

Per la configurazione ZONA-COPPIA, di solito non sono necessari gli slot. Un modello è sufficiente per coprire l'intera scheda: ogni zona ha la sua coppia di classi, quindi non è necessario "combinare" classi simili, come si faceva in precedenza con più modelli. Un esempio tipico è una singola scheda ZONA-COPPIA, con gli slot vuoti.

Quando l'ispezione multi-modale viene applicata:

SituazioneCome configurare
Diverse funzioni sullo stesso frameZONA-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 fissaCompresse, 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 immagineDue 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 transizioneIl 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

ComponenteRequisito
Sistema operativoWindows 10/11 x64.
Scheda video per l'ispezioneNVIDIA 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.
FormazionePython 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 SICKDriver IDS uEye; la telecamera deve essere visibile in IDS Camera Manager.
Telecamere HIKROBOTSDK 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:

1
TELECAMERE → «+ Aggiungere telecamere» → selezionare le proprie telecamere → Aggiungi.
2
Scheda Telecamera: risoluzione → «Impostazione automatica per l'IA (per fotogramma)» (o «Impostare parametri» tramite USB) → «Salvare parametri» → «Salvare come…» insieme di impostazioni. Opzionalmente, «Addestrare in scala di grigi».
3
Modello IA → «Creare un nuovo modello IA» → nome.
4
«ROI → aggiungere alla classe (modello di addestramento)» → definire un'area attorno a ciascun componente → dimensione dell'area (ad esempio, 256) → Invio. Per centinaia di componenti simili, definire un'area attorno all'intera scheda e una griglia.
5
Casella di controllo «Definire le aree in relazione al prodotto tramite marcatori» → «Definire riferimento» → tracciare l'area della scheda con i componenti (non l'area di ispezione) → «✔ Cercare aree nell'area selezionata».
6
«ZONA-COPIA: foto per zona» → «Scattare». Ripetere su 3-5 schede funzionanti. Disattivare le aree non necessarie in anticipo cliccando sull'area corrispondente nella foto (rosso).
7
«ZONA-COPPIA: anomalie delle zone» → «Creare»: lo spostamento e la rotazione dell'elemento insieme alla base sono già inclusi. Se necessario, utilizzare le saldature di riferimento per le zone.
8
ALLENA IL MODELLO DI INTELIGGENZA ARTIFICIALE (dimensione immagine 128, s, 50 epoche) → attendere il raggiungimento del 100% → best.onnx viene assegnato automaticamente.
9
Ispeziona → «ZONA-COPPIA: zone ↔ modello» → verifica la corrispondenza → soglia. Utilizza la telecamera o seleziona un trigger. Per la scheda mobile, utilizza "Nastro trasportatore dinamico".
10
OUTPUT → seleziona le zone → regola per la classe di anomalie (suono, TCP o uscita della telecamera) → «Simulare l'attivazione della zona» → «Creare su N zone».

Se qualcosa non funziona

SintomoCosa controllare
La telecamera non appare nell'elencoAlimentazione 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 erratiTelecamera → «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 rossaGigE: 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 mancanteRiferimento 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 schedaLa 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 componentiL'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_CLASSLa griglia è cambiata dopo l'addestramento; ripristinare la griglia o creare un nuovo modello e scattare nuove immagini
Tutte le zone sono rosse sulla scheda funzionanteAltra 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'elementoRicalcolare 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 lentoDevice = 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 suonoLa 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.