apply_deep_ocrT_apply_deep_ocrApplyDeepOcrApplyDeepOcrapply_deep_ocr (Operator)

Name

apply_deep_ocrT_apply_deep_ocrApplyDeepOcrApplyDeepOcrapply_deep_ocr — Anwenden eines Deep OCR-Modells auf mehreren Bildern.

Signatur

apply_deep_ocr(Image : : DeepOcrHandle, Mode : DeepOcrResult)

Herror T_apply_deep_ocr(const Hobject Image, const Htuple DeepOcrHandle, const Htuple Mode, Htuple* DeepOcrResult)

void ApplyDeepOcr(const HObject& Image, const HTuple& DeepOcrHandle, const HTuple& Mode, HTuple* DeepOcrResult)

HDictArray HDlModelOcr::ApplyDeepOcr(const HImage& Image, const HString& Mode) const

HDictArray HDlModelOcr::ApplyDeepOcr(const HImage& Image, const char* Mode) const

HDictArray HDlModelOcr::ApplyDeepOcr(const HImage& Image, const wchar_t* Mode) const   ( Nur Windows)

static void HOperatorSet.ApplyDeepOcr(HObject image, HTuple deepOcrHandle, HTuple mode, out HTuple deepOcrResult)

HDict[] HDlModelOcr.ApplyDeepOcr(HImage image, string mode)

def apply_deep_ocr(image: HObject, deep_ocr_handle: HHandle, mode: str) -> Sequence[HHandle]

def apply_deep_ocr_s(image: HObject, deep_ocr_handle: HHandle, mode: str) -> HHandle

Beschreibung

apply_deep_ocrapply_deep_ocrApplyDeepOcrApplyDeepOcrapply_deep_ocr wendet das durch DeepOcrHandleDeepOcrHandleDeepOcrHandledeepOcrHandledeep_ocr_handle gegebene Deep OCR-Modell auf die Eingabebilder im Tupel ImageImageImageimageimage an. Der Operator gibt DeepOcrResultDeepOcrResultDeepOcrResultdeepOcrResultdeep_ocr_result zurück, ein Tupel mit einem Ergebnis-Dictionary DeepOcrResultDeepOcrResultDeepOcrResultdeepOcrResultdeep_ocr_result pro Eingabebild.

Der Operator apply_deep_ocrapply_deep_ocrApplyDeepOcrApplyDeepOcrapply_deep_ocr stellt folgende Anforderungen an die Eingabebilder ImageImageImageimageimage:

Des Weiteren wird der Operator apply_deep_ocrapply_deep_ocrApplyDeepOcrApplyDeepOcrapply_deep_ocr die Bilder ImageImageImageimageimage vorverarbeiten um den Modellspezifikationen zu entsprechen. Dies bedeutet, dass die Byte-Bilder normalisiert und in real-Bilder umgewandelt werden. Außerdem wird für ModeModeModemodemode = 'auto'"auto""auto""auto""auto" oder 'detection'"detection""detection""detection""detection" das Bild ImageImageImageimageimage auf die Eingabedimensionen des Modells aufgefüllt und im Falle von nur einem Kanal in ein dreikanaliges Bild umgewandelt. Für ModeModeModemodemode = 'recognition'"recognition""recognition""recognition""recognition" werden dreikanalige Bilder automatisch in einkanalige Bilder umgewandelt.

Der Parameter ModeModeModemodemode bestimmt den Modus und dadurch, welche Komponente ausgeführt wird. Es werden folgende Werte unterstützt:

'auto'"auto""auto""auto""auto" (A):

Es werden beide Teile ausgeführt, die Lokalisierung und Erkennung der Worte.

'detection'"detection""detection""detection""detection" (DET):

Nur die Komponente zur Lokalisierung wird ausgeführt. Daher lokalisiert das Modell lediglich die Wortbereiche innerhalb des Bildes.

'recognition'"recognition""recognition""recognition""recognition" (REC):

Nur die Komponente zum Erkennen der Worte wird ausgeführt. Das Modell erwartet einen engen Zuschnitt eines einzelnen Wortes als Eingabe. Bei eingeschalteteter Alignment-Unterstützung kann der Zuschnitt weiter und weniger präzise sein sowie Hintergrund beinhalten. Vor der eigentlichen Erkennung wendet die Alignment-Unterstützung einen Transformationsschritt an, um den Text genau zu positionieren.

Es gilt zu beachten, dass das Modell die entsprechenden Komponenten enthalten muss, siehe create_deep_ocrcreate_deep_ocrCreateDeepOcrCreateDeepOcrcreate_deep_ocr.

Das Ergebnis-Dictionary DeepOcrResultDeepOcrResultDeepOcrResultdeepOcrResultdeep_ocr_result hat folgende Einträge, abhängig von ModeModeModemodemode (mit der Abkürzung markiert):

image (A, DET, REC):

Vorverarbeitetes Bild.

image_aligned (REC):

Ausgerichtetes Bild, falls 'recognition_alignment'"recognition_alignment""recognition_alignment""recognition_alignment""recognition_alignment" gleich 'true'"true""true""true""true" ist.

score_maps (A, DET):

Bewertungen als Bild mit vier Kanälen:

  • Zeichenbewertung: Bewertung der Lokalisierung von Zeichen.

  • Verknüpfungsbewertung: Bewertung der Verbindung von lokalisierten Zeichenmittelpunkten zu einem zusammenhängenden Wort.

  • Ausrichtung 1: Sinuskomponente der vorhergesagten Wortausrichtung.

  • Ausrichtung 2: Kosinuskomponente der vorhergesagten Wortausrichtung.

words (A, DET):

Dictionary mit den folgenden Einträgen. Dabei sind die Einträge Tupel mit einem Wert für jedes gefundene Wort.

  • word (A): Erkanntes Wort.

  • char_candidates (A): Ein Dictionary mit Informationen über jeden Buchstaben eines jeden erkannten Wortes. Das Dictionary enthält für jedes Wort ein Schlüssel/Wert Paar: Der Index des Wortes ist der Schlüssel und ein Tupel von Dictionaries sind die Werte. Jedes dieser Buchstaben-Dictionaries enthält folgende Schlüssel/Werte Paare:

    • 'candidate': Ein Tupel der besten 'recognition_num_char_candidates'"recognition_num_char_candidates""recognition_num_char_candidates""recognition_num_char_candidates""recognition_num_char_candidates" Kandidaten.

    • 'confidence': Softmax basierte Konfidenzwerte eines jeden besten Kandidaten. Man beachte, dass diese Werte nicht kalibriert sind und mit Vorsicht verwendet werden sollten. Sie können sich signifikant von Modell zu Modell unterscheiden.

  • word_image (A): Vorverarbeiteter Bildteil, der das Wort enthält.

  • word_image_aligned (A): Ausgerichteter Bildteil, der das Wort enthält, falls 'recognition_alignment'"recognition_alignment""recognition_alignment""recognition_alignment""recognition_alignment" gleich 'true'"true""true""true""true" ist.

  • row (A, DET): Lokalisiertes Wort: Mittelpunkt, Zeilenkoordinate

  • col (A, DET): Lokalisiertes Wort: Mittelpunkt, Spaltenkoordinate

  • phi (A, DET): Lokalisiertes Wort: Winkel phi.

  • length1 (A, DET): Lokalisiertes Wort: Halbe Kantenlänge 1.

  • length2 (A, DET): Lokalisiertes Wort: Halbe Kantenlänge 2.

  • line_index (A, DET): Zeilen-Index der lokalisierten Worte, falls 'detection_sort_by_line'"detection_sort_by_line""detection_sort_by_line""detection_sort_by_line""detection_sort_by_line" gleich 'true'"true""true""true""true".

Die Lokalisierung der Worte ist mittels Parameter orientierter Rechtecke gegeben, siehe gen_rectangle2gen_rectangle2GenRectangle2GenRectangle2gen_rectangle2 für weitere Informationen.

word_boxes_on_image (A, DET):

Dictionary mit der Lokalisierung der Worte im Koordinatensystem der vorverarbeiteten Bilder, die sich in image befinden. Dabei sind die Einträge Tupel mit einem Wert für jedes gefundene Wort.

  • row (A, DET): Lokalisiertes Wort: Mittelpunkt, Zeilenkoordinate

  • col (A, DET): Lokalisiertes Wort: Mittelpunkt, Spaltenkoordinate

  • phi (A, DET): Lokalisiertes Wort: Winkel phi.

  • length1 (A, DET): Lokalisiertes Wort: Halbe Kantenlänge 1.

  • length2 (A, DET): Lokalisiertes Wort: Halbe Kantenlänge 2.

Die Lokalisierung der Worte ist mittels Parameter orientierter Rechtecke gegeben, siehe gen_rectangle2gen_rectangle2GenRectangle2GenRectangle2gen_rectangle2 für weitere Informationen.

word_boxes_on_score_maps (A, DET):

Dictionary mit der Lokalisierung der Worte im Koordinatensystem der Bewertungsbilder, die sich in score_maps befinden. Die Einträge sind die gleichen wie für word_boxes_on_image oben.

word (REC):

Erkanntes Wort.

char_candidates (REC):

Ein Tupel von Dictionaries mit Informationen über jeden Buchstaben des erkannten Wortes. Jedes Buchstaben-Dictionary enthält folgende Schlüssel/Werte Paare:

  • 'candidate': Ein Tupel der besten 'recognition_num_char_candidates'"recognition_num_char_candidates""recognition_num_char_candidates""recognition_num_char_candidates""recognition_num_char_candidates" Kandidaten.

  • 'confidence': Softmax basierte Konfidenzwerte eines jeden besten Kandidaten. Man beachte, dass diese Werte nicht kalibriert sind und mit Vorsicht verwendet werden sollten. Sie können sich signifikant von Modell zu Modell unterscheiden.

Achtung

Systemvoraussetzungen: Um diesen Operator auf der GPU auszuführen (siehe get_deep_ocr_paramget_deep_ocr_paramGetDeepOcrParamGetDeepOcrParamget_deep_ocr_param), werden cuDNN und cuBLAS benötigt. Für weitere Details wird auf den „Installation Guide“, Abschnitt „Requirements for Deep Learning and Deep-Learning-Based Methods“, verwiesen. Alternativ kann dieser Operator auch auf der CPU ausgeführt werden.

Ausführungsinformationen

Dieser Operator liefert ein Handle zurück. Es ist zu beachten, dass der Zustand einer Instanz dieses Handletyps durch bestimmte Operatoren geändert werden kann, obwohl das Handle als Eingabeparameter in diesen Operatoren verwendet wird.

Dieser Operator unterstützt Cancel-Timeouts und Interrupts.

Dieser Operator unterstützt Break-Timeouts und Interrupts.

Parameter

ImageImageImageimageimage (input_object)  (multichannel-)image(-array) objectHImageHObjectHObjectHobject (byte)

Eingabebild.

DeepOcrHandleDeepOcrHandleDeepOcrHandledeepOcrHandledeep_ocr_handle (input_control)  deep_ocr HDlModelOcr, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle des Deep OCR-Modells.

ModeModeModemodemode (input_control)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Inferenz-Modus.

Default: []

Werteliste: 'auto'"auto""auto""auto""auto", 'detection'"detection""detection""detection""detection", 'recognition'"recognition""recognition""recognition""recognition"

DeepOcrResultDeepOcrResultDeepOcrResultdeepOcrResultdeep_ocr_result (output_control)  dict(-array) HDict, HTupleSequence[HHandle]HTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Tupel mit Ergebnis-Dictionaries.

Ergebnis

Sind die Parameterwerte korrekt, dann liefert apply_deep_ocrapply_deep_ocrApplyDeepOcrApplyDeepOcrapply_deep_ocr den Wert 2 ( H_MSG_TRUE) . Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

get_deep_ocr_paramget_deep_ocr_paramGetDeepOcrParamGetDeepOcrParamget_deep_ocr_param, set_deep_ocr_paramset_deep_ocr_paramSetDeepOcrParamSetDeepOcrParamset_deep_ocr_param, create_deep_ocrcreate_deep_ocrCreateDeepOcrCreateDeepOcrcreate_deep_ocr

Modul

OCR/OCV