Operator Reference

create_deep_matching_3dT_create_deep_matching_3dCreateDeepMatching3dCreateDeepMatching3dcreate_deep_matching_3d (Operator)

create_deep_matching_3dT_create_deep_matching_3dCreateDeepMatching3dCreateDeepMatching3dcreate_deep_matching_3d — Create a Deep 3D Matching model.

Signature

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)   ( Windows only)

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)   ( Windows only)

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

Description

create_deep_matching_3dcreate_deep_matching_3dCreateDeepMatching3dCreateDeepMatching3dcreate_deep_matching_3d creates a Deep 3D Matching model for finding the poses of the 3D object model ObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d and returns its handle in Deep3DMatchingModelDeep3DMatchingModelDeep3DMatchingModeldeep3DMatchingModeldeep_3dmatching_model.

If the 3D object model is symmetric, symmetry information has to be set with the parameter SymmetrySymmetrySymmetrysymmetrysymmetry. It defines the symmetries of the 3D object model ObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d in a dictionary. Currently discrete symmetries are supported and set in the dictionary key 'symmetry_poses'"symmetry_poses""symmetry_poses""symmetry_poses""symmetry_poses" with the value consisting of HALCON poses (see create_posecreate_poseCreatePoseCreatePosecreate_pose). All poses that keep the model identical under transformation have to be set, including the identity. By default, this parameter is set to 'no_symmetry'"no_symmetry""no_symmetry""no_symmetry""no_symmetry" (as a string instead of a dictionary) which means that no symmetry is active.

Internally create_deep_matching_3dcreate_deep_matching_3dCreateDeepMatching3dCreateDeepMatching3dcreate_deep_matching_3d reads pretrained backbone models and creates the model components for object detection and 3D pose estimation. The backbone for 3D pose estimation is filled with the 3D object model ObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d and possibly its symmetry information for training.

The behavior of the operator can be influenced by setting GenParamNameGenParamNameGenParamNamegenParamNamegen_param_name to the value passed in GenParamValueGenParamValueGenParamValuegenParamValuegen_param_value:

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

Sets the backbone of the deep learning model for object detection. A list of possible backbones can be found in the documentation of 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":

Sets the backbone of the deep learning model for 3D pose estimation.

HALCON provides pretrained backbones to be used for Deep 3D Matching. The following pretrained neural networks are provided:

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

This is a smaller neural network designed for easier tasks and is more memory and runtime efficient.

This network expects the images to be of the type byte. Additionally, the network is designed for certain image properties. The corresponding values can be retrieved with get_dl_model_paramget_dl_model_paramGetDlModelParamGetDlModelParamget_dl_model_param and listed below:

'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

Restriction: The network architecture does not allow changes concerning the image dimensions.

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

This is a larger neural network designed for more difficult tasks and requires more memory and runtime.

This network expects the images to be of the type byte. Additionally, the network is designed for certain image properties. The corresponding values can be retrieved with get_dl_model_paramget_dl_model_paramGetDlModelParamGetDlModelParamget_dl_model_param and listed below:

'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

Restriction: The network architecture does not allow changes concerning the image dimensions.

List of values: '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 with parameters used to configure the backbone of the deep learning model for object detection. A list with the settable parameters can be found in the documentation of create_dl_model_detectioncreate_dl_model_detectionCreateDlModelDetectionCreateDlModelDetectioncreate_dl_model_detection.

The deep learning models used for Deep 3D Matching can be obtained by get_deep_matching_3d_paramget_deep_matching_3d_paramGetDeepMatching3dParamGetDeepMatching3dParamget_deep_matching_3d_param and trained using train_dl_model_batchtrain_dl_model_batchTrainDlModelBatchTrainDlModelBatchtrain_dl_model_batch.

Execution Information

  • Multithreading type: reentrant (runs in parallel with non-exclusive operators).
  • Multithreading scope: global (may be called from any thread).
  • Automatically parallelized on internal data level.

This operator returns a handle. Note that the state of an instance of this handle type may be changed by specific operators even though the handle is used as an input parameter by those operators.

Parameters

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

3D model to search.

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

Symmetries of the 3D model.

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*)

Names of parameters.

Default: []

Suggested values: '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)

Values of parameters.

Default: []

Suggested values: '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 model.

Module

3D Metrology