Skip to content

get_deep_matching_3d_paramGetDeepMatching3dParamGetDeepMatching3dParamget_deep_matching_3d_paramT_get_deep_matching_3d_paramπŸ”—

Short descriptionπŸ”—

get_deep_matching_3d_paramGetDeepMatching3dParamGetDeepMatching3dParamget_deep_matching_3d_paramT_get_deep_matching_3d_param β€” Read a parameter from a Deep 3D Matching model.

SignatureπŸ”—

get_deep_matching_3d_param( deep_matching_3d Deep3DMatchingModel, attribute.name GenParamName, out attribute.value GenParamValue )void GetDeepMatching3dParam( const HTuple& Deep3DMatchingModel, const HTuple& GenParamName, HTuple* GenParamValue )static void HOperatorSet.GetDeepMatching3dParam( HTuple deep3DMatchingModel, HTuple genParamName, out HTuple genParamValue )def get_deep_matching_3d_param( deep_3dmatching_model: HHandle, gen_param_name: MaybeSequence[str] ) -> Sequence[HTupleElementType]

def get_deep_matching_3d_param_s( deep_3dmatching_model: HHandle, gen_param_name: MaybeSequence[str] ) -> HTupleElementTypeHerror T_get_deep_matching_3d_param( const Htuple Deep3DMatchingModel, const Htuple GenParamName, Htuple* GenParamValue )

HTuple HDeepMatching3D::GetDeepMatching3dParam( const HTuple& GenParamName ) const

HTuple HDeepMatching3D::GetDeepMatching3dParam( const HString& GenParamName ) const

HTuple HDeepMatching3D::GetDeepMatching3dParam( const char* GenParamName ) const

HTuple HDeepMatching3D::GetDeepMatching3dParam( const wchar_t* GenParamName ) const (Windows only)

HTuple HDeepMatching3D.GetDeepMatching3dParam( HTuple genParamName )

HTuple HDeepMatching3D.GetDeepMatching3dParam( string genParamName )

DescriptionπŸ”—

The operator get_deep_matching_3d_paramGetDeepMatching3dParam returns the parameter values of GenParamNamegenParamNamegen_param_name for the Deep 3D Matching model Deep3DMatchingModeldeep3DMatchingModeldeep_3dmatching_model in GenParamValuegenParamValuegen_param_value.

The following table gives an overview, which parameters can be set using set_deep_matching_3d_paramSetDeepMatching3dParam and which can be retrieved using get_deep_matching_3d_paramGetDeepMatching3dParam.

GenParamNamegenParamNamegen_param_name set get
'camera_parameter N'"camera_parameter N" x x
'camera_pose N'"camera_pose N" x x
'delete_cameras'"delete_cameras" x
'dl_model_detection'"dl_model_detection" x x
'dl_model_pose_estimation'"dl_model_pose_estimation" x x
'min_num_views'"min_num_views" x x
'sort_single_views_last'"sort_single_views_last" x x
'min_score'"min_score" x x
'num_matches'"num_matches" x x
'orig_3d_model'"orig_3d_model" x
'symmetry_type'"symmetry_type" x
'symmetry_poses'"symmetry_poses" x

In the following the parameters are described:

  • 'camera_parameter N'"camera_parameter N", 'camera_pose N'"camera_pose N", 'delete_cameras'"delete_cameras": These parameters control the camera setup used for matching, i.e., the camera poses and the camera parameters. 'delete_cameras'"delete_cameras" can be set with an empty tuple as value to delete all cameras from a Deep 3D Matching model.

    The keys for accessing the parameters of the N’th camera are 'camera_parameter N'"camera_parameter N" and 'camera_pose N'"camera_pose N", where N is the zero-based index of the camera. For example, to access the parameters of the first camera, use 'camera_parameter 0'"camera_parameter 0" and 'camera_pose 0'"camera_pose 0". Note that cameras must be added in order.

    Further note that the camera parameters should not contain too much of a distortion. Small distortions can be handled by the model. If the camera distortion is high, it is recommended to remove any distortion from the camera parameters and images beforehand, using, for example, change_radial_distortion_cam_parChangeRadialDistortionCamPar in combination with change_radial_distortion_imageChangeRadialDistortionImage or gen_radial_distortion_mapGenRadialDistortionMap and map_imageMapImage.

    The camera pose is the pose of the camera in an arbitrary world coordinate system. The poses of detected objects are returned in that world coordinate system. The angles must be passed in degrees and the translations need to be in the same unit as the 3D CAD model of the Deep 3D Matching model.

  • 'dl_model_detection'"dl_model_detection", 'dl_model_pose_estimation'"dl_model_pose_estimation": The deep learning models used for Deep 3D Matching. They can be obtained and written back in order to train them using train_dl_model_batchTrainDlModelBatch, optimize them using optimize_dl_model_for_inferenceOptimizeDlModelForInference or change the device on which they are executed.

    Note that for setting a 3D pose estimation model, the model has to contain 3D information which was attached to a backbone in create_deep_matching_3dCreateDeepMatching3d.

  • 'min_num_views'"min_num_views": This parameter determines the minimum number of cameras in which an instance must be visible in order to be returned by apply_deep_matching_3dApplyDeepMatching3d. The parameter can be either an integer larger than zero, or the string 'auto'"auto". If 'auto'"auto", instances must be visible in a single camera if only a single camera is used, and in at least two cameras otherwise.

    Suggested values: 'auto'"auto", 22, 33

    Value range: \(\geq\) 00

    Default: 'auto'"auto"

  • 'sort_single_views_last'"sort_single_views_last": If this parameter is set to 'true'"true" (default value) and 'min_num_views'"min_num_views" is set to 11, instances that were only seen from a single camera will be sorted to the back of the result list, even if they have a higher score than instances that were seen from more than one camera. Internally, this causes instances seen from more cameras to be preferred during deduplication. This mode is mainly intended so that applications receive both β€œmore certain” matches (seen from more than one camera) and β€œuncertain” results (seen from only one camera), without the uncertain results influencing the more certain ones. The uncertain results can, for example, be incorporated into the path planning of a robot.

    Suggested values: 'true'"true", 'false'"false"

    Default: 'true'"true"

  • 'min_score'"min_score": This parameter determines the minimum score of detected instances. In other words, apply_deep_matching_3dApplyDeepMatching3d ignores all detected instances with a score smaller than this value. The score computed by the Deep 3D Matching model lies between 00 and 11, where 00 indicates a bad match and 11 is a very good match.

    Value range: [00, .., 11]

    Default: 0.20.2

  • 'num_matches'"num_matches": This parameter determines the maximum number of matches to return by apply_deep_matching_3dApplyDeepMatching3d. If the operator finds more instances than set in 'num_matches'"num_matches", only the 'num_matches'"num_matches" instances with the highest scores are returned. This parameter can be set to zero, in which case all instances above 'min_score'"min_score" are returned.

    Value range: \(\geq\) 00

    Default: 00

  • 'orig_3d_model'"orig_3d_model": This parameter returns the original 3D CAD model used for creating the Deep 3D Matching model, see create_deep_matching_3dCreateDeepMatching3d. It can be used to visualize detection results.

  • 'symmetry_type'"symmetry_type": This parameter returns the symmetry type of the original 3D CAD model used for creating the Deep 3D Matching model, see create_deep_matching_3dCreateDeepMatching3d.

  • 'symmetry_poses'"symmetry_poses": For Deep 3D Matching models of 'symmetry_type'"symmetry_type" 'discrete'"discrete", this parameter returns the symmetry poses of the original 3D CAD model used for creating the Deep 3D Matching model, see create_deep_matching_3dCreateDeepMatching3d.

AttentionπŸ”—

Deep 3D Matching requires images to not have too much of a distortion. Small distortions can be handled by the model. If the camera distortion is high, it is recommended to remove any distortion from the camera parameters and images beforehand, using, for example, change_radial_distortion_cam_parChangeRadialDistortionCamPar in combination with change_radial_distortion_imageChangeRadialDistortionImage or gen_radial_distortion_mapGenRadialDistortionMap and map_imageMapImage.

Execution informationπŸ”—

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.

ParametersπŸ”—

Deep3DMatchingModeldeep3DMatchingModeldeep_3dmatching_model (input_control) deep_matching_3d β†’ (handle)HTuple (HHandle)HDeepMatching3D, HTuple (IntPtr)HHandleHtuple (handle)

Deep 3D Matching model.

GenParamNamegenParamNamegen_param_name (input_control) attribute.name(-array) β†’ (string)HTuple (HString)HTuple (string)MaybeSequence[str]Htuple (char*)

Name of parameter.

Default: 'min_score'"min_score"
Suggested values: 'min_score', 'num_matches', 'orig_3d_model', 'min_num_views', 'dl_model_detection', 'dl_model_pose_estimation', 'camera_parameter', 'camera_pose', 'symmetry_type', 'symmetry_poses', 'sort_single_views_last'"min_score", "num_matches", "orig_3d_model", "min_num_views", "dl_model_detection", "dl_model_pose_estimation", "camera_parameter", "camera_pose", "symmetry_type", "symmetry_poses", "sort_single_views_last"

GenParamValuegenParamValuegen_param_value (output_control) attribute.value(-array) β†’ (string / real / integer / handle)HTuple (HString / double / Hlong / HHandle)HTuple (string / double / int / long / HHandle)Sequence[HTupleElementType]Htuple (char* / double / Hlong / handle)

Obtained value of parameter.

ModuleπŸ”—

3D Metrology