create_calib_descriptor_modelT_create_calib_descriptor_modelCreateCalibDescriptorModelCreateCalibDescriptorModelcreate_calib_descriptor_model (Operator)

Name

create_calib_descriptor_modelT_create_calib_descriptor_modelCreateCalibDescriptorModelCreateCalibDescriptorModelcreate_calib_descriptor_model — Erzeugen eines Deskriptormodells für Punkt-Matching und Objektposenbestimmung.

Signatur

create_calib_descriptor_model(Template : : CamParam, ReferencePose, DetectorType, DetectorParamName, DetectorParamValue, DescriptorParamName, DescriptorParamValue, Seed : ModelID)

Herror T_create_calib_descriptor_model(const Hobject Template, const Htuple CamParam, const Htuple ReferencePose, const Htuple DetectorType, const Htuple DetectorParamName, const Htuple DetectorParamValue, const Htuple DescriptorParamName, const Htuple DescriptorParamValue, const Htuple Seed, Htuple* ModelID)

void CreateCalibDescriptorModel(const HObject& Template, const HTuple& CamParam, const HTuple& ReferencePose, const HTuple& DetectorType, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, const HTuple& Seed, HTuple* ModelID)

void HDescriptorModel::HDescriptorModel(const HImage& Template, const HCamPar& CamParam, const HPose& ReferencePose, const HString& DetectorType, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, Hlong Seed)

void HDescriptorModel::HDescriptorModel(const HImage& Template, const HCamPar& CamParam, const HPose& ReferencePose, const char* DetectorType, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, Hlong Seed)

void HDescriptorModel::HDescriptorModel(const HImage& Template, const HCamPar& CamParam, const HPose& ReferencePose, const wchar_t* DetectorType, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, Hlong Seed)   (Nur Windows)

void HDescriptorModel::CreateCalibDescriptorModel(const HImage& Template, const HCamPar& CamParam, const HPose& ReferencePose, const HString& DetectorType, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, Hlong Seed)

void HDescriptorModel::CreateCalibDescriptorModel(const HImage& Template, const HCamPar& CamParam, const HPose& ReferencePose, const char* DetectorType, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, Hlong Seed)

void HDescriptorModel::CreateCalibDescriptorModel(const HImage& Template, const HCamPar& CamParam, const HPose& ReferencePose, const wchar_t* DetectorType, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, Hlong Seed)   (Nur Windows)

HDescriptorModel HImage::CreateCalibDescriptorModel(const HCamPar& CamParam, const HPose& ReferencePose, const HString& DetectorType, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, Hlong Seed) const

HDescriptorModel HImage::CreateCalibDescriptorModel(const HCamPar& CamParam, const HPose& ReferencePose, const char* DetectorType, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, Hlong Seed) const

HDescriptorModel HImage::CreateCalibDescriptorModel(const HCamPar& CamParam, const HPose& ReferencePose, const wchar_t* DetectorType, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, Hlong Seed) const   (Nur Windows)

HDescriptorModel HCamPar::CreateCalibDescriptorModel(const HImage& Template, const HPose& ReferencePose, const HString& DetectorType, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, Hlong Seed) const

HDescriptorModel HCamPar::CreateCalibDescriptorModel(const HImage& Template, const HPose& ReferencePose, const char* DetectorType, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, Hlong Seed) const

HDescriptorModel HCamPar::CreateCalibDescriptorModel(const HImage& Template, const HPose& ReferencePose, const wchar_t* DetectorType, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, Hlong Seed) const   (Nur Windows)

HDescriptorModel HPose::CreateCalibDescriptorModel(const HImage& Template, const HCamPar& CamParam, const HString& DetectorType, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, Hlong Seed) const

HDescriptorModel HPose::CreateCalibDescriptorModel(const HImage& Template, const HCamPar& CamParam, const char* DetectorType, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, Hlong Seed) const

HDescriptorModel HPose::CreateCalibDescriptorModel(const HImage& Template, const HCamPar& CamParam, const wchar_t* DetectorType, const HTuple& DetectorParamName, const HTuple& DetectorParamValue, const HTuple& DescriptorParamName, const HTuple& DescriptorParamValue, Hlong Seed) const   (Nur Windows)

static void HOperatorSet.CreateCalibDescriptorModel(HObject template, HTuple camParam, HTuple referencePose, HTuple detectorType, HTuple detectorParamName, HTuple detectorParamValue, HTuple descriptorParamName, HTuple descriptorParamValue, HTuple seed, out HTuple modelID)

public HDescriptorModel(HImage template, HCamPar camParam, HPose referencePose, string detectorType, HTuple detectorParamName, HTuple detectorParamValue, HTuple descriptorParamName, HTuple descriptorParamValue, int seed)

void HDescriptorModel.CreateCalibDescriptorModel(HImage template, HCamPar camParam, HPose referencePose, string detectorType, HTuple detectorParamName, HTuple detectorParamValue, HTuple descriptorParamName, HTuple descriptorParamValue, int seed)

HDescriptorModel HImage.CreateCalibDescriptorModel(HCamPar camParam, HPose referencePose, string detectorType, HTuple detectorParamName, HTuple detectorParamValue, HTuple descriptorParamName, HTuple descriptorParamValue, int seed)

HDescriptorModel HCamPar.CreateCalibDescriptorModel(HImage template, HPose referencePose, string detectorType, HTuple detectorParamName, HTuple detectorParamValue, HTuple descriptorParamName, HTuple descriptorParamValue, int seed)

HDescriptorModel HPose.CreateCalibDescriptorModel(HImage template, HCamPar camParam, string detectorType, HTuple detectorParamName, HTuple detectorParamValue, HTuple descriptorParamName, HTuple descriptorParamValue, int seed)

def create_calib_descriptor_model(template: HObject, cam_param: Sequence[Union[float, int, str]], reference_pose: Sequence[Union[float, int]], detector_type: str, detector_param_name: Sequence[str], detector_param_value: Sequence[Union[int, float, str]], descriptor_param_name: Sequence[str], descriptor_param_value: Sequence[Union[int, float, str]], seed: int) -> HHandle

Beschreibung

Der Operator create_calib_descriptor_modelcreate_calib_descriptor_modelCreateCalibDescriptorModelCreateCalibDescriptorModelCreateCalibDescriptorModelcreate_calib_descriptor_model erstellt aus einer Region, die als Bild in TemplateTemplateTemplateTemplatetemplatetemplate übergeben wird, ein Deskriptormodell, mit dessen Hilfe kalibriertes deskriptorbasiertes Matching durchgeführt werden kann. Es ist zu beachten, dass der Teil des Objektes, der in dem TemplateTemplateTemplateTemplatetemplatetemplate-Bild zu sehen ist, planar sein muss.

ReferencePoseReferencePoseReferencePoseReferencePosereferencePosereference_pose beschreibt die 3D Position und Orientierung der Objektebene, welche im Referenzbild TemplateTemplateTemplateTemplatetemplatetemplate abgebildet ist. Die internen Kameraparameter CamParamCamParamCamParamCamParamcamParamcam_param und die Referenzpose werden intern dazu genutzt, ein Modellkoordinatensystem zu erstellen. Der Ursprung dieses Modellkoordinatensystems wird dabei durch die Projektion des Schwerpunkts einer intern entzerrten Version des Referenzbildes auf die Objektebene gebildet. Die Achsen des Modellkoordinatensystems liegen parallel zu den Achsen von Reference Pose. Um ein Deskriptormodell aus dem Referenzbild TemplateTemplateTemplateTemplatetemplatetemplate zu generieren, werden die durch einen Detektor im entzerrten Referenzbild extrahierten Punkte ebenfalls auf die Objektebene projiziert. Ihre Koordinaten im Modellkoordinatensystem werden als Weltkoordinaten im Modell gespeichert, um später für die Schätzung der Pose eines Suchobjekts verwendet zu werden (siehe find_calib_descriptor_modelfind_calib_descriptor_modelFindCalibDescriptorModelFindCalibDescriptorModelFindCalibDescriptorModelfind_calib_descriptor_model).

Ein mit Hilfe des Operators create_calib_descriptor_modelcreate_calib_descriptor_modelCreateCalibDescriptorModelCreateCalibDescriptorModelCreateCalibDescriptorModelcreate_calib_descriptor_model erstelltes Deskriptormodell kann auch mit dem Operator find_uncalib_descriptor_modelfind_uncalib_descriptor_modelFindUncalibDescriptorModelFindUncalibDescriptorModelFindUncalibDescriptorModelfind_uncalib_descriptor_model zur Ermittlung einer Homographie verwendet werden. Ein mit dem Operator create_uncalib_descriptor_modelcreate_uncalib_descriptor_modelCreateUncalibDescriptorModelCreateUncalibDescriptorModelCreateUncalibDescriptorModelcreate_uncalib_descriptor_model erstelltes Modell kann jedoch nicht in find_calib_descriptor_modelfind_calib_descriptor_modelFindCalibDescriptorModelFindCalibDescriptorModelFindCalibDescriptorModelfind_calib_descriptor_model verwendet werden.

Das Deskriptormodell beschreibt einen Satz von Merkmalspunkten. Es speichert die Punktpositionen, sowie unterschiedliche Beschreibungen ihrer lokalen Bildumgebung. Die Extraktion dieser Merkmalspunkte wird durch DetectorTypeDetectorTypeDetectorTypeDetectorTypedetectorTypedetector_type, DetectorParamNameDetectorParamNameDetectorParamNameDetectorParamNamedetectorParamNamedetector_param_name und DetectorParamValueDetectorParamValueDetectorParamValueDetectorParamValuedetectorParamValuedetector_param_value parametrisiert. Der zugehörige Deskriptor für die Umgebung der Merkmalspunkte wird durch DescriptorParamNameDescriptorParamNameDescriptorParamNameDescriptorParamNamedescriptorParamNamedescriptor_param_name und DescriptorParamValueDescriptorParamValueDescriptorParamValueDescriptorParamValuedescriptorParamValuedescriptor_param_value parametrisiert. Derzeit wird der Deskriptor durch randomized ferns implementiert. Der Parameter SeedSeedSeedSeedseedseed initialisiert den Zufallszahlengenerator, der für den Aufbau der randomized ferns Strukturen verwendet wird. Ist das Deskriptormodell generiert, wird dessen Referenz in ModelIDModelIDModelIDModelIDmodelIDmodel_id zurückgegeben. Weitere Informationen über diese Parameter können unter der Beschreibung des Operators create_uncalib_descriptor_modelcreate_uncalib_descriptor_modelCreateUncalibDescriptorModelCreateUncalibDescriptorModelCreateUncalibDescriptorModelcreate_uncalib_descriptor_model gefunden werden.

Alle Parameter sowie die Koordinaten der letztendlichen Merkmalspunkte können über get_descriptor_model_paramsget_descriptor_model_paramsGetDescriptorModelParamsGetDescriptorModelParamsGetDescriptorModelParamsget_descriptor_model_params und get_descriptor_model_pointsget_descriptor_model_pointsGetDescriptorModelPointsGetDescriptorModelPointsGetDescriptorModelPointsget_descriptor_model_points abgerufen werden.

create_calib_descriptor_modelcreate_calib_descriptor_modelCreateCalibDescriptorModelCreateCalibDescriptorModelCreateCalibDescriptorModelcreate_calib_descriptor_model legt den Detektor und den Deskriptor fest. Somit werden beide auch bei jedem nachfolgenden Aufruf von find_calib_descriptor_modelfind_calib_descriptor_modelFindCalibDescriptorModelFindCalibDescriptorModelFindCalibDescriptorModelfind_calib_descriptor_model verwendet. Der Referenzpunkt (Ursprung) des Modells ist der Schwerpunkt der ROI des Templates. Er kann über set_descriptor_model_originset_descriptor_model_originSetDescriptorModelOriginSetDescriptorModelOriginSetDescriptorModelOriginset_descriptor_model_origin geändert 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

TemplateTemplateTemplateTemplatetemplatetemplate (input_object)  singlechannelimage objectHImageHObjectHImageHobject (byte / uint2)

Eingabebild, dessen Definitionsbereich zum Aufbau des Modells verwendet wird.

CamParamCamParamCamParamCamParamcamParamcam_param (input_control)  campar HCamPar, HTupleSequence[Union[float, int, str]]HTupleHtuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)

Die internen Kameraparameter der Kamera.

ReferencePoseReferencePoseReferencePoseReferencePosereferencePosereference_pose (input_control)  pose HPose, HTupleSequence[Union[float, int]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Die Referenzpose des Objekts im Referenzbild.

DetectorTypeDetectorTypeDetectorTypeDetectorTypedetectorTypedetector_type (input_control)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Art des Detektors.

Defaultwert: 'lepetit' "lepetit" "lepetit" "lepetit" "lepetit" "lepetit"

Werteliste: 'harris'"harris""harris""harris""harris""harris", 'harris_binomial'"harris_binomial""harris_binomial""harris_binomial""harris_binomial""harris_binomial", 'lepetit'"lepetit""lepetit""lepetit""lepetit""lepetit"

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

Namen der Detektor-Parameter.

Defaultwert: []

Werteliste: 'alpha'"alpha""alpha""alpha""alpha""alpha", 'check_neighbor'"check_neighbor""check_neighbor""check_neighbor""check_neighbor""check_neighbor", 'mask_size_grd'"mask_size_grd""mask_size_grd""mask_size_grd""mask_size_grd""mask_size_grd", 'mask_size_smooth'"mask_size_smooth""mask_size_smooth""mask_size_smooth""mask_size_smooth""mask_size_smooth", 'min_check_neighbor_diff'"min_check_neighbor_diff""min_check_neighbor_diff""min_check_neighbor_diff""min_check_neighbor_diff""min_check_neighbor_diff", 'min_score'"min_score""min_score""min_score""min_score""min_score", 'radius'"radius""radius""radius""radius""radius", 'sigma_grad'"sigma_grad""sigma_grad""sigma_grad""sigma_grad""sigma_grad", 'sigma_smooth'"sigma_smooth""sigma_smooth""sigma_smooth""sigma_smooth""sigma_smooth", 'subpix'"subpix""subpix""subpix""subpix""subpix", 'threshold'"threshold""threshold""threshold""threshold""threshold"

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

Werte der Detektor-Parameter.

Defaultwert: []

Wertevorschläge: 0.08, 1, 1.2, 3, 15, 30, 1000, 'on'"on""on""on""on""on", 'off'"off""off""off""off""off"

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

Namen der Deskriptor-Parameter.

Defaultwert: []

Werteliste: 'depth'"depth""depth""depth""depth""depth", 'max_rot'"max_rot""max_rot""max_rot""max_rot""max_rot", 'max_scale'"max_scale""max_scale""max_scale""max_scale""max_scale", 'min_rot'"min_rot""min_rot""min_rot""min_rot""min_rot", 'min_scale'"min_scale""min_scale""min_scale""min_scale""min_scale", 'number_ferns'"number_ferns""number_ferns""number_ferns""number_ferns""number_ferns", 'patch_size'"patch_size""patch_size""patch_size""patch_size""patch_size", 'tilt'"tilt""tilt""tilt""tilt""tilt"

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

Werte der Deskriptor-Parameter.

Defaultwert: []

Wertevorschläge: 0.5, 1.4, 11, 21, 30, -180, 180, 'on'"on""on""on""on""on", 'off'"off""off""off""off""off"

SeedSeedSeedSeedseedseed (input_control)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Initialisierung des Zufallsgenerators.

Defaultwert: 42

ModelIDModelIDModelIDModelIDmodelIDmodel_id (output_control)  descriptor_model HDescriptorModel, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Der Handle des Deskriptormodells

Vorgänger

points_lepetitpoints_lepetitPointsLepetitPointsLepetitPointsLepetitpoints_lepetit, points_harrispoints_harrisPointsHarrisPointsHarrisPointsHarrispoints_harris, reduce_domainreduce_domainReduceDomainReduceDomainReduceDomainreduce_domain

Nachfolger

get_descriptor_model_paramsget_descriptor_model_paramsGetDescriptorModelParamsGetDescriptorModelParamsGetDescriptorModelParamsget_descriptor_model_params, find_calib_descriptor_modelfind_calib_descriptor_modelFindCalibDescriptorModelFindCalibDescriptorModelFindCalibDescriptorModelfind_calib_descriptor_model

Siehe auch

get_descriptor_model_paramsget_descriptor_model_paramsGetDescriptorModelParamsGetDescriptorModelParamsGetDescriptorModelParamsget_descriptor_model_params, find_calib_descriptor_modelfind_calib_descriptor_modelFindCalibDescriptorModelFindCalibDescriptorModelFindCalibDescriptorModelfind_calib_descriptor_model

Literatur

V. Lepetit and P. Fua: „Keypoint Recognition using Randomized Trees.„ IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 28, Nr. 9, pp. 1465-1479, 2006.
M. Ozuysal, P. Fua, and V. Lepetit: „Fast Keypoint Recognition in Ten Lines of Code.„ In Proceedings of Conference on Computer Vision and Pattern Recognition, 2007.

Modul

Matching