find_surface_modelT_find_surface_modelFindSurfaceModelFindSurfaceModelfind_surface_model (Operator)

Name

find_surface_modelT_find_surface_modelFindSurfaceModelFindSurfaceModelfind_surface_model — Suche der besten Matches eines Oberflächenmodells in einer Szene.

Signatur

find_surface_model( : : SurfaceModelID, ObjectModel3D, RelSamplingDistance, KeyPointFraction, MinScore, ReturnResultHandle, GenParamName, GenParamValue : Pose, Score, SurfaceMatchingResultID)

Herror T_find_surface_model(const Htuple SurfaceModelID, const Htuple ObjectModel3D, const Htuple RelSamplingDistance, const Htuple KeyPointFraction, const Htuple MinScore, const Htuple ReturnResultHandle, const Htuple GenParamName, const Htuple GenParamValue, Htuple* Pose, Htuple* Score, Htuple* SurfaceMatchingResultID)

void FindSurfaceModel(const HTuple& SurfaceModelID, const HTuple& ObjectModel3D, const HTuple& RelSamplingDistance, const HTuple& KeyPointFraction, const HTuple& MinScore, const HTuple& ReturnResultHandle, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* Pose, HTuple* Score, HTuple* SurfaceMatchingResultID)

HPoseArray HObjectModel3D::FindSurfaceModel(const HSurfaceModel& SurfaceModelID, double RelSamplingDistance, double KeyPointFraction, const HTuple& MinScore, const HString& ReturnResultHandle, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* Score, HSurfaceMatchingResultArray* SurfaceMatchingResultID) const

HPose HObjectModel3D::FindSurfaceModel(const HSurfaceModel& SurfaceModelID, double RelSamplingDistance, double KeyPointFraction, double MinScore, const HString& ReturnResultHandle, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* Score, HSurfaceMatchingResult* SurfaceMatchingResultID) const

HPose HObjectModel3D::FindSurfaceModel(const HSurfaceModel& SurfaceModelID, double RelSamplingDistance, double KeyPointFraction, double MinScore, const char* ReturnResultHandle, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* Score, HSurfaceMatchingResult* SurfaceMatchingResultID) const

HPose HObjectModel3D::FindSurfaceModel(const HSurfaceModel& SurfaceModelID, double RelSamplingDistance, double KeyPointFraction, double MinScore, const wchar_t* ReturnResultHandle, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* Score, HSurfaceMatchingResult* SurfaceMatchingResultID) const   (Nur Windows)

HPoseArray HSurfaceModel::FindSurfaceModel(const HObjectModel3D& ObjectModel3D, double RelSamplingDistance, double KeyPointFraction, const HTuple& MinScore, const HString& ReturnResultHandle, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* Score, HSurfaceMatchingResultArray* SurfaceMatchingResultID) const

HPose HSurfaceModel::FindSurfaceModel(const HObjectModel3D& ObjectModel3D, double RelSamplingDistance, double KeyPointFraction, double MinScore, const HString& ReturnResultHandle, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* Score, HSurfaceMatchingResult* SurfaceMatchingResultID) const

HPose HSurfaceModel::FindSurfaceModel(const HObjectModel3D& ObjectModel3D, double RelSamplingDistance, double KeyPointFraction, double MinScore, const char* ReturnResultHandle, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* Score, HSurfaceMatchingResult* SurfaceMatchingResultID) const

HPose HSurfaceModel::FindSurfaceModel(const HObjectModel3D& ObjectModel3D, double RelSamplingDistance, double KeyPointFraction, double MinScore, const wchar_t* ReturnResultHandle, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* Score, HSurfaceMatchingResult* SurfaceMatchingResultID) const   (Nur Windows)

static HPoseArray HSurfaceMatchingResult::FindSurfaceModel(const HSurfaceModel& SurfaceModelID, const HObjectModel3D& ObjectModel3D, double RelSamplingDistance, double KeyPointFraction, const HTuple& MinScore, const HString& ReturnResultHandle, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* Score, HSurfaceMatchingResultArray* SurfaceMatchingResultID)

HPose HSurfaceMatchingResult::FindSurfaceModel(const HSurfaceModel& SurfaceModelID, const HObjectModel3D& ObjectModel3D, double RelSamplingDistance, double KeyPointFraction, double MinScore, const HString& ReturnResultHandle, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* Score)

HPose HSurfaceMatchingResult::FindSurfaceModel(const HSurfaceModel& SurfaceModelID, const HObjectModel3D& ObjectModel3D, double RelSamplingDistance, double KeyPointFraction, double MinScore, const char* ReturnResultHandle, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* Score)

HPose HSurfaceMatchingResult::FindSurfaceModel(const HSurfaceModel& SurfaceModelID, const HObjectModel3D& ObjectModel3D, double RelSamplingDistance, double KeyPointFraction, double MinScore, const wchar_t* ReturnResultHandle, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* Score)   (Nur Windows)

static void HOperatorSet.FindSurfaceModel(HTuple surfaceModelID, HTuple objectModel3D, HTuple relSamplingDistance, HTuple keyPointFraction, HTuple minScore, HTuple returnResultHandle, HTuple genParamName, HTuple genParamValue, out HTuple pose, out HTuple score, out HTuple surfaceMatchingResultID)

HPose[] HObjectModel3D.FindSurfaceModel(HSurfaceModel surfaceModelID, double relSamplingDistance, double keyPointFraction, HTuple minScore, string returnResultHandle, HTuple genParamName, HTuple genParamValue, out HTuple score, out HSurfaceMatchingResult[] surfaceMatchingResultID)

HPose HObjectModel3D.FindSurfaceModel(HSurfaceModel surfaceModelID, double relSamplingDistance, double keyPointFraction, double minScore, string returnResultHandle, HTuple genParamName, HTuple genParamValue, out HTuple score, out HSurfaceMatchingResult surfaceMatchingResultID)

HPose[] HSurfaceModel.FindSurfaceModel(HObjectModel3D objectModel3D, double relSamplingDistance, double keyPointFraction, HTuple minScore, string returnResultHandle, HTuple genParamName, HTuple genParamValue, out HTuple score, out HSurfaceMatchingResult[] surfaceMatchingResultID)

HPose HSurfaceModel.FindSurfaceModel(HObjectModel3D objectModel3D, double relSamplingDistance, double keyPointFraction, double minScore, string returnResultHandle, HTuple genParamName, HTuple genParamValue, out HTuple score, out HSurfaceMatchingResult surfaceMatchingResultID)

static HPose[] HSurfaceMatchingResult.FindSurfaceModel(HSurfaceModel surfaceModelID, HObjectModel3D objectModel3D, double relSamplingDistance, double keyPointFraction, HTuple minScore, string returnResultHandle, HTuple genParamName, HTuple genParamValue, out HTuple score, out HSurfaceMatchingResult[] surfaceMatchingResultID)

HPose HSurfaceMatchingResult.FindSurfaceModel(HSurfaceModel surfaceModelID, HObjectModel3D objectModel3D, double relSamplingDistance, double keyPointFraction, double minScore, string returnResultHandle, HTuple genParamName, HTuple genParamValue, out HTuple score)

def find_surface_model(surface_model_id: HHandle, object_model_3d: HHandle, rel_sampling_distance: float, key_point_fraction: float, min_score: MaybeSequence[Union[float, int]], return_result_handle: str, gen_param_name: Sequence[str], gen_param_value: Sequence[Union[str, float, int]]) -> Tuple[Sequence[Union[float, int]], Sequence[float], Sequence[HHandle]]

def find_surface_model_s(surface_model_id: HHandle, object_model_3d: HHandle, rel_sampling_distance: float, key_point_fraction: float, min_score: MaybeSequence[Union[float, int]], return_result_handle: str, gen_param_name: Sequence[str], gen_param_value: Sequence[Union[str, float, int]]) -> Tuple[Sequence[Union[float, int]], Sequence[float], HHandle]

Beschreibung

Der Operator find_surface_modelfind_surface_modelFindSurfaceModelFindSurfaceModelFindSurfaceModelfind_surface_model sucht die besten Matches des Oberflächenmodells SurfaceModelIDSurfaceModelIDSurfaceModelIDSurfaceModelIDsurfaceModelIDsurface_model_id in der 3D-Szene ObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d und gibt ihre Posen in PosePosePosePoseposepose zurück.

Der Matching-Vorgang ist in drei Schritte unterteilt:

  1. Näherungsweises Matching

  2. Grobe Pose-Verfeinerung

  3. Exakte Pose-Verfeinerung

Die einzelnen Schritte werden detailliert in der Technical Note Surface-Based Matching erläutert. Die generischen Parameter die zur Steuerung dieser Schritte verwendet werden können werden in den entsprechenden Abschnitten weiter unten beschrieben. In den weiteren Abschnitten werden die Parameter beschrieben und zusätzlich zu beachtenden Punkte angegeben.

Die HDevelop-Prozedur debug_find_surface_model kann verwendet werden, um den Matchingprozess und die eingestellten Parameter zu visualisieren und zu überprüfen.

Zu beachtende Punkte

Zum Auffinden des Oberflächenmodells werden Punkte und Normalen der 3D-Szene verwendet. Die Szene sollte eine der folgenden Optionen zur Verfügung stellen:

Für eine genaue PosePosePosePoseposepose ist es wichtig, dass die Normalen der Szene und des Modells in die gleiche Richtung zeigen (siehe 'scene_invert_normals'"scene_invert_normals""scene_invert_normals""scene_invert_normals""scene_invert_normals""scene_invert_normals").

Wenn das Oberflächenmodell für kantenunterstütztes oberflächenbasiertes Matching vorbereitet wurde und das kantenunterstützte Matching nicht durch 'use_3d_edges'"use_3d_edges""use_3d_edges""use_3d_edges""use_3d_edges""use_3d_edges" abgeschaltet wurde, ist lediglich die zweite Kombination möglich, d.h. die Szene muss ein 2D-Mapping beinhalten.

Wenn das Oberflächenmodell für kantenunterstütztes oberflächenbasiertes Matching vorbereitet wurde und die Szene ein 2D-Mapping beinhaltet, werden Punktnormalen aus der Szene nicht benutzt (siehe 'scene_normal_computation'"scene_normal_computation""scene_normal_computation""scene_normal_computation""scene_normal_computation""scene_normal_computation" unten).

Für Oberflächenmodelle, die für kantenunterstütztes oberflächenbasiertes Matching vorbereitet wurden, ist es notwendig, dass die Normalen einwärts ausgerichtet sind.

Wird eine vermaschte Szene mit Dreiecken oder Polygonen übergeben, etwa ein CAD-Modell, so werden diese ignoriert und nur die Punkte der Szene verwendet. In der Regel sollte daher nicht in einer vermaschten Szene gesucht werden. Stattdessen sollte eine solche Szene zuvor etwa mit sample_object_model_3dsample_object_model_3dSampleObjectModel3dSampleObjectModel3dSampleObjectModel3dsample_object_model_3d in Punkte mit Normalen umgewandelt werden.

Werden verrauschte Daten verwendet, z.B. von Time-of-Flight-Kameras, kann der generische Parameter 'scene_normal_computation'"scene_normal_computation""scene_normal_computation""scene_normal_computation""scene_normal_computation""scene_normal_computation" auf 'mls'"mls""mls""mls""mls""mls" gesetzt werden um robustere Ergebnisse zu erhalten (siehe unten).

Parameterbeschreibung

SurfaceModelIDSurfaceModelIDSurfaceModelIDSurfaceModelIDsurfaceModelIDsurface_model_id ist das Handle des Oberflächenmodells. Das Modell muss zuvor mittels create_surface_modelcreate_surface_modelCreateSurfaceModelCreateSurfaceModelCreateSurfaceModelcreate_surface_model oder read_surface_modelread_surface_modelReadSurfaceModelReadSurfaceModelReadSurfaceModelread_surface_model erstellt, bzw eingelesen worden sein. Gewisse Oberflächenmodell-Parameter, welche das Auffinden beeinflussen, können über den Operator set_surface_model_paramset_surface_model_paramSetSurfaceModelParamSetSurfaceModelParamSetSurfaceModelParamset_surface_model_param gesetzt werden, z.B. 'pose_restriction_max_angle_diff'"pose_restriction_max_angle_diff""pose_restriction_max_angle_diff""pose_restriction_max_angle_diff""pose_restriction_max_angle_diff""pose_restriction_max_angle_diff" zum Einschränken des Rotationsbereichs.

ObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d ist das Handle des 3D-Objektmodells mit der Szene in der die Matches gesucht werden. In den meisten Fällen wird angenommen, dass die Kamera entlang der z-Achse ausgerichtet ist. Dies ist wichtig bei der Ausrichtung der Normalen der Szene, falls diese neu berechnet werden (siehe 'scene_normal_computation'"scene_normal_computation""scene_normal_computation""scene_normal_computation""scene_normal_computation""scene_normal_computation" unten). Falls das Oberflächenmodell für kantenunterstütztes oberflächenbasiertes Matching vorbereitet wurde und die Szene ein 2D-Mapping beinhaltet, werden die Normalen der Szene automatisch konsistent ausgerichtet.

Der Parameter RelSamplingDistanceRelSamplingDistanceRelSamplingDistanceRelSamplingDistancerelSamplingDistancerel_sampling_distance kontrolliert die Abtastdistanz während des Schrittes Näherungsweises Matching und bei der Berechnung des ScoreScoreScoreScorescorescore im Schritt Grobe Pose-Verfeinerung. Sein Wert wird relativ zum Durchmesser des Oberflächenmodells angegeben. Verkleinert man RelSamplingDistanceRelSamplingDistanceRelSamplingDistanceRelSamplingDistancerelSamplingDistancerel_sampling_distance, so werden mehr Punkte der Szene abgetastet, was zu einem stabileren aber langsameren Matching führt. Erhöht man RelSamplingDistanceRelSamplingDistanceRelSamplingDistanceRelSamplingDistancerelSamplingDistancerel_sampling_distance, so werden weniger Punkte abgetastet, was zu einem weniger stabilen aber schnelleren Matching führt. Eine Illustration zur RelSamplingDistanceRelSamplingDistanceRelSamplingDistanceRelSamplingDistancerelSamplingDistancerel_sampling_distance befindet sich bei dem Operator create_surface_modelcreate_surface_modelCreateSurfaceModelCreateSurfaceModelCreateSurfaceModelcreate_surface_model. Die abgetasteten Punkte können mit dem Operator get_surface_matching_resultget_surface_matching_resultGetSurfaceMatchingResultGetSurfaceMatchingResultGetSurfaceMatchingResultget_surface_matching_result abgerufen werden. Für ein robustes Matching sollten mindestens 50-100 Punkte auf jeder zu findenden Objektinstanz liegen.

Der Parameter KeyPointFractionKeyPointFractionKeyPointFractionKeyPointFractionkeyPointFractionkey_point_fraction kontrolliert wie viele der abgetasteten Szenenpunkte als Schlüsselpunkte ausgewählt werden. Wird dieser Wert etwa auf 0.1 gesetzt, so werden 10% der abgetasteten Szenepunkte als Schlüsselpunkte verwendet. Für robuste Ergebnisse ist es wichtig, dass auf jeder zu findenden Objektinstanz mehrere Schlüsselpunkte liegen. Erhöht man KeyPointFractionKeyPointFractionKeyPointFractionKeyPointFractionkeyPointFractionkey_point_fraction, so werden mehr Punkte als Schlüsselpunkte ausgewählt, was zu einem robusteren aber langsameren Matching führt. Verringert man den Wert so werden weniger Schlüsselpunkte ausgewählt, was zu einem weniger robusten aber schnelleren Matching führt. Für eine visuelle Überprüfung können die ausgewählten Schlüsselpunkte mit dem Operator get_surface_matching_resultget_surface_matching_resultGetSurfaceMatchingResultGetSurfaceMatchingResultGetSurfaceMatchingResultget_surface_matching_result abgerufen werden.

Der Parameter MinScoreMinScoreMinScoreMinScoreminScoremin_score kann verwendet werden um die Ergebnisse zu filtern. Nur Instanzen deren Bewertung größer als MinScoreMinScoreMinScoreMinScoreminScoremin_score ist werden zurückgegeben. Wird MinScoreMinScoreMinScoreMinScoreminScoremin_score auf 0 gesetzt, so werden alle gefundenen Instanzen zurückgegeben.

Für das kantenunterstützte oberflächenbasierte Matching (siehe create_surface_modelcreate_surface_modelCreateSurfaceModelCreateSurfaceModelCreateSurfaceModelcreate_surface_model) werden vier Einzelbewertungen ermittelt (siehe weiter unten für ihre Beschreibung). Für Modelle die zur Berechnung einer ansichtsbasierten Bewertung trainiert wurden (siehe create_surface_modelcreate_surface_modelCreateSurfaceModelCreateSurfaceModelCreateSurfaceModelcreate_surface_model), wird eine weitere, fünfte Einzelbewertungen ermittelt. Entsprechend können die Resultate mit jeder dieser Bewertungen gefiltert werden, indem MinScoreMinScoreMinScoreMinScoreminScoremin_score ein Tupel mit bis zu fünf Schwellenwerten übergeben wird. Diese Schwellenwerte sind in der gleichen Reihenfolge wie die Bewertungen geordnet (siehe weiter unten) und fehlende Einträge werden als 0 betrachtet, was bedeutet, dass keine Ergebnisse aufgrund dieser Bewertung herausgefiltert wird. Zum Finden geeigneter Schwellenwerte können die Einzelbewertungen gefundener Posen mit dem Operator get_surface_matching_resultget_surface_matching_resultGetSurfaceMatchingResultGetSurfaceMatchingResultGetSurfaceMatchingResultget_surface_matching_result erhalten werden. Je nach Einstellung des Verfahrens sind möglicherweise nicht alle Bewertungen verfügbar. Für nicht verfügbare Bewertungen wird der in MinScoreMinScoreMinScoreMinScoreminScoremin_score eingestellte Schwellenwert ignoriert. Die fünf Einzelbewertungen, deren Schwellenwerte in dieser Reihenfolge in MinScoreMinScoreMinScoreMinScoreminScoremin_score übergeben werden müssen, sind:

  1. Die Gesamtbewertung wie in ScoreScoreScoreScorescorescore und durch 'score'"score""score""score""score""score" in get_surface_matching_resultget_surface_matching_resultGetSurfaceMatchingResultGetSurfaceMatchingResultGetSurfaceMatchingResultget_surface_matching_result zurückgegeben.

  2. Der Oberflächenanteil der Ergebnisbewertung, d.h. welcher Anteil der Objektoberfläche in der Szene gefunden wurde, zurückgegeben durch 'score_surface'"score_surface""score_surface""score_surface""score_surface""score_surface" in get_surface_matching_resultget_surface_matching_resultGetSurfaceMatchingResultGetSurfaceMatchingResultGetSurfaceMatchingResultget_surface_matching_result.

  3. Der Anteil der 3D-Kanten der Ergebnisbewertung, d.h. wie gut die 3D-Kanten der Objektsilhouette mit den in der Szene gefundenen 3D-Kanten übereinstimmen, zurückgegeben durch 'score_3d_edges'"score_3d_edges""score_3d_edges""score_3d_edges""score_3d_edges""score_3d_edges" in get_surface_matching_resultget_surface_matching_resultGetSurfaceMatchingResultGetSurfaceMatchingResultGetSurfaceMatchingResultget_surface_matching_result.

  4. Der Anteil der 2D-Kanten der Ergebnisbewertung, d.h. wie gut die projizierten Objektsilhouetten mit den in den Bildern gefundenen Kanten übereinstimmen (nur für die Operatoren find_surface_model_imagefind_surface_model_imageFindSurfaceModelImageFindSurfaceModelImageFindSurfaceModelImagefind_surface_model_image und refine_surface_model_pose_imagerefine_surface_model_pose_imageRefineSurfaceModelPoseImageRefineSurfaceModelPoseImageRefineSurfaceModelPoseImagerefine_surface_model_pose_image verfügbar), zurückgegeben durch 'score_2d_edges'"score_2d_edges""score_2d_edges""score_2d_edges""score_2d_edges""score_2d_edges" in get_surface_matching_resultget_surface_matching_resultGetSurfaceMatchingResultGetSurfaceMatchingResultGetSurfaceMatchingResultget_surface_matching_result.

  5. Der ansichtsbasierte Anteil der Ergebnisbewertung, d.h. wie viele Punkte der Szene einem Modellpunkt zugeordnet werden konnten im Verhältnis zu den Modellpunkten, die in dieser Ansicht sichtbar sind, zurückgegeben durch 'score_view_based'"score_view_based""score_view_based""score_view_based""score_view_based""score_view_based" in get_surface_matching_resultget_surface_matching_resultGetSurfaceMatchingResultGetSurfaceMatchingResultGetSurfaceMatchingResultget_surface_matching_result.

Der Parameter ReturnResultHandleReturnResultHandleReturnResultHandleReturnResultHandlereturnResultHandlereturn_result_handle bestimmt, ob ein Handle für das Ergebnis des oberflächenbasierten Matchings zurückgegeben werden soll oder nicht. Falls der Parameter den Wert 'true'"true""true""true""true""true" erhält, wird das Handle unter dem Parameter SurfaceMatchingResultIDSurfaceMatchingResultIDSurfaceMatchingResultIDSurfaceMatchingResultIDsurfaceMatchingResultIDsurface_matching_result_id zurückgegeben. Weitere Details des Matchingverfahrens können dann mittels get_surface_matching_resultget_surface_matching_resultGetSurfaceMatchingResultGetSurfaceMatchingResultGetSurfaceMatchingResultget_surface_matching_result abgerufen werden.

Die Parameter GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name und GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value werden zum Setzen generischer Parameter verwendet. Beide erhalten ein Tupel gleicher Länge, wobei das Tupel von GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name die Namen der zu setzenden Parameter enthält und das Tupel GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value die entsprechenden Werte. Die möglichen Parameternamen und Parameterwerte sind im Abschnitt Die drei Schritte des Matching-Vorgangs beschrieben.

Der Ausgabeparameter PosePosePosePoseposepose gibt die Pose der gefundenen Instanzen zurück. Er beschreibt die Pose des Oberflächenmodells im Szenenkoordinatensystem (scs) und bezieht sich auf das Modellkoordinatensystem des 3D-Objektmodells (mcs), welches für create_surface_modelcreate_surface_modelCreateSurfaceModelCreateSurfaceModelCreateSurfaceModelcreate_surface_model verwendet wurde. Somit ist die Pose in der Form (siehe auch Transformationen / Posen und „Solution Guide III-C - 3D Vision“).

Der Ausgabeparameter ScoreScoreScoreScorescorescore gibt für jede übereinstimmende Instanz eine Bewertung zurück. Der Wert und die Interpretation der Bewertung sind, wie im folgenden Abschnitt erläutert, für verschiedene Fälle unterschiedlich.

Der Ausgabeparameter SurfaceMatchingResultIDSurfaceMatchingResultIDSurfaceMatchingResultIDSurfaceMatchingResultIDsurfaceMatchingResultIDsurface_matching_result_id gibt ein Ergebnishandle für das Oberflächenmatching zurück. Mittels dieses Handles können weitere Details des Matchingverfahrens unter Verwendung des Operators get_surface_matching_resultget_surface_matching_resultGetSurfaceMatchingResultGetSurfaceMatchingResultGetSurfaceMatchingResultget_surface_matching_result abgerufen werden. Das Handle wird nur zurückgegeben, wenn ReturnResultHandleReturnResultHandleReturnResultHandleReturnResultHandlereturnResultHandlereturn_result_handle auf 'true'"true""true""true""true""true" gesetzt ist.

Die drei Schritte des Matching-Vorgangs

Der Matching-Vorgang ist in drei Schritte unterteilt:

1. Näherungsweises Matching

Die ungefähren Posen der Instanzen des Oberflächenmodells in der Szene werden gesucht.

Die folgenden generischen Parameter steuern das näherungsweise Matching, und werden mit GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name und GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value gesetzt:

'num_matches'"num_matches""num_matches""num_matches""num_matches""num_matches":

Setzt die maximale Anzahl an gefundenen Instanzen die zurückgegeben werden.

Vorgeschlagene Werte: 1, 2, 5

Standardwert: 1

Restriktion: 'num_matches'"num_matches""num_matches""num_matches""num_matches""num_matches" > 0

'max_overlap_dist_rel'"max_overlap_dist_rel""max_overlap_dist_rel""max_overlap_dist_rel""max_overlap_dist_rel""max_overlap_dist_rel":

Aus Laufzeitgründen kann die maximale Überlappung zweier Matches nicht in 3D definiert werden. Stattdessen kann mit 'max_overlap_dist_rel'"max_overlap_dist_rel""max_overlap_dist_rel""max_overlap_dist_rel""max_overlap_dist_rel""max_overlap_dist_rel" der minimale Abstand zwischen den Mittelpunkten der kleinsten achsparallelen, die Matches umschließenden Quader angegeben werden. Der Wert wird relativ zum Objektdurchmesser angegeben. Wenn ein Objekt mit einem hohen ScoreScoreScoreScorescorescore gefunden wurde, werden alle anderen Matches unterdrückt, für die der Mittelpunkt ihres kleinsten umschließenden Quaders zu nahe am Mittelpunkt des kleinsten umschließenden Quaders des ersten Matches liegt. Wenn sich die gefundenen Matches nicht überlappen sollen, muss der Wert für 'max_overlap_dist_rel'"max_overlap_dist_rel""max_overlap_dist_rel""max_overlap_dist_rel""max_overlap_dist_rel""max_overlap_dist_rel" auf 1.0 gesetzt werden. Nur einer der beiden Parameter 'max_overlap_dist_rel'"max_overlap_dist_rel""max_overlap_dist_rel""max_overlap_dist_rel""max_overlap_dist_rel""max_overlap_dist_rel" und 'max_overlap_dist_abs'"max_overlap_dist_abs""max_overlap_dist_abs""max_overlap_dist_abs""max_overlap_dist_abs""max_overlap_dist_abs" sollte gesetzt werden. Werden beide gesetzt, so wird nur der zuletzt gesetzte Wert verwendet.

Vorgeschlagene Werte: 0.1, 0.5, 1

Standardwert: 0.5

Restriktion: 'max_overlap_dist_rel'"max_overlap_dist_rel""max_overlap_dist_rel""max_overlap_dist_rel""max_overlap_dist_rel""max_overlap_dist_rel" >= 0

'max_overlap_dist_abs'"max_overlap_dist_abs""max_overlap_dist_abs""max_overlap_dist_abs""max_overlap_dist_abs""max_overlap_dist_abs":

Dieser Parameter hat den gleichen Effekt wie der Parameter 'max_overlap_dist_rel'"max_overlap_dist_rel""max_overlap_dist_rel""max_overlap_dist_rel""max_overlap_dist_rel""max_overlap_dist_rel". Allerdings wird der Wert im Gegensatz zum Parameter 'max_overlap_dist_rel'"max_overlap_dist_rel""max_overlap_dist_rel""max_overlap_dist_rel""max_overlap_dist_rel""max_overlap_dist_rel" bei 'max_overlap_dist_abs'"max_overlap_dist_abs""max_overlap_dist_abs""max_overlap_dist_abs""max_overlap_dist_abs""max_overlap_dist_abs" als absoluter Wert angegeben. Eine Beschreibung des Effekts dieses Parameters ist weiter oben bei dem Parameter 'max_overlap_dist_rel'"max_overlap_dist_rel""max_overlap_dist_rel""max_overlap_dist_rel""max_overlap_dist_rel""max_overlap_dist_rel" zu finden. Nur einer der beiden Parameter 'max_overlap_dist_rel'"max_overlap_dist_rel""max_overlap_dist_rel""max_overlap_dist_rel""max_overlap_dist_rel""max_overlap_dist_rel" und 'max_overlap_dist_abs'"max_overlap_dist_abs""max_overlap_dist_abs""max_overlap_dist_abs""max_overlap_dist_abs""max_overlap_dist_abs" sollte gesetzt werden. Werden beide gesetzt, so wird nur der zuletzt gesetzte Wert verwendet.

Vorgeschlagene Werte: 1, 2, 3

Restriktion: 'max_overlap_dist_abs'"max_overlap_dist_abs""max_overlap_dist_abs""max_overlap_dist_abs""max_overlap_dist_abs""max_overlap_dist_abs" >= 0

'scene_normal_computation'"scene_normal_computation""scene_normal_computation""scene_normal_computation""scene_normal_computation""scene_normal_computation":

Dieser Parameter kontrolliert die Normalenberechnung der abgetasteten 3D-Szene.

Im Standard-Modus 'fast'"fast""fast""fast""fast""fast" werden in den meisten Fällen die Normalen der 3D-Szene benutzt (wenn sie bereits Normalen enthält) oder anhand einer relativ kleinen Nachbarschaft berechnet (wenn nicht). Die berechneten Normalen werden dann so ausgerichtet, dass falls keine Normalen in der Szene vorhanden sind. Die Ausrichtung stammt von der Annahme, dass die Kamera entlang der z-Achse ausgerichtet ist.

Im Standard-Modus 'fast'"fast""fast""fast""fast""fast", im Fall dass das Oberflächenmodell für kantenunterstütztes oberflächenbasiertes Matching vorbereitet wurde und die Szene ein 2D-Mapping beinhaltet, werden Punktnormalen aus der Szene nicht benutzt, sondern immer anhand des 2D-Mapping berechnet. Außerdem werden die berechneten Normalen automatisch konsistent ausgerichtet.

Im Modus 'mls'"mls""mls""mls""mls""mls" wird eine größere Nachbarschaft einbezogen und das komplexere, aber oft genauere 'mls'"mls""mls""mls""mls""mls"-Verfahren für die Normalenberechnung verwendet. Eine genauere Beschreibung des 'mls'"mls""mls""mls""mls""mls"-Verfahrens findet sich beim Operator surface_normals_object_model_3dsurface_normals_object_model_3dSurfaceNormalsObjectModel3dSurfaceNormalsObjectModel3dSurfaceNormalsObjectModel3dsurface_normals_object_model_3d. Der 'mls'"mls""mls""mls""mls""mls"-Modus ist vor allem für Daten mit hohem Rauschen gedacht, etwa für Bilder aus Time-of-Flight-Kameras. Die berechneten Normalen werden wie im 'fast'"fast""fast""fast""fast""fast"-Modus ausgerichtet.

Mögliche Werte: 'fast'"fast""fast""fast""fast""fast", 'mls'"mls""mls""mls""mls""mls"

Standardwert: 'fast'"fast""fast""fast""fast""fast"

'scene_invert_normals'"scene_invert_normals""scene_invert_normals""scene_invert_normals""scene_invert_normals""scene_invert_normals":

Dieser Parameter invertiert die Normalenausrichtung der 3D-Szene. Die Normalenausrichtungen (einwärts oder auswärts) der Szene müssen mit den Ausrichtungen des Oberflächenmodells übereinstimmen. Wenn sowohl das Modell als auch die Szene mit demselben Aufbau aufgenommen werden, so zeigen die Normalen bereits in die gleiche Richtung. Wenn beim Matching der Effekt auftritt, dass das Modell auf der 'Außenseite' der Szene gefunden wird, so sollte versucht werden, diesen Parameter auf 'true'"true""true""true""true""true" zu setzen. Es ist auch darauf zu achten, dass die Normalen in der Szene alle entweder nach innen oder nach außen zeigen, d.h. konsistent orientiert sind. Für kantenunterstütztes oberflächenbasiertes Matching müssen die Normalen einwärts ausgerichtet sein, werden aber typischerweise automatisch konsistent zum 2D-Mapping ausgerichtet. Die Ausrichtung der Normalen kann mit der Prozedur debug_find_surface_model überprüft werden.

Mögliche Werte: 'false'"false""false""false""false""false", 'true'"true""true""true""true""true"

Standardwert: 'false'"false""false""false""false""false"

'3d_edges'"3d_edges""3d_edges""3d_edges""3d_edges""3d_edges":

Erlaubt das manuelle Setzen der 3D-Kanten der Szene für das kantenunterstützte oberflächenbasierte Matching, wenn das Oberflächenmodell für kantenunterstütztes oberflächenbasiertes Matching vorbereitet wurde. Der Wert dieses Parameters muss ein 3D-Objektmodell-Handle sein. Die Kanten sind üblicherweise das Ergebnis des Operators edges_object_model_3dedges_object_model_3dEdgesObjectModel3dEdgesObjectModel3dEdgesObjectModel3dedges_object_model_3d, können aber weiter gefiltert werden um Ausreißer zu entfernen. Wird dieser Parameter nicht angegeben, dann extrahiert find_surface_modelfind_surface_modelFindSurfaceModelFindSurfaceModelFindSurfaceModelfind_surface_model die Kanten intern, analog zum Operator edges_object_model_3dedges_object_model_3dEdgesObjectModel3dEdgesObjectModel3dEdgesObjectModel3dedges_object_model_3d.

'3d_edge_min_amplitude_rel'"3d_edge_min_amplitude_rel""3d_edge_min_amplitude_rel""3d_edge_min_amplitude_rel""3d_edge_min_amplitude_rel""3d_edge_min_amplitude_rel":

Setzt den Amplitudenschwellenwert bei der automatischen Extraktion von 3D-Kanten für das kantenunterstützte oberflächenbasierte Matching, d.h. wenn das Oberflächenmodell mit aktiviertem 'train_3d_edges'"train_3d_edges""train_3d_edges""train_3d_edges""train_3d_edges""train_3d_edges" erzeugt wurde und keine Kanten mittels '3d_edges'"3d_edges""3d_edges""3d_edges""3d_edges""3d_edges" manuell übergeben wurden. Der Schwellenwert wird relativ zum Durchmesser des Modells angegeben und verhält sich analog zum Parameter MinAmplitudeMinAmplitudeMinAmplitudeMinAmplitudeminAmplitudemin_amplitude des Operators edges_object_model_3dedges_object_model_3dEdgesObjectModel3dEdgesObjectModel3dEdgesObjectModel3dedges_object_model_3d.

Vorgeschlagene Werte: 0.05, 0.1, 0.5

Standardwert: 0.05

Restriktion: '3d_edge_min_amplitude_rel'"3d_edge_min_amplitude_rel""3d_edge_min_amplitude_rel""3d_edge_min_amplitude_rel""3d_edge_min_amplitude_rel""3d_edge_min_amplitude_rel" >= 0

'3d_edge_min_amplitude_abs'"3d_edge_min_amplitude_abs""3d_edge_min_amplitude_abs""3d_edge_min_amplitude_abs""3d_edge_min_amplitude_abs""3d_edge_min_amplitude_abs":

Analog zu '3d_edge_min_amplitude_rel'"3d_edge_min_amplitude_rel""3d_edge_min_amplitude_rel""3d_edge_min_amplitude_rel""3d_edge_min_amplitude_rel""3d_edge_min_amplitude_rel", allerdings wird der Schwellenwert nicht relativ zum Modelldurchmesser sondern als absoluter Wert angegeben.

Restriktion: '3d_edge_min_amplitude_abs'"3d_edge_min_amplitude_abs""3d_edge_min_amplitude_abs""3d_edge_min_amplitude_abs""3d_edge_min_amplitude_abs""3d_edge_min_amplitude_abs" >= 0

'viewpoint'"viewpoint""viewpoint""viewpoint""viewpoint""viewpoint":

Dieser Parameter gibt die 3D-Position des Blickpunktes an, von dem aus die 3D-Punkte in ObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d gesehen werden. Der Blickpunkt wird bei Modellen mit ansichtsbasierter Bewertung benutzt (d.h. mit aktiviertem 'train_view_based'"train_view_based""train_view_based""train_view_based""train_view_based""train_view_based"), um die Anzahl der Punkte des Modells abzufragen die von diesem Blickpunkt aus sichtbar sind. Die 3D-Koordinaten des Blickpunktes (x, y und z) werden als Strings, getrennt durch Leerzeichen, übergeben. Der Blickpunkt ist im gleichen Koordinatensystem wie ObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d definiert und sollte in etwa der Sensorposition bei der Aufnahme der 3D-Szene entsprechen. Mit der Prozedur debug_find_surface_model kann die Lage des Blickpunktes visualisiert und überprüft werden.

Standardwert: '0 0 0'"0 0 0""0 0 0""0 0 0""0 0 0""0 0 0"

'max_gap'"max_gap""max_gap""max_gap""max_gap""max_gap":

Dieser Parameter gibt die maximale Größe einer Lücke in Pixeln in einer 3D-Szene an. Dies gilt nur sofern das Oberflächenmodell mit aktiviertem 'train_3d_edges'"train_3d_edges""train_3d_edges""train_3d_edges""train_3d_edges""train_3d_edges" erstellt wurde. Für Lücken, die einen größeren Durchmesser haben als 'max_gap'"max_gap""max_gap""max_gap""max_gap""max_gap", werden Kanten an den Rändern der Lücke erzeugt, kleinere Lücken werden geschlossen. Dadurch können Kanten unterdrückt werden, welche an Lücken in den 3D-Daten entstehen, die der Sensor nicht rekonstruieren konnte. Für besonders hochauflösende Sensoren sollte der Wert erhöht werden.

Werden Kanten manuell mit dem generischen Parameter '3d_edges'"3d_edges""3d_edges""3d_edges""3d_edges""3d_edges" übergeben, so ist zu beachten, dass 'max_gap'"max_gap""max_gap""max_gap""max_gap""max_gap" in diesem Fall ignoriert wird. Andernfalls verhält sich 'max_gap'"max_gap""max_gap""max_gap""max_gap""max_gap" analog zum entsprechenden generischen Parameter des Operators edges_object_model_3dedges_object_model_3dEdgesObjectModel3dEdgesObjectModel3dEdgesObjectModel3dedges_object_model_3d.

Inwiefern sich 'max_gap'"max_gap""max_gap""max_gap""max_gap""max_gap" auf das Modell auswirkt kann mit Hilfe der Prozedur debug_find_surface_model visualisiert werden.

Standardwert: 30

'use_3d_edges'"use_3d_edges""use_3d_edges""use_3d_edges""use_3d_edges""use_3d_edges":

Schaltet die Kantenunterstützung ein oder aus. Er kann verwendet werden, um ein Matching ohne Kantenunterstützung durchzuführen, obwohl das Modell mit Kantenunterstützung erstellt wurde. Wenn das Oberflächenmodell nicht mit aktiviertem 'train_3d_edges'"train_3d_edges""train_3d_edges""train_3d_edges""train_3d_edges""train_3d_edges" erstellt wurde, wird ein Fehler zurückgegeben.

Mögliche Werte: 'true'"true""true""true""true""true", 'false'"false""false""false""false""false"

Standardwert: 'true'"true""true""true""true""true"

2. Grobe Pose-Verfeinerung

In diesem zweiten Schritt werden die im vorherigen Schritt gefundenen näherungsweisen Posen verfeinert. Dies erhöht die Genauigkeit der Posen sowie die Aussagekraft der Bewertung.

Die folgenden generischen Parameter steuern die grobe Pose-Verfeinerung und werden mit GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name und GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value gesetzt:

'sparse_pose_refinement'"sparse_pose_refinement""sparse_pose_refinement""sparse_pose_refinement""sparse_pose_refinement""sparse_pose_refinement":

Aktiviert oder deaktiviert die grobe Pose-Verfeinerung.

Mögliche Werte: 'true'"true""true""true""true""true", 'false'"false""false""false""false""false"

Standardwert: 'true'"true""true""true""true""true"

'pose_ref_use_scene_normals'"pose_ref_use_scene_normals""pose_ref_use_scene_normals""pose_ref_use_scene_normals""pose_ref_use_scene_normals""pose_ref_use_scene_normals":

Aktiviert oder deaktiviert die Verwendung von Szenennormalen für die Pose-Verfeinerung. Wenn dieser Parameter aktiviert wird und die Szene Normalenvektoren enthält, dann werden diese Normalenvektoren verwendet um die Genauigkeit der Pose-Verfeinerung zu steigern. Dazu wird der Einfluss derer Szenenpunkte verringert, deren Normalenvektor in eine andere Richtung als der entsprechende Objektnormalenvektor zeigt. Enthält die Szene keine Punktnormalen, so wird dieser Parameter ignoriert.

Mögliche Werte: 'true'"true""true""true""true""true", 'false'"false""false""false""false""false"

Standardwert: 'false'"false""false""false""false""false"

'use_view_based'"use_view_based""use_view_based""use_view_based""use_view_based""use_view_based":

Schaltet die ansichtsbasierte Bewertung beim oberflächenbasierten Matching ein oder aus. Dies ist vor allem dann sinnvoll, wenn ein Matching ohne Verwendung der ansichtsbasierten Bewertung durchgeführt wird, obwohl das Modell speziell dafür trainiert wurde. Der Einfluss von 'use_view_based'"use_view_based""use_view_based""use_view_based""use_view_based""use_view_based" auf die Bewertung ist in der Beschreibung zu ScoreScoreScoreScorescorescore weiter oben erklärt. Wenn das Oberflächenmodell nicht mit aktiviertem 'train_view_based'"train_view_based""train_view_based""train_view_based""train_view_based""train_view_based" erstellt wurde, wird bei aktiviertem 'use_view_based'"use_view_based""use_view_based""use_view_based""use_view_based""use_view_based" ein Fehler zurückgegeben.

Mögliche Werte: 'true'"true""true""true""true""true", 'false'"false""false""false""false""false"

Standardwert: 'false'"false""false""false""false""false", falls 'train_view_based'"train_view_based""train_view_based""train_view_based""train_view_based""train_view_based" bei Modellerstellung deaktiviert, andernfalls 'true'"true""true""true""true""true".

3. Exakte Pose-Verfeinerung

Verfeinert die in den vorherigen Schritten gefundenen Posen.

Die folgenden generischen Parameter steuern die exakte Pose-Verfeinerung und beeinflussen ihre Genauigkeit und Geschwindigkeit. Die Werte werden über GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name und GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value gesetzt:

'dense_pose_refinement'"dense_pose_refinement""dense_pose_refinement""dense_pose_refinement""dense_pose_refinement""dense_pose_refinement":

Aktiviert oder deaktiviert die exakte Pose-Verfeinerung.

Mögliche Werte: 'true'"true""true""true""true""true", 'false'"false""false""false""false""false"

Standardwert: 'true'"true""true""true""true""true"

'pose_ref_num_steps'"pose_ref_num_steps""pose_ref_num_steps""pose_ref_num_steps""pose_ref_num_steps""pose_ref_num_steps":

Anzahl der Iterationen der exakten Pose-Verfeinerung. Erhöht man diesen Wert, so wird die Verfeinerung genauer aber langsamer. Verringert man den Wert, so wird sie entsprechend ungenauer und schneller. Ab einer gewissen Anzahl an Iterationen konvergiert das Verfahren, so dass eine weitere Erhöhung keinen Effekt mehr auf die Genauigkeit hat.

Dieser Parameter wird ignoriert, wenn die exakte Pose-Verfeinerung deaktiviert ist.

Vorgeschlagene Werte: 1, 3, 5, 20

Standardwert: 5

Restriktion: 'pose_ref_num_steps'"pose_ref_num_steps""pose_ref_num_steps""pose_ref_num_steps""pose_ref_num_steps""pose_ref_num_steps" > 0

'pose_ref_sub_sampling'"pose_ref_sub_sampling""pose_ref_sub_sampling""pose_ref_sub_sampling""pose_ref_sub_sampling""pose_ref_sub_sampling":

Setzt, wie viele der Szenepunkte für die exakte Pose-Verfeinerung verwendet werden. Wird dieser Wert z.B. auf 5 gesetzt, so wird jeder fünfte Punkt der Szene verwendet. Dieser Parameter erlaubt einen einfachen Kompromiss zwischen Genauigkeit und Geschwindigkeit der Verfeinerung. Erhöht man den Wert, so werden weniger Punkte verwendet, was zu einer schnelleren aber weniger genauen Verfeinerung führt. Eine Verringerung des Wertes hat den umgekehrten Effekt.

Dieser Parameter wird ignoriert, wenn die exakte Pose-Verfeinerung deaktiviert ist.

Vorgeschlagene Werte: 1, 2, 5, 10

Standardwert: 2

Restriktion: 'pose_ref_sub_sampling'"pose_ref_sub_sampling""pose_ref_sub_sampling""pose_ref_sub_sampling""pose_ref_sub_sampling""pose_ref_sub_sampling" > 0

'pose_ref_dist_threshold_rel'"pose_ref_dist_threshold_rel""pose_ref_dist_threshold_rel""pose_ref_dist_threshold_rel""pose_ref_dist_threshold_rel""pose_ref_dist_threshold_rel":

Setzt den Abstandsschwellenwert für die exakte Pose-Verfeinerung relativ zum Durchmesser des Modells. Nur Punkte deren Abstand zur Objektinstanz diesen Schwellenwert unterschreiten gehen in die Pose-Verfeinerung ein. Punkte, die weiter von der Instanz entfernt sind, werden ignoriert. Nur einer der beiden Parameter 'pose_ref_dist_threshold_rel'"pose_ref_dist_threshold_rel""pose_ref_dist_threshold_rel""pose_ref_dist_threshold_rel""pose_ref_dist_threshold_rel""pose_ref_dist_threshold_rel" und 'pose_ref_dist_threshold_abs'"pose_ref_dist_threshold_abs""pose_ref_dist_threshold_abs""pose_ref_dist_threshold_abs""pose_ref_dist_threshold_abs""pose_ref_dist_threshold_abs" sollte gesetzt werden. Werden beide gesetzt, so wird nur der zuletzt gesetzte Wert verwendet.

Dieser Parameter wird ignoriert, wenn die exakte Pose-Verfeinerung deaktiviert ist.

Vorgeschlagene Werte: 0.03, 0.05, 0.1, 0.2

Standardwert: 0.1

Restriktion: 'pose_ref_dist_threshold_rel'"pose_ref_dist_threshold_rel""pose_ref_dist_threshold_rel""pose_ref_dist_threshold_rel""pose_ref_dist_threshold_rel""pose_ref_dist_threshold_rel" > 0

'pose_ref_dist_threshold_abs'"pose_ref_dist_threshold_abs""pose_ref_dist_threshold_abs""pose_ref_dist_threshold_abs""pose_ref_dist_threshold_abs""pose_ref_dist_threshold_abs":

Setzt den Abstandsschwellenwert für die exakte Pose-Verfeinerung als absoluten Wert. Für Details siehe den Parameter 'pose_ref_dist_threshold_rel'"pose_ref_dist_threshold_rel""pose_ref_dist_threshold_rel""pose_ref_dist_threshold_rel""pose_ref_dist_threshold_rel""pose_ref_dist_threshold_rel". Nur einer der beiden Parameter 'pose_ref_dist_threshold_rel'"pose_ref_dist_threshold_rel""pose_ref_dist_threshold_rel""pose_ref_dist_threshold_rel""pose_ref_dist_threshold_rel""pose_ref_dist_threshold_rel" und 'pose_ref_dist_threshold_abs'"pose_ref_dist_threshold_abs""pose_ref_dist_threshold_abs""pose_ref_dist_threshold_abs""pose_ref_dist_threshold_abs""pose_ref_dist_threshold_abs" sollte gesetzt werden. Werden beide gesetzt, so wird nur der zuletzt gesetzte Wert verwendet.

Dieser Parameter wird ignoriert, wenn die exakte Pose-Verfeinerung deaktiviert ist.

Restriktion: 'pose_ref_dist_threshold_abs'"pose_ref_dist_threshold_abs""pose_ref_dist_threshold_abs""pose_ref_dist_threshold_abs""pose_ref_dist_threshold_abs""pose_ref_dist_threshold_abs" > 0

'pose_ref_scoring_dist_rel'"pose_ref_scoring_dist_rel""pose_ref_scoring_dist_rel""pose_ref_scoring_dist_rel""pose_ref_scoring_dist_rel""pose_ref_scoring_dist_rel":

Setzt den Abstandsschwellenwert für die Bewertung der Pose relativ zum Durchmesser des Modells. Für Details siehe den Parameter 'pose_ref_scoring_dist_abs'"pose_ref_scoring_dist_abs""pose_ref_scoring_dist_abs""pose_ref_scoring_dist_abs""pose_ref_scoring_dist_abs""pose_ref_scoring_dist_abs". Nur einer der beiden Parameter 'pose_ref_scoring_dist_rel'"pose_ref_scoring_dist_rel""pose_ref_scoring_dist_rel""pose_ref_scoring_dist_rel""pose_ref_scoring_dist_rel""pose_ref_scoring_dist_rel" und 'pose_ref_scoring_dist_abs'"pose_ref_scoring_dist_abs""pose_ref_scoring_dist_abs""pose_ref_scoring_dist_abs""pose_ref_scoring_dist_abs""pose_ref_scoring_dist_abs" sollte gesetzt werden. Werden beide gesetzt, so wird nur der zuletzt gesetzte Wert verwendet.

Dieser Parameter wird ignoriert, wenn die exakte Pose-Verfeinerung deaktiviert ist.

Vorgeschlagene Werte: 0.2, 0.01, 0.005, 0.0001

Standardwert: 0.005

Restriktion: 'pose_ref_scoring_dist_rel'"pose_ref_scoring_dist_rel""pose_ref_scoring_dist_rel""pose_ref_scoring_dist_rel""pose_ref_scoring_dist_rel""pose_ref_scoring_dist_rel" > 0

'pose_ref_scoring_dist_abs'"pose_ref_scoring_dist_abs""pose_ref_scoring_dist_abs""pose_ref_scoring_dist_abs""pose_ref_scoring_dist_abs""pose_ref_scoring_dist_abs":

Setzt den Abstandsschwellenwert für die Bewertung der Pose als absoluten Wert. Nur Szenepunkte deren Abstand zur gefundenen Objektinstanz diesen Schwellenwert unterschreiten gehen in die Berechnung der Bewertung ein und werden als 'auf dem Objekt liegend' klassifiziert. Alle anderen Szenepunkte werden ignoriert. Der Schwellenwert sollte entsprechend dem zu erwartenden Rauschen und der Genauigkeit der Pose-Verfeinerung gesetzt werden. Nur einer der beiden Parameter 'pose_ref_scoring_dist_rel'"pose_ref_scoring_dist_rel""pose_ref_scoring_dist_rel""pose_ref_scoring_dist_rel""pose_ref_scoring_dist_rel""pose_ref_scoring_dist_rel" und 'pose_ref_scoring_dist_abs'"pose_ref_scoring_dist_abs""pose_ref_scoring_dist_abs""pose_ref_scoring_dist_abs""pose_ref_scoring_dist_abs""pose_ref_scoring_dist_abs" sollte gesetzt werden. Werden beide gesetzt, so wird nur der zuletzt gesetzte Wert verwendet.

Dieser Parameter wird ignoriert, wenn die exakte Pose-Verfeinerung deaktiviert ist.

'pose_ref_use_scene_normals'"pose_ref_use_scene_normals""pose_ref_use_scene_normals""pose_ref_use_scene_normals""pose_ref_use_scene_normals""pose_ref_use_scene_normals":

Aktiviert oder deaktiviert die Verwendung von Szenennormalen für die Pose-Verfeinerung. Eine genauere Beschreibung dieses Parameters findet sich weiter oben im Abschnitt Grope Pose-Verfeinerung.

Mögliche Werte: 'true'"true""true""true""true""true", 'false'"false""false""false""false""false"

Standardwert: 'false'"false""false""false""false""false"

'pose_ref_dist_threshold_edges_rel'"pose_ref_dist_threshold_edges_rel""pose_ref_dist_threshold_edges_rel""pose_ref_dist_threshold_edges_rel""pose_ref_dist_threshold_edges_rel""pose_ref_dist_threshold_edges_rel":

Setzt den Abstandsschwellenwert von Kanten für die exakte Pose-Verfeinerung relativ zum Durchmesser des Modells. Nur Kanten deren Abstand zur Objektinstanz diesen Schwellenwert unterschreiten gehen in die Pose-Verfeinerung ein. Kanten, die weiter von der Instanz entfernt sind, werden ignoriert. Nur einer der beiden Parameter 'pose_ref_dist_threshold_edges_rel'"pose_ref_dist_threshold_edges_rel""pose_ref_dist_threshold_edges_rel""pose_ref_dist_threshold_edges_rel""pose_ref_dist_threshold_edges_rel""pose_ref_dist_threshold_edges_rel" und 'pose_ref_dist_threshold_edges_abs'"pose_ref_dist_threshold_edges_abs""pose_ref_dist_threshold_edges_abs""pose_ref_dist_threshold_edges_abs""pose_ref_dist_threshold_edges_abs""pose_ref_dist_threshold_edges_abs" sollte gesetzt werden. Werden beide gesetzt, so wird nur der zuletzt gesetzte Wert verwendet.

Dieser Parameter wird ignoriert, wenn die exakte Pose-Verfeinerung deaktiviert ist oder wenn kein kantenunterstütztes Matching durchgeführt wird.

Vorgeschlagene Werte: 0.03, 0.05, 0.1, 0.2

Standardwert: 0.1

Restriktion: 'pose_ref_dist_threshold_edges_rel'"pose_ref_dist_threshold_edges_rel""pose_ref_dist_threshold_edges_rel""pose_ref_dist_threshold_edges_rel""pose_ref_dist_threshold_edges_rel""pose_ref_dist_threshold_edges_rel" > 0

'pose_ref_dist_threshold_edges_abs'"pose_ref_dist_threshold_edges_abs""pose_ref_dist_threshold_edges_abs""pose_ref_dist_threshold_edges_abs""pose_ref_dist_threshold_edges_abs""pose_ref_dist_threshold_edges_abs":

Setzt den Abstandsschwellenwert von Kanten für die exakte Pose-Verfeinerung als absoluten Wert. Für Details siehe den Parameter 'pose_ref_dist_threshold_edges_rel'"pose_ref_dist_threshold_edges_rel""pose_ref_dist_threshold_edges_rel""pose_ref_dist_threshold_edges_rel""pose_ref_dist_threshold_edges_rel""pose_ref_dist_threshold_edges_rel". Nur einer der beiden Parameter 'pose_ref_dist_threshold_edges_rel'"pose_ref_dist_threshold_edges_rel""pose_ref_dist_threshold_edges_rel""pose_ref_dist_threshold_edges_rel""pose_ref_dist_threshold_edges_rel""pose_ref_dist_threshold_edges_rel" und 'pose_ref_dist_threshold_edges_abs'"pose_ref_dist_threshold_edges_abs""pose_ref_dist_threshold_edges_abs""pose_ref_dist_threshold_edges_abs""pose_ref_dist_threshold_edges_abs""pose_ref_dist_threshold_edges_abs" sollte gesetzt werden. Werden beide gesetzt, so wird nur der zuletzt gesetzte Wert verwendet.

Dieser Parameter wird ignoriert, wenn die exakte Pose-Verfeinerung deaktiviert ist oder wenn kein kantenunterstütztes Matching durchgeführt wird.

Restriktion: 'pose_ref_dist_threshold_edges_abs'"pose_ref_dist_threshold_edges_abs""pose_ref_dist_threshold_edges_abs""pose_ref_dist_threshold_edges_abs""pose_ref_dist_threshold_edges_abs""pose_ref_dist_threshold_edges_abs" > 0

'pose_ref_scoring_dist_edges_rel'"pose_ref_scoring_dist_edges_rel""pose_ref_scoring_dist_edges_rel""pose_ref_scoring_dist_edges_rel""pose_ref_scoring_dist_edges_rel""pose_ref_scoring_dist_edges_rel":

Setzt den Abstandsschwellenwert von Kanten für die Bewertung der Pose relativ zum Durchmesser des Modells. Für Details siehe den Parameter 'pose_ref_scoring_dist_edges_abs'"pose_ref_scoring_dist_edges_abs""pose_ref_scoring_dist_edges_abs""pose_ref_scoring_dist_edges_abs""pose_ref_scoring_dist_edges_abs""pose_ref_scoring_dist_edges_abs". Nur einer der beiden Parameter 'pose_ref_scoring_dist_edges_rel'"pose_ref_scoring_dist_edges_rel""pose_ref_scoring_dist_edges_rel""pose_ref_scoring_dist_edges_rel""pose_ref_scoring_dist_edges_rel""pose_ref_scoring_dist_edges_rel" und 'pose_ref_scoring_dist_edges_abs'"pose_ref_scoring_dist_edges_abs""pose_ref_scoring_dist_edges_abs""pose_ref_scoring_dist_edges_abs""pose_ref_scoring_dist_edges_abs""pose_ref_scoring_dist_edges_abs" sollte gesetzt werden. Werden beide gesetzt, so wird nur der zuletzt gesetzte Wert verwendet.

Dieser Parameter wird ignoriert, wenn die exakte Pose-Verfeinerung deaktiviert ist oder wenn kein kantenunterstütztes Matching durchgeführt wird.

Vorgeschlagene Werte: 0.2, 0.01, 0.005, 0.0001

Standardwert: 0.005

Restriktion: 'pose_ref_scoring_dist_edges_rel'"pose_ref_scoring_dist_edges_rel""pose_ref_scoring_dist_edges_rel""pose_ref_scoring_dist_edges_rel""pose_ref_scoring_dist_edges_rel""pose_ref_scoring_dist_edges_rel" > 0

'pose_ref_scoring_dist_edges_abs'"pose_ref_scoring_dist_edges_abs""pose_ref_scoring_dist_edges_abs""pose_ref_scoring_dist_edges_abs""pose_ref_scoring_dist_edges_abs""pose_ref_scoring_dist_edges_abs":

Setzt den Abstandsschwellenwert von Kanten für die Bewertung der Pose als absoluten Wert. Nur Szenenkanten deren Abstand zu den Kanten der gefundenen Objektinstanz diesen Schwellenwert unterschreiten gehen in die Berechnung der Bewertung ein und werden als 'auf dem Objekt liegend' klassifiziert. Alle anderen Szenenkanten werden ignoriert. Der Schwellenwert sollte entsprechend der zu erwartenden Genauigkeit der extrahierten Kanten und der Genauigkeit der Pose-Verfeinerung gesetzt werden. Nur einer der beiden Parameter 'pose_ref_scoring_dist_edges_rel'"pose_ref_scoring_dist_edges_rel""pose_ref_scoring_dist_edges_rel""pose_ref_scoring_dist_edges_rel""pose_ref_scoring_dist_edges_rel""pose_ref_scoring_dist_edges_rel" und 'pose_ref_scoring_dist_edges_abs'"pose_ref_scoring_dist_edges_abs""pose_ref_scoring_dist_edges_abs""pose_ref_scoring_dist_edges_abs""pose_ref_scoring_dist_edges_abs""pose_ref_scoring_dist_edges_abs" sollte gesetzt werden. Werden beide gesetzt, so wird nur der zuletzt gesetzte Wert verwendet.

Dieser Parameter wird ignoriert, wenn die exakte Pose-Verfeinerung deaktiviert ist oder wenn kein kantenunterstütztes Matching durchgeführt wird.

Restriktion: 'pose_ref_scoring_dist_edges_abs'"pose_ref_scoring_dist_edges_abs""pose_ref_scoring_dist_edges_abs""pose_ref_scoring_dist_edges_abs""pose_ref_scoring_dist_edges_abs""pose_ref_scoring_dist_edges_abs" > 0

'use_view_based'"use_view_based""use_view_based""use_view_based""use_view_based""use_view_based":

Schaltet die ansichtsbasierte Bewertung beim oberflächenbasierten Matching ein oder aus. Für weitere Informationen siehe die entsprechende Beschreibung im Abschnitt zur groben Pose-Verfeinerung.

Wenn das Oberflächenmodell nicht mit aktiviertem 'train_view_based'"train_view_based""train_view_based""train_view_based""train_view_based""train_view_based" erstellt wurde, wird bei aktiviertem 'use_view_based'"use_view_based""use_view_based""use_view_based""use_view_based""use_view_based" ein Fehler zurückgegeben.

Mögliche Werte: 'true'"true""true""true""true""true", 'false'"false""false""false""false""false"

Standardwert: 'false'"false""false""false""false""false", falls 'train_view_based'"train_view_based""train_view_based""train_view_based""train_view_based""train_view_based" bei Modellerstellung deaktiviert, andernfalls 'true'"true""true""true""true""true".

'use_self_similar_poses'"use_self_similar_poses""use_self_similar_poses""use_self_similar_poses""use_self_similar_poses""use_self_similar_poses":

Schaltet die Optimierung bezüglich selbstähnlicher, fast-symmetrischer Posen ein oder aus.

Wenn das Oberflächenmodell nicht mit aktiviertem 'train_self_similar_poses'"train_self_similar_poses""train_self_similar_poses""train_self_similar_poses""train_self_similar_poses""train_self_similar_poses" erstellt wurde, wird bei aktiviertem 'use_self_similar_poses'"use_self_similar_poses""use_self_similar_poses""use_self_similar_poses""use_self_similar_poses""use_self_similar_poses" ein Fehler zurückgegeben.

Mögliche Werte: 'true'"true""true""true""true""true", 'false'"false""false""false""false""false"

Standardwert: 'false'"false""false""false""false""false", falls 'train_self_similar_poses'"train_self_similar_poses""train_self_similar_poses""train_self_similar_poses""train_self_similar_poses""train_self_similar_poses" bei Modellerstellung deaktiviert, andernfalls 'true'"true""true""true""true""true".

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.

Dieser Operator unterstützt Cancel-Timeouts und Interrupts.

Parameter

SurfaceModelIDSurfaceModelIDSurfaceModelIDSurfaceModelIDsurfaceModelIDsurface_model_id (input_control)  surface_model HSurfaceModel, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle des Oberflächenmodells.

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

Handle des 3D-Objektmodells, welches die Szene enthält.

RelSamplingDistanceRelSamplingDistanceRelSamplingDistanceRelSamplingDistancerelSamplingDistancerel_sampling_distance (input_control)  real HTuplefloatHTupleHtuple (real) (double) (double) (double)

Abtastdistanz der Szene relativ zum Durchmesser des Oberflächenmodells.

Defaultwert: 0.05

Wertevorschläge: 0.1, 0.07, 0.05, 0.04, 0.03

Restriktion: 0 < RelSamplingDistance < 1

KeyPointFractionKeyPointFractionKeyPointFractionKeyPointFractionkeyPointFractionkey_point_fraction (input_control)  real HTuplefloatHTupleHtuple (real) (double) (double) (double)

Anteil der abgetasteten Szenepunkte, die als Schlüsselpunkte verwendet werden.

Defaultwert: 0.2

Wertevorschläge: 0.3, 0.2, 0.1, 0.05

Restriktion: 0 < KeyPointFraction <= 1

MinScoreMinScoreMinScoreMinScoreminScoremin_score (input_control)  real(-array) HTupleMaybeSequence[Union[float, int]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Mindestbewertung der zurückgegebenen Posen.

Defaultwert: 0

Restriktion: MinScore >= 0

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

Aktiviert die Rückgabe eines Ergebnishandels in SurfaceMatchingResultIDSurfaceMatchingResultIDSurfaceMatchingResultIDSurfaceMatchingResultIDsurfaceMatchingResultIDsurface_matching_result_id.

Defaultwert: 'false' "false" "false" "false" "false" "false"

Wertevorschläge: 'true'"true""true""true""true""true", 'false'"false""false""false""false""false"

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

Namen der generischen Parameter.

Defaultwert: []

Werteliste: '3d_edge_min_amplitude_abs'"3d_edge_min_amplitude_abs""3d_edge_min_amplitude_abs""3d_edge_min_amplitude_abs""3d_edge_min_amplitude_abs""3d_edge_min_amplitude_abs", '3d_edge_min_amplitude_rel'"3d_edge_min_amplitude_rel""3d_edge_min_amplitude_rel""3d_edge_min_amplitude_rel""3d_edge_min_amplitude_rel""3d_edge_min_amplitude_rel", '3d_edges'"3d_edges""3d_edges""3d_edges""3d_edges""3d_edges", 'dense_pose_refinement'"dense_pose_refinement""dense_pose_refinement""dense_pose_refinement""dense_pose_refinement""dense_pose_refinement", 'max_gap'"max_gap""max_gap""max_gap""max_gap""max_gap", 'max_overlap_dist_abs'"max_overlap_dist_abs""max_overlap_dist_abs""max_overlap_dist_abs""max_overlap_dist_abs""max_overlap_dist_abs", 'max_overlap_dist_rel'"max_overlap_dist_rel""max_overlap_dist_rel""max_overlap_dist_rel""max_overlap_dist_rel""max_overlap_dist_rel", 'num_matches'"num_matches""num_matches""num_matches""num_matches""num_matches", 'pose_ref_dist_threshold_abs'"pose_ref_dist_threshold_abs""pose_ref_dist_threshold_abs""pose_ref_dist_threshold_abs""pose_ref_dist_threshold_abs""pose_ref_dist_threshold_abs", 'pose_ref_dist_threshold_edges_abs'"pose_ref_dist_threshold_edges_abs""pose_ref_dist_threshold_edges_abs""pose_ref_dist_threshold_edges_abs""pose_ref_dist_threshold_edges_abs""pose_ref_dist_threshold_edges_abs", 'pose_ref_dist_threshold_edges_rel'"pose_ref_dist_threshold_edges_rel""pose_ref_dist_threshold_edges_rel""pose_ref_dist_threshold_edges_rel""pose_ref_dist_threshold_edges_rel""pose_ref_dist_threshold_edges_rel", 'pose_ref_dist_threshold_rel'"pose_ref_dist_threshold_rel""pose_ref_dist_threshold_rel""pose_ref_dist_threshold_rel""pose_ref_dist_threshold_rel""pose_ref_dist_threshold_rel", 'pose_ref_num_steps'"pose_ref_num_steps""pose_ref_num_steps""pose_ref_num_steps""pose_ref_num_steps""pose_ref_num_steps", 'pose_ref_scoring_dist_abs'"pose_ref_scoring_dist_abs""pose_ref_scoring_dist_abs""pose_ref_scoring_dist_abs""pose_ref_scoring_dist_abs""pose_ref_scoring_dist_abs", 'pose_ref_scoring_dist_edges_abs'"pose_ref_scoring_dist_edges_abs""pose_ref_scoring_dist_edges_abs""pose_ref_scoring_dist_edges_abs""pose_ref_scoring_dist_edges_abs""pose_ref_scoring_dist_edges_abs", 'pose_ref_scoring_dist_edges_rel'"pose_ref_scoring_dist_edges_rel""pose_ref_scoring_dist_edges_rel""pose_ref_scoring_dist_edges_rel""pose_ref_scoring_dist_edges_rel""pose_ref_scoring_dist_edges_rel", 'pose_ref_scoring_dist_rel'"pose_ref_scoring_dist_rel""pose_ref_scoring_dist_rel""pose_ref_scoring_dist_rel""pose_ref_scoring_dist_rel""pose_ref_scoring_dist_rel", 'pose_ref_sub_sampling'"pose_ref_sub_sampling""pose_ref_sub_sampling""pose_ref_sub_sampling""pose_ref_sub_sampling""pose_ref_sub_sampling", 'pose_ref_use_scene_normals'"pose_ref_use_scene_normals""pose_ref_use_scene_normals""pose_ref_use_scene_normals""pose_ref_use_scene_normals""pose_ref_use_scene_normals", 'scene_invert_normals'"scene_invert_normals""scene_invert_normals""scene_invert_normals""scene_invert_normals""scene_invert_normals", 'scene_normal_computation'"scene_normal_computation""scene_normal_computation""scene_normal_computation""scene_normal_computation""scene_normal_computation", 'sparse_pose_refinement'"sparse_pose_refinement""sparse_pose_refinement""sparse_pose_refinement""sparse_pose_refinement""sparse_pose_refinement", 'use_3d_edges'"use_3d_edges""use_3d_edges""use_3d_edges""use_3d_edges""use_3d_edges", 'use_self_similar_poses'"use_self_similar_poses""use_self_similar_poses""use_self_similar_poses""use_self_similar_poses""use_self_similar_poses", 'use_view_based'"use_view_based""use_view_based""use_view_based""use_view_based""use_view_based", 'viewpoint'"viewpoint""viewpoint""viewpoint""viewpoint""viewpoint"

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

Werte der generischen Parameter

Defaultwert: []

Wertevorschläge: 0, 1, 'true'"true""true""true""true""true", 'false'"false""false""false""false""false", 0.005, 0.01, 0.03, 0.05, 0.1, 'num_scene_points'"num_scene_points""num_scene_points""num_scene_points""num_scene_points""num_scene_points", 'model_point_fraction'"model_point_fraction""model_point_fraction""model_point_fraction""model_point_fraction""model_point_fraction", 'num_model_points'"num_model_points""num_model_points""num_model_points""num_model_points""num_model_points", 'fast'"fast""fast""fast""fast""fast", 'mls'"mls""mls""mls""mls""mls"

PosePosePosePoseposepose (output_control)  pose(-array) HPose, HTupleSequence[Union[float, int]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

3D-Lage des Oberflächenmodells in der Szene.

ScoreScoreScoreScorescorescore (output_control)  real-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Bewertung der gefundenen Objektinstanzen.

SurfaceMatchingResultIDSurfaceMatchingResultIDSurfaceMatchingResultIDSurfaceMatchingResultIDsurfaceMatchingResultIDsurface_matching_result_id (output_control)  surface_matching_result(-array) HSurfaceMatchingResult, HTupleSequence[HHandle]HTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Ergebnishandle, wenn ReturnResultHandleReturnResultHandleReturnResultHandleReturnResultHandlereturnResultHandlereturn_result_handle aktiviert ist.

Ergebnis

Wenn alle Parameter korrekt sind liefert find_surface_modelfind_surface_modelFindSurfaceModelFindSurfaceModelFindSurfaceModelfind_surface_model den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

read_object_model_3dread_object_model_3dReadObjectModel3dReadObjectModel3dReadObjectModel3dread_object_model_3d, xyz_to_object_model_3dxyz_to_object_model_3dXyzToObjectModel3dXyzToObjectModel3dXyzToObjectModel3dxyz_to_object_model_3d, get_object_model_3d_paramsget_object_model_3d_paramsGetObjectModel3dParamsGetObjectModel3dParamsGetObjectModel3dParamsget_object_model_3d_params, read_surface_modelread_surface_modelReadSurfaceModelReadSurfaceModelReadSurfaceModelread_surface_model, create_surface_modelcreate_surface_modelCreateSurfaceModelCreateSurfaceModelCreateSurfaceModelcreate_surface_model, get_surface_model_paramget_surface_model_paramGetSurfaceModelParamGetSurfaceModelParamGetSurfaceModelParamget_surface_model_param, edges_object_model_3dedges_object_model_3dEdgesObjectModel3dEdgesObjectModel3dEdgesObjectModel3dedges_object_model_3d

Nachfolger

refine_surface_model_poserefine_surface_model_poseRefineSurfaceModelPoseRefineSurfaceModelPoseRefineSurfaceModelPoserefine_surface_model_pose, get_surface_matching_resultget_surface_matching_resultGetSurfaceMatchingResultGetSurfaceMatchingResultGetSurfaceMatchingResultget_surface_matching_result, clear_surface_matching_resultclear_surface_matching_resultClearSurfaceMatchingResultClearSurfaceMatchingResultClearSurfaceMatchingResultclear_surface_matching_result, clear_object_model_3dclear_object_model_3dClearObjectModel3dClearObjectModel3dClearObjectModel3dclear_object_model_3d

Alternativen

refine_surface_model_poserefine_surface_model_poseRefineSurfaceModelPoseRefineSurfaceModelPoseRefineSurfaceModelPoserefine_surface_model_pose, find_surface_model_imagefind_surface_model_imageFindSurfaceModelImageFindSurfaceModelImageFindSurfaceModelImagefind_surface_model_image, refine_surface_model_pose_imagerefine_surface_model_pose_imageRefineSurfaceModelPoseImageRefineSurfaceModelPoseImageRefineSurfaceModelPoseImagerefine_surface_model_pose_image

Siehe auch

refine_surface_model_poserefine_surface_model_poseRefineSurfaceModelPoseRefineSurfaceModelPoseRefineSurfaceModelPoserefine_surface_model_pose, find_surface_model_imagefind_surface_model_imageFindSurfaceModelImageFindSurfaceModelImageFindSurfaceModelImagefind_surface_model_image

Modul

3D Metrology