Data-Layer-Referenz

Jede Adresse unten ist relativ zu

hdvisionsystems/lumiscan-text-reader/

Data Layer

LumiScan Text Reader bietet seine Funktionen auf dem Data Layer unter hdvisionsystems/lumiscan-text-reader an.

Auf ctrlX OS (ctrlX CORE oder ctrlX IPC) nutzt LumiScan Text Reader den ctrlX Data Layer.

Auf einem PC mit Windows 11 oder Ubuntu 24.04 nutzt LumiScan Text Reader LumiScan Keryx.

Knotenadressen, Typen und Aufrufmuster sind auf beiden gleich. LumiScan Text Reader bietet:

Wie Adressen aufgebaut sind, wie Funktionen aufgerufen werden, die Statuscodes und die Werkzeuge sind in LumiScan Keryx beschrieben.

Anwendungsweite Knoten

Adresse Typ Zugriff Beschreibung

system/modules

string[]

lesen

Die Module, die gerade existieren

system/create-module/execute

Methode

schreiben

Ein Modul hinzufügen

system/create-module/input/module-id

string

lesen/schreiben

Name für das neue Modul

system/remove-module/execute

Methode

schreiben

Ein Modul entfernen

system/remove-module/input/module-id

string

lesen/schreiben

Zu entfernendes Modul

system/save-current-modules/execute

Methode

schreiben

Die Modulliste dauerhaft speichern

system/save-module-inputs/execute

Methode

schreiben

Die Einstellungen eines Moduls dauerhaft speichern

system/save-module-inputs/input/module-id

string

lesen/schreiben

Zu speicherndes Modul

system/tessdata-dir

string

lesen

Wohin Sie eigene Modelle hochladen; das erste durchsuchte Verzeichnis

system/tessdata-dirs

string[]

lesen

Jedes durchsuchte Verzeichnis, in Reihenfolge

system/languages

string[]

lesen

In allen gefundene Sprachcodes

system/set-tessdata-dir/execute

Methode

schreiben

Ein anderes Upload-Verzeichnis verwenden

system/set-tessdata-dir/input/tessdata-dir

string

lesen/schreiben

Verzeichnis, in das hochgeladen und das zuerst durchsucht wird

system/refresh-languages/execute

Methode

schreiben

Die Verzeichnisse neu lesen und languages aktualisieren

system/meta/subscription-schema

string

lesen

Was der Knoten enthalten muss, den ein Modul abonniert, als JSON Schema (draft-04) seiner JSON-Form: hier ein stream_image, der Knoten frame des Stream-Ordners, mit lineage und image. Für jedes Modul dasselbe. Experimentell

Jede Methode stellt außerdem output/status-code und output/status-text bereit.

system/tessdata-dir, system/tessdata-dirs und system/languages sind schreibgeschützte Ausgaben von set-tessdata-dir und refresh-languages, die Auflistung kann also nie ein Verzeichnis beschreiben, das nicht in Gebrauch ist. Beachten Sie, dass languages nur eine Auflistung ist: Das Lesen mit einem neu hochgeladenen Modell wartet nicht auf ein Refresh. Siehe Sprachmodelle.

Knoten pro Modul

Alle Adressen unten liegen unter <module-id>/read-text/.

Adresse Typ Standard Beschreibung

execute

Methode

-

Einen Lesevorgang ausführen

input/input-image-address

string

(leer)

Adresse des zu lesenden Bildknotens

input/crop/startX

uint16

0

Linker Rand der zu lesenden Region

input/crop/startY

uint16

0

Oberer Rand

input/crop/width

uint16

0

Breite; 0 reicht bis zum rechten Rand

input/crop/height

uint16

0

Höhe; 0 reicht bis zum unteren Rand

input/language

string

eng

Ein Code aus system/languages

input/engine

string

DEFAULT

DEFAULT, LSTM, LEGACY oder COMBINED

input/layout

string

SINGLE_BLOCK

Siehe die Tabelle unten

input/preprocess

string

NONE

NONE, GRAYSCALE oder BINARIZE_OTSU

input/characters/mode

string

ALL_SYMBOLS

ALL_SYMBOLS, ALL_LETTERS, DIGITS, LOWERCASE_LETTERS, UPPERCASE_LETTERS, SPECIAL_SYMBOLS oder CUSTOM

input/characters/allow

string

(leer)

Dem Satz hinzugefügte Zeichen

input/characters/deny

string

(leer)

Aus dem Satz entfernte Zeichen

input/min-score

float64

0.0

Konfidenz, die ein Wort erreichen muss, um gemeldet zu werden, 0 bis 1

output/result

flatbuffers

leer

text_read_result - das Leseergebnis

output/status-code

int16

0

Ausgang als Zahl; negativ ist immer ein Fehler

output/status-text

string

(leer)

Ausgang in Worten

Akzeptierte Werte für input/layout

SINGLE_BLOCK

Ein einheitlicher Textblock - der Standard

SINGLE_LINE

Genau eine Zeile

SINGLE_WORD

Genau ein Wort

SINGLE_CHAR

Genau ein Zeichen

RAW_LINE

Eine Zeile, ohne Strukturanalyse

AUTO

Textregionen im ganzen Bild finden und segmentieren

AUTO_OSD

Wie AUTO, und Orientierung und Schrift erkennen

SPARSE

Text finden, wo immer er auftritt, ohne Annahme eines Layouts

SPARSE_OSD

Wie SPARSE, und die Orientierung erkennen

SINGLE_COLUMN

Eine einzelne Textspalte

SINGLE_BLOCK_VERT

Ein einzelner Block vertikal ausgerichteten Textes

CIRCLE_WORD

Ein einzelnes, im Kreis angeordnetes Wort

Bild-Stream-Knoten pro Modul (experimentell)

Alle Adressen unten liegen unter <module-id>/, neben read-text/. Der Stream liest jedes Bild mit den Eingaben von read-text, allen außer input/input-image-address. Siehe Text auf einem Bild-Stream lesen.

Adresse Typ Standard Beschreibung

control/subscribe/input/enable

bool

wie angewendet

Stream-Modus: true lässt den Stream laufen, false stoppt ihn

control/subscribe/input/address

string

wie angewendet

Die eine Quelle, der Stream-Ordner einer Kamera, z. B. hdvisionsystems/lumiscan-cam-driver/camera1/control/publish/output/stream. Eine andere Adresse ersetzt sie

control/subscribe/input/tag

string

wie angewendet

Das Tag auf den Ergebnissen des Moduls: Der Schritt des Moduls in der Lineage jedes Stream-Ergebnisses trägt es. Leer: die Modul-ID, z. B. module-1. Ein neues Tag behält die Quelle; das nächste Ergebnis trägt es

control/subscribe/input/queue-size

uint32

wie angewendet

Bilder, die warten dürfen, während eines gelesen wird, 1-64

control/subscribe/input/keep-latest-output

bool

wie angewendet

true schreibt jedes Stream-Ergebnis zusätzlich nach read-text/output/result

control/subscribe/execute

Methode

-

Die Eingaben von control/subscribe gemeinsam prüfen, in <module-id>.json als stream speichern und dann anwenden. Eine Eingabe allein zu schreiben ändert nichts

control/unsubscribe/execute

Methode

-

Die von control/unsubscribe/input/address genannte Quelle entfernen, was den Stream-Modus beendet; das Tag bleibt. Wird wie ein Subscribe in <module-id>.json gespeichert

control/unsubscribe/input/address

string

(leer)

Die zu entfernende Quelle, wie setting/stream/address sie zeigt

setting/stream/{enable, address, tag, queue-size, keep-latest-output}

wie die Eingaben

stream in <module-id>.json

Was control/subscribe/execute oder control/unsubscribe/execute zuletzt angewendet hat. Schreibgeschützt

setting/settings-hash

string

-

Hash dessen, womit die Ergebnisse erzeugt werden, 16 Hex-Ziffern. Schreibgeschützt

control/subscribe/output/stream/active

bool

false

true, solange der Stream läuft

control/subscribe/output/stream/result

flatbuffers

leer

stream_texts - eines pro gelesenem Bild. Abonnieren, um jedes zu erhalten

control/subscribe/output/stream/last-failure

string

(leer)

Warum das letzte Bild, das nicht gelesen werden konnte, fehlgeschlagen ist, mit der Quelle über ihre Adresse

control/subscribe/output/stream/statistics/elapsed-ms

uint64

0

Millisekunden seit dem Start des Streams

control/subscribe/output/stream/statistics/received-frames

uint64

0

Bilder, die das Abonnement geliefert hat

control/subscribe/output/stream/statistics/processed-frames

uint64

0

Gelesene Bilder, jedes mit einem Ergebnis

control/subscribe/output/stream/statistics/skipped-frames

uint64

0

Aus der Warteschlange verdrängte Bilder, oder wartende, als die Quelle ersetzt oder entfernt wurde

control/subscribe/output/stream/statistics/failed-frames

uint64

0

Bilder, die nicht gelesen werden konnten

control/subscribe/output/stream/statistics/lost-frames

uint64

0

Bilder, die verloren gingen, bevor sie eintrafen

control/subscribe/output/stream/statistics/processing-us

uint64

0

Lesezeit aller gelesenen Bilder, summiert, Mikrosekunden

Die Eingaben von control/subscribe beginnen mit dem, was angewendet ist, und nur control/subscribe/execute wendet sie an. control/subscribe/execute wird bei Stream-Modus ohne Adresse oder einer Warteschlangengröße außerhalb von 1-64 abgelehnt, control/unsubscribe/execute bei einer Adresse, die nicht die Quelle ist. Kann <module-id>.json nicht geschrieben werden, antworten beide mit DL_CREATION_FAILED (auf einem PC CreationFailed) und ändern nichts.

Der Ergebnis-Flatbuffer

output/result ist registriert als types/hdvisionsystems/lumiscan-text-reader/text_read_result.

Feld Typ Beschreibung

text

string

Das gesamte Leseergebnis, Zeilen durch Zeilenumbrüche getrennt. Nicht nach min_score gefiltert

words[].text

string

Ein erkanntes Wort

words[].score

float

Seine Konfidenz, 0 bis 1

words[].bbox_x

int

Rahmen um das Wort, in den Koordinaten der gelesenen Region

words[].bbox_y

int

words[].bbox_width

int

words[].bbox_height

int

word_count

uint

Wie viele Wörter gemeldet werden

mean_score

float

Mittlere Konfidenz über die gemeldeten Wörter; 0, wenn es keine gibt

min_score

float

Der angewendete Schwellwert

language

string

Die tatsächlich verwendete Sprache

engine

string

Die tatsächlich verwendete Engine

layout

string

Das tatsächlich verwendete Layout

image_width

uint

Die gelesene Region

image_height

uint

timestamp

ulong

Mikrosekunden seit der Epoche, wann der Lesevorgang abgeschlossen wurde

control/subscribe/output/stream/result ist registriert als types/hdvisionsystems/lumiscan-text-reader/stream_texts: ein hdv.stream.StreamTexts mit lineage, woher das Bild stammt, und result, der Tabelle oben.

Mit einem Beispiel beginnen (PC)

Auf einem PC schreibt der Text Reader ein Beispiel seiner Einstellungen in einen Ordner Ihrer Wahl und beendet sich, ohne zu starten. Unter Windows:

lumiscan-text-read --generate-settings C:\work\text-reader-settings

Ohne Ordner (-g allein) schreibt er in den aktuellen Ordner. Das Beispiel ist die Anwendungs-Einstellungsdatei lumiscan-text-reader.json, die das Modul module-1 nennt, und die Moduldatei module-1.json daneben: jede Eingabe von read-text mit ihrem Standardwert, außer der Bildadresse, die die camera1 des Cam Driver ist. Daneben, in schemas/, liegen die Schemas, die die beiden Dateien in "$schema" nennen: lumiscan-text-reader.schema.json, lumiscan-text-reader-module.schema.json und stream.schema.json für den Abschnitt stream einer Moduldatei. Sie beschreiben jeden Schlüssel, den der Text Reader liest - jede Eingabe von read-text mit ihrem Typ, ihrem Standardwert und dem Bereich, den ein Durchlauf akzeptiert -, sodass ein Editor, der JSON Schema versteht, die Dateien prüfen und zeigen kann, was jeder Wert bedeutet. Kopieren Sie den Ordner schemas zusammen mit den Dateien: system/save-module-inputs behält das "$schema" einer Moduldatei, die es speichert. Vorhandene Dateien werden nie überschrieben: Liegt eine davon bereits im Ordner, wird nichts geschrieben, und der Text Reader nennt welche.

Der Text Reader nennt dann den Ordner, aus dem er seine Einstellungen liest, unter Windows standardmäßig C:\ProgramData\HD Vision Systems GmbH\LumiScan Vision Suite\lumiscan-text-read\etc\lumiscan-text-reader. Bearbeiten Sie das Beispiel, kopieren Sie es dorthin und starten Sie den Text Reader. Siehe auch Speicherorte der Dateien.