read_dl_modelT_read_dl_modelReadDlModelReadDlModelread_dl_model (Operator)

Name

read_dl_modelT_read_dl_modelReadDlModelReadDlModelread_dl_model — Lesen eines Deep Learning-Modells aus einer Datei.

Signatur

read_dl_model( : : FileName : DLModelHandle)

Herror T_read_dl_model(const Htuple FileName, Htuple* DLModelHandle)

void ReadDlModel(const HTuple& FileName, HTuple* DLModelHandle)

void HDlModel::HDlModel(const HString& FileName)

void HDlModel::HDlModel(const char* FileName)

void HDlModel::HDlModel(const wchar_t* FileName)   ( Nur Windows)

void HDlModel::ReadDlModel(const HString& FileName)

void HDlModel::ReadDlModel(const char* FileName)

void HDlModel::ReadDlModel(const wchar_t* FileName)   ( Nur Windows)

static void HOperatorSet.ReadDlModel(HTuple fileName, out HTuple DLModelHandle)

public HDlModel(string fileName)

void HDlModel.ReadDlModel(string fileName)

def read_dl_model(file_name: str) -> HHandle

Beschreibung

Der Operator read_dl_modelread_dl_modelReadDlModelReadDlModelread_dl_model liest ein Deep Learning-Modell. Diese Modelle müssen im HALCON Format oder alternativ im ONNX Format (siehe die Referenz weiter unten) vorliegen. Im zweiten Fall gelten die unten erwähnten Einschränkungen. Als Ergebnis wird das Handle DLModelHandleDLModelHandleDLModelHandleDLModelHandledlmodel_handle zurückgegeben.

Das Modell wird aus der Datei FileNameFileNameFileNamefileNamefile_name geladen. Die Datei wird hierbei sowohl im Verzeichnis $HALCONROOT/dl/, als auch im aktuell genutzten Verzeichnis gesucht. Die Standard-Dateiendung eines Deep Learning-basierten Klassifikators ist '.hdl'.

Zu beachten ist, dass die Werte laufzeitspezifischer Parameter nicht in der Datei abgespeichert werden, siehe write_dl_modelwrite_dl_modelWriteDlModelWriteDlModelwrite_dl_model. Folglich werden diese Parameter beim Einlesen des Modells mit ihrem Standardwert (siehe get_dl_model_paramget_dl_model_paramGetDlModelParamGetDlModelParamget_dl_model_param) initialisiert.

Modelle, deren erforderliche HALCON-Version ('min_version'"min_version""min_version""min_version""min_version") größer ist als die aktuell verwendete HALCON-Version, können nicht gelesen werden. Vor dem Speichern eines Modells kann die 'min_version'"min_version""min_version""min_version""min_version" mit dem Operator get_dl_model_paramget_dl_model_paramGetDlModelParamGetDlModelParamget_dl_model_param überprüft werden.

Für weitere Informationen zu Deep Learning-Modellen in HALCON siehe das Kapitel Deep Learning / Modell.

Einlesen eines von HALCON zur Verfügung gestellten Modells

HALCON stellt Neuronale Netzwerke für die Klassifikation und Semantische Segmentierung bereit, welche auf einem großen Datensatz vortrainiert wurden. Diese Neuronalen Netzwerke sind gute Ausgangspunkte, um damit eigene Neuronale Netze für ein individuelles Problem zu trainieren. Für die Anomalieerkennung stellt HALCON initiale Modelle zur Verfügung.

Modelle für die 3D Gripping Point Detection

Das folgende Netzwerk steht für die 3D Gripping Point Detection zur Verfügung:

'pretrained_dl_3d_gripping_point.hdl'"pretrained_dl_3d_gripping_point.hdl""pretrained_dl_3d_gripping_point.hdl""pretrained_dl_3d_gripping_point.hdl""pretrained_dl_3d_gripping_point.hdl"

Das Netzwerk erwartet bis zu 5 Bilder vom Typ real:

'image'"image""image""image""image": Intensitätsbild (Grauwertbilder)

'x'"x""x""x""x": X-Bild (Werte müssen von links nach rechts aufsteigend)

'y'"y""y""y""y": Y-Bild (Werte müssen von oben nach unten aufsteigend)

'z'"z""z""z""z": 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)

'normals'"normals""normals""normals""normals": 2D-Mappings

Zusätzlich erfordert das Netzwerk spezifische Bildeigenschaften (für alle genannten Eingabebilder), welche über get_dl_model_paramget_dl_model_paramGetDlModelParamGetDlModelParamget_dl_model_param abgefragt werden können. Hier werden die Defaultwerte gelistet:

'image_width'"image_width""image_width""image_width""image_width": 640

'image_height'"image_height""image_height""image_height""image_height": 480

Die Netzwerkarchitektur erlaubt Änderungen der Bilddimensionen.

Modelle für die Anomalieerkennung

Die folgenden Netzwerke stehen für die Anomalieerkennung zur Verfügung:

'initial_dl_anomaly_medium.hdl'"initial_dl_anomaly_medium.hdl""initial_dl_anomaly_medium.hdl""initial_dl_anomaly_medium.hdl""initial_dl_anomaly_medium.hdl"

Dieses Netzwerk hat einen vergleichsweise niedrigeren Speicherverbrauch und geringere Laufzeit als 'initial_dl_anomaly_large.hdl'"initial_dl_anomaly_large.hdl""initial_dl_anomaly_large.hdl""initial_dl_anomaly_large.hdl""initial_dl_anomaly_large.hdl".

Das Netzwerk erwartet Eingabebilder vom Typ real. Zusätzlich erfordert das Netzwerk spezifische Bildeigenschaften, welche über get_dl_model_paramget_dl_model_paramGetDlModelParamGetDlModelParamget_dl_model_param abgefragt werden können. Hier werden die Defaultwerte gelistet:

'image_width'"image_width""image_width""image_width""image_width": 480

'image_height'"image_height""image_height""image_height""image_height": 480

'image_num_channels'"image_num_channels""image_num_channels""image_num_channels""image_num_channels": 3

'image_range_min'"image_range_min""image_range_min""image_range_min""image_range_min": -2

'image_range_max'"image_range_max""image_range_max""image_range_max""image_range_max": 2

Die Netzwerkarchitektur erlaubt Änderungen der Bilddimensionen, verlangt aber, dass die Bildbreite 'image_width'"image_width""image_width""image_width""image_width" und Bildhöhe 'image_height'"image_height""image_height""image_height""image_height" Vielfache von 32 Pixel sind, woraus sich ein Minimalwert von 32 Pixeln ergibt.

'initial_dl_anomaly_large.hdl'"initial_dl_anomaly_large.hdl""initial_dl_anomaly_large.hdl""initial_dl_anomaly_large.hdl""initial_dl_anomaly_large.hdl"

Dieses Netzwerk ist für komplexere Aufgaben in der Regel besser geeignet als 'initial_dl_anomaly_medium.hdl'"initial_dl_anomaly_medium.hdl""initial_dl_anomaly_medium.hdl""initial_dl_anomaly_medium.hdl""initial_dl_anomaly_medium.hdl". Dafür ist es rechen- und speicheraufwändiger.

Das Netzwerk erwartet Eingabebilder vom Typ real. Zusätzlich erfordert das Netzwerk spezifische Bildeigenschaften, welche über get_dl_model_paramget_dl_model_paramGetDlModelParamGetDlModelParamget_dl_model_param abgefragt werden können. Hier werden die Defaultwerte gelistet:

'image_width'"image_width""image_width""image_width""image_width": 480

'image_height'"image_height""image_height""image_height""image_height": 480

'image_num_channels'"image_num_channels""image_num_channels""image_num_channels""image_num_channels": 3

'image_range_min'"image_range_min""image_range_min""image_range_min""image_range_min": -2

'image_range_max'"image_range_max""image_range_max""image_range_max""image_range_max": 2

Die Netzwerkarchitektur erlaubt Änderungen der Bilddimensionen, verlangt aber, dass die Bildbreite 'image_width'"image_width""image_width""image_width""image_width" und Bildhöhe 'image_height'"image_height""image_height""image_height""image_height" Vielfache von 32 Pixel sind, woraus sich ein Minimalwert von 32 Pixeln ergibt.

Modelle für die Global Context Anomaly Detection

Die folgenden Netzwerke stehen für die Global Context Anomaly Detection zur Verfügung:

'pretrained_dl_anomaly_global_context.hdl'"pretrained_dl_anomaly_global_context.hdl""pretrained_dl_anomaly_global_context.hdl""pretrained_dl_anomaly_global_context.hdl""pretrained_dl_anomaly_global_context.hdl"

Das Netzwerk erwartet Eingabebilder vom Typ real. Zusätzlich erfordert das Netzwerk spezifische Bildeigenschaften, welche über get_dl_model_paramget_dl_model_paramGetDlModelParamGetDlModelParamget_dl_model_param abgefragt werden können. Hier werden die Defaultwerte gelistet:

'image_width'"image_width""image_width""image_width""image_width": 256

'image_height'"image_height""image_height""image_height""image_height": 256

'image_num_channels'"image_num_channels""image_num_channels""image_num_channels""image_num_channels": 3

'image_range_min'"image_range_min""image_range_min""image_range_min""image_range_min": -127.0

'image_range_max'"image_range_max""image_range_max""image_range_max""image_range_max": 128.0

Modelle für die Klassifikation

Die folgenden vortrainierten Neuronalen Netzwerke stehen für die Klassifikation und als Backbone bei der Objektdetektion zur Verfügung:

'pretrained_dl_classifier_alexnet.hdl'"pretrained_dl_classifier_alexnet.hdl""pretrained_dl_classifier_alexnet.hdl""pretrained_dl_classifier_alexnet.hdl""pretrained_dl_classifier_alexnet.hdl":

Dieses Neuronale Netzwerk ist geeignet für einfache Klassifikationsaufgaben. Es zeichnet sich durch die Faltungskerne der ersten Faltungs-Layer aus, welche größer sind als bei Netzwerken vergleichbarer Klassifikationsleistung (z.B. 'pretrained_dl_classifier_compact.hdl'"pretrained_dl_classifier_compact.hdl""pretrained_dl_classifier_compact.hdl""pretrained_dl_classifier_compact.hdl""pretrained_dl_classifier_compact.hdl"). Dies kann für das Extrahieren von Merkmalskarten von Vorteil sein.

Der Klassifikator erwartet Eingabebilder vom Typ real. Zusätzlich erfordert das Neuronale Netzwerk spezifische Bildeigenschaften, welche über get_dl_model_paramget_dl_model_paramGetDlModelParamGetDlModelParamget_dl_model_param abgefragt werden können. Hier werden die Defaultwerte gelistet, mit welchen der Klassifikator trainiert wurde:

'image_width'"image_width""image_width""image_width""image_width": 224

'image_height'"image_height""image_height""image_height""image_height": 224

'image_num_channels'"image_num_channels""image_num_channels""image_num_channels""image_num_channels": 3

'image_range_min'"image_range_min""image_range_min""image_range_min""image_range_min": -127.0

'image_range_max'"image_range_max""image_range_max""image_range_max""image_range_max": 128.0

Die Netzwerkarchitektur erlaubt Änderungen der Bilddimensionen. Bildbreite 'image_width'"image_width""image_width""image_width""image_width" und Bildhöhe 'image_height'"image_height""image_height""image_height""image_height" sollten dabei aber 29 Pixel nicht unterschreiten. Durch die Netzwerkarchitektur wird die Bildgröße nach oben hin nicht beschränkt, aber zunehmende Bildgrößen erhöhen den Speicher- und Laufzeitbedarf erheblich. Jede Änderung der Bildgröße führt zu einem Reinitialisieren der Gewichte in den Fully-connected Layern und macht dadurch ein Nachtrainieren notwendig.

Man kann die Laufzeit dieses Netzwerkes beschleunigen, indem man die Faltungs- und ReLU-Layer miteinander verbindet, siehe set_dl_model_paramset_dl_model_paramSetDlModelParamSetDlModelParamset_dl_model_param und den Parameter 'fuse_conv_relu'"fuse_conv_relu""fuse_conv_relu""fuse_conv_relu""fuse_conv_relu".

'pretrained_dl_classifier_compact.hdl'"pretrained_dl_classifier_compact.hdl""pretrained_dl_classifier_compact.hdl""pretrained_dl_classifier_compact.hdl""pretrained_dl_classifier_compact.hdl":

Dieses Neuronale Netzwerk ist besonders effizient bezüglich des Speicherverbrauchs und der Laufzeit.

Der Klassifikator erwartet Eingabebilder vom Typ real. Zusätzlich erfordert das Neuronale Netzwerk spezifische Bildeigenschaften, welche über get_dl_model_paramget_dl_model_paramGetDlModelParamGetDlModelParamget_dl_model_param abgefragt werden können. Hier werden die Defaultwerte gelistet, mit welchen der Klassifikator trainiert wurde:

'image_width'"image_width""image_width""image_width""image_width": 224

'image_height'"image_height""image_height""image_height""image_height": 224

'image_num_channels'"image_num_channels""image_num_channels""image_num_channels""image_num_channels": 3

'image_range_min'"image_range_min""image_range_min""image_range_min""image_range_min": -127.0

'image_range_max'"image_range_max""image_range_max""image_range_max""image_range_max": 128.0

Dieses Neuronale Netzwerk enthält keinen Fully-connected Layer. Die Netzwerkarchitektur erlaubt Änderungen der Bilddimensionen. Bildbreite 'image_width'"image_width""image_width""image_width""image_width" und Bildhöhe 'image_height'"image_height""image_height""image_height""image_height" sollten dabei aber 15 Pixel nicht unterschreiten.

'pretrained_dl_classifier_enhanced.hdl'"pretrained_dl_classifier_enhanced.hdl""pretrained_dl_classifier_enhanced.hdl""pretrained_dl_classifier_enhanced.hdl""pretrained_dl_classifier_enhanced.hdl":

Dieses Neuronale Netzwerk hat mehr verborgene Layer als 'pretrained_dl_classifier_compact.hdl'"pretrained_dl_classifier_compact.hdl""pretrained_dl_classifier_compact.hdl""pretrained_dl_classifier_compact.hdl""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.

Der Klassifikator erwartet Eingabebilder vom Typ real. Zusätzlich erfordert das Neuronale Netzwerk spezifische Bildeigenschaften, welche über get_dl_model_paramget_dl_model_paramGetDlModelParamGetDlModelParamget_dl_model_param abgefragt werden können. Hier werden die Defaultwerte gelistet, mit welchen der Klassifikator trainiert wurde:

'image_width'"image_width""image_width""image_width""image_width": 224

'image_height'"image_height""image_height""image_height""image_height": 224

'image_num_channels'"image_num_channels""image_num_channels""image_num_channels""image_num_channels": 3

'image_range_min'"image_range_min""image_range_min""image_range_min""image_range_min": -127.0

'image_range_max'"image_range_max""image_range_max""image_range_max""image_range_max": 128.0

Die Netzwerkarchitektur erlaubt Änderungen der Bilddimensionen. Bildbreite 'image_width'"image_width""image_width""image_width""image_width" und Bildhöhe 'image_height'"image_height""image_height""image_height""image_height" sollten dabei aber 47 Pixel nicht unterschreiten. Durch die Netzwerkarchitektur wird die Bildgröße nach oben hin nicht beschränkt, aber zunehmende Bildgrößen erhöhen den Speicher- und Laufzeitbedarf erheblich. Jede Änderung der Bildgröße führt zu einem Reinitialisieren der Gewichte in den Fully-connected Layern und macht dadurch ein Nachtrainieren notwendig.

'pretrained_dl_classifier_mobilenet_v2.hdl'"pretrained_dl_classifier_mobilenet_v2.hdl""pretrained_dl_classifier_mobilenet_v2.hdl""pretrained_dl_classifier_mobilenet_v2.hdl""pretrained_dl_classifier_mobilenet_v2.hdl":

Dieser Klassifikator ist ein kleines, energieeffizientes Modell und daher besser für mobile und embedded Bildverarbeitungsanwendungen geeignet.

Der Klassifikator erwartet Eingabebilder vom Typ real. Zusätzlich erfordert das Neuronale Netzwerk spezifische Bildeigenschaften, welche über get_dl_model_paramget_dl_model_paramGetDlModelParamGetDlModelParamget_dl_model_param abgefragt werden können. Hier werden die Defaultwerte gelistet, mit welchen der Klassifikator trainiert wurde:

'image_width'"image_width""image_width""image_width""image_width": 224

'image_height'"image_height""image_height""image_height""image_height": 224

'image_num_channels'"image_num_channels""image_num_channels""image_num_channels""image_num_channels": 3

'image_range_min'"image_range_min""image_range_min""image_range_min""image_range_min": -127.0

'image_range_max'"image_range_max""image_range_max""image_range_max""image_range_max": 128.0

Die Netzwerkarchitektur erlaubt Änderungen der Bilddimensionen. Bildbreite 'image_width'"image_width""image_width""image_width""image_width" und Bildhöhe 'image_height'"image_height""image_height""image_height""image_height" sollten dabei aber 32 Pixel nicht unterschreiten. Durch die Netzwerkarchitektur wird die Bildgröße nach oben hin nicht beschränkt, aber zunehmende Bildgrößen erhöhen den Speicher- und Laufzeitbedarf erheblich.

Auf der GPU kann die Netzwerkarchitektur stark von speziellen Optimierungen profitieren, ohne welche das Netz deutlich langsamer sein kann.

'pretrained_dl_classifier_resnet18.hdl'"pretrained_dl_classifier_resnet18.hdl""pretrained_dl_classifier_resnet18.hdl""pretrained_dl_classifier_resnet18.hdl""pretrained_dl_classifier_resnet18.hdl":

Wie das Neuronale Netzwerk 'pretrained_dl_classifier_enhanced.hdl'"pretrained_dl_classifier_enhanced.hdl""pretrained_dl_classifier_enhanced.hdl""pretrained_dl_classifier_enhanced.hdl""pretrained_dl_classifier_enhanced.hdl" ist dieser Klassifikator für komplexere Aufgaben geeignet. Die spezielle Struktur dieses Klassifikators bringt allerdings den Vorteil mit sich, das Training stabiler zu machen und intern robuster zu sein. Gegenüber dem Neuronalen Netzwerk 'pretrained_dl_classifier_resnet50.hdl'"pretrained_dl_classifier_resnet50.hdl""pretrained_dl_classifier_resnet50.hdl""pretrained_dl_classifier_resnet50.hdl""pretrained_dl_classifier_resnet50.hdl", ist es etwas weniger komplex dafür in der Ausführung schneller.

Der Klassifikator erwartet Eingabebilder vom Typ real. Zusätzlich erfordert das Neuronale Netzwerk spezifische Bildeigenschaften, welche über get_dl_model_paramget_dl_model_paramGetDlModelParamGetDlModelParamget_dl_model_param abgefragt werden können. Hier werden die Defaultwerte gelistet, mit welchen der Klassifikator trainiert wurde:

'image_width'"image_width""image_width""image_width""image_width": 224

'image_height'"image_height""image_height""image_height""image_height": 224

'image_num_channels'"image_num_channels""image_num_channels""image_num_channels""image_num_channels": 3

'image_range_min'"image_range_min""image_range_min""image_range_min""image_range_min": -127.0

'image_range_max'"image_range_max""image_range_max""image_range_max""image_range_max": 128.0

Die Netzwerkarchitektur erlaubt Änderungen der Bilddimensionen. Bildbreite 'image_width'"image_width""image_width""image_width""image_width" und Bildhöhe 'image_height'"image_height""image_height""image_height""image_height" sollten dabei aber 32 Pixel nicht unterschreiten. Durch die Netzwerkarchitektur wird die Bildgröße nach oben hin nicht beschränkt, aber zunehmende Bildgrößen erhöhen den Speicher- und Laufzeitbedarf erheblich. Trotz Fully-connected Layer führt eine Änderung der Bildgröße nicht zu einem Reinitialisieren der Gewichte.

'pretrained_dl_classifier_resnet50.hdl'"pretrained_dl_classifier_resnet50.hdl""pretrained_dl_classifier_resnet50.hdl""pretrained_dl_classifier_resnet50.hdl""pretrained_dl_classifier_resnet50.hdl":

Wie das Neuronale Netzwerk 'pretrained_dl_classifier_enhanced.hdl'"pretrained_dl_classifier_enhanced.hdl""pretrained_dl_classifier_enhanced.hdl""pretrained_dl_classifier_enhanced.hdl""pretrained_dl_classifier_enhanced.hdl" ist dieser Klassifikator für komplexere Aufgaben geeignet. Die spezielle Struktur dieses Klassifikators bringt allerdings den Vorteil mit sich, das Training stabiler zu machen und intern robuster zu sein.

Der Klassifikator erwartet Eingabebilder vom Typ real. Zusätzlich erfordert das Neuronale Netzwerk spezifische Bildeigenschaften, welche über get_dl_model_paramget_dl_model_paramGetDlModelParamGetDlModelParamget_dl_model_param abgefragt werden können. Hier werden die Defaultwerte gelistet, mit welchen der Klassifikator trainiert wurde:

'image_width'"image_width""image_width""image_width""image_width": 224

'image_height'"image_height""image_height""image_height""image_height": 224

'image_num_channels'"image_num_channels""image_num_channels""image_num_channels""image_num_channels": 3

'image_range_min'"image_range_min""image_range_min""image_range_min""image_range_min": -127.0

'image_range_max'"image_range_max""image_range_max""image_range_max""image_range_max": 128.0

Die Netzwerkarchitektur erlaubt Änderungen der Bilddimensionen. Bildbreite 'image_width'"image_width""image_width""image_width""image_width" und Bildhöhe 'image_height'"image_height""image_height""image_height""image_height" sollten dabei aber 32 Pixel nicht unterschreiten. Durch die Netzwerkarchitektur wird die Bildgröße nach oben hin nicht beschränkt, aber zunehmende Bildgrößen erhöhen den Speicher- und Laufzeitbedarf erheblich. Trotz Fully-connected Layer führt eine Änderung der Bildgröße nicht zu einem Reinitialisieren der Gewichte.

Modelle für die Semantische Segmentierung

Folgende vortrainierte Netzwerke stehen für die Semantische Segmentierung zur Verfügung:

'pretrained_dl_edge_extractor.hdl'"pretrained_dl_edge_extractor.hdl""pretrained_dl_edge_extractor.hdl""pretrained_dl_edge_extractor.hdl""pretrained_dl_edge_extractor.hdl":

Dieses Neuronale Netzwerk ist für die Kantenextraktion konzipiert und vortrainiert. Folglich ist das Netz auch primär für Zwei-Klassen-Probleme ausgelegt, einer Klasse Kanten und einer Klasse Hintergrund.

Das Neuronale Netzwerk erwartet Eingabebilder vom Typ real. Zusätzlich erfordert das Netzwerk spezifische Bildeigenschaften, welche über get_dl_model_paramget_dl_model_paramGetDlModelParamGetDlModelParamget_dl_model_param abgefragt werden können. Hier werden die Defaultwerte gelistet, mit welchen das Modell trainiert wurde:

'image_width'"image_width""image_width""image_width""image_width": 512

'image_height'"image_height""image_height""image_height""image_height": 512

'image_num_channels'"image_num_channels""image_num_channels""image_num_channels""image_num_channels": 1

'image_range_min'"image_range_min""image_range_min""image_range_min""image_range_min": -127.0

'image_range_max'"image_range_max""image_range_max""image_range_max""image_range_max": 128.0

'num_classes'"num_classes""num_classes""num_classes""num_classes": 2

Die Netzwerkarchitektur erlaubt Änderungen der Bilddimensionen, verlangt aber, dass die Bildbreite 'image_width'"image_width""image_width""image_width""image_width" und Bildhöhe 'image_height'"image_height""image_height""image_height""image_height" Vielfache von 16 Pixel sind, woraus sich ein Minimalwert von 16 Pixeln ergibt.

'pretrained_dl_segmentation_compact.hdl'"pretrained_dl_segmentation_compact.hdl""pretrained_dl_segmentation_compact.hdl""pretrained_dl_segmentation_compact.hdl""pretrained_dl_segmentation_compact.hdl":

Dieses Neuronale Netzwerk ist besonders für feine Strukturen geeignet und ist effizient bezüglich des Speicherverbrauchs und der Laufzeit.

Die Netzwerkarchitektur erlaubt Änderungen der Bilddimensionen, verlangt aber eine minimale Bildbreite 'image_width'"image_width""image_width""image_width""image_width" von 21 Pixeln und eine minimale Bildhöhe von 'image_height'"image_height""image_height""image_height""image_height" 21 Pixeln.

'pretrained_dl_segmentation_enhanced.hdl'"pretrained_dl_segmentation_enhanced.hdl""pretrained_dl_segmentation_enhanced.hdl""pretrained_dl_segmentation_enhanced.hdl""pretrained_dl_segmentation_enhanced.hdl":

Dieses Neuronale Netzwerk hat mehr verborgene Layer als 'pretrained_dl_segmentation_compact.hdl'"pretrained_dl_segmentation_compact.hdl""pretrained_dl_segmentation_compact.hdl""pretrained_dl_segmentation_compact.hdl""pretrained_dl_segmentation_compact.hdl" und ist daher für Segmentierungsaufgaben in komplexeren Szenarien besser geeignet.

Die Netzwerkarchitektur erlaubt Änderungen der Bilddimensionen, verlangt aber eine minimale Bildbreite 'image_width'"image_width""image_width""image_width""image_width" von 47 Pixeln und eine minimale Bildhöhe von 'image_height'"image_height""image_height""image_height""image_height" 47 Pixeln.

Modelle für Deep OCR

Folgende vortrainierte Netzwerke stehen für die Deep OCR zur Verfügung:

'pretrained_deep_ocr_detection.hdl'"pretrained_deep_ocr_detection.hdl""pretrained_deep_ocr_detection.hdl""pretrained_deep_ocr_detection.hdl""pretrained_deep_ocr_detection.hdl":

Dieses Neuronale Netzwerk ist die voreingestellte, vortrainierte Lokalisierungskomponente eines Deep OCR-Modells, welches auch nachtrainiert werden kann. Es ist konzipiert um Wörter auf Bildern zu lokalisieren.

Das Neuronale Netzwerk erwartet Eingabebilder vom Typ real. Zusätzlich erfordert das Netzwerk spezifische Bildeigenschaften, welche über get_dl_model_paramget_dl_model_paramGetDlModelParamGetDlModelParamget_dl_model_param abgefragt werden können. Hier werden die Defaultwerte aufgelistet, mit welchen das Modell trainiert wurde:

'image_width'"image_width""image_width""image_width""image_width": 1024

'image_height'"image_height""image_height""image_height""image_height": 1024

'image_num_channels'"image_num_channels""image_num_channels""image_num_channels""image_num_channels": 3

'image_range_min'"image_range_min""image_range_min""image_range_min""image_range_min": -127.0

'image_range_max'"image_range_max""image_range_max""image_range_max""image_range_max": 128.0

Die Netzwerkarchitektur erlaubt Änderungen der Bilddimensionen 'image_width'"image_width""image_width""image_width""image_width" und 'image_height'"image_height""image_height""image_height""image_height".

'pretrained_deep_ocr_detection_compact.hdl'"pretrained_deep_ocr_detection_compact.hdl""pretrained_deep_ocr_detection_compact.hdl""pretrained_deep_ocr_detection_compact.hdl""pretrained_deep_ocr_detection_compact.hdl":

Dieses vortrainierte Netzwerk ist eine kompakte Alternative zum Standardmodell 'pretrained_deep_ocr_detection.hdl'"pretrained_deep_ocr_detection.hdl""pretrained_deep_ocr_detection.hdl""pretrained_deep_ocr_detection.hdl""pretrained_deep_ocr_detection.hdl". Es ist für einen geringeren Speicherbedarf und eine niedrigere Laufzeit konzipiert, kann jedoch weniger genau sein als das Standardmodell.

Hinsichtlich der Eingabebilder und der Änderung der Bilddimensionen hat dieses Netz die gleichen Anforderungen wie das Standardmodell 'pretrained_deep_ocr_detection.hdl'"pretrained_deep_ocr_detection.hdl""pretrained_deep_ocr_detection.hdl""pretrained_deep_ocr_detection.hdl""pretrained_deep_ocr_detection.hdl".

'pretrained_deep_ocr_recognition.hdl'"pretrained_deep_ocr_recognition.hdl""pretrained_deep_ocr_recognition.hdl""pretrained_deep_ocr_recognition.hdl""pretrained_deep_ocr_recognition.hdl":

Dieses Neuronale Netzwerk ist die vortrainierte Erkennungskomponente eines Deep OCR-Modells, welches auch nachtrainiert werden kann. Es ist konzipiert um Wörter auf Bildern zu erkennen, welche auf ein einzelnes Wort zugeschnitten sind.

Das Neuronale Netzwerk erwartet Eingabebilder vom Typ real. Zusätzlich erfordert das Netzwerk spezifische Bildeigenschaften, welche über get_dl_model_paramget_dl_model_paramGetDlModelParamGetDlModelParamget_dl_model_param abgefragt werden können. Hier werden die Defaultwerte aufgelistet, mit welchen das Modell trainiert wurde:

'image_width'"image_width""image_width""image_width""image_width": 120

'image_height'"image_height""image_height""image_height""image_height": 32

'image_num_channels'"image_num_channels""image_num_channels""image_num_channels""image_num_channels": 1

'image_range_min'"image_range_min""image_range_min""image_range_min""image_range_min": -1.0

'image_range_max'"image_range_max""image_range_max""image_range_max""image_range_max": 1.0

Die Netzwerkarchitektur erlaubt Änderungen der Bildbreite 'image_width'"image_width""image_width""image_width""image_width". Die Bildhöhe 'image_height'"image_height""image_height""image_height""image_height" kann nicht verändert werden. Der Parameter 'image_width'"image_width""image_width""image_width""image_width" ist sehr wichtig. Sein Wert kann verringert oder erhöht werden um sich an die zu erwartenden Wortlängen anzupassen, beispielsweise bedingt durch die durchschnittliche Zeichenbreite. Ein größerer Wert für 'image_width'"image_width""image_width""image_width""image_width" führt zu erhöhtem Speicher- und Laufzeitbedarf. Die Bildbreite 'image_width'"image_width""image_width""image_width""image_width" darf nach dem Training geändert werden.

'pretrained_deep_ocr_recognition_compact.hdl'"pretrained_deep_ocr_recognition_compact.hdl""pretrained_deep_ocr_recognition_compact.hdl""pretrained_deep_ocr_recognition_compact.hdl""pretrained_deep_ocr_recognition_compact.hdl":

Dieses vortrainierte Netzwerk ist eine kompakte Alternative zum Standardmodell 'pretrained_deep_ocr_recognition.hdl'"pretrained_deep_ocr_recognition.hdl""pretrained_deep_ocr_recognition.hdl""pretrained_deep_ocr_recognition.hdl""pretrained_deep_ocr_recognition.hdl". Es ist für einen geringeren Speicherbedarf und eine niedrigere Laufzeit konzipiert, kann jedoch weniger genau sein als das Standardmodell.

Hinsichtlich der Eingabebilder und der Änderung der Bilddimensionen hat dieses Netz die gleichen Anforderungen wie das Standardmodell 'pretrained_deep_ocr_recognition.hdl'"pretrained_deep_ocr_recognition.hdl""pretrained_deep_ocr_recognition.hdl""pretrained_deep_ocr_recognition.hdl""pretrained_deep_ocr_recognition.hdl".

Einlesen eines Modells im ONNX Format

ONNX Modelle können eingelesen werden, aber dabei gibt es gewisse Punkte zu beachten.

Einschränkungen

Wird ein ONNX Modell eingelesen, gelten folgende Einschränkungen:

  • Nur Modelle bis zur ONNX operator set version (OpSetVersion) 13 werden unterstützt. Für Operatoren, die eine höhere OpSetVersion besitzen kann keine Unterstützung garantiert werden. Für weitere Limitationen wird auf die ONNX Operatorenauflistung verwiesen.

  • Nur 32 Bit Gleitkommatensoren werden unterstützt.

  • Nur Modelle die mit einem SoftMax Layer enden, werden automatisch als Klassifikator erkannt. Alle anderen Modelle werden als generisches Modell betrachtet, d.h., Modelle mit 'type'"type""type""type""type" = 'generic'"generic""generic""generic""generic". Mit set_dl_model_paramset_dl_model_paramSetDlModelParamSetDlModelParamset_dl_model_param kann der Typ eines solchen Modells geändert werden.

  • Die Eingabeknoten des Graphen (Bilder) müssen von vierdimensionaler Form sein: Anzahl Bilder (='batch_size'"batch_size""batch_size""batch_size""batch_size"), 'num_channels'"num_channels""num_channels""num_channels""num_channels", 'image_height'"image_height""image_height""image_height""image_height" und 'image_width'"image_width""image_width""image_width""image_width".

Automatische Transformationen

Nach dem Einlesen eines ONNX Modells mit read_dl_modelread_dl_modelReadDlModelReadDlModelread_dl_model werden folgende Transformationen automatisch durchgeführt:

  • Jeder nicht globale Pooling-Layer, dessen Ausgabemerkmalskarte die Dimension 1x1 hat, wird in einen globalen Pooling-Layer verwandelt. Dies ermöglicht Eingabebilder variabler Größen. Weitere Informationen zum Pooling-Layer und möglichen Modi befinden sich im „Solution Guide on Classification“.

  • Layer Paare bestehend aus einem Faltungs-Layer ohne Aktivierung und einem direkt verknüpften Activation-Layer mit Aktivierungsmodus ReLU werden fusioniert. Um dies zu tun, darf die Ausgabe des Faltungs-Layers nur vom Activation-Layer als Eingabe verwendet werden. Daraus entsteht ein Faltungs-Layer mit ReLU-Aktivierung. Weitere Informationen zu Layern und möglichen Modi befinden sich im „Solution Guide on Classification“.

  • Jeder Split-Layer wird in Slice-Layer umgewandelt. Während des Umwandlungsprozesses werden Slice-Layer erzeugt, welche die jeweiligen Datenabschnitte extrahieren, die auch bei der Split-Operation entstehen. Dadurch bleibt die ursprüngliche Funktionalität erhalten, auch wenn sie durch mehrere Slice-Operationen anstatt eines einzelnen Split-Layers dargestellt wird.

  • Permutation-Layer werden vor und nach Elementwise-Layern eingefügt, wenn der ONNX Elementwise-Layer Eingaben mit unterschiedlicher Dimensionalität erhält. Dies ermöglicht Broadcasting im HALCON Elementwise-Layer.

  • Permutation-Layer werden vor und nach Softmax-Layern eingefügt, wenn das Attribute äxis" des ONNX Softmax-Layers ungleich 1 ist.

  • Ein Slice-Layer, das direkt auf ein Shape-Layer folgt wird mit diesem zusammengeführt, sofern dies möglich ist. Voraussetzung dafür ist, dass das Slice-Layer der einzige Empfänger des Outputs des Shape-Layers ist und eine Schrittweite von 1 verwendet. Dadurch wird die Laufzeit und der Speicherverbrauch reduziert.

Unterstützte Operationen

ONNX Modelle mit den folgenden Operationen können von read_dl_modelread_dl_modelReadDlModelReadDlModelread_dl_model gelesen werden:

'Abs':

Keine Einschränkungen.

'Acos':

Keine Einschränkungen.

'Add':

Keine Einschränkungen.

'ArgMax':

Es gelten folgende Einschränkungen:

  • Attribut 'axis'"axis""axis""axis""axis": Der Wert muss 1 sein.

  • Attribut 'keepdims'"keepdims""keepdims""keepdims""keepdims": Der Wert muss 1 sein.

  • Attribut 'select_last_index'"select_last_index""select_last_index""select_last_index""select_last_index": Der Wert muss 0 sein.

'Asin':

Keine Einschränkungen.

'Atan':

Keine Einschränkungen.

'AveragePool':

Es gelten folgende Einschränkungen:

  • Attribut 'count_include_pad'"count_include_pad""count_include_pad""count_include_pad""count_include_pad": Der Wert muss 0 sein.

'BatchNormalization':

Keine Einschränkungen.

'Ceil':

Keine Einschränkungen.

'Celu':

Keine Einschränkungen.

'Clip':

Es gelten folgende Einschränkungen:

  • Attribut 'min'"min""min""min""min": Der Wert muss kleiner oder gleich 'max'"max""max""max""max" sein.

  • Attribut 'max'"max""max""max""max": Der Wert muss größer oder gleich 'min'"min""min""min""min" und kleiner als die maximale float Zahl sein.

'Concat':

Keine Einschränkungen.

'Constant':

Es gelten folgende Einschränkungen:

  • Attribut 'sparse_value'"sparse_value""sparse_value""sparse_value""sparse_value": Das Attribut wird nicht unterstützt.

  • Attribut 'value_floats'"value_floats""value_floats""value_floats""value_floats": Das Attribut wird nicht unterstützt.

  • Attribut 'value_ints'"value_ints""value_ints""value_ints""value_ints": Das Attribut wird nicht unterstützt.

  • Attribut 'value_string'"value_string""value_string""value_string""value_string": Das Attribut wird nicht unterstützt.

  • Attribut 'value_strings'"value_strings""value_strings""value_strings""value_strings": Das Attribut wird nicht unterstützt.

'Conv':

Es gelten folgende Einschränkungen:

  • Attribut 'pads'"pads""pads""pads""pads": Padding Werte größer oder gleich der Kernel-Größe sind nicht unterstützt.

'ConvTranspose':

Es gelten folgende Einschränkungen:

  • Attribut 'dilations'"dilations""dilations""dilations""dilations": Nur die Werte '(1, 1)'"(1, 1)""(1, 1)""(1, 1)""(1, 1)" (keine Dilation) werden unterstützt.

  • Attribut 'group'"group""group""group""group": Nur der Wert 1 wird unterstützt (keine grouped transposed convolution).

  • Attribut 'kernel_shape'"kernel_shape""kernel_shape""kernel_shape""kernel_shape": Nur symmetrische Kernel werden unterstützt.

  • Attribut 'output_padding'"output_padding""output_padding""output_padding""output_padding": Siehe Beschränkungen in create_dl_layer_transposed_convolutioncreate_dl_layer_transposed_convolutionCreateDlLayerTransposedConvolutionCreateDlLayerTransposedConvolutioncreate_dl_layer_transposed_convolution.

  • Attribut 'output_shape'"output_shape""output_shape""output_shape""output_shape": Das Attribut wird nicht unterstützt.

  • Attribut 'pads'"pads""pads""pads""pads": Padding Werte größer oder gleich der Kernel-Größe sind nicht unterstützt.

  • Attribut 'strides'"strides""strides""strides""strides": Nur symmetrische Strides werden unterstützt.

'Cos':

Keine Einschränkungen.

'Cosh':

Keine Einschränkungen.

'DepthToSpace':

Es gelten folgende Einschränkungen:

  • Attribut 'mode'"mode""mode""mode""mode": Der Wert muss 'CRD'"CRD""CRD""CRD""CRD" sein.

'Div':

Keine Einschränkungen.

'Dropout':

Keine Einschränkungen.

'Elu':

Keine Einschränkungen.

'Erf':

Keine Einschränkungen.

'Exp':

Keine Einschränkungen.

'Floor':

Keine Einschränkungen.

'Gather':

Es gelten folgende Einschränkungen:

  • Eingabe 'indices'"indices""indices""indices""indices": Indizes mit einem Rang größer als 1 werden nicht unterstützt.

'Gelu':

Keine Einschränkungen.

'Gemm':

Es gelten folgende Einschränkungen:

  • Attribut 'alpha'"alpha""alpha""alpha""alpha": Der Wert muss 1 sein.

  • Attribut 'beta'"beta""beta""beta""beta": Der Wert muss 1 sein.

  • Attribut 'transA'"transA""transA""transA""transA": Der Wert muss 0 sein.

'GlobalAveragePool':

Keine Einschränkungen.

'GlobalMaxPool':

Es gelten folgende Einschränkungen:

  • Attribut 'dilations'"dilations""dilations""dilations""dilations": Der Wert muss 1 sein.

'HardSigmoid':

Keine Einschränkungen.

'HardSwish':

Keine Einschränkungen.

'LeakyRelu':

Keine Einschränkungen.

'Log':

Keine Einschränkungen.

'LogSoftmax':

Es gelten folgende Einschränkungen:

  • Attribut 'axis'"axis""axis""axis""axis":

    • OpSetVersion < 13: Der Wert muss 1 sein und die Breite und Höhe der Eingabe muss jeweils 1 sein, oder der Wert muss 3 sein.

    • OpSetVersion >= 13: Keine Einschränkungen.

'LRN':

Keine Einschränkungen. Hinweis: Attribut 'size'"size""size""size""size" hat keinen Effekt.

'MatMul':

Keine Einschränkungen.

'MaxPool':

Keine Einschränkungen.

'Mean':

Keine Einschränkungen.

'Mish':

Keine Einschränkungen.

'Mul':

Keine Einschränkungen.

'Neg':

Keine Einschränkungen.

'Pow':

Der Exponent muss eine skalarer konstanter Input oder Initializer sein.

'Reciprocal':

Keine Einschränkungen.

'ReduceL2':
  • Attribut 'noop_with_empty_axes'"noop_with_empty_axes""noop_with_empty_axes""noop_with_empty_axes""noop_with_empty_axes": Das Attribut ist optional. Der Wert muss 0 sein.

  • Attribut 'keepdims'"keepdims""keepdims""keepdims""keepdims": Das Attribut ist optional. Der Wert muss 1 sein.

  • Attribut 'axes'"axes""axes""axes""axes": Das Attribut ist optional. Wenn leer, alle Dimensionen reduzieren. In den neuen Opset-Versionen wurde das Attribut 'axes'"axes""axes""axes""axes" zu den Inputs verschoben.

'ReduceMax':

Es gelten folgende Einschränkungen:

  • Attribut 'axes'"axes""axes""axes""axes": Der Wert muss 1 sein.

  • Attribut 'keepdims'"keepdims""keepdims""keepdims""keepdims": Der Wert muss 1 sein.

'ReduceSum':
  • Attribut 'noop_with_empty_axes'"noop_with_empty_axes""noop_with_empty_axes""noop_with_empty_axes""noop_with_empty_axes": Das Attribut ist optional. Der Wert muss 0 sein.

  • Attribut 'keepdims'"keepdims""keepdims""keepdims""keepdims": Das Attribut ist optional. Der Wert muss 1 sein.

  • Attribut 'axes'"axes""axes""axes""axes": Das Attribut ist optional. Wenn leer, alle Dimensionen reduzieren. In den neuen Opset-Versionen wurde das Attribut 'axes'"axes""axes""axes""axes" zu den Inputs verschoben.

'Relu':

Keine Einschränkungen.

'Resize':

Es gelten folgende Einschränkungen:

  • Attribut 'mode'"mode""mode""mode""mode": Nur die Werte 'linear'"linear""linear""linear""linear", 'bilinear'"bilinear""bilinear""bilinear""bilinear" oder 'nearest'"nearest""nearest""nearest""nearest" sind erlaubt.

  • Attribut 'coordinate_transformation_mode'"coordinate_transformation_mode""coordinate_transformation_mode""coordinate_transformation_mode""coordinate_transformation_mode": Nur die Werte 'pytorch_half_pixel'"pytorch_half_pixel""pytorch_half_pixel""pytorch_half_pixel""pytorch_half_pixel", 'half_pixel'"half_pixel""half_pixel""half_pixel""half_pixel", 'align_corners'"align_corners""align_corners""align_corners""align_corners" und 'asymmetric'"asymmetric""asymmetric""asymmetric""asymmetric" sind erlaubt.

  • Inputtensor 'roi'"roi""roi""roi""roi": Wenn Werte gesetzt sind haben sie keinen Effekt auf die Inferenz.

  • Die Attribute 'cubic_coeff_a'"cubic_coeff_a""cubic_coeff_a""cubic_coeff_a""cubic_coeff_a", 'exclude_outside'"exclude_outside""exclude_outside""exclude_outside""exclude_outside", 'extrapolation_value'"extrapolation_value""extrapolation_value""extrapolation_value""extrapolation_value", oder 'nearest_mode'"nearest_mode""nearest_mode""nearest_mode""nearest_mode" haben keinen Effekt.

'Reshape':

Es gelten folgende Einschränkungen:

  • Attribut 'allowzero'"allowzero""allowzero""allowzero""allowzero": Wenn das Attribut verwendet wird, dann muss dessen Wert 0 sein.

'Round':

Keine Einschränkungen.

'Sigmoid':

Keine Einschränkungen.

'Sin':

Keine Einschränkungen.

'Sinh':

Keine Einschränkungen.

'Slice':

Keine Einschränkungen.

'Softmax':

Es gelten folgende Einschränkungen:

  • Attribut 'axis'"axis""axis""axis""axis":

    • OpSetVersion < 13: Der Wert muss 1 sein und die Breite und Höhe der Eingabe muss jeweils 1 sein, oder der Wert muss 3 sein.

    • OpSetVersion >= 13: Keine Einschränkungen.

'Softplus':

Keine Einschränkungen.

'Softsign':

Keine Einschränkungen.

'Split':

Keine Einschränkungen.

'Sqrt':

Keine Einschränkungen.

'Sub':

Keine Einschränkungen.

'Sum':

Keine Einschränkungen.

'Swish':

Keine Einschränkungen.

'Tan':

Keine Einschränkungen.

'Tanh':

Keine Einschränkungen.

'ThresholdedRelu':

Keine Einschränkungen.

'Transpose':

Keine Einschränkungen.

Außerdem wird das ONNX Modellattribut 'metadata_props' unterstützt. Dieses wird im Modellparameter 'meta_data'"meta_data""meta_data""meta_data""meta_data" gespeichert.

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.

Parameter

FileNameFileNameFileNamefileNamefile_name (input_control)  filename.read HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Dateiname

Default: 'pretrained_dl_classifier_compact.hdl' "pretrained_dl_classifier_compact.hdl" "pretrained_dl_classifier_compact.hdl" "pretrained_dl_classifier_compact.hdl" "pretrained_dl_classifier_compact.hdl"

Werteliste: 'initial_dl_anomaly_large.hdl'"initial_dl_anomaly_large.hdl""initial_dl_anomaly_large.hdl""initial_dl_anomaly_large.hdl""initial_dl_anomaly_large.hdl", 'initial_dl_anomaly_medium.hdl'"initial_dl_anomaly_medium.hdl""initial_dl_anomaly_medium.hdl""initial_dl_anomaly_medium.hdl""initial_dl_anomaly_medium.hdl", 'pretrained_deep_ocr_detection.hdl'"pretrained_deep_ocr_detection.hdl""pretrained_deep_ocr_detection.hdl""pretrained_deep_ocr_detection.hdl""pretrained_deep_ocr_detection.hdl", 'pretrained_deep_ocr_detection_compact.hdl'"pretrained_deep_ocr_detection_compact.hdl""pretrained_deep_ocr_detection_compact.hdl""pretrained_deep_ocr_detection_compact.hdl""pretrained_deep_ocr_detection_compact.hdl", 'pretrained_deep_ocr_recognition.hdl'"pretrained_deep_ocr_recognition.hdl""pretrained_deep_ocr_recognition.hdl""pretrained_deep_ocr_recognition.hdl""pretrained_deep_ocr_recognition.hdl", 'pretrained_deep_ocr_recognition_compact.hdl'"pretrained_deep_ocr_recognition_compact.hdl""pretrained_deep_ocr_recognition_compact.hdl""pretrained_deep_ocr_recognition_compact.hdl""pretrained_deep_ocr_recognition_compact.hdl", 'pretrained_dl_3d_gripping_point.hdl'"pretrained_dl_3d_gripping_point.hdl""pretrained_dl_3d_gripping_point.hdl""pretrained_dl_3d_gripping_point.hdl""pretrained_dl_3d_gripping_point.hdl", 'pretrained_dl_anomaly_global_context.hdl'"pretrained_dl_anomaly_global_context.hdl""pretrained_dl_anomaly_global_context.hdl""pretrained_dl_anomaly_global_context.hdl""pretrained_dl_anomaly_global_context.hdl", 'pretrained_dl_classifier_alexnet.hdl'"pretrained_dl_classifier_alexnet.hdl""pretrained_dl_classifier_alexnet.hdl""pretrained_dl_classifier_alexnet.hdl""pretrained_dl_classifier_alexnet.hdl", 'pretrained_dl_classifier_compact.hdl'"pretrained_dl_classifier_compact.hdl""pretrained_dl_classifier_compact.hdl""pretrained_dl_classifier_compact.hdl""pretrained_dl_classifier_compact.hdl", 'pretrained_dl_classifier_enhanced.hdl'"pretrained_dl_classifier_enhanced.hdl""pretrained_dl_classifier_enhanced.hdl""pretrained_dl_classifier_enhanced.hdl""pretrained_dl_classifier_enhanced.hdl", 'pretrained_dl_classifier_mobilenet_v2.hdl'"pretrained_dl_classifier_mobilenet_v2.hdl""pretrained_dl_classifier_mobilenet_v2.hdl""pretrained_dl_classifier_mobilenet_v2.hdl""pretrained_dl_classifier_mobilenet_v2.hdl", 'pretrained_dl_classifier_mobilenet_v4_large.hdl'"pretrained_dl_classifier_mobilenet_v4_large.hdl""pretrained_dl_classifier_mobilenet_v4_large.hdl""pretrained_dl_classifier_mobilenet_v4_large.hdl""pretrained_dl_classifier_mobilenet_v4_large.hdl", 'pretrained_dl_classifier_mobilenet_v4_medium.hdl'"pretrained_dl_classifier_mobilenet_v4_medium.hdl""pretrained_dl_classifier_mobilenet_v4_medium.hdl""pretrained_dl_classifier_mobilenet_v4_medium.hdl""pretrained_dl_classifier_mobilenet_v4_medium.hdl", 'pretrained_dl_classifier_mobilenet_v4_small.hdl'"pretrained_dl_classifier_mobilenet_v4_small.hdl""pretrained_dl_classifier_mobilenet_v4_small.hdl""pretrained_dl_classifier_mobilenet_v4_small.hdl""pretrained_dl_classifier_mobilenet_v4_small.hdl", 'pretrained_dl_classifier_resnet18.hdl'"pretrained_dl_classifier_resnet18.hdl""pretrained_dl_classifier_resnet18.hdl""pretrained_dl_classifier_resnet18.hdl""pretrained_dl_classifier_resnet18.hdl", 'pretrained_dl_classifier_resnet50.hdl'"pretrained_dl_classifier_resnet50.hdl""pretrained_dl_classifier_resnet50.hdl""pretrained_dl_classifier_resnet50.hdl""pretrained_dl_classifier_resnet50.hdl", 'pretrained_dl_edge_extractor.hdl'"pretrained_dl_edge_extractor.hdl""pretrained_dl_edge_extractor.hdl""pretrained_dl_edge_extractor.hdl""pretrained_dl_edge_extractor.hdl", 'pretrained_dl_segmentation_compact.hdl'"pretrained_dl_segmentation_compact.hdl""pretrained_dl_segmentation_compact.hdl""pretrained_dl_segmentation_compact.hdl""pretrained_dl_segmentation_compact.hdl", 'pretrained_dl_segmentation_enhanced.hdl'"pretrained_dl_segmentation_enhanced.hdl""pretrained_dl_segmentation_enhanced.hdl""pretrained_dl_segmentation_enhanced.hdl""pretrained_dl_segmentation_enhanced.hdl"

Dateiendung: .hdl, .onnx

DLModelHandleDLModelHandleDLModelHandleDLModelHandledlmodel_handle (output_control)  dl_model HDlModel, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle des Deep Learning-Modells.

Ergebnis

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

Nachfolger

set_dl_model_paramset_dl_model_paramSetDlModelParamSetDlModelParamset_dl_model_param, get_dl_model_paramget_dl_model_paramGetDlModelParamGetDlModelParamget_dl_model_param, apply_dl_modelapply_dl_modelApplyDlModelApplyDlModelapply_dl_model, train_dl_model_batchtrain_dl_model_batchTrainDlModelBatchTrainDlModelBatchtrain_dl_model_batch, train_dl_model_anomaly_datasettrain_dl_model_anomaly_datasetTrainDlModelAnomalyDatasetTrainDlModelAnomalyDatasettrain_dl_model_anomaly_dataset

Alternativen

create_dl_model_detectioncreate_dl_model_detectionCreateDlModelDetectionCreateDlModelDetectioncreate_dl_model_detection

Literatur

Open Neural Network Exchange (ONNX), https://onnx.ai/

Modul

Foundation. Dieser Operator verwendet dynamische Lizenzierung (siehe 'Installation Guide'). Welches der folgenden Module benötigt wird hängt von der Anwendung des Operators ab:
3D Metrology, OCR/OCV, Matching, Deep Learning Enhanced, Deep Learning Professional