Kennzeichnungskontrolle
Die Kamera befindet sich hinter dem Drucker oder dem Lasermarker. Das Programm engiAI liest den gedruckten Text direkt vom Videostream: Es erkennt die Aufschrift, die sich über die Zone hinweg bewegt, vergleicht sie mit einem Referenzmuster oder einer Liste, speichert jede Markierung in einer Datenbank und überträgt das Ergebnis über das Netzwerk – in einen Browser, im JSON-Format und an einen TCP-Controller.
Wie es in der Praxis aussieht
Die Schaltfläche "TEXT" befindet sich in der obersten Reihe des Hauptfensters "engiAI", neben den Schaltflächen "AUS", "KAMERA", "TRIGGER", "ALLGEMEINE MODELLE" und "ZAHLEN". Sie öffnet das Fenster "TEXT – Markierung erkennen". Das Fenster kann über dem Video geöffnet bleiben: der Bereich im Bild ist sichtbar, solange das Fenster geöffnet ist oder die Erkennung aktiviert ist.
Im oberen Bereich des Fensters befinden sich drei Elemente, die für alle Register gleich sind:
- Texterkennung – der Hauptschalter. Solange die Option nicht aktiviert ist, funktioniert die Texterkennung nicht und belastet das Programm nicht.
- ▭ Bereich auswählen – Klicken und den Rahmen über das Video ziehen, wobei Sie eine beliebige Maustaste verwenden. Während das Fenster geöffnet ist, können Sie den Rahmen auch mit der rechten Maustaste ziehen, ohne die Maustaste zu drücken. ✖ Bereich löschen – Entfernt den ausgewählten Bereich.
- Rechter Zustand: WARTEN, MARKIERUNG, PAUSE oder NACH SIGNAL. Darunter steht, was als GPU CUDA oder Prozessor gilt, die Anzahl der Bilder pro Sekunde, die gelesen werden, und die Anzahl der Millisekunden, die für ein einzelnes Bild benötigt werden.
Register „Markierung“ – Ergebnis und Vergleich mit dem Muster
Dies ist die Bedienungsleiste für den Operator. Oben: Modus "Alle Elemente im Bereich mit dem Muster vergleichen":
Wie der Text auf der Produktionslinie analysiert wird:
- Die Aufzeichnung beginnt am Anfang des Satzes. Wenn die Aufzeichnung mitten in dem Text gestartet wurde, wird der Rest des Textes übersprungen – das Programm wartet auf den nächsten Anfang.
- Jedes Bild wird an seiner richtigen Position im Muster platziert, und jeder Buchstabe erhält "Stimmen" aus allen Bildern, in denen er sichtbar ist. Das Ergebnis ist die Variante, die am häufigsten gelesen wird. Zufällige Fehler in einem einzelnen Bild (z. B. ein Buchstabe, der am Rand abgeschnitten ist, oder ein Lichtreflex) werden durch benachbarte Bilder korrigiert – je mehr Bilder zur Verfügung stehen, desto genauer ist das Ergebnis.
- Das Ergebnis wird ausgegeben, sobald die gesamte Phrase den erkannten Bereich durchlaufen hat, oder wenn für einen Zeitraum, der in der Registerkarte "Erkennung" festgelegt ist, keine neuen Zeichen mehr erkannt werden (d.h. der Prozess ist angehalten und der Bereich ist leer). Nach der Ausgabe des Ergebnisses wartet das Programm auf den Beginn der nächsten Phrase; Phrasen, die direkt aufeinander folgen, werden jeweils separat erfasst.
- Das Programm bestimmt selbst, in welcher Richtung sich der Text bewegt, oder es nimmt die Richtung aus der Einstellung „Woher stammt der Text“.
Während die Erkennung läuft, ist auf der rechten Seite des Eingangs die Meldung: 40 von 64 Zeichen sichtbar. In der Zeile „Erkannt“ werden der Übereinstimmungsgrad und der erkannte Text angezeigt. Nach Abschluss der Erkennung wird 73% – ERKANNT oder NICHT ERKANNT angezeigt. Diese Ergebnis wird groß über das Video angezeigt.
Wenn das Kontrollkästchen „Alle im Bereich mit dem Beispiel vergleichen“ nicht aktiviert ist, erfolgt eine schrittweise Zusammenfügung: Jeder Text wird von Anfang bis Ende gemäß den Einstellungen im Bereich „Anfang und Ende“ aufgezeichnet und gegebenenfalls mit der Referenzliste verglichen.
Unter der Liste befinden sich die Steuerelemente:
- Alle Markierungen / Nur die letzte – Wie viele sollen hier angezeigt und an den Browser übergeben werden.
- Datum, Uhrzeit und Markierung / Nur Markierung – welche Informationen an den Browser gesendet und im JSON-Format gespeichert werden sollen.
- ⚖ Vergleichen – Jedes fertige Markierung mit den markierten Referenzwerten vergleichen.
- 💾 JSON speichern, 📂 JSON hochladen (hochgeladene Markierungen werden als Referenz gespeichert), Liste löschen – entfernt Einträge vom Bildschirm und aus dem Browser, aber die Einträge bleiben in der Datenbank.
Der Bereich „Referenz“ enthält die Liste der korrekten Markierungen.
Die Referenz ist erforderlich, wenn auf der Linie mehrere unterschiedliche Markierungen (unterschiedliche Abschnitte, Chargen, Auftraggeber) vorhanden sind, und jede gelesene Markierung in der Liste gefunden werden muss.
- 📂 JSON-Datei hochladen – Liste aus einer Datei: Unser JSON, ein Array von Strings, Objekte mit dem Feld "text" oder einfach nur Text pro Markierung. Duplikate werden entfernt.
- ✓ Alle auswählen, ☐ Alle auswählen, Häkchen bei jeder Zeile – mit welcher Referenz vergleichen. ✖ Referenz löschen – Liste entfernen.
- Ähnlichkeit für Übereinstimmung, % – 100 bedeutet, dass Zeichen exakt übereinstimmen (ohne Berücksichtigung von Leerzeichen und Groß-/Kleinschreibung). Werte unter 100 erlauben Fehler bei der Eingabe und dem Lesen.
- Abgleichen nach Referenz von … % – Wenn das gelesene Ergebnis mit dem angegebenen Referenzwert übereinstimmt, wird die Markierung mit dem Text des Referenzwertes versehen (das ursprüngliche Ergebnis bleibt im Protokoll).
Der Bereich „Anfang und Ende“ gibt an, wo eine Markierung endet.
Diese Regeln gelten im Modus der sequentiellen Zusammenfügung (ohne Vorlage), bei dem das Programm selbst entscheidet, wo der Anfang und das Ende der Markierung liegen:
- Textbeginn – Die Aufzeichnung beginnt, wenn dieser Text in dem Bereich gelesen wird (z. B. UTCAB). Leer – bei jedem Text. Wenn der Text in einer Schleife verläuft, markiert das zweite Auftreten des Textbeginns den Bereich. Textbeginn in die Markierung einfügen – Dies wird im Ergebnis beibehalten.
- Pause nach dem Ende, ms – man sollte nach der Markierung keine weiteren Daten aufzeichnen.
- Absatzende – Diese Markierung zeigt, wo der Text endet (z. B. BY oder 2026).
- Zeit der Leere, ms – Wenn in diesem Bereich kein Text vorhanden ist, wird die Markierung beendet und gespeichert.
- Maximale Dauer, mit – für eine kontinuierliche Eingabe ohne Pausen: jede Sekunde entspricht einer einzelnen Markierung. 0 bedeutet keine Beschränkung.
Beispiel: Anfang von "UTCAB", Ende von "BY" – wird als "UTCAB … BY" aufgezeichnet, danach wartet das Programm auf das nächste "UTCAB". Vergleiche ohne Berücksichtigung der Groß- und Kleinschreibung, ähnliche russische und lateinische Buchstaben werden als gleich betrachtet.
Register "Erkennung": Zone, Dreh, Modelle
- Bereich im Bild, Pixel – X, Y, Breite und Höhe des Bereichs im Originalbild: präzise den Bereich ohne Maus anpassen.
- Textausrichtung innerhalb der Zone – Wie kann die Zone so gedreht werden, dass der Text geradeaus erscheint? Der Text wird von oben nach unten – „90° gegen den Uhrzeigersinn“ – und von unten nach oben – „90° im Uhrzeigersinn“ – angezeigt. Die Drehung des Videos auf dem Bildschirm kann über den Reiter „Video“ („Video drehen“) erfolgen.
- Erhöhung – Der kleine Text ist besser lesbar, wenn der Bereich vergrößert wird; „Auto“ wählt die passende Größe automatisch.
- Geringste Sicherheit, % – Zeilen, die mit geringer Sicherheit gelesen wurden, werden verworfen (Reflexionen, Buchstabenränder).
- Die kürzeste Länge der Markierung/der Zeichen – kürzere Ergebnisse werden nicht gespeichert.
- Beispiel: Keine neuen Zeichen, MS – Ergebnis ausgeben – Wie lange muss gewartet werden, wenn keine neuen Zeichen des Beispiels eingegeben werden (Band ist stillgelegt, Bereich leer, Text ist nicht lesbar)? Nach Erhalt des Ergebnisses wird eine neue Analyse gestartet.
- Woher stammt der Text? – Von welcher Seite des Bildes erscheint der neue Text? "Auto" bestimmt dies anhand der Bilder, wobei die manuelle Zusammenfügung zuverlässiger ist.
- Die Verwendung einer Grafikkarte (GPU) beschleunigt den Lesevorgang um ein Vielfaches, insbesondere bei NVIDIA-Karten mit CUDA-Unterstützung.
- Buchstaben und Zeichen – was kann in der Kennzeichnung enthalten sein: englische und russische Wörter, nur englische Wörter oder beliebige Zeichen; Zahlen und Leerzeichen – immer, Zeichen (Punkt, Bindestrich, Gabelstrich, Nr. usw.) werden durch Häkchen markiert. Das Modell wählt nur aus den erlaubten Zeichen aus – unnötige Zeichen erscheinen nicht, ähnliche werden genauer erkannt.
- Wörter anhand eines Wörterbuchs auswählen – das erkannte Wort (ab 3 Buchstaben, kein Zahlen- oder Code-Wert), das einer Wort aus dem Wörterbuch ähnelt (mit einem Mindestgrad von X Prozent Übereinstimmung), wird durch das korrekte Wort ersetzt. Das Wörterbuch enthält eigene Wörter (ein Wort pro Zeile) und, optional, Wörter aus dem Referenzwörterbuch.
Auf dieser Registerkarte finden Sie die Auswahl der Modelle: "Zeilen suchen" (v3 – schnell, v5 – präziser für Grafikkarten) und "Text lesen" (Kyrillisch, Latein und Zahlen; nur Latein und Zahlen; Latein europäischer Sprachen; präzises Server-Modell; oder zwei Modelle gleichzeitig – beide lesen die Zeile, es wird die zuverlässigere Variante verwendet). Das fehlende Modell wird mit der Schaltfläche "⬇ Herunterladen" heruntergeladen. Die Schaltfläche "Modelle im aktuellen Bereich vergleichen" führt die letzte Auszug des Bereichs durch alle Optionen – so können Sie sofort sehen, welches Modell Ihre Markierung am besten liest und wie viele Millisekunden dafür benötigt werden.
Register "Datenbank": Alle Markierungen werden gespeichert
Jedes erkannte Markierung wird in der Datenbank des Programms mit Datum, Uhrzeit, Kamera, Text und Ergebnis des Vergleichs gespeichert – unabhängig davon, was auf der Bildschirmliste angezeigt wird.
- 📤 Datenbank exportieren (JSON) – Alle Markierungen werden in eine Datei für Berichte oder zur Übertragung in ein System gespeichert.
- 📥 Datenbank herunterladen (Markierung → Referenz) – Nur die Texte der Markierung werden aus dem Export übernommen und werden zu Referenzen. So kann eine validierte Änderung als Vorlage für zukünftige verwendet werden.
- 🗑 Datenbank bereinigen – alle Einträge löschen.
Register „Netzwerk“ – Ergebnis im Browser und in JSON
Markieren Sie Daten über das Netzwerk senden – engiAI startet einen HTTP-Server (Standardport 8096). Jeder Computer oder Tablet im Netzwerk öffnet eine Seite mit Markierung, Vergleich und Referenz in einem normalen Browser; keine Installation ist erforderlich. Die Schaltflächen 📋 Kopieren und 🌐 Im Browser öffnen extrahieren die Adresse aus der Liste.
| Adresse | Was übertragen wird |
|---|---|
| / | Seite: Markierung, Vergleich, Referenz, JSON |
| /api/marks | Markierung – alle oder die letzte, mit Datum oder ohne (wie im Fenster ausgewählt) |
| /api/marks?show=last&format=text | Die letzte Markierung im einfachen Text |
| /api/last | Die letzte Markierung |
| /api/state | Zustand und Text in der aktuellen Zone |
| /api/refs | Referenz; POST /api/refs – Referenz (JSON) hochladen |
| /api/export | Die gesamte Markierungsdatenbank |
Beim ersten Start kann die Windows-Firewall Sie um Erlaubnis für den Zugriff auf engiAI bitten – erteilen Sie die Berechtigung für die erforderlichen Netzwerke.
Register „Eingabe“ – Aufnahme über den Signal des Controllers
Sob die fertige Ware vor der Kamera erscheint (durch Signal von Sensor, SPS, Roboter), markieren Sie „Eingangs-Signal erkennen (TCP)“. engiAI öffnet den TCP-Server; jedes Signal führt zu einem Foto der Zone: Der Text wird erkannt, verglichen und in der Datenbank gespeichert, genau wie im kontinuierlichen Modus.
- Netzwerk – auf welchem Netzwerkadapter soll das Signal empfangen werden («Alle Netzwerke» – auf jedem); IP-Adresse kann manuell eingegeben werden. Port – standardmäßig 8097.
- Signal – was als Signal betrachtet wird. Standardmäßig 1: entweder als Text („1“, „1\r\n“) oder als Byte 0x01.
- Antwort an den Kunden mit dem erkannten Text – die Antwort enthält eine Zeile mit Markierung, bei der Verknüpfung wird zusätzlich entweder OK oder NG über Tabulatorzeichen angegeben; KEIN TEXT – kein Text wurde gefunden, FEHLER … – keine Zone oder kein Bild vorhanden.
- 📸 Aktuelles Bild (Test) – Das Gleiche wie ein Signal, aber über einen Taster. Eine Prüfung ohne Controller ist mit einem TCP-UDP-Programm (Client) möglich: Adresse, Port, Wert "1", "Senden".
Eingabe und kontinuierliche Erkennung funktionieren gleichzeitig: Wenn "Texterkennung" aktiviert ist, überwacht das Programm weiterhin den Förderband, und für jedes Signal wird zusätzlich ein Bild erstellt.
