find_planar_calib_deformable_modelT_find_planar_calib_deformable_modelFindPlanarCalibDeformableModelFindPlanarCalibDeformableModelfind_planar_calib_deformable_model (Operator)
find_planar_calib_deformable_modelT_find_planar_calib_deformable_modelFindPlanarCalibDeformableModelFindPlanarCalibDeformableModelfind_planar_calib_deformable_model
— Find the best matches of a calibrated deformable model in an image and return
their 3D pose.
Signature
find_planar_calib_deformable_model(Image : : ModelID, AngleStart, AngleExtent, ScaleRMin, ScaleRMax, ScaleCMin, ScaleCMax, MinScore, NumMatches, MaxOverlap, NumLevels, Greediness, GenParamName, GenParamValue : Pose, CovPose, Score)
Herror T_find_planar_calib_deformable_model(const Hobject Image, const Htuple ModelID, const Htuple AngleStart, const Htuple AngleExtent, const Htuple ScaleRMin, const Htuple ScaleRMax, const Htuple ScaleCMin, const Htuple ScaleCMax, const Htuple MinScore, const Htuple NumMatches, const Htuple MaxOverlap, const Htuple NumLevels, const Htuple Greediness, const Htuple GenParamName, const Htuple GenParamValue, Htuple* Pose, Htuple* CovPose, Htuple* Score)
void FindPlanarCalibDeformableModel(const HObject& Image, const HTuple& ModelID, const HTuple& AngleStart, const HTuple& AngleExtent, const HTuple& ScaleRMin, const HTuple& ScaleRMax, const HTuple& ScaleCMin, const HTuple& ScaleCMax, const HTuple& MinScore, const HTuple& NumMatches, const HTuple& MaxOverlap, const HTuple& NumLevels, const HTuple& Greediness, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* Pose, HTuple* CovPose, HTuple* Score)
HPoseArray HDeformableModel::FindPlanarCalibDeformableModel(const HImage& Image, double AngleStart, double AngleExtent, double ScaleRMin, double ScaleRMax, double ScaleCMin, double ScaleCMax, double MinScore, Hlong NumMatches, double MaxOverlap, const HTuple& NumLevels, double Greediness, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* CovPose, HTuple* Score) const
HPose HDeformableModel::FindPlanarCalibDeformableModel(const HImage& Image, double AngleStart, double AngleExtent, double ScaleRMin, double ScaleRMax, double ScaleCMin, double ScaleCMax, double MinScore, Hlong NumMatches, double MaxOverlap, Hlong NumLevels, double Greediness, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* CovPose, HTuple* Score) const
HPoseArray HImage::FindPlanarCalibDeformableModel(const HDeformableModel& ModelID, double AngleStart, double AngleExtent, double ScaleRMin, double ScaleRMax, double ScaleCMin, double ScaleCMax, double MinScore, Hlong NumMatches, double MaxOverlap, const HTuple& NumLevels, double Greediness, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* CovPose, HTuple* Score) const
HPose HImage::FindPlanarCalibDeformableModel(const HDeformableModel& ModelID, double AngleStart, double AngleExtent, double ScaleRMin, double ScaleRMax, double ScaleCMin, double ScaleCMax, double MinScore, Hlong NumMatches, double MaxOverlap, Hlong NumLevels, double Greediness, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* CovPose, HTuple* Score) const
static void HOperatorSet.FindPlanarCalibDeformableModel(HObject image, HTuple modelID, HTuple angleStart, HTuple angleExtent, HTuple scaleRMin, HTuple scaleRMax, HTuple scaleCMin, HTuple scaleCMax, HTuple minScore, HTuple numMatches, HTuple maxOverlap, HTuple numLevels, HTuple greediness, HTuple genParamName, HTuple genParamValue, out HTuple pose, out HTuple covPose, out HTuple score)
HPose[] HDeformableModel.FindPlanarCalibDeformableModel(HImage image, double angleStart, double angleExtent, double scaleRMin, double scaleRMax, double scaleCMin, double scaleCMax, double minScore, int numMatches, double maxOverlap, HTuple numLevels, double greediness, HTuple genParamName, HTuple genParamValue, out HTuple covPose, out HTuple score)
HPose HDeformableModel.FindPlanarCalibDeformableModel(HImage image, double angleStart, double angleExtent, double scaleRMin, double scaleRMax, double scaleCMin, double scaleCMax, double minScore, int numMatches, double maxOverlap, int numLevels, double greediness, HTuple genParamName, HTuple genParamValue, out HTuple covPose, out HTuple score)
HPose[] HImage.FindPlanarCalibDeformableModel(HDeformableModel modelID, double angleStart, double angleExtent, double scaleRMin, double scaleRMax, double scaleCMin, double scaleCMax, double minScore, int numMatches, double maxOverlap, HTuple numLevels, double greediness, HTuple genParamName, HTuple genParamValue, out HTuple covPose, out HTuple score)
HPose HImage.FindPlanarCalibDeformableModel(HDeformableModel modelID, double angleStart, double angleExtent, double scaleRMin, double scaleRMax, double scaleCMin, double scaleCMax, double minScore, int numMatches, double maxOverlap, int numLevels, double greediness, HTuple genParamName, HTuple genParamValue, out HTuple covPose, out HTuple score)
def find_planar_calib_deformable_model(image: HObject, model_id: HHandle, angle_start: float, angle_extent: float, scale_rmin: float, scale_rmax: float, scale_cmin: float, scale_cmax: float, min_score: float, num_matches: int, max_overlap: float, num_levels: MaybeSequence[int], greediness: float, gen_param_name: Sequence[str], gen_param_value: Sequence[Union[int, float, str]]) -> Tuple[Sequence[Union[float, int]], Sequence[float], Sequence[float]]
Description
The operator find_planar_calib_deformable_modelfind_planar_calib_deformable_modelFindPlanarCalibDeformableModelFindPlanarCalibDeformableModelfind_planar_calib_deformable_model
finds the best
NumMatchesNumMatchesNumMatchesnumMatchesnum_matches
instances of the calibrated deformable
model ModelIDModelIDModelIDmodelIDmodel_id
in the input image ImageImageImageimageimage
. The
model must have been created previously by calling
create_planar_calib_deformable_modelcreate_planar_calib_deformable_modelCreatePlanarCalibDeformableModelCreatePlanarCalibDeformableModelcreate_planar_calib_deformable_model
or
read_deformable_modelread_deformable_modelReadDeformableModelReadDeformableModelread_deformable_model
. There is no need to
correct any distortions in ImageImageImageimageimage
as the calibration data has
already been provided during the model creation. The operator
find_planar_calib_deformable_modelfind_planar_calib_deformable_modelFindPlanarCalibDeformableModelFindPlanarCalibDeformableModelfind_planar_calib_deformable_model
returns the 3D PosePosePoseposepose
of
the found instances in the camera coordinate system.
Additionally, the accuracy of the six pose parameters are returned in
CovPoseCovPoseCovPosecovPosecov_pose
. By default, CovPoseCovPoseCovPosecovPosecov_pose
contains the 6 standard
deviations of the pose parameters for each match. If the
generic parameter 'cov_pose_mode'"cov_pose_mode""cov_pose_mode""cov_pose_mode""cov_pose_mode" was set to
'covariances'"covariances""covariances""covariances""covariances", CovPoseCovPoseCovPosecovPosecov_pose
contains the 36 values of
the complete 6x6 covariance matrix of the 6
pose parameters. Note that this reflects only an inner accuracy from
which the real accuracy of the pose may differ. Finally, the score
of each found instance is returned in ScoreScoreScorescorescore
. The score is
a number between 0 and 1, which is an approximate measure of how
much of the model is visible in the image.
For further explanation on the planar deformable model and its parameters we
refer to the description of find_planar_uncalib_deformable_modelfind_planar_uncalib_deformable_modelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModelfind_planar_uncalib_deformable_model
.
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
ImageImageImageimageimage
(input_object) (multichannel-)image →
objectHImageHObjectHObjectHobject (byte / uint2)
Input image in which the model should be found.
ModelIDModelIDModelIDmodelIDmodel_id
(input_control) deformable_model →
HDeformableModel, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Handle of the model.
AngleStartAngleStartAngleStartangleStartangle_start
(input_control) angle.rad →
HTuplefloatHTupleHtuple (real) (double) (double) (double)
Smallest rotation of the model.
Default:
-0.39
Suggested values:
-3.14, -1.57, -0.78, -0.39, -0.20, 0.0
AngleExtentAngleExtentAngleExtentangleExtentangle_extent
(input_control) angle.rad →
HTuplefloatHTupleHtuple (real) (double) (double) (double)
Extent of the rotation angles.
Default:
0.78
Suggested values:
6.29, 3.14, 1.57, 0.78, 0.39, 0.0
Restriction:
AngleExtent >= 0
ScaleRMinScaleRMinScaleRMinscaleRMinscale_rmin
(input_control) number →
HTuplefloatHTupleHtuple (real) (double) (double) (double)
Minimum scale of the model in row direction.
Default:
1.0
Suggested values:
0.5, 0.6, 0.7, 0.8, 0.9, 1.0
Restriction:
ScaleRMin > 0
ScaleRMaxScaleRMaxScaleRMaxscaleRMaxscale_rmax
(input_control) number →
HTuplefloatHTupleHtuple (real) (double) (double) (double)
Maximum scale of the model in row direction.
Default:
1.0
Suggested values:
1.0, 1.1, 1.2, 1.3, 1.4, 1.5
Restriction:
ScaleRMax >= ScaleRMin
ScaleCMinScaleCMinScaleCMinscaleCMinscale_cmin
(input_control) number →
HTuplefloatHTupleHtuple (real) (double) (double) (double)
Minimum scale of the model in column direction.
Default:
1.0
Suggested values:
0.5, 0.6, 0.7, 0.8, 0.9, 1.0
Restriction:
ScaleCMin > 0
ScaleCMaxScaleCMaxScaleCMaxscaleCMaxscale_cmax
(input_control) number →
HTuplefloatHTupleHtuple (real) (double) (double) (double)
Maximum scale of the model in column direction.
Default:
1.0
Suggested values:
1.0, 1.1, 1.2, 1.3, 1.4, 1.5
Restriction:
ScaleCMax >= ScaleCMin
MinScoreMinScoreMinScoreminScoremin_score
(input_control) real →
HTuplefloatHTupleHtuple (real) (double) (double) (double)
Minimum score of the instances of the model to
be found.
Default:
0.5
Suggested values:
0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0
Value range:
0
≤
MinScore
MinScore
MinScore
minScore
min_score
≤
1
Minimum increment:
0.01
Recommended increment:
0.05
NumMatchesNumMatchesNumMatchesnumMatchesnum_matches
(input_control) integer →
HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Number of instances of the model to be found
(or 0 for all matches).
Default:
1
Suggested values:
0, 1, 2, 3, 4, 5, 10, 20
MaxOverlapMaxOverlapMaxOverlapmaxOverlapmax_overlap
(input_control) real →
HTuplefloatHTupleHtuple (real) (double) (double) (double)
Maximum overlap of the instances of the model
to be found.
Default:
1.0
Suggested values:
0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0
Value range:
0
≤
MaxOverlap
MaxOverlap
MaxOverlap
maxOverlap
max_overlap
≤
1
Minimum increment:
0.01
Recommended increment:
0.05
NumLevelsNumLevelsNumLevelsnumLevelsnum_levels
(input_control) integer(-array) →
HTupleMaybeSequence[int]HTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Number of pyramid levels used in the matching
(and lowest pyramid level to use if
|NumLevelsNumLevelsNumLevelsnumLevelsnum_levels
| = 2).
Default:
0
List of values:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
GreedinessGreedinessGreedinessgreedinessgreediness
(input_control) real →
HTuplefloatHTupleHtuple (real) (double) (double) (double)
“Greediness” of the search heuristic (0: safe
but slow; 1: fast but matches may be missed).
Default:
0.9
Suggested values:
0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0
Value range:
0
≤
Greediness
Greediness
Greediness
greediness
greediness
≤
1
Minimum increment:
0.01
Recommended increment:
0.05
GenParamNameGenParamNameGenParamNamegenParamNamegen_param_name
(input_control) string-array →
HTupleSequence[str]HTupleHtuple (string) (string) (HString) (char*)
The general parameter names.
Default:
[]
List of values:
[], 'angle_change_restriction'"angle_change_restriction""angle_change_restriction""angle_change_restriction""angle_change_restriction", 'angle_step'"angle_step""angle_step""angle_step""angle_step", 'aniso_scale_change_restriction'"aniso_scale_change_restriction""aniso_scale_change_restriction""aniso_scale_change_restriction""aniso_scale_change_restriction", 'cov_pose_mode'"cov_pose_mode""cov_pose_mode""cov_pose_mode""cov_pose_mode", 'scale_c_step'"scale_c_step""scale_c_step""scale_c_step""scale_c_step", 'scale_r_step'"scale_r_step""scale_r_step""scale_r_step""scale_r_step", 'subpixel'"subpixel""subpixel""subpixel""subpixel"
GenParamValueGenParamValueGenParamValuegenParamValuegen_param_value
(input_control) integer-array →
HTupleSequence[Union[int, float, str]]HTupleHtuple (integer / real / string) (int / long / double / string) (Hlong / double / HString) (Hlong / double / char*)
Values of the general parameters.
Default:
[]
List of values:
[], 'covariances'"covariances""covariances""covariances""covariances", 'least_squares'"least_squares""least_squares""least_squares""least_squares", 'least_squares_high'"least_squares_high""least_squares_high""least_squares_high""least_squares_high", 'least_squares_very_high'"least_squares_very_high""least_squares_very_high""least_squares_very_high""least_squares_very_high", 'standard_deviations'"standard_deviations""standard_deviations""standard_deviations""standard_deviations"
PosePosePoseposepose
(output_control) pose(-array) →
HPose, HTupleSequence[Union[float, int]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Pose of the object.
CovPoseCovPoseCovPosecovPosecov_pose
(output_control) real-array →
HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
6 standard deviations or 36 covariances
of the pose parameters.
ScoreScoreScorescorescore
(output_control) real-array →
HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Score of the found instances of the model.
Result
If the parameters are valid, the operator
find_planar_calib_deformable_modelfind_planar_calib_deformable_modelFindPlanarCalibDeformableModelFindPlanarCalibDeformableModelfind_planar_calib_deformable_model
returns the value 2 (
H_MSG_TRUE)
. If
necessary an exception is raised.
Possible Predecessors
create_planar_calib_deformable_modelcreate_planar_calib_deformable_modelCreatePlanarCalibDeformableModelCreatePlanarCalibDeformableModelcreate_planar_calib_deformable_model
,
read_deformable_modelread_deformable_modelReadDeformableModelReadDeformableModelread_deformable_model
Module
Matching