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 Dictionaries 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 Dictionaries erstellt: Ein Dictionary DLDataset (rot) dient als Datenbank und verweist für jedes Eingabebild auf ein spezifisches Dictionary (gelb). Jedes Dictionaries 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 DLSampleBatch übergeben. Bei der Evaluierung wird ein DLResultBatch zurückgegeben, ein Tupel von Dictionaries DLResult (dunkelblau), jeweils eines pro Sample. Diese Resultate werden für die Evaluierungsresultate in EvaluationResults (türkis) benötigt. Beim Training werden die Trainingsresultate (zB Losswerte) im Dictionary DLTrainResult (hellblau) zurückgegeben. Die wichtigsten Schritte, in welchen die Dictionaries 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 Dictionaries 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 Dictionaries übergeben.

Die einzelnen Dictionaries, 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 DLDatasetDLDatasetDLDatasetDLDatasetDLDataset vermerkt. Dabei dient dieses Dictionary als Datenbank. Genauer gesagt, werden darin die generellen Informationen über den Datensatz gespeichert sowie die Dictionaries der einzelnen Samples unter dem Schlüssel samplessamplessamplessamplessamples 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 Dictionaries 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 Dictionaries des Datensatzes, welche während des Trainings und der Evaluierung verwendet werden. Zu Darstellungszwecken ist die BatchSizeBatchSizeBatchSizeBatchSizebatchSize 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 DLSampleBatchDLSampleBatchDLSampleBatchDLSampleBatchDLSampleBatch vereint.
Im Folgenden werden die einzelnen Dictionaries mit ihren Schlüssel/Wert-Paaren genauer erklärt.
DLDatasetDLDatasetDLDatasetDLDatasetDLDataset

Das Dictionary DLDatasetDLDatasetDLDatasetDLDatasetDLDataset dient als Datenbank. Es speichert die generellen Informationen zum Datensatz und sammelt die Dictionaries der individuellen Samples. Dabei sind keine ikonischen Daten in DLDatasetDLDatasetDLDatasetDLDatasetDLDataset enthalten, aber die Pfade zu den entsprechenden Bildern. Das Dictionary DLDatasetDLDatasetDLDatasetDLDatasetDLDataset 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 direkt erzeugt, wenn die Daten mit Hilfe des MVTec Deep Learning Tools gelabelt werden. Alternativ wird es erstellt, wenn zum Einlesen der Daten eine der folgenden Prozeduren verwendet wird:

  • read_dl_dataset_anomaly (Anomalieerkennung)

  • read_dl_dataset_classification (Klassifikation)

  • 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 DLDatasetDLDatasetDLDatasetDLDatasetDLDataset 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 DLDatasetDLDatasetDLDatasetDLDatasetDLDataset die weiteren Einträge von den jeweiligen Prozeduren hinzugefügt.

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

image_dirimage_dirimage_dirimage_dirimageDir: Any

Basispfad zu allen Bildern.

Format: String

dlsample_dirdlsample_dirdlsample_dirdlsample_dirdlsampleDir: Any [1]

Basispfad zu allen Sample Dateien (sofern vorhanden).

Format: String

class_namesclass_namesclass_namesclass_namesclassNames: Any

Namen aller zu unterscheidenden Klassen.

Format: Tupel von Strings

class_idsclass_idsclass_idsclass_idsclassIds: Any

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

Format: Tupel von ganzzahligen Werten

preprocess_parampreprocess_parampreprocess_parampreprocess_parampreprocessParam: Any [1]

Alle während der Vorverarbeitung verwendeten Parameter.

Format: Dictionary

anomaly_diranomaly_diranomaly_diranomaly_diranomalyDir: AD

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

Format: String

class_weightsclass_weightsclass_weightsclass_weightsclassWeights: CL, SE [1]

Gewichte der verschiedenen Klassen.

Format: Tupel von Gleitkommazahlen

segmentation_dirsegmentation_dirsegmentation_dirsegmentation_dirsegmentationDir: SE

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.

samplessamplessamplessamplessamples

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

image_file_nameimage_file_nameimage_file_nameimage_file_nameimageFileName: Any

Dateiname des Bildes und sein Pfad relativ zu image_dirimage_dirimage_dirimage_dirimageDir.

Format: String

image_idimage_idimage_idimage_idimageId: Any

Eindeutige Bild-ID (Zeichenkodierungsformat: UINT8).

Format: Ganzzahl

splitsplitsplitsplitsplit: 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_namedlsample_file_namedlsample_file_namedlsample_file_namedlsampleFileName: Any [3]

Dateiname des entsprechenden Dictionary DLSampleDLSampleDLSampleDLSampleDLSample und sein Pfad relativ zu dlsample_dirdlsample_dirdlsample_dirdlsample_dirdlsampleDir.

Format: String

anomaly_file_nameanomaly_file_nameanomaly_file_nameanomaly_file_nameanomalyFileName: AD

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

Format: String

anomaly_labelanomaly_labelanomaly_labelanomaly_labelanomalyLabel: AD

Ground Truth Anomalie Label (als Name aus class_namesclass_namesclass_namesclass_namesclassNames).

Format: String

image_label_idimage_label_idimage_label_idimage_label_idimageLabelId: CL

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

Format: Tupel von Ganzzahlen

bbox_label_idbbox_label_idbbox_label_idbbox_label_idbboxLabelId: OD

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

Format: Tupel von Ganzzahlen

bbox_row1bbox_row1bbox_row1bbox_row1bboxRow1: OD:r1 [4]

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

Format: Tupel von Gleitkommazahlen

bbox_col1bbox_col1bbox_col1bbox_col1bboxCol1: OD:r1 [4]

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

Format: Tupel von Gleitkommazahlen

bbox_row2bbox_row2bbox_row2bbox_row2bboxRow2: OD:r1 [4]

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

Format: Tupel von Gleitkommazahlen

bbox_col2bbox_col2bbox_col2bbox_col2bboxCol2: OD:r1 [4]

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

Format: Tupel von Gleitkommazahlen

coco_raw_annotationscoco_raw_annotationscoco_raw_annotationscoco_raw_annotationscocoRawAnnotations: OD:r1

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

Format: Tupel von Dictionaries

bbox_rowbbox_rowbbox_rowbbox_rowbboxRow: OD:r2 [4]

Ground Truth umschließendes Rechteck: Mittelpunkt, Zeilenkoordinate.

Format: Tupel von Gleitkommazahlen

bbox_colbbox_colbbox_colbbox_colbboxCol: OD:r2 [4]

Ground Truth umschließendes Rechteck: Mittelpunkt, Spaltenkoordinate.

Format: Tupel von Gleitkommazahlen

bbox_phibbox_phibbox_phibbox_phibboxPhi: OD:r2 [4]

Ground Truth umschließendes Rechteck: Winkel phi.

Format: Tupel von Gleitkommazahlen

bbox_length1bbox_length1bbox_length1bbox_length1bboxLength1: OD:r2 [4]

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

Format: Tupel von Gleitkommazahlen

bbox_length2bbox_length2bbox_length2bbox_length2bboxLength2: OD:r2 [4]

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

Format: Tupel von Gleitkommazahlen

segmentation_file_namesegmentation_file_namesegmentation_file_namesegmentation_file_namesegmentationFileName: SE

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

Format: String

Diese Dictionaries sind Teil von DLDatasetDLDatasetDLDatasetDLDatasetDLDataset 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 splitsplitsplitsplitsplit hinzu, [3]: Die Prozedur preprocess_dl_samples fügt den Eintrag dlsample_file_namedlsample_file_namedlsample_file_namedlsample_file_namedlsampleFileName 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 DLSampleBatchDLSampleBatchDLSampleBatchDLSampleBatchDLSampleBatch übergeben.

Ein solches Dictionary DLSampleDLSampleDLSampleDLSampleDLSample wird für jedes Bild von der Prozedur gen_dl_samples aus den Daten in DLDatasetDLDatasetDLDatasetDLDatasetDLDataset erstellt. Es enthält alle Ground Truth Annotationen eines Bildes. Wird die Vorverarbeitung mit den Standard-Prozedur preprocess_dl_samples durchgeführt, werden sie automatisch von dieser erstellt. Es gilt zu beachten, dass die Vorverarbeitung zu Aktualisierungen des entsprechenden DLSampleDLSampleDLSampleDLSampleDLSample führen kann.

Das Dictionary DLSampleDLSampleDLSampleDLSampleDLSample hat folgende Einträge:

imageimageimageimageimage: Any

Eingabebild

Format: Bild

image_idimage_idimage_idimage_idimageId: Any

Eindeutige Bild-ID (wie in DLDatasetDLDatasetDLDatasetDLDatasetDLDataset).

Format: Ganzzahl

anomaly_ground_truthanomaly_ground_truthanomaly_ground_truthanomaly_ground_truthanomalyGroundTruth: AD

Bild oder Region, aus anomaly_file_nameanomaly_file_nameanomaly_file_nameanomaly_file_nameanomalyFileName.

Format: Bild oder Region

anomaly_labelanomaly_labelanomaly_labelanomaly_labelanomalyLabel: AD

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

Format: String

anomaly_label_idanomaly_label_idanomaly_label_idanomaly_label_idanomalyLabelId: AD

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

Format: Ganzzahl

image_label_idimage_label_idimage_label_idimage_label_idimageLabelId: CL

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

Format: Tupel von Ganzzahlen

bbox_label_idbbox_label_idbbox_label_idbbox_label_idbboxLabelId: OD

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

Format: Tupel von Ganzzahlen

bbox_row1bbox_row1bbox_row1bbox_row1bboxRow1: OD:r1 [4]

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

Format: Tupel von Gleitkommazahlen

bbox_col1bbox_col1bbox_col1bbox_col1bboxCol1: OD:r1 [4]

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

Format: Tupel von Gleitkommazahlen

bbox_row2bbox_row2bbox_row2bbox_row2bboxRow2: OD:r1 [4]

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

Format: Tupel von Gleitkommazahlen

bbox_col2bbox_col2bbox_col2bbox_col2bboxCol2: OD:r1 [4]

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

Format: Tupel von Gleitkommazahlen

bbox_rowbbox_rowbbox_rowbbox_rowbboxRow: OD:r2 [4]

Ground Truth umschließendes Rechteck: Mittelpunkt, Zeilenkoordinate.

Format: Tupel von Gleitkommazahlen

bbox_colbbox_colbbox_colbbox_colbboxCol: OD:r2 [4]

Ground Truth umschließendes Rechteck: Mittelpunkt, Spaltenkoordinate.

Format: Tupel von Gleitkommazahlen

bbox_phibbox_phibbox_phibbox_phibboxPhi: OD:r2 [4]

Ground Truth umschließendes Rechteck: Winkel phi.

Format: Tupel von Gleitkommazahlen

bbox_length1bbox_length1bbox_length1bbox_length1bboxLength1: OD:r2 [4]

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

Format: Tupel von Gleitkommazahlen

bbox_length2bbox_length2bbox_length2bbox_length2bboxLength2: OD:r2 [4]

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

Format: Tupel von Gleitkommazahlen

segmentation_imagesegmentation_imagesegmentation_imagesegmentation_imagesegmentationImage: SE

Bild mit den Ground Truth Segmentierungen, eingelesen von segmentation_file_namesegmentation_file_namesegmentation_file_namesegmentation_file_namesegmentationFileName.

Format: Bild

weight_imageweight_imageweight_imageweight_imageweightImage: SE [5]

Bild mit den Pixel-Gewichten.

Format: Bild

Diese Dictionaries werden von der Prozedur gen_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.

Falls die Dictionaries DLSampleDLSampleDLSampleDLSampleDLSample gespeichert werden sollen, kann die Prozedur write_dl_samples verwendet werden. Eingelesen können die gespeicherten DLSampleDLSampleDLSampleDLSampleDLSample Dictionaries über die Prozedur read_dl_samples.

Eingabedaten bei der Inferenz

Die Eingabedaten bei der Inferenz bestehen aus den blanken Bildern. Damit das Modell diese verarbeiten kann, müssen sie bestimmte Anforderungen erfüllen. Informationen zu den Bildanforderungen finden sich im unteren Abschnitt „Bilder“.

Das Modell ist so konzipiert, dass alle Daten über ein Dictionary DLDatasetDLDatasetDLDatasetDLDatasetDLDataset übergeben wird. Für die Inferenz beinhaltet ein solches Dictionary nur das Bild und wird von der Prozedur gen_dl_samples_from_images erstellt. Diese Dictionaries können einzeln oder als Einträge des Tupels übergeben werden DLSampleBatchDLSampleBatchDLSampleBatchDLSampleBatchDLSampleBatch.

Ausgabedaten beim Training

Die Trainingsresultate werden im Dictionary DLTrainResultDLTrainResultDLTrainResultDLTrainResultDLTrainResult 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):

CL, OD, SE:

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

  • total_losstotal_losstotal_losstotal_losstotalLoss

  • weitere mögliche Zielfunktionen des Modells

AD:

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

  • final_errorfinal_errorfinal_errorfinal_errorfinalError

  • final_epochfinal_epochfinal_epochfinal_epochfinalEpoch

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

Ausgabedaten bei der Inferenz und der Evaluierung
Als Ausgabe des Operators apply_dl_modelapply_dl_modelApplyDlModelApplyDlModelApplyDlModel 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 EvaluationResults 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 Dictionaries, 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 BatchSizeBatchSizeBatchSizeBatchSizebatchSize auf drei gesetzt, zudem sind nur wenige Einträge aufgelistet. (2) Inferenz: DLSampleDLSampleDLSampleDLSampleDLSample beinhaltet das Bild. Diese Dictionaries können einzeln oder im Tupel übergeben werden.

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

anomaly_imageanomaly_imageanomaly_imageanomaly_imageanomalyImage: AD

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

Format: Bild

anomaly_scoreanomaly_scoreanomaly_scoreanomaly_scoreanomalyScore: AD

Score der Anomalie aufgrund der Werte in anomaly_imageanomaly_imageanomaly_imageanomaly_imageanomalyImage.

Format: Gleitkommazahl

classification_class_idsclassification_class_idsclassification_class_idsclassification_class_idsclassificationClassIds: CL

IDs der vorhergesagten Klassen des Bildes sortiert nach Konfidenzwerten.

Format: Tupel von Ganzzahlen

classification_class_namesclassification_class_namesclassification_class_namesclassification_class_namesclassificationClassNames: CL

Vorhergesagte Klassennamen des Bildes sortiert nach Konfidenzwerten.

Format: Tupel von Strings

classification_confidencesclassification_confidencesclassification_confidencesclassification_confidencesclassificationConfidences: CL

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

Format: Tupel von Gleitkommazahlen

bbox_class_idbbox_class_idbbox_class_idbbox_class_idbboxClassId: OD

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

Format: Tupel von Ganzzahlen

bbox_confidencebbox_confidencebbox_confidencebbox_confidencebboxConfidence: OD

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

Format: Tupel von Gleitkommazahlen

bbox_row1bbox_row1bbox_row1bbox_row1bboxRow1: OD:r1 [6]

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

Format: Tupel von Gleitkommazahlen

bbox_col1bbox_col1bbox_col1bbox_col1bboxCol1: OD:r1 [6]

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

Format: Tupel von Gleitkommazahlen

bbox_row2bbox_row2bbox_row2bbox_row2bboxRow2: OD:r1 [6]

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

Format: Tupel von Gleitkommazahlen

bbox_col2bbox_col2bbox_col2bbox_col2bboxCol2: OD:r1 [6]

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

Format: Tupel von Gleitkommazahlen

bbox_rowbbox_rowbbox_rowbbox_rowbboxRow: OD:r2 [6]

Inferiertes umschließendes Rechteck: Mittelpunkt, Zeilenkoordinate.

Format: Tupel von Gleitkommazahlen

bbox_colbbox_colbbox_colbbox_colbboxCol: OD:r2 [6]

Inferiertes umschließendes Rechteck: Mittelpunkt, Spaltenkoordinate.

Format: Tupel von Gleitkommazahlen

bbox_phibbox_phibbox_phibbox_phibboxPhi: OD:r2 [6]

Inferiertes umschließendes Rechteck: Winkel phi.

Format: Tupel von Gleitkommazahlen

bbox_length1bbox_length1bbox_length1bbox_length1bboxLength1: OD:r2 [6]

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

Format: Tupel von Gleitkommazahlen

bbox_length2bbox_length2bbox_length2bbox_length2bboxLength2: OD:r2 [6]

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

Format: Tupel von Gleitkommazahlen

segmentation_imagesegmentation_imagesegmentation_imagesegmentation_imagesegmentationImage: SE

Bild mit dem Segmentierungsresultat.

Format: Bild

segmentation_confidencesegmentation_confidencesegmentation_confidencesegmentation_confidencesegmentationConfidence: SE

Bild mit den Konfidenzwerten des Segmentierungs-Resultats.

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.

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_paramGetDlModelParamGetDlModelParamGetDlModelParam 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

apply_dl_modelApplyDlModelApplyDlModelapply_dl_model
Anwenden des Deep Learning-basierten Netzwerkes zur Inferenz auf einer Menge an Bildern.
clear_dl_modelClearDlModelClearDlModelclear_dl_model
Löschen eines Deep Learning-Modells.
deserialize_dl_modelDeserializeDlModelDeserializeDlModeldeserialize_dl_model
Deserialisiert ein Deep Learning-Modell.
gen_dl_model_heatmapGenDlModelHeatmapGenDlModelHeatmapgen_dl_model_heatmap
Inferieren eines Samples und generieren einer Heatmap.
get_dl_model_paramGetDlModelParamGetDlModelParamget_dl_model_param
Auslesen der Parameter des Deep Learning-Modells.
read_dl_modelReadDlModelReadDlModelread_dl_model
Lesen eines Deep Learning-Modells aus einer Datei.
serialize_dl_modelSerializeDlModelSerializeDlModelserialize_dl_model
Serialisiert ein Deep Learning-Modell.
set_dl_model_paramSetDlModelParamSetDlModelParamset_dl_model_param
Setzen der Parameter des Deep Learning-basierten Models.
train_dl_model_batchTrainDlModelBatchTrainDlModelBatchtrain_dl_model_batch
Trainieren eines Deep Learning-Modells.
write_dl_modelWriteDlModelWriteDlModelwrite_dl_model
Abspeichern eines Deep Learning-Modells in eine Datei.