Ispezione di marcatura

engiAI · pulsante TESTO
Riconoscimento e verifica del codice su cavi, tubi, nastri e imballaggi

La fotocamera è posizionata dopo la stampante o il laser marker. Il software engiAI legge il testo stampato direttamente dal flusso video: assembla la scritta, che passa attraverso l'area a tratti, la confronta con un modello o un elenco di riferimento, salva ogni marcatura in un database e trasmette il risultato tramite rete – al browser, in formato JSON e al controller tramite TCP.

1. Area di riferimento: l'area in cui appare il testo
2. Esempio di frase da stampare
3. Analisi La rete neurale analizza ogni fotogramma.
4. Conclusioni "Riconosciuto" o "Non riconosciuto" + database
Circa 10 fotogrammi al secondo
Lettura dell'area sulla scheda video (CUDA)
RU + EN
Cirillico, latino, numeri, simboli
0 ore di formazione
Il modello PaddleOCR è pronto immediatamente
HTTP + TCP
Browser, JSON, segnale del controller

Come appare nell'utilizzo

engiAI — TESTO: finestra accanto al video
A sinistra: video dalla telecamera, il bordo blu indica l'area di riconoscimento. A destra: finestra TEST: estrazione dell'area, bordi verdi attorno alle parole riconosciute e la riga "Attualmente nell'area".

Il pulsante "TESTO" si trova nella prima riga della finestra principale "engiAI", accanto ai pulsanti "ESCI", "TELECAMERA", "TRIGGER", "MODELLI GENERALI" e "CALCOLO". Apre la finestra "TESTO – riconoscimento marcatura". La finestra può essere mantenuta aperta sopra il video: l'area nell'immagine è visibile finché la finestra è aperta o il riconoscimento è attivo.

Nella parte superiore della finestra ci sono tre elementi comuni a tutte le schede:

  • Riconoscimento del testo – è l'interruttore principale. Finché questa opzione non è selezionata, il riconoscimento del testo non funziona e non sovraccarica il programma.
  • ▭ Definire l'area – cliccate e trascinate il bordo dell'area sul video con il pulsante sinistro del mouse. Una volta che l'area è aperta, è possibile trascinare anche il bordo con il pulsante destro del mouse, senza premere alcun tasto. ✖ Eliminare l'area – elimina l'area.
  • Stato a destra: IN ATTESA, REGISTRO, PAUSA o IN BASE AL SEGNALE DI ENTRATA. Sotto, si indica (GPU CUDA o processore), il numero di fotogrammi al secondo letti e il tempo in millisecondi impiegato per ogni fotogramma.
Consigli. Assicurarsi che l'area visibile del testo e quella estesa lungo la direzione di movimento siano il più ampie possibile: più segnali sono presenti nell'area, più affidabile sarà la sovrapposizione delle immagini. La telecamera deve essere posizionata dopo aver applicato il marchio, e il testo deve essere nitido e privo di sfocature.

Scheda "marcatura": risultato e confronto con l'esempio

engiAI — TESTO: frase campione
Scheda "marcatura": esempio di frase, anteprima dell'area, cosa è attualmente nell'area e cosa viene registrato, in basso: elenco delle marcatura pronte. Righe verdi: "Riconosciuto", righe rosse: "Non riconosciuto", tra parentesi: percentuale di corrispondenza con l'esempio.

Questa è la scheda operativa per l'operatore. In alto, la funzione "Confronta tutto nell'area con un campione":

engiAI — TESTO: Marcatura
Il campo "Esempio" contiene la frase da stampare; "Soglia di corrispondenza, %" indica da quale percentuale si considera la marcatura corretta. A destra, si visualizza lo stato attuale.
1
Selezionate l'opzione "Confronta tutto nell'area con il campione" e inserite l'intera frase nel campo "Campione", ad esempio "Энергокомплект UTCAB-PV1-F 6 4 ТУ BY 300528652.036-2014 EAC 2026 Беларусь". La distinzione tra maiuscole e minuscole, gli spazi e le lettere russe e latine simili (come T e t, U e Y, E e e) non sono importanti.
2
Impostare il valore di "Soglia di corrispondenza, %". Un valore di 100 indica una corrispondenza perfetta, carattere per carattere; un valore compreso tra 65 e 80 consente di compensare eventuali imprecisioni nella stampa e nella lettura.
3
Attivate la funzione di riconoscimento del testo. Se una frase è troppo lunga per essere visualizzata interamente nell'area, il programma la visualizzerà a tratti, acquisendo ogni parte fotogramma per fotogramma mentre scorre nell'area.

Come avviene l'analisi della frase sulla linea di produzione:

  • La trascrizione inizia dall'inizio della frase. Se la trascrizione è stata avviata a metà del testo, la parte rimanente viene saltata: il programma attende l'inizio della frase successiva.
  • Ogni fotogramma viene posizionato correttamente all'interno del campione, e ogni lettera riceve "voti" da tutti i fotogrammi in cui è visibile. Il risultato è la variante che viene letta più frequentemente. Gli errori casuali di un singolo fotogramma (ad esempio, una lettera tagliata ai bordi o un riflesso) vengono corretti dai fotogrammi adiacenti: grazie al sistema di "voti" più ampio, il risultato finale è più preciso.
  • Il risultato viene generato non appena la frase completa attraversa l'area di scansione, oppure se non vengono rilevati nuovi caratteri per un periodo di tempo specificato nella scheda "Riconoscimento" (in questo caso, il sistema si ferma e l'area è vuota). Dopo aver generato il risultato, il programma attende l'inizio della frase successiva; le frasi che si susseguono immediatamente vengono registrate separatamente.
  • Il programma determina autonomamente la direzione del movimento o ne utilizza quella definita nella impostazione "Da dove proviene il testo".

Mentre il riconoscimento è in corso, a destra della porta è visibile l'indicazione: 40 su 64 caratteri, nella riga "Registrato" si visualizzano il tasso di corrispondenza e il testo estratto. Al termine, si visualizza 73% - RICONOSCIUTO o NON RICONOSCIUTO. Lo stesso risultato viene visualizzato in grande sulla sovrapposizione video.

Se non è selezionata l'opzione "Confrontare tutto nell'area dell'esempio", avviene una concatenazione sequenziale: ogni marcatura viene scritta dall'inizio alla fine, seguendo le regole della scheda "Inizio e fine", e, se necessario, viene confrontata con l'elenco di riferimento.

Sotto l'elenco, si trovano i controlli:

  • Tutte le marcature / Solo l'ultima – indica quante marcature visualizzare e inviare al browser.
  • Data, ora e marca / Solo marca – quali informazioni devono essere inviate al browser e salvate in formato JSON.
  • ⚖ Confrontare — confrontare ogni etichetta predefinita con le etichette di riferimento.
  • 💾 Salvare come JSON, 📂 Caricare JSON (i dati caricati diventano riferimento), Pulire l'elenco – elimina le righe dallo schermo e dal browser, ma le mantiene nel database.

La scheda "riferimento" contiene l'elenco delle marcature corrette.

engiAI — TESTO: Riferimento
La scheda "riferimento": marcature caricate, caselle di controllo "confrontare con questa", soglia di similarità e correzione in base all'esempio.

La scheda "riferimento" è utile quando sulla linea di produzione sono presenti diverse marcature (sezioni, lotti, clienti diversi), e ogni marcatura letta deve essere trovata nell'elenco.

  • 📂 Scaricare file JSON – elenco estratto da un file: il nostro file JSON, un array di stringhe, oggetti con il campo "text" o semplicemente testo per riga, senza ripetizioni.
  • ✓ Selezionare tutto, ☐ Deselezionare tutto, spunta su ogni riga – con quale riferimento confrontare. ✖ Rimuovere riferimento – eliminare l'elenco.
  • Percentuale di corrispondenza, % – 100 indica una corrispondenza esatta (senza considerare spazi e maiuscole). Valori inferiori consentono errori di battitura e di lettura.
  • Correggere in base allo standard del … % – se il testo letto corrisponde al riferimento indicato, la correzione viene registrata utilizzando il testo standard (il testo originale rimane nel registro).

La scheda "Inizio e fine" indica dove termina una marcatura.

engiAI — TESTO: Inizio e fine
Tab "Inizio e fine": testo di inizio e fine, pausa dopo la fine, tempo di vuoto e durata massima della registrazione.

Queste regole funzionano in modalità di "collegamento sequenziale" (senza modello), in cui il programma decide autonomamente dove inizia e finisce la marcatura:

  • Inizio del testo – la registrazione inizia quando questo testo viene letto nell'area (ad esempio UTCAB). Vuoto – da qualsiasi testo. Se il testo inizia a ripetersi, la seconda occorrenza del testo di inizio completa la marcatura. Includere il testo di inizio nella marcatura – lasciarlo nel risultato.
  • Pausa dopo la fine, ms – non è necessario registrare nulla dopo la marcatura finale.
  • Testo di chiusura – indica la fine del testo, quando viene letto (ad esempio BY o 2026).
  • Tempo di vuoto, ms – se in quella zona non ci sono caratteri, la marcatura termina e viene salvata.
  • Durata massima, con – per una sequenza continua senza interruzioni: ogni intervallo di tempo corrisponde a un'annotazione separata. 0 indica l'assenza di limiti.

Esempio: inizio "UTCAB", fine "BY" – verrà registrato "UTCAB … BY", a questo punto il programma attende il prossimo "UTCAB". Confronto senza considerare la maiuscola, le lettere russe e latine simili vengono considerate uguali.

Tab "Riconoscimento": zona, angolo, modelli

engiAI — TESTO: Riconoscimento
Tab "Riconoscimento": coordinate precise della zona, angolo e zoom, soglie, attesa di nuovi caratteri di riferimento, direzione del nastro trasportatore, scheda video, caratteri e simboli consentiti, dizionario.
  • Area nell'immagine, pixel – Coordinate X e Y, larghezza e altezza dell'area nell'immagine originale: per definire con precisione l'area, senza l'ausilio del mouse.
  • Rotazione del testo nell'area – come ruotare l'area in modo che il testo sia orizzontale. Il testo scorre dall'alto verso il basso ("90° in senso antiorario") o dal basso verso l'alto ("90° in senso orario"). Per ruotare il video sullo schermo, utilizzare la scheda "Rotazione video".
  • Aumentare la dimensione del testo – un testo più piccolo è più leggibile se la zona di visualizzazione viene ingrandita; la funzione "Automatico" regola automaticamente la dimensione.
  • Minima confidenza, % – le righe lette con la minor confidenza vengono eliminate (riflessi, bordi delle lettere).
  • La lunghezza minima consentita per la marcatura e i simboli è di... - le marcature o i simboli più brevi non vengono accettati.
  • Esempio: nessun nuovo segno, MS – attendere il risultato – quanto tempo aspettare se non arrivano nuovi segni (il nastro si è fermato, la zona è vuota, il testo non è leggibile)? Una volta ottenuto il risultato, si inizia un nuovo processo di analisi.
  • Da dove proviene il testo – da quale parte della zona appare il nuovo testo. "Auto" determina in base alle immagini, e l'operazione di "incollaggio" è più affidabile.
  • Utilizzare la scheda grafica (GPU): su sistemi NVIDIA con tecnologia CUDA, la velocità di lettura è notevolmente superiore.
  • Lettere e Segni: quali elementi possono essere presenti nelle etichette: parole in inglese e russo, solo parole in inglese o qualsiasi segno; numeri e spazi: sempre presenti, i segni (punto, trattino, trattino, numero, ecc.) sono contrassegnati da caselle di controllo. Il modello seleziona il segno solo da quelli consentiti: quelli non necessari non appaiono, quelli simili vengono riconosciuti con maggiore precisione.
  • Selezionare parole dal dizionario – la parola riconosciuta (con almeno 3 lettere, non un numero o un codice), che assomiglia a una parola del dizionario in una percentuale minima, viene sostituita con la parola corretta. Il dizionario contiene parole (una per riga) e, facendone una spunta, anche parole provenienti da un riferimento.

Nella scheda sottostante, è disponibile la selezione dei modelli: "Riconoscimento di righe" (v3: più veloce, v5 server: più preciso, ideale per schede video) e "Lettura di testo" (cirillico, latino e numeri; solo latino e numeri; latino delle lingue europee; modello server preciso; oppure due modelli contemporaneamente: entrambi leggono la riga e viene selezionata l'opzione più affidabile). Il modello mancante può essere scaricato tramite il pulsante "⬇ Scarica". Il pulsante "⚖ Confronta i modelli nell'area corrente" elabora l'ultima porzione di immagine selezionata utilizzando tutte le opzioni disponibili, consentendo di visualizzare immediatamente quale modello legge meglio la vostra marcatura e quanto tempo impiega.

Non è necessario addestrare il modello. Il riconoscimento è basato su PaddleOCR e legge lettere maiuscole, minuscole e numeri non appena viene installato. La configurazione consiste nella definizione dell'area di riconoscimento, dell'orientamento e dell'elenco dei caratteri consentiti.

Tab "Database": tutte le marcature sono memorizzate

engiAI — TESTO: Banca dati
Tab "Database": numero di marcature memorizzate, esportazione in JSON, importazione dell'esportazione come riferimento e pulizia.

Ogni marcatura riconosciuta viene salvata nel database del programma, insieme alla data, all'ora, alla telecamera, al testo e al risultato del confronto, indipendentemente da ciò che è visualizzato nell'elenco sullo schermo.

  • 📤 Esportare il database (in formato JSON) – salvare tutti i dati in un file per la creazione di report o per l'inserimento in un sistema di gestione.
  • 📥 Scaricare la base (da "marcatura" a "riferimento") — solo i testi contrassegnati ("marcatura") vengono estratti e diventano "riferimento". In questo modo, l'esempio verificato può essere utilizzato come modello per i successivi.
  • 🗑 Pulire la base – eliminare tutti i record.

La scheda "Rete": risultato nel browser e in formato JSON

engiAI — TESTO: Rete
La scheda "Rete": server HTTP integrato, indirizzi per la connessione tramite tutti gli adattatori di rete del PC e elenco degli indirizzi API.

Seleziona Inviare dati tramite rete — engiAI avvierà un server HTTP (porta predefinita 8096). Qualsiasi computer o tablet sulla rete aprirà la pagina con la marcatura, il confronto e il riferimento utilizzando un browser standard; non è necessario installare nulla. I pulsanti 📋 Copia e 🌐 Apri nel browser prenderanno l'indirizzo dall'elenco.

IndirizzoCosa viene fornito
/pagina: marcatura, confronto, riferimento, JSON
/api/marksmarcatura: l'ultima o la più recente, con data o senza (come selezionato nella finestra)
/api/marks?show=last&format=textl'ultima marcatura in formato testuale semplice
/api/lastl'ultima marcatura
/api/statestato e testo nella zona corrente
/api/refsriferimento; POST /api/refs — inviare riferimento (in formato JSON)
/api/exportl'intera base di marcatura

Durante la prima esecuzione, il firewall di Windows potrebbe richiedere l'autorizzazione per engiAI — concedere l'accesso alle reti necessarie.

La scheda "Ingresso": immagine acquisita tramite il segnale del controller

engiAI — TESTO: Ingresso
Tab "Ingresso": Server TCP per ricevere segnali da PLC o sensore – rete, porta, valore del segnale, risposta al cliente e verifica "Scatto attuale".

Quando l'oggetto arriva davanti alla telecamera in risposta a un segnale (sensore, PLC, robot), segnale "Riconoscimento tramite segnale di ingresso (TCP)". engiAI apre il server TCP; ogni segnale corrisponde a una singola immagine della zona: il testo viene riconosciuto, confrontato e salvato nel database, proprio come in modalità continua.

  • Rete – su quale adattatore di rete aspettarsi il segnale («Tutte le reti» – su qualsiasi); è possibile inserire manualmente l'indirizzo IP. Porta – di default 8097.
  • Segnale – cosa si considera come comando. Per impostazione predefinita 1: testo ("1", "1\r\n") o byte 0x01.
  • Rispondere al cliente con il testo riconosciuto: In risposta, viene visualizzata una riga con un'etichetta; durante il confronto, viene indicato "OK" o "NG" tramite tabulazione; "NO TEXT" indica che il testo non è stato trovato; "ERROR …" indica che non è stata trovata alcuna area o fotogramma.
  • 📸 Scatto attuale (verifica) – equivale a un segnale, ma attivato tramite un pulsante. Per effettuare la verifica senza un controller, è possibile utilizzare un programma TCP-UDP (client): inserire l'indirizzo, la porta, il valore "1" e premere "Invia".

L'ingresso e il riconoscimento continuo funzionano simultaneamente: se è selezionato anche "Riconoscimento del testo", il programma continua a monitorare la linea, e per ogni segnale effettua anche uno scatto aggiuntivo.

Configurazione rapida in 5 minuti.

1
Cliccare su "TESTO", quindi su "Selezionare area" e trascinare il rettangolo lungo il testo presente nel video.
2
Nella tab "Riconoscimento", seleziona l'orientamento per far diventare il testo nell'anteprima verticale, e ingrandisci fino a ×2–×4 per il testo piccolo e specifica la direzione del movimento della linea.
3
Nella scheda "Marcatura", seleziona l'opzione "Confrontare tutto nell'area con l'esempio", inserisci la frase e il limite desiderato.
4
Attivate la funzione di riconoscimento del testo. Ogni frase rilevata apparirà in una lista con una riga verde ("Riconosciuta") o rossa ("Non riconosciuta").
5
Se necessario, attiva "Rete" per il browser e JSON e "Ingresso" per il segnale dal controllore.