| Operatoren |
read_dl_classifier — Lesen eines Deep Learning-basierten Klassifikators aus einer Datei.
read_dl_classifier( : : FileName : DLClassifierHandle)
Der Operator read_dl_classifier liest ein Neuronales Netzwerk, welches mit write_dl_classifier geschrieben wurde.
HALCON stellt Neuronale Netzwerke bereit, welche auf einem großen Datensatz vortrainiert wurden. Diese Neuronalen Netzwerke sind gute Ausgangspunkte, um damit eigene Klassifikatoren für ein individuelles Klassifikationsproblem zu trainieren. Zur Verfügung stehen folgende Netzwerke:
Dieses Neuronale Netzwerk ist besonders effizient bezüglich des Speicherverbrauchs und der Laufzeit.
Der Klassifikator erwartet die Eingabebilder in einem bestimmten Format. Diese Parameter können über get_dl_classifier_param abgefragt werden:
'image_width': 224
'image_height': 224
'image_num_channels': 3
'image_range_min': -127
'image_range_max': 128
Dieses Neuronale Netzwerk hat mehr verborgene Layer als 'pretrained_dl_classifier_compact.hdl' und ist daher für komplexere Klassifikationsaufgaben in der Regel besser geeignet. Dafür ist dieses Netzwerk rechen- und speicheraufwändiger. Dies führt zum Beispiel dazu, dass man im Vergleich zum obigen kompakten Netzwerk während des Trainings nur mit einer kleineren Batchgröße trainieren kann, siehe set_dl_classifier_param.
Der Klassifikator erwartet die Eingabebilder in einem bestimmten Format. Diese Parameter können über get_dl_classifier_param abgefragt werden:
'image_width': 224
'image_height': 224
'image_num_channels': 3
'image_range_min': -127
'image_range_max': 128
Jedes Eingabebild muss den Anforderungen des Netzwerkes entsprechend übergeben werden. Für eine solche Vorverarbeitung steht die Prozedur preprocess_dl_classifier_images bereit.
Falls man größere oder kleinere Bilder verwenden will, muss man die Bilder geeignet vorverarbeiten. Für größere Bilder bietet es sich an, zuerst den relevanten Teil der Bilder auszuschneiden und danach eine Skalierung durchzuführen.
Typischerweise ist es einfacher, schneller und besser, ein vortrainiertes Netzwerk zur Lösung einer Klassifikationsaufgabe zu verwenden, da es bereits generell nützliche Merkmale erlernt hat. Um ein bereits vortrainiertes Netzwerk nachzutrainieren, muss lediglich der Parameter 'classes' des Klassifikators mittels set_dl_classifier_param verändert werden. (siehe das HDevelop Beispiel classify_pill_defects_deep_learning.hdev).
Das Neuronale Netzwerk wird aus der Datei FileName gelesen. Diese Datei wird sowohl im aktuellen Verzeichnis als auch im Ordner ($HALCONROOT/dl/) gesucht.
Man beachte, dass der laufzeitrelevante Parameter 'gpu' des Klassifikators nicht in die Datei geschrieben wird. Stattdessen wird der Parameter beim Lesen mit dem Standardwert 0 initialisiert.
Die Standard-Dateiendung eines Deep Learning-basierten Klassifikators ist '.hdl'.
Das Konzept der Deep Learning-basierten Klassifikation ist in der Einleitung zu Kapitel Deep Learning / Klassifikation beschrieben.
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.
Dateiname.
Defaultwert: 'pretrained_dl_classifier_compact.hdl'
Werteliste: 'pretrained_dl_classifier_compact.hdl', 'pretrained_dl_classifier_enhanced.hdl'
Dateiendung: .hdl
Handle des Deep Learning-basierten Klassifikators.
Sind die Parameterwerte korrekt, dann liefert read_dl_classifier den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
set_dl_classifier_param, get_dl_classifier_param, apply_dl_classifier, train_dl_classifier_batch
read_class_mlp, read_class_svm
Deep Learning Inference
| Operatoren |