create_deep_matching_3dT_create_deep_matching_3dCreateDeepMatching3dCreateDeepMatching3dcreate_deep_matching_3d (Operator)

Name

create_deep_matching_3dT_create_deep_matching_3dCreateDeepMatching3dCreateDeepMatching3dcreate_deep_matching_3d — Erstellen eines Deep 3D Matching-Modells.

Signatur

create_deep_matching_3d( : : ObjectModel3D, Symmetry, GenParamName, GenParamValue : Deep3DMatchingModel)

Herror T_create_deep_matching_3d(const Htuple ObjectModel3D, const Htuple Symmetry, const Htuple GenParamName, const Htuple GenParamValue, Htuple* Deep3DMatchingModel)

void CreateDeepMatching3d(const HTuple& ObjectModel3D, const HTuple& Symmetry, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* Deep3DMatchingModel)

void HDeepMatching3D::HDeepMatching3D(const HObjectModel3D& ObjectModel3D, const HTuple& Symmetry, const HTuple& GenParamName, const HTuple& GenParamValue)

void HDeepMatching3D::HDeepMatching3D(const HObjectModel3D& ObjectModel3D, const HString& Symmetry, const HString& GenParamName, const HString& GenParamValue)

void HDeepMatching3D::HDeepMatching3D(const HObjectModel3D& ObjectModel3D, const char* Symmetry, const char* GenParamName, const char* GenParamValue)

void HDeepMatching3D::HDeepMatching3D(const HObjectModel3D& ObjectModel3D, const wchar_t* Symmetry, const wchar_t* GenParamName, const wchar_t* GenParamValue)   ( Nur Windows)

void HDeepMatching3D::CreateDeepMatching3d(const HObjectModel3D& ObjectModel3D, const HTuple& Symmetry, const HTuple& GenParamName, const HTuple& GenParamValue)

void HDeepMatching3D::CreateDeepMatching3d(const HObjectModel3D& ObjectModel3D, const HString& Symmetry, const HString& GenParamName, const HString& GenParamValue)

void HDeepMatching3D::CreateDeepMatching3d(const HObjectModel3D& ObjectModel3D, const char* Symmetry, const char* GenParamName, const char* GenParamValue)

void HDeepMatching3D::CreateDeepMatching3d(const HObjectModel3D& ObjectModel3D, const wchar_t* Symmetry, const wchar_t* GenParamName, const wchar_t* GenParamValue)   ( Nur Windows)

static void HOperatorSet.CreateDeepMatching3d(HTuple objectModel3D, HTuple symmetry, HTuple genParamName, HTuple genParamValue, out HTuple deep3DMatchingModel)

public HDeepMatching3D(HObjectModel3D objectModel3D, HTuple symmetry, HTuple genParamName, HTuple genParamValue)

public HDeepMatching3D(HObjectModel3D objectModel3D, string symmetry, string genParamName, string genParamValue)

void HDeepMatching3D.CreateDeepMatching3d(HObjectModel3D objectModel3D, HTuple symmetry, HTuple genParamName, HTuple genParamValue)

void HDeepMatching3D.CreateDeepMatching3d(HObjectModel3D objectModel3D, string symmetry, string genParamName, string genParamValue)

def create_deep_matching_3d(object_model_3d: HHandle, symmetry: Union[HHandle, str], gen_param_name: MaybeSequence[str], gen_param_value: MaybeSequence[Union[str, float, int]]) -> HHandle

Beschreibung

create_deep_matching_3dcreate_deep_matching_3dCreateDeepMatching3dCreateDeepMatching3dcreate_deep_matching_3d erstellt ein Deep 3D Matching-Modell zum Auffinden des 3D-Objektmodells ObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d und gibt es in Deep3DMatchingModelDeep3DMatchingModelDeep3DMatchingModeldeep3DMatchingModeldeep_3dmatching_model zurück.

Wenn das 3D-Objektmodell symmetrisch ist, müssen Symmetrieinformationen mit dem Parameter SymmetrySymmetrySymmetrysymmetrysymmetry gesetzt werden. Er definiert die Symmetrien des 3D-Objektmodells ObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d in einem Dictionary. Gegenwärtig werden diskrete Symmetrien unterstützt und im Dictionary Key 'symmetry_poses'"symmetry_poses""symmetry_poses""symmetry_poses""symmetry_poses" gesetzt mit einem Value bestehend aus HALCON Posen (siehe create_posecreate_poseCreatePoseCreatePosecreate_pose). Alle Posen, die das Modell nach einer Transformation unverändert lassen, müssen definiert werden, einschließlich der Identitätspose. Standardmäßig ist der Parameter auf 'no_symmetry'"no_symmetry""no_symmetry""no_symmetry""no_symmetry" gesetzt (als String anstatt von einem Dictionary), das heißt, dass keine Symmetrien aktiviert sind.

create_deep_matching_3dcreate_deep_matching_3dCreateDeepMatching3dCreateDeepMatching3dcreate_deep_matching_3d liest intern vortrainierte Backbone-Netze ein und erstellt daraus die Modellkomponente für die Objektdetektion und für die Posenschätzung. Das Backbone für Posenschätzung wird für das spätere Training mit dem 3D-Objektmodell ObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d und möglicherweise seiner Symmetrieinformation gefüllt.

Das Verhalten des Operators kann durch Setzen von GenParamNameGenParamNameGenParamNamegenParamNamegen_param_name auf den in GenParamValueGenParamValueGenParamValuegenParamValuegen_param_value übergebenen Wert gesteuert werden:

'backbone_name_detector'"backbone_name_detector""backbone_name_detector""backbone_name_detector""backbone_name_detector":

Legt das Backbone des Deep Learning-Modells für die Objektdetektion fest. Eine Liste möglicher Backbones findet sich in der Dokumentation von create_dl_model_detectioncreate_dl_model_detectionCreateDlModelDetectionCreateDlModelDetectioncreate_dl_model_detection.

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".

'backbone_name_pose_estimation'"backbone_name_pose_estimation""backbone_name_pose_estimation""backbone_name_pose_estimation""backbone_name_pose_estimation":

Legt das Backbone des Deep Learning-Modells für die Posenschätzung fest.

HALCON stellt vortrainierte Backbone-Netze bereit, die für das Deep 3D Matching verwendet werden können. Die folgenden vortrainierten neuronalen Netze stehen zur Verfügung:

'pretrained_dl_3d_pose_estimation_compact.hdl'"pretrained_dl_3d_pose_estimation_compact.hdl""pretrained_dl_3d_pose_estimation_compact.hdl""pretrained_dl_3d_pose_estimation_compact.hdl""pretrained_dl_3d_pose_estimation_compact.hdl":

Dies ist ein kleineres Netzwerk, das für einfachere Aufgaben geeignet ist und einen vergleichsweise niedrigeren Speicherverbrauch und geringere Laufzeit hat.

Das Netzwerk erwartet Eingabebilder vom Typ byte. Zusätzlich erfordert das Netzwerk spezifische Bildeigenschaften, welche über get_dl_model_paramget_dl_model_paramGetDlModelParamGetDlModelParamget_dl_model_param abgefragt werden können und hier aufgelistet sind.

'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

Restriktion: Die Netzwerkarchitektur erlaubt keine Änderungen der Bilddimensionen.

'pretrained_dl_3d_pose_estimation_enhanced.hdl'"pretrained_dl_3d_pose_estimation_enhanced.hdl""pretrained_dl_3d_pose_estimation_enhanced.hdl""pretrained_dl_3d_pose_estimation_enhanced.hdl""pretrained_dl_3d_pose_estimation_enhanced.hdl":

Dies ist ein größeres Netzwerk, das für komplexere Aufgaben geeignet ist und einen höheren Speicherverbrauch und eine längere Laufzeit hat.

Das Netzwerk erwartet Eingabebilder vom Typ byte. Zusätzlich erfordert das Netzwerk spezifische Bildeigenschaften, welche über get_dl_model_paramget_dl_model_paramGetDlModelParamGetDlModelParamget_dl_model_param abgefragt werden können und hier aufgelistet sind.

'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

Restriktion: Die Netzwerkarchitektur erlaubt keine Änderungen der Bilddimensionen.

Werteliste: 'pretrained_dl_3d_pose_estimation_compact.hdl'"pretrained_dl_3d_pose_estimation_compact.hdl""pretrained_dl_3d_pose_estimation_compact.hdl""pretrained_dl_3d_pose_estimation_compact.hdl""pretrained_dl_3d_pose_estimation_compact.hdl", 'pretrained_dl_3d_pose_estimation_enhanced.hdl'"pretrained_dl_3d_pose_estimation_enhanced.hdl""pretrained_dl_3d_pose_estimation_enhanced.hdl""pretrained_dl_3d_pose_estimation_enhanced.hdl""pretrained_dl_3d_pose_estimation_enhanced.hdl".

Default: 'pretrained_dl_3d_pose_estimation_enhanced.hdl'"pretrained_dl_3d_pose_estimation_enhanced.hdl""pretrained_dl_3d_pose_estimation_enhanced.hdl""pretrained_dl_3d_pose_estimation_enhanced.hdl""pretrained_dl_3d_pose_estimation_enhanced.hdl".

'detector_params'"detector_params""detector_params""detector_params""detector_params":

Dictionary mit Parametern zur Konfiguration vom Backbone des Deep Learning-Modells für die Objektdetektion. Eine Liste möglicher setzbarer Parameter findet sich in der Dokumentation von create_dl_model_detectioncreate_dl_model_detectionCreateDlModelDetectionCreateDlModelDetectioncreate_dl_model_detection.

Die für Deep 3D Matching verwendeten Deep Learning-Modelle können mit get_deep_matching_3d_paramget_deep_matching_3d_paramGetDeepMatching3dParamGetDeepMatching3dParamget_deep_matching_3d_param abgerufen werden und mit train_dl_model_batchtrain_dl_model_batchTrainDlModelBatchTrainDlModelBatchtrain_dl_model_batch trainiert werden.

Ausführungsinformationen

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

Parameter

ObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d (input_control)  object_model_3d HObjectModel3D, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Zu suchendes 3D-Modell.

SymmetrySymmetrySymmetrysymmetrysymmetry (input_control)  attribute.value HTupleUnion[HHandle, str]HTupleHtuple (string / handle) (string / HHandle) (HString / HHandle) (char* / handle)

Symmetrien des 3D-Modells.

Default: 'no_symmetry' "no_symmetry" "no_symmetry" "no_symmetry" "no_symmetry"

GenParamNameGenParamNameGenParamNamegenParamNamegen_param_name (input_control)  attribute.name(-array) HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)

Parameternamen.

Default: []

Wertevorschläge: 'backbone_name_detector'"backbone_name_detector""backbone_name_detector""backbone_name_detector""backbone_name_detector", 'backbone_name_pose_estimation'"backbone_name_pose_estimation""backbone_name_pose_estimation""backbone_name_pose_estimation""backbone_name_pose_estimation"

GenParamValueGenParamValueGenParamValuegenParamValuegen_param_value (input_control)  attribute.value(-array) HTupleMaybeSequence[Union[str, float, int]]HTupleHtuple (string / real / integer) (string / double / int / long) (HString / double / Hlong) (char* / double / Hlong)

Parameterwerte.

Default: []

Wertevorschläge: '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_3d_pose_estimation_compact.hdl'"pretrained_dl_3d_pose_estimation_compact.hdl""pretrained_dl_3d_pose_estimation_compact.hdl""pretrained_dl_3d_pose_estimation_compact.hdl""pretrained_dl_3d_pose_estimation_compact.hdl", 'pretrained_dl_3d_pose_estimation_enhanced.hdl'"pretrained_dl_3d_pose_estimation_enhanced.hdl""pretrained_dl_3d_pose_estimation_enhanced.hdl""pretrained_dl_3d_pose_estimation_enhanced.hdl""pretrained_dl_3d_pose_estimation_enhanced.hdl"

Deep3DMatchingModelDeep3DMatchingModelDeep3DMatchingModeldeep3DMatchingModeldeep_3dmatching_model (output_control)  deep_matching_3d HDeepMatching3D, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Deep 3D Matching-Modell.

Beispiel (HDevelop)

* The following example demonstrates the setting of a discrete symmetry.
read_object_model_3d ('pipe_joint', 'm', [], [], ObjectModel3D, Status)
create_pose (0, 0, 0, 0, 0, 0, 'Rp+T', 'gba', 'point', OriginPose)
create_pose (0, 0, 0, 0, 0, 180, 'Rp+T', 'gba', 'point', SymmetryPose)
Symmetry := dict{symmetry_poses: [OriginPose, SymmetryPose]}
create_deep_matching_3d (ObjectModel3D, Symmetry, [], [], Deep3DMatchingModel)

Modul

3D Metrology