Fehlerbehebung

Diese Seite beginnt mit den allgemeinen Prüfungen, die für jedes Problem gelten. Danach folgen die Probleme, gruppiert nach Leseergebnissen, Statuscodes, Sprachmodellen, dem Bild-Stream sowie Modulen und Einstellungen. Führen Sie zuerst die allgemeinen Prüfungen durch und suchen Sie dann Ihr Symptom.

Alle Adressen sind relativ zu hdvisionsystems/lumiscan-text-reader/.

Allgemeine Prüfungen

  • Lesen Sie output/status-code und output/status-text der Operation, für einen Lesevorgang <module>/read-text/output/status-code und <module>/read-text/output/status-text. Das Vorzeichen des Statuscodes zeigt, ob es funktioniert hat: größer als 0 ist Erfolg, 0 bedeutet, dass die Operation seit dem Start der Anwendung nicht gelaufen ist, kleiner als 0 bedeutet, dass sie fehlgeschlagen ist und nichts erzeugt hat. Die Codes sind unter Ausführungsstatus aufgelistet.

  • Ein fehlgeschlagener Schreibvorgang auf execute antwortet nur mit einem Statuscode (über REST ein bloßes 400). Lesen Sie anschließend output/status-text: Er beginnt mit ok: oder error: und nennt den Grund.

  • Lesen Sie das Anwendungsprotokoll. Auf ctrlX OS lesen Sie es im ctrlX Logbook oder mit journalctl, auf einem PC in der Konsolenausgabe der Anwendung. Das Protokoll enthält denselben Text wie output/status-text; sind mehrere Eingaben falsch, erhält jede ihre eigene Warnzeile.

  • Prüfen Sie, was der Lesevorgang tatsächlich verwendet hat: language, engine und layout in output/result. Sie entsprechen nicht immer den Eingaben, die Sie gesetzt haben.

  • Prüfen Sie, ob die Bildquelle auf demselben Gerät läuft wie der Text Reader - derselben ctrlX CORE oder demselben ctrlX IPC oder demselben PC. Ein entfernter Zugriff auf den Data Layer wird nicht unterstützt.

  • Prüfen Sie die Bildqualität. Keine Einstellung stellt Text wieder her, den die Kamera nicht erfasst hat: Zeichen mindestens 20 Pixel hoch (30 oder mehr bei kleinem oder verrauschtem Druck), guter Kontrast, Text im Fokus und nicht überstrahlt, Text ungefähr aufrecht, sofern Sie kein Layout mit Orientierungserkennung verwenden. Siehe Voraussetzungen.

  • Prüfen Sie die Lizenz. Auf ctrlX OS beendet sich die Anwendung kurz nach dem Start, wenn die Lizenz fehlt; der Grund wird in das Systemprotokoll geschrieben. Ein Modul, das keine Lizenz auf dem Gerät abdeckt, wird mit Status -11 abgelehnt. Siehe Voraussetzungen.

  • Probleme, die alle LumiScan-Apps gemeinsam haben - eine App oder ein Modul fehlt im Baum, ein Knoten ist „not found", ein Methodenaufruf wird abgelehnt, ein Stream liefert nichts -, sind unter Fehlerbehebung im Handbuch LumiScan Keryx beschrieben.

Leseergebnisse

Problem: Statuscode 1, aber keine Wörter

Symptome

output/status-code ist 1 (OK), aber output/result hat word_count 0.

Mögliche Ursachen
  • Im Bild ist nichts Lesbares: ein leerer Träger, ein falsch herum liegendes Teil oder ein Etikett außerhalb des Bildes. Das ist die normale Antwort, kein Fehler.

  • Die Kennzeichnung liegt außerhalb des Ausschnitts. Eine Kennzeichnung, die aus dem Ausschnitt herauswandert, wird als nichts gelesen.

  • Die Kennzeichnung ist nicht im Fokus oder steht nicht richtig herum.

  • input/min-score filtert alle Wörter heraus. words[] wird nach min-score gefiltert; text nicht.

  • Ein Farbbild, in dem ein Foto oder eine andere farbenfrohe Szene zusammen mit dem Text im Bild ist, siehe Problem: Das Leseergebnis ist leer, obwohl der Text in einem Farbbild deutlich sichtbar ist.

Diagnose
  1. Prüfen Sie text in output/result. Ist text nicht leer, aber word_count 0, wurden die Wörter gefiltert: Vergleichen Sie die Wort-Konfidenzen mit min_score im Ergebnis, dem angewendeten Schwellwert.

  2. Prüfen Sie, ob die Kennzeichnung innerhalb von input/crop/startX, input/crop/startY, input/crop/width und input/crop/height liegt. image_width und image_height im Ergebnis zeigen die gelesene Region.

  3. Prüfen Sie im Kamerabild, ob die Kennzeichnung im Fokus ist und richtig herum steht.

  4. Ist das Bild ein Farbbild und Sie sehen den Text, fahren Sie mit Problem: Das Leseergebnis ist leer, obwohl der Text in einem Farbbild deutlich sichtbar ist fort.

Lösung
  • Wenn im Bild kein Text ist: Das ist ein gültiges Ergebnis. Entscheiden Sie anhand von word_count, nicht anhand des Statuscodes, ob ein Teil Text trug.

  • Wenn die Kennzeichnung außerhalb des Ausschnitts liegt: Machen Sie den Ausschnitt groß genug, um den ganzen Bereich abzudecken, den das Teil einnehmen kann, und lesen Sie erneut.

  • Wenn die Kennzeichnung unscharf ist oder nicht richtig herum steht: Korrigieren Sie den Kameraaufbau. Für Text, dessen Orientierung wirklich variiert, verwenden Sie ein Layout mit Orientierungserkennung (AUTO_OSD oder SPARSE_OSD).

  • Wenn input/min-score alle Wörter herausfiltert: Legen Sie den Schwellwert neu fest, wie unter Genau lesen, Schritt 5, beschrieben.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit output/status-text, dem Inhalt von output/result und den Werten der Knoten unter read-text/input/.

Problem: Das Leseergebnis ist leer, obwohl der Text in einem Farbbild deutlich sichtbar ist

Symptome

Ein Farbbild, in dem ein Foto oder eine andere farbenfrohe Szene zusammen mit dem Text im Bild ist, kommt ganz ohne Wörter zurück, während output/status-code Erfolg (1) meldet. Der Text ist nicht verstümmelt - das Leseergebnis ist leer.

Mögliche Ursachen
  • Die Engine reduziert ein Farbbild vor dem Lesen, und mit einer farbenfrohen Szene im Bild geht dabei der Text verloren. Die Größe des Textes ist nicht die Ursache. Kein input/layout und keine input/engine lösen diesen Fall.

Diagnose
  1. Prüfen Sie, ob pixel-type des Bildknotens ein Farbformat ist (zum Beispiel RGB8 oder BGR8).

  2. Prüfen Sie input/preprocess. Der Standard ist NONE.

  3. Prüfen Sie, ob ein Rechteck den Text von der Szene trennen kann.

Lösung
  • Wenn ein Rechteck den Text von der Szene trennen kann: Schneiden Sie zuerst mit input/crop auf den Text zu. Das Zuschneiden löst diesen Fall in Farbe.

  • Wenn sich Text und Szene nicht durch ein Rechteck trennen lassen (zum Beispiel ein Etikett auf einem gemusterten Teil oder ein komplett fotografierter Bildschirm):

    1. Setzen Sie input/preprocess auf GRAYSCALE und lesen Sie erneut.

    2. Nur wenn GRAYSCALE nicht geholfen hat, versuchen Sie BINARIZE_OTSU.

Keine der Einstellungen erfindet Text: Bei einem Bild ohne Text liefern alle drei Einstellungen nichts.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit output/status-text, den Werten von input/crop und input/preprocess und dem Pixelformat des Bildes.

Problem: Ziffern werden als Buchstaben gelesen (O statt 0, S statt 5)

Symptome

Zeichen werden zwischen Zeichenklassen vertauscht, zum Beispiel O statt 0 oder S statt 5. Weitere typische Vertauschungen sind I/1/l, B/8 und Z/2.

Mögliche Ursachen
  • Ein unbekanntes Zeichen wird ersetzt statt abgelehnt, und der Standard von input/characters/mode, ALL_SYMBOLS, erlaubt jede Klasse.

Diagnose
  1. Lesen Sie input/characters/mode, input/characters/allow und input/characters/deny. Erwartet für eine eingeschränkte Kennzeichnung: ein anderer Modus als ALL_SYMBOLS.

Lösung
  • Wenn der Zeichensatz nicht eingeschränkt ist: Setzen Sie input/characters/mode passend zur Kennzeichnung:

    • numerische Teile- oder Chargennummer: DIGITS;

    • alphanumerischer Code in Großbuchstaben: UPPERCASE_LETTERS mit input/characters/allow = 0123456789;

    • Datumscode mit Trennzeichen: DIGITS mit allow = /-.;

    • festes Alphabet: CUSTOM mit allow auf genau dieses Alphabet gesetzt.

Ein leerer Zeichensatz - CUSTOM mit leerem allow oder ein deny, das alles entfernt, was der Modus ausgewählt hat - wird mit Statuscode -2 abgelehnt.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit den Werten von input/characters/mode, allow und deny sowie output/result.

Problem: Das Leseergebnis enthält zusätzliche Wörter aus dem Hintergrund

Symptome

output/result enthält Wörter, die nicht zur Kennzeichnung gehören und aus dem Hintergrund stammen - Kanten des Teils, Schatten, das Förderband. Diese Wörter haben meist einen niedrigen words[].score.

Mögliche Ursachen
  • input/crop ist zu weit oder nicht gesetzt. Alles auf null liest das ganze Bild.

  • input/layout sucht nach mehr Struktur, als die Kennzeichnung hat.

  • input/min-score ist 0 (der Standard), was alles meldet.

Diagnose
  1. Prüfen Sie input/crop sowie image_width und image_height im Ergebnis: Sie zeigen die gelesene Region.

  2. Prüfen Sie layout im Ergebnis.

  3. Prüfen Sie den words[].score der zusätzlichen Wörter und min_score im Ergebnis. Störwörter liegen meist unter 0,5.

Lösung
  • Wenn der Ausschnitt zu weit ist: Verengen Sie input/crop um die Stelle, an der der Text stehen wird. Das ist die wirksamste Einstellung und macht das Lesen auch schneller.

  • Wenn das Layout nicht passt: Passen Sie input/layout an die Kennzeichnung an, zum Beispiel SINGLE_LINE für eine Druckzeile.

  • Wenn input/min-score zu niedrig ist:

    1. Lassen Sie bekannt gute Teile mit min-score auf 0 durchlaufen.

    2. Notieren Sie mean_score und die einzelnen Wort-Konfidenzen im Ergebnis.

    3. Setzen Sie input/min-score zwischen das Rauschen (meist unter 0,5) und die korrekten Leseergebnisse (meist deutlich über 0,8), näher an die korrekten Leseergebnisse.

min-score filtert nur words[]; text ist immer die vollständige Ausgabe der Engine. Prüfen Sie word_count statt text, wenn Sie wissen müssen, ob das Leseergebnis gut war.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit output/result und den Werten von input/crop, input/layout und input/min-score.

Problem: Nadeldruck- oder lasergravierte Kennzeichnung wird schlecht gelesen

Symptome

Eine Nadeldruck- oder lasergravierte Kennzeichnung wird schlecht gelesen, während gedruckter Text gut gelesen wird.

Mögliche Ursachen
  • An diesen Kennzeichnungen scheitert die LSTM-Engine häufiger als an gedrucktem Text.

  • Beleuchtung, Kontrast oder Fokus sind schlecht. Keine Einstellung behebt das.

Diagnose
  1. Prüfen Sie engine im Ergebnis: die tatsächlich verwendete Engine.

  2. Prüfen Sie das Bild anhand der Regeln zur Bildqualität unter Voraussetzungen: Zeichenhöhe, Kontrast, Fokus und Überstrahlung.

Lösung
  • Wenn die Engine die Ursache ist: Setzen Sie input/engine auf LEGACY und vergleichen Sie die Leseergebnisse.

  • Wenn die Bildqualität schlecht ist: Verbessern Sie Beleuchtung und Fokus.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit output/result und dem Wert von input/engine.

Problem: Das Lesen ist zu langsam

Symptome

Der Aufruf von read-text/execute dauert für Ihren Zyklus zu lange. Das Lesen ist synchron: Der Aufruf kehrt zurück, wenn das Lesen abgeschlossen ist.

Mögliche Ursachen
  • Die Engine erhält zu viel Bild. Die Lesezeit hängt vor allem davon ab, wie viel Bild die Engine erhält.

  • Das Layout AUTO_OSD oder SPARSE_OSD wird verwendet. Diese Layouts laden ein zweites Modell und bestimmen zuerst die Orientierung.

Diagnose
  1. Prüfen Sie input/crop sowie image_width und image_height im Ergebnis.

  2. Prüfen Sie layout im Ergebnis.

Lösung
  • Wenn die Engine zu viel Bild erhält: Verengen Sie input/crop um das Etikett. Ein enger Ausschnitt ist schneller und genauer als das ganze Bild.

  • Wenn ein _OSD-Layout verwendet wird: Verwenden Sie ein Layout ohne Orientierungserkennung, sofern die Orientierung nicht wirklich variiert.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit den Werten von input/crop und input/layout und der Bildgröße.

Statuscodes

Problem: Statuscode -2 (eine Einstellung ist unbrauchbar)

Symptome

output/status-code ist -2 (Ungültige Eingabe). output/status-text beginnt mit error: und nennt jeden beanstandeten Knoten und was erwartet wurde, zum Beispiel min-score must be between 0 and 1, got 1.5 oder error: crop/startX + crop/width (100 + 900 = 1000) exceeds the image width 640.

Mögliche Ursachen
  • Ein erforderlicher Knoten ist leer.

  • Ein unbekannter Wert in input/engine, input/layout, input/preprocess oder input/characters/mode.

  • Ein Wert außerhalb des Bereichs, zum Beispiel input/min-score außerhalb von 0 bis 1.

  • Ein leerer Zeichensatz: CUSTOM mit leerem allow oder ein deny, das alles entfernt, was der Modus ausgewählt hat.

  • Eine Sprache ohne installiertes Modell. Die Meldung nennt jedes durchsuchte Verzeichnis und was verfügbar ist, zum Beispiel error: invalid input: language 'fra' has no fra.traineddata in any model directory ('<tessdata-dir>', '<shipped dir>'); available: eng, osd. Upload fra.traineddata to '<tessdata-dir>' - the file name is the language code.

  • Ein Layout mit Orientierungserkennung ohne osd.traineddata neben dem Sprachmodell, siehe Problem: Ein Lesevorgang mit AUTO_OSD oder SPARSE_OSD wird abgelehnt ("also needs osd.traineddata beside …​").

  • Ein Ausschnitt, der nicht in das Bild passt. Er wird abgelehnt, nicht passend gekürzt.

  • Eine Bildadresse, die auf diese Anwendung selbst zeigt.

  • Bei system/set-tessdata-dir: input/tessdata-dir ist leer.

Diagnose
  1. Lesen Sie output/status-text. Ein Durchlauf prüft jede Einstellung und meldet alle Probleme auf einmal.

  2. Lesen Sie das Anwendungsprotokoll: Jede falsche Eingabe hat ihre eigene Warnzeile.

Lösung
  • Wenn ein Wert unbekannt, außerhalb des Bereichs oder leer ist: Korrigieren Sie jeden in output/status-text genannten Knoten. Die zulässigen Werte sind in der Data-Layer-Referenz aufgelistet.

  • Wenn der Zeichensatz leer ist: Setzen Sie input/characters/allow, oder entfernen Sie Zeichen aus input/characters/deny, sodass der Zeichensatz nicht leer ist.

  • Wenn die Sprache kein Modell hat: Laden Sie <language>.traineddata ohne Umbenennen in das Verzeichnis hoch, das system/tessdata-dir nennt, oder setzen Sie input/language auf einen Code aus system/languages. Siehe Sprachmodelle.

  • Wenn der Ausschnitt nicht passt: Ändern Sie input/crop so, dass startX + width und startY + height innerhalb des Bildes liegen.

  • Wenn die Bildadresse auf diese Anwendung zeigt: Setzen Sie input/input-image-address auf den Bildknoten der Kameraanwendung.

  • Wenn input/tessdata-dir leer ist: Schreiben Sie ein Verzeichnis auf system/set-tessdata-dir/input/tessdata-dir und schreiben Sie dann auf system/set-tessdata-dir/execute.

Führen Sie die Operation danach erneut aus und prüfen Sie, ob output/status-code 1 ist.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit dem vollständigen output/status-text und den Werten der Knoten unter read-text/input/.

Problem: Statuscode -3 (Bild kann nicht gelesen werden)

Symptome

output/status-code ist -3 (Bild lesen fehlgeschlagen), und das Ergebnis ist leer.

Mögliche Ursachen
  • Eine falsche Bildadresse in input/input-image-address. Das ist fast immer die Ursache.

  • Die Quellanwendung läuft nicht auf demselben Gerät, oder sie hat kein Bild aufgenommen.

  • Der Bildknoten fehlt, ist leer oder inkonsistent.

  • Das Bild verwendet ein nicht unterstütztes Pixelformat.

Diagnose
  1. Prüfen Sie input/input-image-address, zum Beispiel hdvisionsystems/lumiscan-cam-driver/camera1/output/image.

  2. Prüfen Sie, ob der Bildknoten die Kinder data, width, height und pixel-type hat und ob data Pixeldaten enthält.

  3. Prüfen Sie, ob pixel-type eines von Mono8, Mono12, RGB8, RGB12, BGR8, BGR12, BayerGR8, BayerGR12, BayerRG8 oder BayerRG12 ist.

  4. Prüfen Sie, ob die Quellanwendung auf demselben Gerät läuft - derselben ctrlX CORE oder demselben ctrlX IPC oder demselben PC - und Bilder liefert.

  5. Lesen Sie output/status-text für den Grund.

Lösung
  • Wenn die Adresse falsch ist: Korrigieren Sie input/input-image-address und lesen Sie erneut.

  • Wenn die Quellanwendung nicht läuft oder kein Bild aufgenommen hat: Starten Sie sie auf demselben Gerät, nehmen Sie ein Bild auf und lesen Sie dann erneut.

  • Wenn der Bildknoten leer oder inkonsistent ist: Nehmen Sie mit der Quellanwendung ein neues Bild auf und lesen Sie dann erneut.

  • Wenn das Pixelformat nicht unterstützt wird: Verwenden Sie eine Bildquelle, die eines der unterstützten Pixelformate liefert.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit input/input-image-address, output/status-text sowie pixel-type, width und height des Bildknotens.

Problem: Statuscode -7 (OCR-Engine konnte nicht starten)

Symptome

output/status-code ist -7 (Algorithmus fehlgeschlagen). Das Ergebnis ist leer, und der Grund steht in output/status-text.

Mögliche Ursachen
  • Die OCR-Engine konnte nicht starten, meist wegen des Verzeichnisses der Sprachmodelle.

  • Ein Sprachmodell konnte nicht geladen werden, zum Beispiel ein Modell, dessen Upload noch läuft. Das passiert, wenn ein Lesevorgang direkt auf das Ersetzen eines Modells folgt.

Diagnose
  1. Lesen Sie output/status-text für den Grund.

  2. Prüfen Sie, ob system/languages nicht leer ist. system/languages wird nur beim Start, durch set-tessdata-dir und durch refresh-languages aktualisiert: Schreiben Sie auf system/refresh-languages/execute, um die Liste zu aktualisieren.

  3. Prüfen Sie system/tessdata-dirs: jedes durchsuchte Verzeichnis, in der Reihenfolge der Suche.

  4. Prüfen Sie, ob ein Upload eines Modells lief, als der Lesevorgang fehlschlug.

Lösung
  • Wenn ein Upload lief: Lesen Sie erneut, sobald der Upload abgeschlossen ist. Dieser Lesevorgang lädt das neue Modell.

  • Wenn der Grund das Verzeichnis der Sprachmodelle nennt: Prüfen Sie die Verzeichnisse auf system/tessdata-dirs anhand des Grundes in output/status-text. Haben Sie das Upload-Verzeichnis mit system/set-tessdata-dir geändert, prüfen Sie, ob es das Verzeichnis ist, das Ihre Modelle enthält.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit dem vollständigen output/status-text und den Werten von system/tessdata-dir, system/tessdata-dirs und system/languages.

Sprachmodelle

Problem: Ein Lesevorgang mit AUTO_OSD oder SPARSE_OSD wird abgelehnt ("also needs osd.traineddata beside …​")

Symptome

Ein Lesevorgang wird mit output/status-code -2 und dieser Meldung abgelehnt:

error: invalid input: layout AUTO_OSD also needs osd.traineddata beside 'deu.traineddata' in '<tessdata-dir>'; copy it from '<shipped dir>', or choose a layout that does not detect orientation
Mögliche Ursachen
  • Die Layouts AUTO_OSD und SPARSE_OSD brauchen osd.traineddata im selben Verzeichnis wie das Sprachmodell, nicht bloß irgendwo im Suchpfad. Tesseract löst pro Durchlauf ein Verzeichnis auf. Zum Beispiel wurde deu.traineddata allein hochgeladen.

Diagnose
  1. Prüfen Sie input/layout. Erwartet bei dieser Meldung: AUTO_OSD oder SPARSE_OSD.

  2. Prüfen Sie, ob das in der Meldung genannte Verzeichnis osd.traineddata neben dem Sprachmodell enthält.

Lösung
  • Wenn Sie Orientierungserkennung benötigen: Laden Sie osd.traineddata in dasselbe Verzeichnis wie Ihr Modell hoch. Die Meldung nennt das mitgelieferte Verzeichnis, aus dem Sie es kopieren können. Lesen Sie dann erneut.

  • Wenn Sie keine Orientierungserkennung benötigen: Verwenden Sie ein Layout, das keine Orientierung erkennt, etwa den Standard SINGLE_BLOCK.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit der vollständigen Meldung und den Werten von system/tessdata-dirs und system/languages.

Problem: Ein hochgeladenes Modell erscheint nicht auf system/languages

Symptome

Sie haben eine .traineddata-Datei hochgeladen, aber ihr Sprachcode ist auf system/languages nicht aufgeführt.

Mögliche Ursachen
  • system/languages ist eine Auflistung. Sie wird nur beim Start, durch set-tessdata-dir und durch refresh-languages aktualisiert.

  • Die Datei liegt nicht in dem Verzeichnis, das system/tessdata-dir nennt, oder sie wurde umbenannt. Der Dateiname ist der Sprachcode.

Diagnose
  1. Prüfen Sie, ob die Datei in dem auf system/tessdata-dir genannten Verzeichnis liegt.

  2. Prüfen Sie, ob der Dateiname unverändert ist, genau so, wie das Tesseract-Projekt ihn veröffentlicht (zum Beispiel deu.traineddata, chi_sim.traineddata).

Lösung
  • Wenn die Auflistung nicht aktualisiert ist: Schreiben Sie auf system/refresh-languages/execute und lesen Sie dann system/languages. Zum Lesen brauchen Sie das nicht: Ein hochgeladenes Modell ist beim allernächsten read-text nutzbar.

  • Wenn die Datei in einem anderen Verzeichnis liegt oder umbenannt wurde: Laden Sie sie erneut, ohne Umbenennen, in das Verzeichnis hoch, das system/tessdata-dir nennt.

osd erscheint in der Liste, ist aber keine Sprache: input/language auf osd zu setzen liest nichts.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit den Werten von system/tessdata-dir, system/tessdata-dirs und system/languages und dem Namen der hochgeladenen Datei.

Problem: Der Text wird in einer anderen Sprache als input/language gelesen

Symptome

language in output/result ist nicht die in input/language gesetzte Sprache, und output/status-text enthält ein NOTE, zum Beispiel

ok: 4 word(s), mean score 0.91 (eng, SINGLE_BLOCK) - NOTE: language 'deu' is not installed, read with 'eng' instead
Mögliche Ursachen
  • Das Sprachmodell ist zwischen der Sprachprüfung und dem Lesen verschwunden - jemand hat zum Beispiel den USB-Stick gezogen. Die Engine liest dann mit eng.

Diagnose
  1. Vergleichen Sie language in output/result mit input/language.

  2. Lesen Sie output/status-text auf das NOTE.

  3. Prüfen Sie, ob die Modelldatei noch in ihrem Verzeichnis liegt (siehe system/tessdata-dirs).

Lösung
  • Wenn das Modell verschwunden ist: Stellen Sie das Modell in seinem Verzeichnis wieder bereit, stecken Sie zum Beispiel den USB-Stick wieder ein oder laden Sie das Modell erneut hoch. Ein hochgeladenes Modell ist beim allernächsten read-text nutzbar. Lesen Sie dann erneut und prüfen Sie language in output/result.

Lesen Sie language in output/result, nicht input/language, wenn Sie wissen müssen, wie ein Ergebnis zustande kam. Ist die Sprache gar nicht installiert, wird der Lesevorgang mit -2 abgelehnt, siehe Problem: Statuscode -2 (eine Einstellung ist unbrauchbar). Für den Bild-Stream siehe Problem: Ein Stream-Bild schlägt fehl mit "the frame was read with 'eng' instead and its result dropped".

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit output/status-text, output/result und den Werten von input/language, system/tessdata-dirs und system/languages.

Bild-Stream

Problem: read-text antwortet mit -1 (belegt), während der Stream läuft

Symptome

Während der Bild-Stream (experimentell) läuft, wird ein Aufruf von read-text/execute abgelehnt:

  • output/status-code ist -1 (Belegt);

  • der Schreibvorgang antwortet mit DL_TOO_MANY_OPERATIONS (ctrlX OS) oder TooManyOperations (PC);

  • nichts wird getan, und output/result behält seinen Wert.

Auch system/remove-module antwortet mit belegt (-1), während ein Bild dieses Moduls gelesen wird.

Mögliche Ursachen
  • Der Stream und read-text teilen sich die eine Erkennungs-Engine des Moduls und laufen auf einem Modul nie gleichzeitig. Bei einer streamenden Kamera passiert das oft.

Diagnose
  1. Lesen Sie control/subscribe/output/stream/active des Moduls. true bedeutet, dass der Stream läuft.

Lösung
  • Wenn Sie read-text benötigen, während der Stream läuft: Rufen Sie read-text/execute erneut auf, oder stoppen Sie zuerst den Stream:

    1. Setzen Sie control/subscribe/input/enable auf false und schreiben Sie auf control/subscribe/execute. Das Bild, das gerade gelesen wird, wird zuerst fertig gelesen.

    2. Prüfen Sie, ob control/subscribe/output/stream/active false ist.

    3. Rufen Sie read-text/execute auf.

  • Wenn Sie das Modul entfernen möchten: Stoppen Sie zuerst den Stream und rufen Sie dann system/remove-module/execute auf.

Andere Module sind nicht betroffen: Jedes Modul hat seine eigene Sperre, seine eigene Engine und seinen eigenen Stream.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit dem Wert von control/subscribe/output/stream/active und den Zählern unter control/subscribe/output/stream/statistics/.

Problem: Ein Stream-Bild schlägt fehl mit "the frame was read with 'eng' instead and its result dropped"

Symptome

Ein Bild des Bild-Streams (experimentell) liefert kein Ergebnis. control/subscribe/output/stream/statistics/failed-frames steigt, und control/subscribe/output/stream/last-failure und das Protokoll melden zum Beispiel:

a frame of 'hdvisionsystems/lumiscan-cam-driver/camera1/control/publish/output/stream' failed: language 'deu' is no longer installed; the frame was read with 'eng' instead and its result dropped
Mögliche Ursachen
  • Das Sprachmodell ist zwischen der Sprachprüfung und dem Lesen verschwunden, die Engine hat also mit eng gelesen. read-text veröffentlicht ein solches Leseergebnis mit einem NOTE in seinem status-text, aber der Stream verwirft es, weil sein Einstellungs-Hash das angeforderte Modell nennt.

Diagnose
  1. Lesen Sie control/subscribe/output/stream/last-failure.

  2. Prüfen Sie control/subscribe/output/stream/statistics/failed-frames.

  3. Prüfen Sie, ob die Modelldatei für input/language noch in ihrem Verzeichnis liegt (siehe system/tessdata-dirs).

Lösung
  • Wenn das Modell verschwunden ist: Stellen Sie das Modell für input/language in seinem Verzeichnis wieder bereit. Ein hochgeladenes Modell wird ab dem nächsten Bild verwendet. Halten Sie es verfügbar, solange der Stream läuft - ziehen Sie zum Beispiel nicht den USB-Stick, auf dem es liegt.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit control/subscribe/output/stream/last-failure, den Zählern unter control/subscribe/output/stream/statistics/ und den Werten von input/language und system/tessdata-dirs.

Module und Einstellungen

Problem: Meine Einstellungen oder Module sind nach einem Neustart weg

Symptome

Nach einem Neustart der Anwendung fehlt ein Modul in system/modules, ein Modul ist mit seinen Standardeingaben zurück, oder ein Modul, das vorher gestreamt hat, streamt nicht.

Mögliche Ursachen
  • Die Modulliste wurde nicht mit system/save-current-modules gespeichert. Nichts überlebt einen Neustart, bis es gespeichert ist; die Modulliste und die Einstellungen jedes Moduls werden getrennt gespeichert.

  • Die Einstellungen des Moduls wurden nicht mit system/save-module-inputs gespeichert.

  • Modus und Quelle des Bild-Streams werden von control/subscribe/execute in der <module-id>.json des Moduls gespeichert, kommen aber nur zurück, wenn auch die Modulliste gespeichert ist.

  • <module-id>.json enthält Kommentare. Die Eingaben des Moduls werden dann beim Start nicht wiederhergestellt; das Protokoll meldet die Datei als nicht lesbar.

  • Eine Einstellung, deren Knoten nach einem Software-Update nicht mehr existiert, wird mit einem Protokolleintrag übersprungen.

Diagnose
  1. Lesen Sie system/modules.

  2. Prüfen Sie das Protokoll auf eine als nicht lesbar gemeldete Moduldatei oder auf übersprungene Einstellungen.

  3. Prüfen Sie, ob <module-id>.json im Konfigurationsverzeichnis existiert: auf ctrlX OS /var/snap/rexroth-solutions/common/solutions/activeConfiguration/lumiscan-text-reader; auf einem PC (Windows) %APP_RESOURCE_DIR%\etc\lumiscan-text-reader oder ohne APP_RESOURCE_DIR C:\ProgramData\HD Vision Systems GmbH\LumiScan Vision Suite\lumiscan-text-read\etc\lumiscan-text-reader.

Lösung
  • Wenn die Einstellungen des Moduls nicht gespeichert wurden:

    1. Setzen Sie system/save-module-inputs/input/module-id, zum Beispiel module-1.

    2. Schreiben Sie auf system/save-module-inputs/execute.

    3. Prüfen Sie, ob system/save-module-inputs/output/status-code 1 ist.

  • Wenn die Modulliste nicht gespeichert wurde: Schreiben Sie auf system/save-current-modules/execute. Modus und Quelle des Streams eines Moduls kommen nach einem Neustart nur zurück, wenn auch die Modulliste gespeichert ist.

  • Wenn <module-id>.json Kommentare enthält: Entfernen Sie die Kommentare aus der Datei. Von Hand an der Datei vorgenommene Änderungen wirken beim nächsten Start.

Ein mit system/set-tessdata-dir gewähltes Verzeichnis wird automatisch gespeichert.

Wenn das Problem weiterhin besteht

Senden Sie die unter Informationen für den Support aufgeführten Informationen an den Support, zusammen mit dem Inhalt von system/modules, den Dateien im Konfigurationsverzeichnis und dem Protokoll des Starts.

Informationen für den Support

Besteht ein Problem weiter, senden Sie die folgenden Informationen an den Support:

  • Die Version von LumiScan Text Reader.

  • Die Plattform: ctrlX OS auf einer ctrlX CORE oder einem ctrlX IPC, mit der Version von ctrlX OS; oder ein PC mit Windows 11 oder Ubuntu 24.04 und LumiScan Keryx.

  • Das Anwendungsprotokoll: auf ctrlX OS aus dem ctrlX Logbook oder journalctl, auf einem PC die Konsolenausgabe der Anwendung.

  • Datum und Uhrzeit des Fehlers.

  • Den Status auf dem Data Layer: welchen Data Layer Sie verwenden (ctrlX Data Layer oder LumiScan Keryx; auf einem PC die Data-Layer-Adresse), output/status-code und output/status-text der fehlgeschlagenen Operation und bei einem abgelehnten Schreibvorgang dessen Ergebnis. Für den Bild-Stream außerdem control/subscribe/output/stream/last-failure und die Zähler unter control/subscribe/output/stream/statistics/.

  • Die Konfiguration: die Werte der Knoten unter read-text/input/, system/modules, system/tessdata-dir, system/tessdata-dirs und system/languages sowie die Dateien im Konfigurationsverzeichnis (die Moduldateien <module-id>.json).

Wenden Sie sich an den Customer Success von HD Vision Systems unter customer.success@hdvisionsystems.com oder +49 6221 6721905. Für Lizenzen wenden Sie sich an licenses@hdvisionsystems.com.