Die Parameter können das ganze Modell betreffen oder nur spezifische
Komponenten.
Die folgende Tabelle gibt einen Überblick, welche Parameter gesetzt und welche
zurückgegeben werden können sowie für welche Modell-Komponente sie zutreffen.
Es gilt zu beachten, dass eine Einheit auch für eine einzelne Komponente
neu gesetzt werden kann. In diesem Fall wird nur der möglicherweise
verbliebene Teil des Modells (z.B. eine verbleibende Komponente)
auf der Einheit dieses Handles ausgeführt.
Default: Handle der Standard-Einheit, d.h. die GPU mit Index
0 in der Liste, die mit get_systemget_systemGetSystemGetSystemGetSystemget_system und
'cuda_devices'"cuda_devices""cuda_devices""cuda_devices""cuda_devices""cuda_devices" erhalten wird.
Falls keine Einheit vorhanden ist, ein leeres Tupel.
Dieser Parameter setzt die Hardware Einheit auf welcher die
Lokalisierungs-Komponente des Deep OCR-Modells ausgeführt wird.
Siehe 'device'"device""device""device""device""device" für weitere Erklärungen.
Default: Der selbe Wert wie für 'device'"device""device""device""device""device".
Tupel mit den Bilddimensionen ('detection_image_width'"detection_image_width""detection_image_width""detection_image_width""detection_image_width""detection_image_width",
'detection_image_height'"detection_image_height""detection_image_height""detection_image_height""detection_image_height""detection_image_height", Anzahl Kanäle), welche die
Lokalisierungs-Komponente verarbeitet.
Das Eingabebild wird Seitenverhältnis getreu in
'detection_image_dimensions'"detection_image_dimensions""detection_image_dimensions""detection_image_dimensions""detection_image_dimensions""detection_image_dimensions" eingepasst. Falls
notwendig, wird das skalierte Bild mit Grauwerten 0
aufgefüllt. Daher kann das Ändern der Parameter
'detection_image_height'"detection_image_height""detection_image_height""detection_image_height""detection_image_height""detection_image_height" bzw.
'detection_image_width'"detection_image_width""detection_image_width""detection_image_width""detection_image_width""detection_image_width" die Ergebnisse beeinflussen.
Höhe des Bildes, welche die Lokalisierungs-Komponente verarbeitet.
Dies bedeutet, dass das Netzwerk die Eingabebilder Seitenverhältnis
getreu bis maximal auf diese Höhe skaliert bevor es das Bild verarbeitet.
Dadurch kann diese Größe die Ergebnisse beeinflussen.
Die Modellarchitektur verlangt, dass die Höhe ein Vielfaches von 32 ist.
Ist dies nicht der Fall, wird die Höhe auf das nächstgrößere ganzzahlige
Vielfache von 32 gerundet.
Tupel mit der Bildgröße ('detection_image_width'"detection_image_width""detection_image_width""detection_image_width""detection_image_width""detection_image_width",
'detection_image_height'"detection_image_height""detection_image_height""detection_image_height""detection_image_height""detection_image_height"), welche die
Lokalisierungs-Komponente verarbeitet.
Breite des Bildes, welche die Lokalisierungs-Komponente verarbeitet.
Dies bedeutet, dass das Netzwerk die Eingabebilder Seitenverhältnis
getreu bis maximal auf diese Breite skaliert bevor es das Bild verarbeitet.
Dadurch kann diese Größe die Ergebnisse beeinflussen.
Die Modellarchitektur verlangt, dass die Breite ein Vielfaches von 32
ist. Ist dies nicht der Fall, wird die Breite auf das nächstgrößere
ganzzahlige Vielfache von 32 gerundet.
Der Parameter 'detection_min_character_score'"detection_min_character_score""detection_min_character_score""detection_min_character_score""detection_min_character_score""detection_min_character_score" gibt den unteren
Schwellenwert an, der für die Zeichenbewertung verwendet wird, um die
Abmessungen der Zeichen zu schätzen.
Durch Anpassen von 'detection_min_character_score'"detection_min_character_score""detection_min_character_score""detection_min_character_score""detection_min_character_score""detection_min_character_score" können
vorgeschlagene Instanzen aufgespalten, beziehungsweise benachbarte
Instanzen vereint werden.
Der Parameter 'detection_min_link_score'"detection_min_link_score""detection_min_link_score""detection_min_link_score""detection_min_link_score""detection_min_link_score" definiert die minimale
Verknüpfungsbewertung, die zwischen zwei lokalisierten Zeichen gefordert
ist, um diese Zeichen als zusammenhängendes Wort zu erkennen.
Der Parameter 'detection_min_word_area'"detection_min_word_area""detection_min_word_area""detection_min_word_area""detection_min_word_area""detection_min_word_area" definiert die
Mindestgröße, die ein lokalisiertes Wort haben muss, um vorgeschlagen zu
werden.
Über diesen Parameter können zu kleine Vorschläge gefiltert werden.
Der Parameter 'detection_min_word_score'"detection_min_word_score""detection_min_word_score""detection_min_word_score""detection_min_word_score""detection_min_word_score" definiert die minimale
Bewertung, die eine lokalisierte Instanz enthalten muss, um als Wort
vorgeschlagen zu werden. Über diesen Parameter können unsichere Worte
herausgefiltert werden.
Dieser Parameter erlaubt es, die Orientierung der vorhergesagten Worte im
Voraus festzulegen. Diese Festlegung kann wieder rückgängig gemacht
werden, indem 'detection_orientation'"detection_orientation""detection_orientation""detection_orientation""detection_orientation""detection_orientation" auf 'auto'"auto""auto""auto""auto""auto"
gesetzt wird. Dann wird für die Orientierung der Worte wieder die
Vorhersage des Modells benutzt.
Auf Grundlage der geschätzten Orientierungen der lokalisierten Worte
werden die gefundenen Worte zeilenweise sortiert. Wird eine Sortierung in
Zeilen- und Spaltenrichtung bevorzugt, muss der Parameter
'detection_sort_by_line'"detection_sort_by_line""detection_sort_by_line""detection_sort_by_line""detection_sort_by_line""detection_sort_by_line" auf 'false'"false""false""false""false""false" gesetzt werden.
Das Eingabebild wird automatisch in überlappende Kacheln der Größe
'detection_image_size'"detection_image_size""detection_image_size""detection_image_size""detection_image_size""detection_image_size" aufgeteilt, welche separat von der
Lokalisierungs-Komponente verarbeitet werden.
Dies ermöglicht das Verarbeiten von Eingabebildern, welche wesentlich
größer sind als die eigentliche Bildgröße
'detection_image_size'"detection_image_size""detection_image_size""detection_image_size""detection_image_size""detection_image_size", ohne dass das Eingabebild gezoomt
werden muss.
Entsprechend wird für 'detection_tiling'"detection_tiling""detection_tiling""detection_tiling""detection_tiling""detection_tiling" = 'true'"true""true""true""true""true" das
Eingabebild nicht mehr gezoomt bevor es verarbeitet wird.
Dieser Parameter definiert wie groß die Überlappung benachbarter
Kacheln ist, falls Eingabebilder aufgeteilt werden
(siehe 'detection_tiling'"detection_tiling""detection_tiling""detection_tiling""detection_tiling""detection_tiling"). Die Größe der Überlappung wird
in Pixeln angegeben.
Der Zeichensatz, welchen das Modell erkennen kann.
Dieser Zeichensatz enthält alle Zeichen die kein Mapping auf das
erste Zeichen des internen Alphabets haben (siehe Parameter
'recognition_alphabet_mapping'"recognition_alphabet_mapping""recognition_alphabet_mapping""recognition_alphabet_mapping""recognition_alphabet_mapping""recognition_alphabet_mapping"
und 'recognition_alphabet_internal'"recognition_alphabet_internal""recognition_alphabet_internal""recognition_alphabet_internal""recognition_alphabet_internal""recognition_alphabet_internal")).
Das Alphabet kann bei Bedarf geändert oder erweitert werden. Wird das
Alphabet über 'recognition_alphabet'"recognition_alphabet""recognition_alphabet""recognition_alphabet""recognition_alphabet""recognition_alphabet" geändert, so werden das
interne Alphabet und dessen Mapping so geändert, dass, falls möglich,
die Länge des internen Alphabets gleich bleibt.
Es wird empfohlen das Modell mit anwendungsspezifischen Daten
nachzutrainieren wenn das Alphabet geändert wird (siehe auch das
HDevelop Beispielprogramm
deep_ocr_recognition_training_workflow.hdev). Für zuvor
unbekannte Zeichen werden mehr Trainingsdaten benötigt.
Es ist zu beachten, dass, falls sich die Länge des internen
Alphabets ändert, die letzten Modell-Layer zufällig initialisiert werden
müssen und dadurch zufällige Strings als Ausgabe resultieren
(siehe 'recognition_alphabet_internal'"recognition_alphabet_internal""recognition_alphabet_internal""recognition_alphabet_internal""recognition_alphabet_internal""recognition_alphabet_internal"). In diesem Fall ist
es zwingend notwendig das Modell nachzutrainieren.
Der vollständige Zeichensatz mit dem die Deep OCR
Erkennungs-Komponente trainiert wurde.
Das erste Zeichen des internen Alphabets hat eine Sonderstellung.
Im vortrainierten Modell ist es als leeres Braillezeichen (U+2800)
spezifiziert, ist dabei aber nicht mit dem Leerzeichen
zu verwechseln.
Dieses leeres Braillezeichen wird nie in einem Wort zurückgegeben,
kann dafür aber als Kandidat für Zeichen zurückgegeben werden.
Das leeres Braillezeichen ist notwendig und muss auch bei einer
Änderung des internen Alphabets das erste Zeichen des Alphabets bleiben.
Das leeres Braillezeichen wird automatisch zum Zeichensatz hinzugefügt
falls das Alphabet mit 'recognition_alphabet'"recognition_alphabet""recognition_alphabet""recognition_alphabet""recognition_alphabet""recognition_alphabet" geändert wird.
Die Länge dieses Tupels entspricht der Tiefe des letzten
Faltungs-Layers des Modells. Ändert sich die Länge, dann müssen
die Größen des letzten Faltungslayers und aller folgenden Layer
angepasst und möglicherweise zufällig reinitialisiert werden.
Nach einer entsprechenden Änderung ist es notwendig das Modell
nachzutrainieren (siehe HDevelop Beispielprogramm
deep_ocr_recognition_training_workflow.hdev).
Es wird empfohlen den Parameter 'recognition_alphabet'"recognition_alphabet""recognition_alphabet""recognition_alphabet""recognition_alphabet""recognition_alphabet"
zur Änderung des Alphabets zu verwenden, da dadurch versucht
wird die Länge des internen Alphabets automatisch zu erhalten.
Es handelt sich um ein Mapping, das vom Modell während der Dekodierung
jedes Wortes angewendet wird. Das Mapping überschreibt jedes
Zeichen von 'recognition_alphabet_internal'"recognition_alphabet_internal""recognition_alphabet_internal""recognition_alphabet_internal""recognition_alphabet_internal""recognition_alphabet_internal" mit dem
vom Index festgelegten Zeichen aus
'recognition_alphabet_internal'"recognition_alphabet_internal""recognition_alphabet_internal""recognition_alphabet_internal""recognition_alphabet_internal""recognition_alphabet_internal".
Das über die Indizes des Tupels definierte Mapping wird im
Dekodierungsschritt auf die vorhergesagten Zeichen angewandt.
Das Tupel muss dieselbe Länge wie das Tupel
'recognition_alphabet_internal'"recognition_alphabet_internal""recognition_alphabet_internal""recognition_alphabet_internal""recognition_alphabet_internal""recognition_alphabet_internal" haben.
Jeder der ganzzahligen Indizes von
'recognition_alphabet_mapping'"recognition_alphabet_mapping""recognition_alphabet_mapping""recognition_alphabet_mapping""recognition_alphabet_mapping""recognition_alphabet_mapping" muss zwischen 0
|'recognition_alphabet_internal'"recognition_alphabet_internal""recognition_alphabet_internal""recognition_alphabet_internal""recognition_alphabet_internal""recognition_alphabet_internal"|-1 liegen.
Manchmal kann es nützlich sein ein Mapping für bestimmte Zeichen
aufeinander zu definieren. Falls beispielsweise nur Zahlen in einer
Anwendung auftreten können kann es sinnvoll sein ein Mapping des Zeichens
"O" auf "0" festzulegen. Das Modell muss dafür nicht nachtrainiert
werden.
Falls ein Eintrag auf 0 gesetzt wird, wird das entsprechende
Zeichen in 'recognition_alphabet_internal'"recognition_alphabet_internal""recognition_alphabet_internal""recognition_alphabet_internal""recognition_alphabet_internal""recognition_alphabet_internal" in keinem
Wort dekodiert.
Anzahl der Bilder in einem Batch, die gleichzeitig in den Gerätespeicher
transferiert werden. Für mehr Informationen wird auf die
Referenzdokumentation des Operator apply_dl_modelapply_dl_modelApplyDlModelApplyDlModelApplyDlModelapply_dl_model bezüglich des
Parameters 'batch_size'"batch_size""batch_size""batch_size""batch_size""batch_size" verwiesen. Dieser Parameter kann dazu
verwendet werden die Laufzeit von apply_deep_ocrapply_deep_ocrApplyDeepOcrApplyDeepOcrApplyDeepOcrapply_deep_ocr auf der
gegebenen Hardware-Einheit zu verkürzen. Falls die
Erkennungs-Komponente mehrere Eingaben (Wörter) gleichzeitig
verarbeiten muss, kann eine höhere 'recognition_batch_size'"recognition_batch_size""recognition_batch_size""recognition_batch_size""recognition_batch_size""recognition_batch_size" zu
schnellerer Verarbeitung führen. Es gilt zu beachten, dass ein höherer
Wert für die 'recognition_batch_size'"recognition_batch_size""recognition_batch_size""recognition_batch_size""recognition_batch_size""recognition_batch_size" zu höherem
Speicherverbrauch auf der Hardware-Einheit führt.
Dieser Parameter setzt die Hardware Einheit auf welcher die
Erkennungs-Komponente des Deep OCR-Modells ausgeführt wird.
Siehe 'device'"device""device""device""device""device" für weitere Erklärungen.
Default: Der selbe Wert wie für 'device'"device""device""device""device""device".
Tupel mit den Bilddimensionen ('recognition_image_width'"recognition_image_width""recognition_image_width""recognition_image_width""recognition_image_width""recognition_image_width",
'recognition_image_height'"recognition_image_height""recognition_image_height""recognition_image_height""recognition_image_height""recognition_image_height", Anzahl Kanäle),
welche die Erkennungs-Komponente verarbeitet.
Der Bildausschnitt wird zunächst Seitenverhältnis getreu auf die Höhe
'recognition_image_height'"recognition_image_height""recognition_image_height""recognition_image_height""recognition_image_height""recognition_image_height" gezoomt. Anschließend wird das
resultierende Bild, falls es eine geringere Breite als
'recognition_image_width'"recognition_image_width""recognition_image_width""recognition_image_width""recognition_image_width""recognition_image_width" besitzt, von rechts mit Grauwert 0
aufgefüllt. Falls der Bildausschnitt breiter sein sollte, wird er auf
die Breite 'recognition_image_width'"recognition_image_width""recognition_image_width""recognition_image_width""recognition_image_width""recognition_image_width" gezoomt.
Sind die Parameterwerte korrekt, dann liefert get_deep_ocr_paramget_deep_ocr_paramGetDeepOcrParamGetDeepOcrParamGetDeepOcrParamget_deep_ocr_param den
Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.