Zum Hauptinhalt springen

KI-GESTÜTZTE DOKUMENTATION

Was möchten Sie wissen?

OCR (Optical Character Recognition)

Der OV80i kann gedruckten Text, Seriennummern, Datumscodes und andere alphanumerische Zeichen direkt aus Kamerabildern mithilfe eines vortrainierten OCR-Modells lesen. Im Gegensatz zu Klassifizierern und Segmentierern benötigt OCR keine Trainingsdaten. Es funktioniert sofort einsatzbereit.

OCR ist nützlich, wenn Sie:

  • Überprüfen möchten, ob Seriennummern oder Chargencodes mit den erwarteten Werten übereinstimmen
  • Bestätigen möchten, dass Etiketten vorhanden und lesbar sind
  • Datums-/Ablaufcodes zur Rückverfolgbarkeit lesen möchten
  • Teilenummern an Komponenten während der Montage überprüfen möchten
Nur OV80i

OCR ist ausschließlich auf dem OV80i verfügbar. Der OV20i und OV10i unterstützen OCR nicht.


Funktionsweise von OCR

Der OV80i verwendet eine zweistufige KI-Pipeline zur Texterkennung:

  1. Text Detection: Findet, wo sich Text innerhalb der ROI befindet. Liefert Bounding Boxes um jedes erkannte Wort oder jeden Textbereich.
  2. Text Recognition: Liest die Zeichen innerhalb jeder erkannten Bounding Box und gibt die Textzeichenkette mit einem Konfidenzwert zurück.

Dieser gesamte Prozess läuft auf der NVIDIA Jetson Orin NX GPU der Kamera. Es ist keine Cloud-Verbindung erforderlich.

Das Modell erkennt einen breiten Zeichensatz, einschließlich:

  • Ziffern (0-9)
  • Lateinische Buchstaben (A-Z, a-z, Zeichen mit Akzenten)
  • Gängige Satz- und Sonderzeichen
  • Griechische Buchstaben
  • Währungssymbole
  • Mathematische Operatoren
hinweis

Der Zeichensatz ist fest vorgegeben und kann nicht angepasst werden. Das Modell unterstützt etwa 480 Zeichen und deckt damit die meisten gedruckten Industrietexte in lateinbasierten Sprachen ab.


Voraussetzungen

Bevor Sie OCR einrichten, benötigen Sie eine Kamera, die:

  • Physisch montiert und stabil ist
  • Mit Ihrem Netzwerk verbunden und im Browser zugänglich ist
  • Auf das Teil mit dem zu lesenden Text fokussiert ist

Falls Sie dies noch nicht erledigt haben, folgen Sie zuerst den Einstiegsanleitungen:


Schritt 1: Ein neues Recipe erstellen

Jede Inspektion beginnt mit einem Recipe. Ein Recipe ist ein komplettes Paket: Bildeinstellungen, Ausrichtung, Regions of Interest (ROIs), KI-Modelle und Ausgaberegeln.

  1. Navigieren Sie in der linken Seitenleiste zu All Recipes
  2. Klicken Sie oben rechts auf + New
  3. Geben Sie Ihrem Recipe einen aussagekräftigen Namen (z. B. „Serial Number Check", „Label Verification")
  4. Klicken Sie auf Activate, um es zum aktiven Recipe zu machen, und klicken Sie dann auf Edit, um den Recipe Editor zu öffnen

Übersicht des Recipe Editors mit allen Blöcken

Der Recipe Editor zeigt die vollständige Inspektions-Pipeline. Sie arbeiten von links nach rechts:

  • Imaging Setup (Kameraeinstellungen)
  • Image Alignment & Inspection Setup (Template, ROIs)
  • AI Blocks (Classification, Segmentation, OCR, Measurement)
  • Set Pass/Fail & IO Logic (Ausgaberegeln)

Für eine detaillierte Anleitung zur Erstellung von Recipes siehe Erste Inspektion erstellen.


Schritt 2: Bildeinstellungen konfigurieren

Gute Bildqualität ist die Grundlage für genaue OCR. Text muss klar sichtbar sein und einen starken Kontrast aufweisen.

  1. Klicken Sie auf Configure Imaging oder navigieren Sie zum Tab Imaging Setup
  2. Passen Sie die folgenden Einstellungen an, während Sie die Live-Vorschau beobachten:
EinstellungZiel für OCR
ExposureHell genug, um den gesamten Text klar zu erkennen. Zu dunkel und die Zeichen verschwinden im Hintergrund. Zu hell und weiße Etiketten werden überstrahlt.
GainSo niedrig wie möglich halten. Hoher Gain verursacht Rauschen, das für den Detektor wie Textartefakte aussieht.
GammaAnpassen, um den Kontrast zwischen Text und Hintergrund zu verbessern.
FocusText muss scharf sein. Wenn Zeichen unscharf oder verschwommen wirken, passen Sie den Fokusring des C-Mount-Objektivs an.
Beleuchtung ist entscheidend für OCR

Die OCR-Genauigkeit hängt stark von der Bildqualität ab. Der Text muss im Kamerabild mit gutem Kontrast zum Hintergrund klar sichtbar sein. Dunkler Text auf hellem Hintergrund oder heller Text auf dunklem Hintergrund funktionieren beide gut. Vermeiden Sie:

  • Ungleichmäßige Beleuchtung, die Schatten über den Zeichen erzeugt
  • Blendungen auf glänzenden Etiketten
  • Unterbelichtung, die Text vom Hintergrund schwer unterscheidbar macht
tipp

Zoomen Sie in der Live-Vorschau in den Textbereich hinein. Können Sie jedes Zeichen deutlich lesen? Wenn Sie es nicht lesen können, kann die KI es auch nicht.

Für eine detaillierte Anleitung zu allen Bildeinstellungen siehe Bildeinstellungen.


Schritt 3: Vorlagenausrichtung einrichten

Die Vorlagenausrichtung teilt der Kamera mit, wie sie die Position und Ausrichtung Ihres Teils verfolgen soll. Dies ist unerlässlich, da Teile nicht immer an exakt derselben Stelle auf dem Förderband oder der Vorrichtung landen.

  1. Navigieren Sie zum Reiter Template Image and Alignment
  2. Platzieren Sie Ihr Teil im Sichtfeld der Kamera
  3. Klicken Sie auf Capture Template, um ein Referenzbild aufzunehmen
  4. Zeichnen Sie 2–3 kleine Vorlagenbereiche auf Merkmalen, die immer vorhanden und leicht zu identifizieren sind (z. B. Ecken, Logos, Montagelöcher)
hinweis

Platzieren Sie die Vorlagenbereiche so weit wie möglich voneinander entfernt auf dem Teil. Dies reduziert den Winkeljitter bei der Ausrichtung erheblich. Zwei nahe beieinander liegende Bereiche ergeben eine schlechte Rotationsstabilität; zwei Bereiche an gegenüberliegenden Ecken ergeben eine ausgezeichnete Stabilität.

warnung

Wenn Sie die Ausrichtung überspringen, sind Ihre OCR-ROIs an absolute Pixelpositionen gebunden. Jede Bewegung des Teils führt dazu, dass die ROI den Text verfehlt. Richten Sie die Ausrichtung für den Produktionseinsatz stets ein.

Einen ausführlichen Leitfaden zur Vorlagenausrichtung finden Sie unter Alignment.


Schritt 4: OCR Regions of Interest (ROIs) erstellen

Jetzt definieren Sie genau, wo auf dem Teil die Kamera nach Text suchen soll. Dies ist der wichtigste Schritt für die OCR-Genauigkeit.

4a. Zur Inspection Setup navigieren

  1. Klicken Sie im Recipe Editor auf den Reiter Inspection Setup
  2. Sie sehen den Inspection Editor mit Ihrem Vorlagenbild

4b. Das OCR-Modell hinzufügen

  1. Suchen Sie im rechten Bereich den Abschnitt Models
  2. Wenn kein OCR-Modell aufgeführt ist, klicken Sie unten auf die Schaltfläche Add und wählen Sie OCR
  3. Das OCR-Modell erscheint in der Models-Liste
hinweis

Sie können nur einen OCR-Block pro Recipe haben. Sie können jedoch innerhalb dieses Blocks mehrere ROIs erstellen, um Text aus verschiedenen Bereichen des Teils zu lesen.

4c. Eine OCR-ROI erstellen

  1. Stellen Sie sicher, dass die Zeile des OCR-Modells in der Models-Liste ausgewählt (hervorgehoben) ist
  2. Klicken Sie im Abschnitt Region of Interest auf Add ROI
  3. Eine neue rechteckige ROI erscheint auf dem Bild
  4. Ziehen Sie die ROI, um sie über dem Text zu positionieren, den Sie lesen möchten
  5. Ändern Sie die Größe, indem Sie an den Eckpunkten ziehen

Inspection Setup mit OCR-ROI über Text gezeichnet

4d. Die ROI-Ausrichtung festlegen

ROI-Ausrichtung MUSS mit der Textausrichtung übereinstimmen

Dies ist das Wichtigste, was Sie richtig machen müssen. Die Ausrichtung Ihrer ROI muss mit der Ausrichtung des Textes übereinstimmen, den Sie lesen möchten.

Die OCR-Engine schneidet das Bild anhand des ROI-Winkels aus und verarbeitet den Ausschnitt anschließend, als ob der Text horizontal wäre. Wenn Ihr ROI-Winkel nicht dem Textwinkel entspricht, versucht die Engine, gedrehten Text zu lesen, und liefert unbrauchbare Ergebnisse.

Beispiele:

  • Text wird horizontal von links nach rechts gelesen: ROI-Winkel sollte 0 Grad betragen
  • Text ist um 90 Grad im Uhrzeigersinn gedreht: ROI-Winkel sollte 90 Grad betragen
  • Text steht auf dem Kopf: ROI-Winkel sollte 180 Grad betragen
  • Text steht in einem 45-Grad-Winkel: ROI-Winkel sollte 45 Grad betragen

So drehen Sie eine ROI:

  1. Wählen Sie die ROI aus, indem Sie darauf klicken
  2. Verwenden Sie den Rotationsgriff an der Ecke der ROI, ODER
  3. Geben Sie den Winkelwert direkt in den Positionsfeldern am unteren Rand der Zeichenfläche ein

Die Positionsleiste zeigt: H (Höhe), W (Breite), X und Y (Position) sowie den angle (Winkel) in Grad.

Ausgewählte ROI zeigt Position, Abmessungen und einen Winkel von 90,96 Grad

4e. ROI korrekt dimensionieren

  • Legen Sie die ROI so eng wie möglich um den Textbereich. Zusätzlicher Hintergrund führt zu Störungen und kann Fehlerkennungen verursachen.
  • Fügen Sie einen kleinen Rand (10-20 Pixel) um den Text hinzu, damit Zeichen an den Rändern nicht abgeschnitten werden.
  • Schließen Sie keinen anderen Text ein, den Sie nicht lesen möchten. Wenn es mehrere Textbereiche gibt, erstellen Sie separate ROIs für jeden.
tipp

Wenn Sie Text aus mehreren Bereichen des Teils lesen müssen (z. B. eine Seriennummer UND einen Datumscode), erstellen Sie für jeden eine separate ROI. Dies liefert unabhängige Ergebnisse und erleichtert die Konfiguration von Pass/Fail-Regeln.

4f. Zusätzliche ROIs erstellen (optional)

Wiederholen Sie die Schritte 4c-4e für jeden Textbereich, den Sie lesen möchten. Jede ROI erhält einen eigenen Namen in der Region of Interest-Liste. Benennen Sie sie mit einem beschreibenden Namen um (z. B. "Serial Number", "Date Code", "Part Label"), indem Sie auf den Namen doppelklicken.

tipp

Verwenden Sie Kopieren und Einfügen, um ROIs zu duplizieren. Die Namen werden automatisch inkrementiert (z. B. "ROI", "ROI (1)", "ROI (2)").


Schritt 5: OCR-Block konfigurieren und testen

5a. Zum OCR-Block navigieren

Klicken Sie auf den Tab OCR Block in der Tab-Leiste des Recipe Editors. Sie sehen den Kamera-Feed auf der linken Seite und ein Einstellungs-Panel auf der rechten Seite.

OCR Block – Übersichtsseite

Das rechte Panel zeigt:

  • Beschreibung von OPTICAL CHARACTER RECOGNITION
  • Erläuterung, dass es sich um ein vortrainiertes Modell handelt, das keine Trainingsdaten benötigt
  • Anweisungen zur Validierung mittels Live Preview oder Test

5b. Live Preview aktivieren

Aktivieren Sie das Kontrollkästchen Live Preview Mode oben rechts. Die Kamera beginnt, Frames in Echtzeit zu verarbeiten.

OCR Live Preview mit Parameter-Panel

Bei aktiviertem Live Preview sehen Sie:

  • Processing Time: Wie lange das OCR-Modell pro Frame benötigt
  • Latency: Gesamte Round-Trip-Zeit einschließlich Bildaufnahme und Rendering
  • Violette Bounding Boxes um erkannte Textbereiche, überlagert auf dem Kamera-Feed
  • Erkannter Text, angezeigt als Labels auf jeder Bounding Box
  • Parameter-Panel auf der rechten Seite zur Feinabstimmung der Erkennungseinstellungen

5c. Überprüfen, ob OCR korrekt liest

Platzieren Sie bei aktivem Live Preview Ihr Teil unter der Kamera und überprüfen Sie:

  1. Werden alle Textbereiche erkannt? Sie sollten violette Boxen um jedes Wort/jede Phrase in der ROI sehen.
  2. Wird der Text korrekt gelesen? Die Labels sollten mit dem tatsächlichen Text auf dem Teil übereinstimmen.
  3. Gibt es Fehlerkennungen? Werden Nicht-Text-Bereiche fälschlicherweise als Text identifiziert?
  4. Bewegen Sie das Teil leicht. Funktioniert OCR weiterhin an verschiedenen Positionen (dies testet die Ausrichtung)?

Falls Text nicht erkannt oder falsch gelesen wird, prüfen Sie:

  • ROI-Ausrichtung stimmt mit Textausrichtung überein (siehe Schritt 4d)
  • Die ROI ist korrekt über dem Text positioniert
  • Bildqualität ist gut (scharfer Fokus, guter Kontrast, gleichmäßige Beleuchtung)
  • Versuchen Sie, die OCR-Parameter anzupassen (siehe nächster Abschnitt)

Schritt 6: OCR-Parameter abstimmen

Wenn Live Preview aktiviert ist, zeigt das rechte Panel vier einstellbare Parameter. Diese steuern die Texterkennungs-Stufe (Auffinden von Text), nicht die Erkennungsstufe (Lesen des Inhalts).

ParameterStandardFunktion
Text Segmentation Threshold0.10Wie sicher der Detektor sein muss, dass ein Bereich Text enthält. Höhere Werte = strengere Erkennung, weniger False Positives, kann aber schwachen Text übersehen. Niedrigere Werte = empfindlicher, erfasst schwachen Text, kann aber Fehlerkennungen haben. Bereich: 0.0 bis 1.0.
Unclip Ratio4.0Wie stark erkannte Bounding Boxes vom Textkontur nach außen erweitert werden. Höhere Werte = größere Boxen. Erhöhen, wenn Boxen die Ränder großer Zeichen abschneiden. Verringern, wenn benachbarte Wörter in einer Box zusammengeführt werden.
Unclip Ceiling20Maximale Pixel-Erweiterung beim Unclipping. Dies begrenzt das Wachstum, damit große Ratio-Erweiterungen bei großem Text keine riesigen Boxen erzeugen. Erhöhen, wenn großer Text auch nach Erhöhung der Unclip Ratio noch abgeschnitten wird.
Min Text Area500Mindestfläche (in Pixeln) für einen erkannten Textbereich. Alles Kleinere wird als Rauschen verworfen. Erhöhen, wenn kleine Artefakte als Text erkannt werden. Verringern, wenn kleiner, aber gültiger Text herausgefiltert wird.
Wann Parameter angepasst werden sollten

Beginnen Sie mit den Standardwerten. Passen Sie nur an, wenn Sie spezifische Probleme im Live Preview sehen:

ProblemAnzupassender ParameterRichtung
Nicht-Text-Bereiche werden als Text erkanntText Segmentation ThresholdErhöhen
Gültiger Text wird übersehenText Segmentation ThresholdVerringern
Bounding Boxes schneiden Zeichenränder abUnclip RatioErhöhen
Benachbarte Wörter verschmelzen zu einer BoxUnclip RatioVerringern
Boxen werden bei großem Text zu großUnclip CeilingVerringern
Großer Text wird auch nach Erhöhung der Unclip Ratio noch abgeschnittenUnclip CeilingErhöhen
Rauschen/Artefakte werden als Text erkanntMin Text AreaErhöhen
Kleiner gültiger Text wird herausgefiltertMin Text AreaVerringern

Parameteränderungen werden im Live Preview sofort wirksam, sodass Sie iterativ abstimmen können. Diese Parameter gelten auch während Produktionsaufnahmen, nicht nur während der Vorschau.


Schritt 7: Test mit aufgenommenen Bildern

Nach dem Anpassen der Parameter mit Live Preview validieren Sie OCR anhand einer Reihe von Produktionsmustern.

7a. Verwendung des Testpanels

  1. Deaktivieren Sie den Live Preview Mode (Häkchen entfernen)
  2. Klicken Sie auf die Schaltfläche Test

Test OCR Block-Panel mit den Optionen Select From Library und Upload

  1. Klicken Sie auf Select From Library, um Bilder aus zuvor erfassten Inspektionen auszuwählen, oder klicken Sie auf Upload Captures, um Bilder von Ihrem Computer hochzuladen
  2. Die Testergebnisse zeigen für jede ROI:
    • Detected Text (in Monospace-/Code-Formatierung angezeigt)
    • Confidence (farbcodiertes Tag: grün über 80 %, orange über 50 %, rot unter 50 %)
    • Detection Count (wie viele Textbereiche gefunden wurden)

7b. Worauf ist zu achten

  • Konsistenz: Liest OCR jedes Mal denselben Text für dasselbe Teil?
  • Genauigkeit: Stimmen die erkannten Zeichenketten mit dem tatsächlichen Text auf dem Teil überein?
  • Confidence-Werte: Liegen sie durchgängig über 80 %? Niedrige Confidence-Werte weisen häufig auf Probleme mit der Bildqualität hin.
  • Grenzfälle: Testen Sie mit Teilen, die verschmierten, verblassten oder teilweise verdeckten Text aufweisen.
vorsicht

Wenn die Confidence-Werte durchgängig unter 80 % liegen, überprüfen Sie Ihre Bildeinstellungen (Schritt 2). Die OCR-Genauigkeit hängt direkt mit der Bildqualität zusammen. Keine noch so gute Parameteranpassung kann ein unscharfes oder schlecht ausgeleuchtetes Bild kompensieren.


Schritt 8: Pass/Fail-Regeln einrichten (IO Logic)

Nachdem OCR den Text korrekt erkennt, müssen Sie definieren, was einen Pass oder Fail darstellt. Navigieren Sie zur Registerkarte IO Logic.

Basic Mode

Der Basic Mode bietet eine einfache regelbasierte Benutzeroberfläche für OCR-Pass/Fail-Logik. Es sind keine Node-RED-Kenntnisse erforderlich.

Basic Mode Pass/Fail & IO Logic mit Abschnitt OCR Rules

Die Seite zeigt:

  • Preview / Test-Registerkarten auf der linken Seite (zur Visualisierung der Ergebnisse gegen Ihre Regeln)
  • Abschnitt OCR Rules auf der rechten Seite
  • Schaltfläche Save & Deploy zum Aktivieren der Regeln
  • Schaltfläche Advanced Mode zum Wechseln zu Node-RED

Erstellen einer Regel

Klicken Sie auf + Add rule, um eine Pass/Fail-Regel zu erstellen. Jede Regel hat drei Felder:

Add rule mit ROIs-Dropdown, Operator-Dropdown und Text-Eingabe

FeldBeschreibung
ROIsWelche ROI(s) ausgewertet werden sollen. Klicken Sie zum Erweitern und wählen Sie "All ROIs" oder bestimmte Bereiche aus.
OperatorDer Vergleich, der auf den erkannten Text angewendet wird.
TextDie erwartete Textzeichenfolge, mit der verglichen wird.

Verfügbare Operatoren

Klicken Sie auf das Operator-Dropdown, um alle vier Optionen anzuzeigen:

Operator-Dropdown mit equals, not equals, includes, not includes

OperatorVerhaltenBeispielanwendungsfall
= (equals)Der gesamte zusammengeführte erkannte Text muss exakt dem erwarteten Text entsprechenÜberprüfen, dass eine Seriennummer exakt "SN-2025-0042" liest
!= (not equals)Der zusammengeführte Text darf NICHT dem erwarteten Text entsprechenTeile mit einem bekannten fehlerhaften Code zurückweisen
includesDer zusammengeführte Text muss den erwarteten Text als Teilzeichenfolge enthaltenPrüfen, dass ein Etikett irgendwo das Wort "SAFETY" enthält
not includesDer zusammengeführte Text darf den erwarteten Text NICHT enthaltenSicherstellen, dass ein veralteter Produktcode nicht erscheint

Wie Text verglichen wird

Wichtig: Verhalten beim Zusammenfügen von Text

Wenn ein ROI mehrere erkannte Textbereiche enthält (z. B. der Detektor findet "LOT" und "2025" als separate Wörter), werden alle einzelnen Textzeichenketten vor dem Vergleich mit Leerzeichen zusammengefügt.

Wenn der Detektor also drei Textbereiche mit "LOT", "2025" und "A1" findet, wird der zusammengefügte Text zu "LOT 2025 A1". Ihre Regel vergleicht mit dieser vollständigen zusammengefügten Zeichenkette.

Das bedeutet:

  • Eine equals-Regel für "LOT 2025 A1" würde bestehen
  • Eine includes-Regel für "2025" würde bestehen
  • Eine equals-Regel nur für "LOT" würde fehlschlagen (da der zusammengefügte Text mehr als nur "LOT" enthält)

Mehrere Regeln

Sie können mehrere Regeln hinzufügen, indem Sie erneut auf + Add rule klicken. Alle Regeln verwenden UND-Logik: Jede Regel muss bestehen, damit die OCR-Prüfung besteht. Wenn eine einzige Regel fehlschlägt, schlägt die gesamte Inspektion fehl.

ROI-Auswahl

ROIs-Dropdown mit der Option "All ROIs"

Klicken Sie auf das ROIs-Dropdown, um auszuwählen, auf welche Region(en) die Regel angewendet werden soll:

  • All ROIs: Die Regel wertet Text aus allen OCR-Regionen zusammen aus
  • Specific ROI: Erweitern Sie, um einzelne ROIs nach Namen auszuwählen (deshalb ist es wichtig, Ihre ROIs in Schritt 4f aussagekräftig zu benennen)

Speichern und Bereitstellen

Klicken Sie nach der Konfiguration Ihrer Regeln auf Save & Deploy, um sie zu aktivieren. Die Regeln werden sofort für alle zukünftigen Inspektionen wirksam.


Advanced Mode (Node-RED)

Für komplexere Pass/Fail-Logik, die der Basic Mode nicht abbilden kann, wechseln Sie in den Advanced Mode.

Klicken Sie auf die Schaltfläche Advanced Mode, um einen Bestätigungsdialog zu sehen:

Basic-Mode-Bestätigungsdialog erklärt den Wechsel

Der Dialog erklärt:

  • Der Advanced Mode verwendet die vollständige visuelle Programmierumgebung von Node-RED
  • Alle Basic-Mode-Regeln werden deaktiviert
  • Sie können jederzeit in den Basic Mode zurückwechseln

Klicken Sie auf Switch to Advanced Mode (oder wenn Sie sich bereits im Advanced Mode befinden, lautet die Schaltfläche Basic Mode).

Advanced-Mode Node-RED-Flow mit Check-OCR-Node

Im Advanced Mode sehen Sie ein Node-RED-Flow-Canvas mit vorgefertigten Nodes, darunter:

  • All Block Outputs: Empfängt Ergebnisse aller AI-Blöcke (Classification, Segmentation, OCR, Measurement)
  • Check OCR (oder ähnlich): Ein Function-Node mit JavaScript, das OCR-Ergebnisse auswertet
  • Classification Block Logic / Format Data for PLC / Trigger: Weitere Output-Nodes für die Integration
  • Inspection Pass/Fail: Endgültige Pass/Fail-Entscheidung
  • Save to Library: Speichert Ergebnisse

OCR-Ausgabe-Payload in Node-RED

Im Advanced Mode sind OCR-Ergebnisse im msg.payload.ocr-Objekt verfügbar. Dies gibt Ihnen vollen programmatischen Zugriff auf jede Erkennung:

{
"predictions": [
{
"roi_id": 1,
"roi_name": "Serial Number",
"center_x_global": 450,
"center_y_global": 220,
"angle_global": 90,
"search_area_id": 1,
"detections": [
{
"text": "SN-2025-0042",
"confidence": 0.95,
"roi_bbox": {
"x": 10,
"y": 5,
"width": 120,
"height": 30,
"angle": 0
},
"global_bbox": {
"x": 450,
"y": 220,
"width": 120,
"height": 30,
"angle": 90
}
}
]
}
]
}
FeldBeschreibung
roi_idNumerische ID des ROI, das dieses Ergebnis erzeugt hat
roi_nameDer Name, den Sie dem ROI gegeben haben (z. B. "Serial Number")
center_x_global / center_y_globalMittelpunktposition des ROI in Vollbild-Koordinaten
angle_globalRotationswinkel des ROI im Vollbild
search_area_idDer Inspektionstyp / Suchbereich, zu dem dieses ROI gehört
detectionsArray einzelner Texterkennungen innerhalb dieses ROI
detections[].textDie erkannte Textzeichenkette
detections[].confidenceErkennungskonfidenz von 0.0 bis 1.0 (begrenzt)
detections[].roi_bboxBounding-Box-Position relativ zum ROI-Crop-Ursprung
detections[].global_bboxBounding-Box-Position im vollständigen Kamerabild (berücksichtigt ROI-Rotation und -Ausrichtung)
tipp

Verwenden Sie msg.payload.ocr.predictions[0].detections.map(d => d.text).join(" "), um dieselbe zusammengefügte Textzeichenkette zu erhalten, die der Basic Mode zum Vergleich verwendet.

Mit dem Advanced Mode können Sie:

  • Regex-Muster auf erkannten Text mittels JavaScript anwenden
  • Erkennungen nach Konfidenzschwelle filtern
  • OCR-Ergebnisse mit Classification-/Segmentation-Ergebnissen für komplexe Logik kombinieren
  • OCR-Text für PLC-Ausgabe formatieren (z. B. die erkannte Seriennummer über EtherNet/IP senden)
  • Benutzerdefinierte Nachrichten an Microsoft Teams oder per E-Mail basierend auf OCR-Inhalten senden

Eine ausführliche Anleitung zu Node-RED finden Sie unter Node-RED Basics.

Wechseln zwischen den Modi

Sie können jederzeit zwischen Basic und Advanced Mode wechseln, indem Sie die Umschaltschaltfläche oben auf der IO-Logic-Seite verwenden. Beim Wechsel in den Basic Mode wird jede bereitgestellte Node-RED-Logik deaktiviert und durch Basic-Mode-Regeln ersetzt. Beim Zurückwechseln wird der Node-RED-Flow wiederhergestellt.


Schritt 9: Rezept bereitstellen

Sobald Ihre OCR-Einrichtung abgeschlossen und getestet ist:

  1. Navigieren Sie zurück zum Recipe Editor (klicken Sie auf Recipe Editor in der linken Seitenleiste)
  2. Klicken Sie auf die lila Schaltfläche Deploy Recipe unten rechts
  3. Das Rezept ist nun aktiv und führt Inspektionen durch

Ergebnisse anzeigen

HMI

Die HMI-Seite zeigt Live-Inspektionsergebnisse an. Bei aktivem OCR sehen Sie:

  • Den Live-Kamerafeed mit lila Begrenzungsrahmen um den erkannten Text
  • Textlabels, die anzeigen, was gelesen wurde
  • Pass/Fail-Status basierend auf Ihren IO Logic-Regeln
  • Laufende Statistiken: Gesamtinspektionen, bestanden, fehlgeschlagen, Ausbeuteprozentsatz

HMI-Ansicht mit Live-OCR-Inspektionsergebnissen

Library

Navigieren Sie zu Library in der linken Seitenleiste, um gespeicherte Ergebnisse vergangener Aufnahmen zu überprüfen. Jeder Aufnahmeeintrag zeigt:

  • Das aufgenommene Bild mit OCR-Overlay
  • Erkannter Text pro ROI
  • Konfidenzwerte
  • Pass/Fail-Ergebnis

Fehlerbehebung

Kein Text erkannt

Mögliche UrsacheBehebung
ROI nicht über dem Text positioniertROI im Inspection Setup neu positionieren
ROI-Ausrichtung stimmt nicht mit dem Text übereinROI drehen, um sie an der Textrichtung auszurichten (Schritt 4d)
Text im Bild zu kleinKamera näher heranbringen oder ein Objektiv mit längerer Brennweite verwenden
Text zu klein im Verhältnis zum ROIROI enger um den Textbereich legen
Min Text Area zu hochParameter Min Text Area verringern
Schlechte Beleuchtung / geringer KontrastBeleuchtung verbessern, um den Kontrast zwischen Text und Hintergrund zu maximieren
Text ist unscharfFokus am C-Mount-Objektiv anpassen und stabile Kamerahalterung sicherstellen
Ausrichtung nicht eingerichtetTexterkennung erfordert Ausrichtung. Vorlagenausrichtung einrichten (Schritt 3)

Falscher Text erkannt (Lesefehler)

Mögliche UrsacheBehebung
ROI-Ausrichtung stimmt nicht mit der Textausrichtung übereinDies ist die häufigste Ursache. ROI drehen, um sie an der Textrichtung auszurichten (Schritt 4d)
Geringe Bildqualität oder RauschenBelichtung erhöhen, Gain reduzieren, Beleuchtung verbessern
Text Segmentation Threshold zu niedrigErhöhen, um falsche Texterkennungen herauszufiltern
Überlappende Textbereiche werden zu einer Erkennung zusammengeführtUnclip Ratio verringern, um das Zusammenführen von Boxen zu verhindern
Mehrere Textzeilen in einem ROISeparate ROIs für jede Zeile erstellen, wenn die Lesereihenfolge wichtig ist

OCR-Konfidenz ist durchgehend niedrig

Mögliche UrsacheBehebung
Schlechte BeleuchtungsgleichmäßigkeitGleichmäßige Ausleuchtung des Textbereichs sicherstellen
Blendung oder Reflexionen auf Text (besonders bei glänzenden Etiketten)Beleuchtungswinkel anpassen, um Spiegelreflexionen zu eliminieren. Diffuse Beleuchtung in Betracht ziehen.
Sehr kleine oder stark stilisierte SchriftKamera näher heranbringen oder ein Objektiv mit längerer Brennweite verwenden, um die Textgröße im Bild zu erhöhen
Beschädigter, verblasster oder teilweise gedruckter TextOCR kann nur lesen, was die Kamera sieht. Bei physisch beschädigtem Text ist die Genauigkeit geringer.
Hohe Gain-EinstellungGain reduzieren. Hohe Gain-Werte erzeugen Rauschen, das wie Textartefakte aussieht.

Pass/Fail-Regeln funktionieren nicht wie erwartet

Mögliche UrsacheBehebung
Text wird anders zusammengefügt als erwartetLive Preview aktivieren und genau prüfen, welcher Text erkannt wird. Denken Sie daran, dass mehrere Erkennungen mit Leerzeichen zusammengefügt werden.
Verwendung von "equals", wenn "includes" angemessener wäreWenn Sie nur an einer Teilzeichenfolge interessiert sind, verwenden Sie "includes" statt "equals"
Regeln nicht bereitgestelltNach Änderung von Regeln im Basic Mode auf Save & Deploy klicken
Falscher ROI in der Regel ausgewähltROIs-Dropdown in Ihrer Regel überprüfen, um sicherzustellen, dass die richtige Region angesprochen wird

Einschränkungen

  • Maximal 1 OCR-Block pro Rezept (Sie können mehrere ROIs innerhalb dieses Blocks haben)
  • Nur englisch-optimiertes Modell: Das vortrainierte Modell ist für lateinbasierten gedruckten Text optimiert. Handschriftlicher Text, Schreibschrift oder nicht-lateinische Schriften (Chinesisch, Japanisch, Koreanisch, Arabisch) werden nicht unterstützt.
  • Keine Regex- oder Musterabgleichsfunktion im Basic Mode: Pass/Fail-Regeln verwenden einfachen String-Vergleich (equals, not equals, includes, not includes). Für komplexe Validierungsmuster (z. B. Abgleich mit "SN-####-####") verwenden Sie den Advanced Mode (Node-RED) mit benutzerdefinierten JavaScript-Regex-Ausdrücken.
  • Kein benutzerdefinierbarer Zeichensatz: Das 480-Zeichen-Wörterbuch des Modells ist fest vorgegeben. Sie können die Erkennung beispielsweise nicht auf reine Ziffern beschränken. Verwenden Sie Pass/Fail-Regeln, um das erwartete Format zu validieren.
  • Keine garantierte Textreihenfolge: Wenn mehrere Textbereiche innerhalb einer ROI erkannt werden, werden sie in Erkennungsreihenfolge (nach Kontur) zusammengefügt, nicht unbedingt in Leserichtung (links nach rechts, oben nach unten). Wenn die Lesereihenfolge wichtig ist, verwenden Sie separate ROIs für jede Textzeile.
  • Nur vortrainiertes Modell: Im Gegensatz zu Classification und Segmentation kann das OCR-Modell nicht auf Ihre spezifischen Schriftarten oder Textstile nachtrainiert oder feinabgestimmt werden. Es verwendet das integrierte vortrainierte OCR-Modell.

Siehe auch