Modell

Liste der Operatoren ↓

Dieses Kapitel erklärt das generelle Konzept des Deep Learning-Modells in HALCON und die Handhabung der Daten.

Ein Deep Learning-Modell ist in HALCON eine interne Repräsentation eines Neuronalen Netzwerkes. Jedes Neuronale Netzwerk hat seine Architektur, welche seine Funktion definiert und damit bestimmt, für welche Aufgaben es verwendet werden kann. Dabei sind verschiedene Netzwerk-Architekturen für eine Funktionalität möglich. Momentan sind folgende Funktionalitäten in HALCON als Modell implementiert:

Jede Funktionalität ist über ihren Modelltypen bezeichnet. Für die implementierten Methoden können weitere Informationen zum spezifischen Ablauf, den Daten-Anforderungen und Evaluierungsmöglichkeiten in den jeweiligen Kapiteln gefunden werden. Informationen zu Deep Learning (DL) im Allgemeinen befinden sich im Kapitel Deep Learning.

In diesem Kapitel finden sich Informationen, welche Daten ein DL Modell benötigt und zurück gibt sowie auch wie diese Daten übergeben werden.

Daten

Bei Deep Learning Anwendungen werden Daten verschiedener Art unterschieden. Grob gesagt sind dies die Rohbilder mit möglichen Annotationen, für das Modell passend verarbeitete Daten und Ausgabedaten.

Bevor die verschiedenen Daten und die Einträge spezifischer Dictionarys erläutert werden, wird ein grober Überblick gegeben, wie die Daten zusammenhängen. Dabei beziehen sich Farben und Symbole auf die darunter gegebenen schematischen Darstellungen.

Grob gesagt, beginnt die Datenstruktur beim Training und der Evaluierung mit den rohen Bildern und ihren Ground Truth Annotationen (graue Rahmen). Mit den eingelesenen Daten werden die folgenden Dictionarys erstellt: Ein Dictionary DLDataset (rot) dient als Datenbank und verweist für jedes Eingabebild auf ein spezifisches Dictionary (gelb). Jedes Dictionary DLSample (orange) enthält die Daten eines Samples in der Art wie das Modell sie als Eingabe benötigt. Ein Batch von DLSamples wird dem Modell bei der Evaluierung als DLSampleBatchDLSampleBatchDLSampleBatchDLSampleBatchdlsample_batch übergeben. Bei der Evaluierung wird ein DLResultBatchDLResultBatchDLResultBatchDLResultBatchdlresult_batch zurückgegeben, ein Tupel von Dictionarys DLResult (dunkelblau), jeweils eines pro Sample. Diese Resultate werden für die Evaluierungsresultate in EvaluationResult (türkis) benötigt. Beim Training werden die Trainingsresultate (z.B. Losswerte) im Dictionary DLTrainResultDLTrainResultDLTrainResultDLTrainResultdltrain_result (hellblau) zurückgegeben. Die wichtigsten Schritte, in welchen die Dictionarys erstellt oder modifiziert werden:

image/svg+xml DLDataset samples 'apple' 'lemon' 'lemon' 'apple' DLTrainResult DLSampleBatch DLResultBatch EvaluationResults
Schematische Darstellung der Datenstruktur beim Training und der Evaluierung.

Bei der Inferenz sind keine Annotationen notwendig. Somit startet die Datenstruktur mit den rohen Bilder (grauer Rahmen). Das Dictionary DLSample (orange) enthält die Daten eines Samples in der Art wie das Modell sie als Eingabe benötigt. Die Resultate für ein Sample werden im Dictionary DLResult (dunkelblau) zurückgegeben. Die wichtigsten Schritte, in welchen die Dictionarys erstellt oder modifiziert werden:

image/svg+xml DLSample ? DLResult
Schematische Darstellung der Datenstruktur bei der Inferenz.

Damit das Modell die Daten verarbeiten kann, müssen diese gewisse Konventionen einhalten bezüglich welche Informationen benötigt werden und wie die Daten dem Modell übergeben werden. Wie aus den obigen Schemata ersichtlich, werden die Daten in HALCON über Dictionarys übergeben.

Die einzelnen Dictionarys, wie sie erstellt werden können und ihre Einträge werden im Folgenden genauer erläutert. Um zu markieren, welche Methoden (M) den jeweiligen Eintrag nutzen, verwenden wir folgende Abkürzungen:

Die Einträge, die nur auf einzelne Methoden zutreffen, werden in den jeweiligen Kapiteln genauer beschrieben.

Eingabedaten beim Training und der Evaluierung

Der Datensatz besteht aus Bildern und den dazugehörigen Informationen. Damit das Modell diese verarbeiten kann, müssen sie bestimmte Anforderungen erfüllen. Informationen zu den Bildanforderungen finden sich im unteren Abschnitt „Bilder“.

Die Informationen zu den Bildern und dem Datensatz werden im Dictionary DLDataset vermerkt. Dabei dient dieses Dictionary als Datenbank. Genauer gesagt, werden darin die generellen Informationen über den Datensatz gespeichert sowie die Dictionarys der einzelnen Samples unter dem Schlüssel samples gesammelt. Werden die jeweiligen Bilddaten benötigt, wird für jedes erforderte Bild ein Dictionary DLSampleDLSampleDLSampleDLSampledlsample erstellt (oder gelesen, falls dieses bereits existiert). Der Zusammenhang zwischen diesen Dictionarys ist in der folgenden Darstellung illustriert.

image/svg+xml DLDataset samples 'image_id' 'image' ... 'image_dir' 'class_ids' 'samples' = [ ] ... ... 'split' 'image_id' DLSampleBatch k = [DLSample , DLSample , DLSample ] j i
Schematische Darstellung der verschiedenen Dictionarys des Datensatzes, welche während des Trainings und der Evaluierung verwendet werden. Zu Darstellungszwecken ist die BatchSize auf drei gesetzt und werden nur wenige Einträge aufgelistet. In diesem Beispiel werden aus den insgesamt Samples drei zufällig ausgewählt, jene mit den Indizes i,j und k. Die entsprechenden DLSampleDLSampleDLSampleDLSampledlsample werden erstellt und im Tupel DLSampleBatchDLSampleBatchDLSampleBatchDLSampleBatchdlsample_batch vereint.
Im Folgenden werden die einzelnen Dictionarys mit ihren Schlüssel/Wert-Paaren genauer erklärt.
DLDataset

Das Dictionary DLDataset dient als Datenbank. Es speichert die generellen Informationen zum Datensatz und sammelt die Dictionarys der individuellen Samples. Dabei sind keine ikonischen Daten in DLDataset enthalten, aber die Pfade zu den entsprechenden Bildern. Das Dictionary DLDataset von den Trainings- und Evaluierungs- Prozeduren verwendet. Es ist für das Modell selbst nicht notwendig, aber seine Erstellung wird stark empfohlen. Dieses Dictionary wird entweder direkt erzeugt, wenn die Daten mit Hilfe des MVTec Deep Learning Tools gelabelt werden, oder es wird durch eine der folgenden methodenspezifischen Prozeduren erzeugt:

  • read_dl_dataset_3d_gripping_point_detection (3D Gripping Point Detection)

  • read_dl_dataset_anomaly (Anomalieerkennung, Global Context Anomaly Detection)

  • read_dl_dataset_classification (Klassifikation)

  • read_dl_dataset_ocr_detection (Deep OCR - Lokalisierungs-Komponente)

  • read_dl_dataset_ocr_recognition (Deep OCR - Erkennungs-Komponente)

  • read_dl_dataset_from_coco (Objektdetektion mit 'instance_type'"instance_type""instance_type""instance_type""instance_type" = 'rectangle1'"rectangle1""rectangle1""rectangle1""rectangle1")

  • read_dl_dataset_segmentation (Semantische Segmentierung).

Bezüglich der genauen Datenanforderungen um diese Prozeduren zu verwenden wird auf die jeweilige Prozedurendokumentation verwiesen. Wird DLDataset auf anderen Wegen erstellt, muss es zumindest die Einträge beinhalten, die in der unteren Erklärung nicht mit einer Zahl markiert sind. Während der Vorverarbeitung des Datensatzes werden dem Dictionary DLDataset die weiteren Einträge von den jeweiligen Prozeduren hinzugefügt.

Vom Modell abhängig kann das Dictionary die folgenden Einträge haben:

image_dir: Any

Basispfad zu allen Bildern.

Format: String

dlsample_dir: Any [1]

Basispfad zu allen Sample Dateien (sofern vorhanden).

Format: String

class_names: Any außer OCR-R

Namen aller zu unterscheidenden Klassen.

Format: Tupel von Strings

class_ids: Any außer OCR-R

IDs aller zu unterscheidenden Klassen (Wertebereich: 0-65534).

Format: Tupel von ganzzahligen Werten

preprocess_param: Any [1]

Alle während der Vorverarbeitung verwendeten Parameter.

Format: Dictionary

normals_dir: 3D-GPD

Optional. Basispfad zu allen Normalenbildern.

format: string

xyz_dir: 3D-GPD

Basispfad zu allen XYZ-Bildern.

format: string

anomaly_dir: AD, GC-AD

Basispfad zu allen Anomalieregionen (Regionen, die eine Anomalie auf dem Bild kennzeichnen).

Format: String

class_weights: CL, SE [1]

Gewichte der verschiedenen Klassen.

Format: Tupel von Gleitkommazahlen

segmentation_dir: SE, 3D-GPD

Basispfad zu allen Segmentierungsbildern.

Format: String

Dieses Dictionary wird direkt erzeugt, wenn die Daten mit Hilfe des MVTec Deep Learning Tools gelabelt werden. Ebenso wird es von den oben erwähnten Prozeduren erstellt. Die mit [1] markierten Einträge werden von den Vorverarbeitungsprozeduren eingetragen.

samples

Der Schlüssel samples des Dictionary DLDataset hat als Wert ein Tupel von Dictionarys, eines für jedes Sample des Datensatzes. Diese Dictionarys beinhalten die Information der jeweiligen Samples und haben die folgenden Einträge:

image_file_name: Any

Dateiname des Bildes und sein Pfad relativ zu image_dir.

Format: String

image_id: Any

Eindeutige Bild-ID (Zeichenkodierungsformat: UINT8).

Format: Ganzzahl

split: Any [2]

Gibt den bei der Aufteilung zugeordneten Datensatz an ('train'"train""train""train""train",'validation'"validation""validation""validation""validation",'test'"test""test""test""test").

Format: String

dlsample_file_name: Any [3]

Dateiname des entsprechenden Dictionary DLSampleDLSampleDLSampleDLSampledlsample und sein Pfad relativ zu dlsample_dir.

Format: String

normals_file_name: 3D-GPD

Optional. Dateiname des Normalenbildes und sein Pfad relativ zu normals_dir.

format: string

segmentation_file_name: 3D-GPD, SE

Dateiname des Segmentierungsbildes und sein Pfad relativ zu segmentation_dir.

format: string

xyz_file_name: 3D-GPD

Dateiname des XYZ-Bildes und sein Pfad relativ zu xyz_dir.

format: string

anomaly_file_name: AD, GC-AD

Optional. Pfad zu den Dateien mit den Ground Truth Anomalieregionen (relativ zu anomaly_dir).

Format: String

anomaly_label: AD, GC-AD

Ground Truth Anomalie Label (als Name aus class_names).

Format: String

image_label_id: CL

Ground Truth Label des Bildes (als ID aus class_ids).

Format: Tupel von Ganzzahlen

image_label_ids: MLC

Ground Truth Label des Bildes (als IDs aus class_ids).

Format: Tupel von Ganzzahlen

image_id_origin: OCR-R

ID des Originalbildes aus dem das Sample stammt.

Format: Ganzzahl

word: OCR-D, OCR-R

Ground Truth Wort.

Format: String

bbox_label_id: OD, OCR-D

Ground Truth Label für den Bildausschnitt innerhalb des umschließenden Rechtecks (als ID aus class_ids).

Format: Tupel von Ganzzahlen

bbox_row1: OD:r1 [4]

Ground Truth umschließendes Rechteck: Obere linke Ecke, Zeilenkoordinate.

Format: Tupel von Gleitkommazahlen

bbox_col1: OD:r1 [4]

Ground Truth umschließendes Rechteck: Obere linke Ecke, Spaltenkoordinate.

Format: Tupel von Gleitkommazahlen

bbox_row2: OD:r1 [4]

Ground Truth umschließendes Rechteck: Untere rechte Ecke, Zeilenkoordinate.

Format: Tupel von Gleitkommazahlen

bbox_col2: OD:r1 [4]

Ground Truth umschließendes Rechteck: Untere rechte Ecke, Spaltenkoordinate.

Format: Tupel von Gleitkommazahlen

coco_raw_annotations: OD:r1

Optional. Für jede bbox_label_id innerhalb dieses Bildes enthält dieser Wert ein Dictionary mit allen unverarbeiteten COCO Annotations-Informationen.

Format: Tupel von Dictionarys

bbox_row: OCR-D, OCR-R, OD:r2 [4]

Ground Truth umschließendes Rechteck: Mittelpunkt, Zeilenkoordinate.

Format: Tupel von Gleitkommazahlen

bbox_col: OCR-D, OCR-R, OD:r2 [4]

Ground Truth umschließendes Rechteck: Mittelpunkt, Spaltenkoordinate.

Format: Tupel von Gleitkommazahlen

bbox_phi: OCR-D, OCR-R, OD:r2 [4]

Ground Truth umschließendes Rechteck: Winkel phi.

Format: Tupel von Gleitkommazahlen

bbox_length1: OCR-D, OCR-R, OD:r2 [4]

Ground Truth umschließendes Rechteck: Halbe Kantenlänge 1.

Format: Tupel von Gleitkommazahlen

bbox_length2: OCR-D, OCR-R, OD:r2 [4]

Ground Truth umschließendes Rechteck: Halbe Kantenlänge 2.

Format: Tupel von Gleitkommazahlen

mask: OD:is

Ground Truth Masken, welche die Region der Instanzen markieren.

Format: Tupel von Regionen

segmentation_file_name: SE

Dateiname des Ground Truth Segmentierungsbildes und sein Pfad relativ zu segmentation_dir.

Format: String

Diese Dictionarys sind Teil von DLDataset und werden als solche zugleich erstellt. Ausnahme sind dabei die markierten Einträge der Tabelle, [2]: Die Prozedur split_dl_dataset fügt den Eintrag split hinzu, [3]: Die Prozedur preprocess_dl_samples fügt den Eintrag dlsample_file_name hinzu. [4]: Für die Parameter der umschließenden Ground Truth Rechtecke (BBoxGT) werden pixel-zentrierte, subpixel-genaue Koordinaten verwendet.

DLSampleDLSampleDLSampleDLSampledlsample

Das Dictionary DLSampleDLSampleDLSampleDLSampledlsample dient als Eingabewert des Modells. Für einen Batch werden sie als Einträge des Tupels DLSampleBatchDLSampleBatchDLSampleBatchDLSampleBatchdlsample_batch an die Operatoren apply_dl_modelapply_dl_modelApplyDlModelApplyDlModelapply_dl_model oder train_dl_model_batchtrain_dl_model_batchTrainDlModelBatchTrainDlModelBatchtrain_dl_model_batch übergeben.

Ein solches Dictionary DLSampleDLSampleDLSampleDLSampledlsample wird für jeden Eintrag aus den Daten in DLDataset durch die Prozeduren gen_dl_samples gefolgt von preprocess_dl_samples erstellt. Es enthält alle Ground Truth Annotationen eines Eintrags. Es gilt zu beachten, dass die Vorverarbeitung zu Aktualisierungen des entsprechenden DLSampleDLSampleDLSampleDLSampledlsample führt. Wird die Vorverarbeitung mit der Standard-Prozedur preprocess_dl_dataset durchgeführt, werden die vorverarbeiteten Daten auf dem Dateisystem abgelegt. Danach können sie durch read_dl_samples ausgelesen werden.

Das Dictionary DLSampleDLSampleDLSampleDLSampledlsample hat folgende Einträge:

anomaly_ground_truth: AD, GC-AD

Bild oder Region, aus anomaly_file_name.

Format: Bild oder Region

anomaly_label: AD, GC-AD

Ground Truth Anomalie Label auf Bildebene (als Name aus class_names).

Format: String

anomaly_label_id: AD, GC-AD

Ground Truth Anomalie Label auf Bildebene (als ID aus class_ids).

Format: Ganzzahl

bbox_label_id: OD

Ground Truth Label für den Bildausschnitt innerhalb des umschließenden Rechtecks (als ID aus class_ids).

Format: Tupel von Ganzzahlen

bbox_row1: OD:r1 [4]

Ground Truth umschließendes Rechteck: Obere linke Ecke, Zeilenkoordinate.

Format: Tupel von Gleitkommazahlen

bbox_col1: OD:r1 [4]

Ground Truth umschließendes Rechteck: Obere linke Ecke, Spaltenkoordinate.

Format: Tupel von Gleitkommazahlen

bbox_row2: OD:r1 [4]

Ground Truth umschließendes Rechteck: Untere rechte Ecke, Zeilenkoordinate.

Format: Tupel von Gleitkommazahlen

bbox_col2: OD:r1 [4]

Ground Truth umschließendes Rechteck: Untere rechte Ecke, Spaltenkoordinate.

Format: Tupel von Gleitkommazahlen

bbox_row: OCR-D, OD:r2 [4]

Ground Truth umschließendes Rechteck: Mittelpunkt, Zeilenkoordinate.

Format: Tupel von Gleitkommazahlen

bbox_col: OCR-D, OD:r2 [4]

Ground Truth umschließendes Rechteck: Mittelpunkt, Spaltenkoordinate.

Format: Tupel von Gleitkommazahlen

bbox_phi: OCR-D, OD:r2 [4]

Ground Truth umschließendes Rechteck: Winkel phi.

Format: Tupel von Gleitkommazahlen

bbox_length1: OCR-D, OD:r2 [4]

Ground Truth umschließendes Rechteck: Halbe Kantenlänge 1.

Format: Tupel von Gleitkommazahlen

bbox_length2: OCR-D, OD:r2 [4]

Ground Truth umschließendes Rechteck: Halbe Kantenlänge 2.

Format: Tupel von Gleitkommazahlen

image: Any

Eingabebild

Format: Bild

image_label_id: CL

Ground Truth Label des Bildes (als ID aus class_ids).

Format: Ganzzahl

image_label_ids: MLC

Ground Truth Label des Bildes (als IDs aus class_ids).

Format: Tupel von Ganzzahlen

mask: OD:is

Ground Truth Masken, welche die Region der Instanzen markieren.

Format: Tupel von Regionen

normals: 3D-GPD

2D-Mappings (3-kanaliges Bild)

Format: Bild

segmentation_image: SE, 3D-GPD

Bild mit den Ground Truth Segmentierungen, eingelesen von segmentation_file_name.

Format: Bild

weight_image: SE [5]

Bild mit den Pixel-Gewichten.

Format: Bild

target_text: OCR-D

Das Zielbild der Text-Lokalisierung.

format: Bild

target_link: OCR-D

Das Zielbild der Verbindung von lokalisierten Zeichenmittelpunkten zu einem zusammenhängenden Wort.

format: Bild

target_weight_orientation: OCR-D

Das Gewicht bezüglich der Eingabe target_orientation.

format: Bild

target_weight_link: OCR-D

Das Gewicht bezüglich der Eingabe target_link.

format: Bild

target_weight_text: OCR-D

Das Gewicht bezüglich der Eingabe target_text.

format: Bild

word: OCR-D, OCR-R

Ground Truth Wort.

Format: String

x: 3D-GPD

X-Bild (Werte müssen von links nach rechts aufsteigend).

Format: Bild

y: 3D-GPD

Y-Bild (Werte müssen von oben nach unten aufsteigend).

Format: Bild

z: 3D-GPD

Z-Bild (Werte müssen von dem Sensor nahen zu fernen Punkten aufsteigen; das ist z.B. der Fall wenn die Daten bezüglich des Kamerakoordinatensystems angegeben werden).

Format: Bild

Diese Dictionarys werden von den Prozeduren gen_dl_samples und preprocess_dl_samples erzeugt. Eine Ausnahme stellt der markierte Eintrag dar, [5]: wird von der Prozedur gen_dl_segmentation_weights erstellt. [4]: Für die Parameter der Ground Truth umschließenden Rechtecke werden pixel-zentrierte, subpixel-genaue Koordinaten verwendet.

Eingabedaten bei der Inferenz

Die Eingabedaten bei der Inferenz bestehen aus einem oder mehreren DLSampleDLSampleDLSampleDLSampledlsample Dictionarys. Im Gegensatz zu Training und Evaluierung werden nur die folgenden Einträge verwendet:

image: Any

Eingabebild.

Format: Bild

normals: 3D-GPD

2D-Mappings (3-kanaliges Bild).

Format: Bild

x: 3D-GPD

X-Bild (Werte müssen von links nach rechts aufsteigend).

Format: Bild

y: 3D-GPD

Y-Bild (Werte müssen von oben nach unten aufsteigend).

Format: Bild

z: 3D-GPD

Z-Bild (Werte müssen von dem Sensor nahen zu fernen Punkten aufsteigen; das ist z.B. der Fall wenn die Daten bezüglich des Kamerakoordinatensystems angegeben werden).

Format: Bild

Informationen zu den Bildanforderungen finden sich im unteren Abschnitt „Bilder“.

Für die Inferenz beinhaltet ein solches Dictionary nur die Bilddaten und wird von der Prozedur gen_dl_samples_from_images oder gen_dl_samples_3d_gripping_point_detection (nur für 3D Gripping Point Detection) erstellt. Diese Dictionarys können einzeln oder als Einträge des Tupels übergeben werden DLSampleBatchDLSampleBatchDLSampleBatchDLSampleBatchdlsample_batch.

Ausgabedaten beim Training

Die Trainingsresultate werden im Dictionary DLTrainResultDLTrainResultDLTrainResultDLTrainResultdltrain_result gesammelt. Die spezifischen Einträge hängen vom Modell und damit vom verwendeten Operator ab (für weitere Informationen, siehe die Dokumentation des entsprechendes Operators):

3D-GPD, CL, MLC, OCR-D, OCR-R, GC-AD, OD, SE:

Der Operator train_dl_model_batchtrain_dl_model_batchTrainDlModelBatchTrainDlModelBatchtrain_dl_model_batch gibt folgende Einträge zurück:

  • total_loss

  • weitere mögliche Zielfunktionen des Modells

AD:

Der Operator train_dl_model_anomaly_datasettrain_dl_model_anomaly_datasetTrainDlModelAnomalyDatasetTrainDlModelAnomalyDatasettrain_dl_model_anomaly_dataset gibt folgende Einträge zurück:

  • final_error

  • final_epoch

Als Ausgabe des Operators train_dl_model_batchtrain_dl_model_batchTrainDlModelBatchTrainDlModelBatchtrain_dl_model_batch gibt das Modell ein Dictionary DLTrainResultDLTrainResultDLTrainResultDLTrainResultdltrain_result zurück. In diesem Dictionary befinden sich der aktuelle Wert der Gesamt-Zielfunktion unter dem Schlüssel total_loss sowie die Werte aller weiteren im Modell enthaltenen Zielfunktionen.

Ausgabedaten bei der Inferenz und der Evaluierung

Als Ausgabe des Operators apply_dl_modelapply_dl_modelApplyDlModelApplyDlModelapply_dl_model gibt das Modell für jedes Sample ein Dictionary DLResultDLResultDLResultDLResultdlresult, siehe die unten folgende Darstellung. Die Evaluierung basiert auf diesen Resultaten und den dem Bild zugehörigen Annotationen. Die Evaluierungsresultate werden im Dictionary EvaluationResult gespeichert.

image/svg+xml DLResultBatch 2 = [DLResult , DLResult , DLResult ] 0 1 'image_id' 'image' ... DLSampleBatch k = [DLSample , DLSample , DLSample ] j i 'val_1' 'val_2' 'val_3' ... image/svg+xml DLSample DLResult 'image' 'val_1' 'val_2' 'val_3' ...
( 1) ( 2)
Schematische Darstellung der Dictionarys, welche als Modell-Eingabe dienen: (1) Evaluierung: DLSampleDLSampleDLSampleDLSampledlsample beinhaltet das Bild sowie Informationen über das Bild und seinen Inhalt. Diese Daten dienen als Basis der Evaluierung. Zu Darstellungszwecken ist die BatchSize auf drei gesetzt, zudem sind nur wenige Einträge aufgelistet. (2) Inferenz: DLSampleDLSampleDLSampleDLSampledlsample beinhaltet das Bild. Diese Dictionarys können einzeln oder im Tupel übergeben werden.

Abhängig vom Modell-Typ kann dieses Dictionary die folgenden Einträge haben:

gripping_map: 3D-GPD

Binärbild, das für jedes Pixel der Szene angibt, ob das Modell einen Greifpunkt vorhergesagt hat (Pixelwert = 1.0) oder nicht (0.0).

Format: Bild

gripping_confidence: 3D-GPD

Bild, das für jeden Punkt der Szene unverarbeitete, unkalibrierte Konfidenzwerte enthält.

Format: Bild

anomaly_image: AD, GC-AD

Grauwertbild mit Scores als Pixelwerte, die angeben wie wahrscheinlich der entsprechende Pixel im Eingabebild zu einer Anomalie gehört.

Format: Bild

anomaly_image_combined: GC-AD

Grauwertbild mit Scores als Pixelwerte, die angeben wie wahrscheinlich der entsprechende Pixel im Eingabebild zu einer Anomalie gehört. Berechnet aus einer Kombination der Subnetzwerke 'global'"global""global""global""global" und 'local'"local""local""local""local" des Modells.

Format: Bild

anomaly_image_global: GC-AD

Grauwertbild mit Scores als Pixelwerte, die angeben wie wahrscheinlich der entsprechende Pixel im Eingabebild zu einer Anomalie gehört. Berechnet aus dem Subnetzwerk 'global'"global""global""global""global" des Modells.

Format: Bild

anomaly_image_local: GC-AD

Grauwertbild mit Scores als Pixelwerte, die angeben wie wahrscheinlich der entsprechende Pixel im Eingabebild zu einer Anomalie gehört. Berechnet aus dem Subnetzwerk 'local'"local""local""local""local" des Modells.

Format: Bild

anomaly_score: AD, GC-AD

Score der Anomalie aufgrund der Werte in anomaly_image.

Format: Gleitkommazahl

anomaly_score_local: GC-AD

Score der Anomalie aufgrund der Werte in anomaly_image_local.

Format: Gleitkommazahl

anomaly_score_global: GC-AD

Score der Anomalie aufgrund der Werte in anomaly_image_global.

Format: Gleitkommazahl

classification_class_ids: CL

IDs der vorhergesagten Klassen des Bildes sortiert nach Konfidenzwerten.

Format: Tupel von Ganzzahlen

classification_class_names: CL

Vorhergesagte Klassennamen des Bildes sortiert nach Konfidenzwerten.

Format: Tupel von Strings

classification_confidences: CL

Konfidenzwerte für die Vorhersage des Bildes für jede Klasse.

Format: Tupel von Gleitkommazahlen

class_ids: MLC

IDs der vorhergesagten Klassen des Bildes sortiert nach Konfidenzwerten.

Format: Tupel von Ganzzahlen

class_names: MLC

Vorhergesagte Klassennamen des Bildes sortiert nach Konfidenzwerten.

Format: Tupel von Strings

confidences: MLC

Konfidenzwerte für die Vorhersage des Bildes für jede Klasse.

Format: Tupel von Gleitkommazahlen

selected_class_ids: MLC

IDs der ausgewählten Klassen des Bildes über dem Schwellenwert für die Konfidenz (min_confidence).

Format: Tupel von Ganzzahlen

selected_class_names: MLC

Ausgewählte Klassennamen des Bildes über dem Schwellenwert für die Konfidenz (min_confidence).

Format: Tupel von Strings

selected_confidences: MLC

Ausgewählte Konfidenzwerte des Bildes für jede Klasse über dem Schwellenwert.

Format: Tupel von Gleitkommazahlen

char_candidates: OCR-R

Kandidaten für jedes Zeichen eines Wortes und deren Konfidenzwerte.

Format: Tupel von Dictionarys

word: OCR-R

Erkanntes Wort.

Format: String

score_maps: OCR-D

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.

format: Bild

words: OCR-D

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

  • row: Lokalisiertes Wort: Mittelpunkt, Zeilenkoordinate

  • col: Lokalisiertes Wort: Mittelpunkt, Spaltenkoordinate

  • phi: Lokalisiertes Wort: Winkel phi.

  • length1: Lokalisiertes Wort: Halbe Kantenlänge 1.

  • length2: Lokalisiertes Wort: Halbe Kantenlänge 2.

  • line_index: 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".

format: Dictionary mit Tupeln von Gleitkommazahlen und Strings

word_boxes_on_image: OCR-D

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: Lokalisiertes Wort: Mittelpunkt, Zeilenkoordinate

  • col: Lokalisiertes Wort: Mittelpunkt, Spaltenkoordinate

  • phi: Lokalisiertes Wort: Winkel phi.

  • length1: Lokalisiertes Wort: Halbe Kantenlänge 1.

  • length2: Lokalisiertes Wort: Halbe Kantenlänge 2.

format: Dictionary mit Tupeln von Gleitkommazahlen

word_boxes_on_score_maps: OCR-D

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. format: Dictionary mit Tupeln von Gleitkommazahlen

bbox_class_id: OD

Vorhergesagte Klasse für das umschließende Rechteck (als ID aus class_ids).

Format: Tupel von Ganzzahlen

bbox_class_name: OD

Name der vorhergesagten Klasse für das umschließende Rechteck.

Format: Tupel von Strings

bbox_confidence: OD

Konfidenzwerte für die Vorhersage des umschließenden Rechtecks.

Format: Tupel von Gleitkommazahlen

bbox_row1: OD:r1 [6]

Inferiertes umschließendes Rechteck: Obere linke Ecke, Zeilenkoordinate.

Format: Tupel von Gleitkommazahlen

bbox_col1: OD:r1 [6]

Inferiertes umschließendes Rechteck: Obere linke Ecke, Spaltenkoordinate.

Format: Tupel von Gleitkommazahlen

bbox_row2: OD:r1 [6]

Inferiertes umschließendes Rechteck: Untere rechte Ecke, Zeilenkoordinate.

Format: Tupel von Gleitkommazahlen

bbox_col2: OD:r1 [6]

Inferiertes umschließendes Rechteck: Untere rechte Ecke, Spaltenkoordinate.

Format: Tupel von Gleitkommazahlen

bbox_row: OD:r2 [6]

Inferiertes umschließendes Rechteck: Mittelpunkt, Zeilenkoordinate.

Format: Tupel von Gleitkommazahlen

bbox_col: OD:r2 [6]

Inferiertes umschließendes Rechteck: Mittelpunkt, Spaltenkoordinate.

Format: Tupel von Gleitkommazahlen

bbox_phi: OD:r2 [6]

Inferiertes umschließendes Rechteck: Winkel phi.

Format: Tupel von Gleitkommazahlen

bbox_length1: OD:r2 [6]

Inferiertes umschließendes Rechteck: Halbe Kantenlänge 1.

Format: Tupel von Gleitkommazahlen

bbox_length2: OD:r2 [6]

Inferiertes umschließendes Rechteck: Halbe Kantenlänge 2.

Format: Tupel von Gleitkommazahlen

mask: OD:is

Inferierte Masken, welche die Region der Instanzen markieren.

Format: Tupel von Regionen

mask_probs: OD:is

Bild mit den Konfidenzwerten der inferierten Masken.

Format: Bild

segmentation_image: SE

Bild mit dem Segmentierungsresultat.

Format: Bild

segmentation_confidence: SE

Bild mit den Konfidenzwerten des Segmentierungsresultats.

Format: Bild

[6]: Für die Parameter der inferierten umschließenden Rechtecke werden pixel-zentrierte, subpixel-genaue Koordinaten verwendet.

Für weitere Informationen zu den Ausgabewerten wird auf das Kapitel der entsprechenden Methode verwiesen, z.B. Deep Learning / Semantische Segmentierung und Kantenextraktion.

Bilder

Unabhängig von der Anwendung stellt das Netzwerk Anforderungen an die Bilder. Die spezifischen Werte hängen vom Netzwerk selbst ab und können mit get_dl_model_paramget_dl_model_paramGetDlModelParamGetDlModelParamget_dl_model_param abgefragt werden. Um diese Anforderungen zu erfüllen, müssen die Bilder evt. vorverarbeitet werden. Die Standard-Vorverarbeitung für den ganzen Datensatz und damit auch der Bilder kann mit Hilfe der Prozedur preprocess_dl_samples durchgeführt werden. Für eine selbst erstellte Vorverarbeitung liefert diese Prozedur eine Anleitung für die Implementierung.


Liste der Operatoren

add_dl_pruning_batchAddDlPruningBatchadd_dl_pruning_batchAddDlPruningBatchadd_dl_pruning_batch
Berechnen von Scores für das Pruning eines Deep Learning-Modells.
apply_dl_modelApplyDlModelapply_dl_modelApplyDlModelapply_dl_model
Anwenden des Deep Learning-basierten Netzwerkes zur Inferenz auf einer Menge an Bildern.
clear_dl_modelClearDlModelclear_dl_modelClearDlModelclear_dl_model
Löschen eines Deep Learning-Modells.
create_dl_pruningCreateDlPruningcreate_dl_pruningCreateDlPruningcreate_dl_pruning
Erstellen eines Handles für Pruning-Daten.
deserialize_dl_modelDeserializeDlModeldeserialize_dl_modelDeserializeDlModeldeserialize_dl_model
Deserialisiert ein Deep Learning-Modell.
gen_dl_model_heatmapGenDlModelHeatmapgen_dl_model_heatmapGenDlModelHeatmapgen_dl_model_heatmap
Inferieren eines Samples und generieren einer Heatmap.
gen_dl_pruned_modelGenDlPrunedModelgen_dl_pruned_modelGenDlPrunedModelgen_dl_pruned_model
Pruning eines Deep Learning-Modells.
get_dl_model_paramGetDlModelParamget_dl_model_paramGetDlModelParamget_dl_model_param
Auslesen der Parameter des Deep Learning-Modells.
get_dl_pruning_paramGetDlPruningParamget_dl_pruning_paramGetDlPruningParamget_dl_pruning_param
Auslesen der Parameter des Pruning Handles.
read_dl_modelReadDlModelread_dl_modelReadDlModelread_dl_model
Lesen eines Deep Learning-Modells aus einer Datei.
serialize_dl_modelSerializeDlModelserialize_dl_modelSerializeDlModelserialize_dl_model
Serialisiert ein Deep Learning-Modell.
set_dl_model_paramSetDlModelParamset_dl_model_paramSetDlModelParamset_dl_model_param
Setzen der Parameter des Deep Learning-basierten Models.
set_dl_pruning_paramSetDlPruningParamset_dl_pruning_paramSetDlPruningParamset_dl_pruning_param
Setzen der Parameter in einem Pruning Handle.
train_dl_model_batchTrainDlModelBatchtrain_dl_model_batchTrainDlModelBatchtrain_dl_model_batch
Trainieren eines Deep Learning-Modells.
write_dl_modelWriteDlModelwrite_dl_modelWriteDlModelwrite_dl_model
Abspeichern eines Deep Learning-Modells in eine Datei.