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
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)
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
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Automatisch parallelisiert auf interner Datenebene.
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