Name
find_surface_modelT_find_surface_modelFindSurfaceModelfind_surface_modelFindSurfaceModelFindSurfaceModel — Suche der besten Matches eines Oberflächenmodells in einer Szene.
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)
Herror 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)
HTuple HObjectModel3D::FindSurfaceModel(const HSurfaceModel& SurfaceModelID, const HTuple& RelSamplingDistance, const HTuple& KeyPointFraction, const HTuple& MinScore, const HTuple& ReturnResultHandle, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* Score, HTuple* SurfaceMatchingResultID) const
HTuple HSurfaceModel::FindSurfaceModel(const HObjectModel3D& ObjectModel3D, const HTuple& RelSamplingDistance, const HTuple& KeyPointFraction, const HTuple& MinScore, const HTuple& ReturnResultHandle, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* Score, HTuple* SurfaceMatchingResultID) const
HTuple HSurfaceMatchingResult::FindSurfaceModel(const HSurfaceModel& SurfaceModelID, const HObjectModel3D& ObjectModel3D, const HTuple& RelSamplingDistance, const HTuple& KeyPointFraction, const HTuple& MinScore, const HTuple& ReturnResultHandle, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* Score)
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
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
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)
void HOperatorSetX.FindSurfaceModel(
[in] VARIANT SurfaceModelID, [in] VARIANT ObjectModel3D, [in] VARIANT RelSamplingDistance, [in] VARIANT KeyPointFraction, [in] VARIANT MinScore, [in] VARIANT ReturnResultHandle, [in] VARIANT GenParamName, [in] VARIANT GenParamValue, [out] VARIANT* Pose, [out] VARIANT* Score, [out] VARIANT* SurfaceMatchingResultID)
VARIANT HObjectModel3DX.FindSurfaceModel(
[in] IHSurfaceModelX* SurfaceModelID, [in] double RelSamplingDistance, [in] double KeyPointFraction, [in] VARIANT MinScore, [in] BSTR ReturnResultHandle, [in] VARIANT GenParamName, [in] VARIANT GenParamValue, [out] VARIANT* Score, [out] IHSurfaceMatchingResultX** SurfaceMatchingResultID)
VARIANT HSurfaceModelX.FindSurfaceModel(
[in] IHObjectModel3DX* ObjectModel3D, [in] double RelSamplingDistance, [in] double KeyPointFraction, [in] VARIANT MinScore, [in] BSTR ReturnResultHandle, [in] VARIANT GenParamName, [in] VARIANT GenParamValue, [out] VARIANT* Score, [out] IHSurfaceMatchingResultX** SurfaceMatchingResultID)
VARIANT HSurfaceMatchingResultX.FindSurfaceModel(
[in] IHSurfaceModelX* SurfaceModelID, [in] IHObjectModel3DX* ObjectModel3D, [in] double RelSamplingDistance, [in] double KeyPointFraction, [in] VARIANT MinScore, [in] BSTR ReturnResultHandle, [in] VARIANT GenParamName, [in] VARIANT GenParamValue, [out] VARIANT* Score)
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)
find_surface_modelfind_surface_modelFindSurfaceModelfind_surface_modelFindSurfaceModelFindSurfaceModel sucht die besten Matches des Oberflächenmodells
SurfaceModelIDSurfaceModelIDSurfaceModelIDSurfaceModelIDSurfaceModelIDsurfaceModelID in der 3D-Szene ObjectModel3DObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3D.
Das Oberflächenmodell SurfaceModelIDSurfaceModelIDSurfaceModelIDSurfaceModelIDSurfaceModelIDsurfaceModelID muss zuvor mittels
create_surface_modelcreate_surface_modelCreateSurfaceModelcreate_surface_modelCreateSurfaceModelCreateSurfaceModel oder read_surface_modelread_surface_modelReadSurfaceModelread_surface_modelReadSurfaceModelReadSurfaceModel erstellt
worden sein.
Das 3D-Objektmodell der Szene kann beispielsweise mittels
read_object_model_3dread_object_model_3dReadObjectModel3dread_object_model_3dReadObjectModel3dReadObjectModel3d aus einer Datei gelesen worden sein oder
mittels xyz_to_object_model_3dxyz_to_object_model_3dXyzToObjectModel3dxyz_to_object_model_3dXyzToObjectModel3dXyzToObjectModel3d erstellt worden sein.
Für das Auffinden des Oberflächenmodells muss das 3D-Objektmodell der
Szene Punkte und Normalen aufweisen. Die folgenden Kombinationen sind
möglich:
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_3dSampleObjectModel3dsample_object_model_3dSampleObjectModel3dSampleObjectModel3d in Punkte mit Normalen umgewandelt werden.
Werden verrauschte Daten verwendet, z.B. von Time-of-Flight-Kameras,
sollte 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 (s.u.).
Die 3D-Pose der gefundenen Instanzen wird in PosePosePosePosePosepose zurückgegeben.
Sie beschreibt die Pose des Oberflächenmodells im Szenenkoordinatensystem
und bezieht sich auf das Modellkoordinatensystem des 3D-Objektmodells,
welches für create_surface_modelcreate_surface_modelCreateSurfaceModelcreate_surface_modelCreateSurfaceModelCreateSurfaceModel verwendet wurde.
Weiterhin wird in ScoreScoreScoreScoreScorescore für jede Instanz eine Bewertung
zurückgeliefert. Wert und Bedeutung der Bewertung hängen davon ab, ob die
Pose-Verfeinerung verwendet wurde oder nicht. Ist die Pose-Verfeinerung
nicht aktiv, so entspricht die Bewertung der ungefähren Anzahl an Punkten
der abgetasteten Szene, welche auf der gefundenen Objektinstanz liegen.
Ist die Pose-Verfeinerung aktiviert, so wird der ungefähre Anteil der
sichtbaren Fläche des Objekts als Wert zwischen 0 und 1 zurückgeliefert.
Beide Bewertungsarten werden weiter unten genauer beschrieben.
Der Parameter MinScoreMinScoreMinScoreMinScoreMinScoreminScore kann verwendet werden um die Ergebnisse
zu filtern. Nur Instanzen deren Bewertung größer als MinScoreMinScoreMinScoreMinScoreMinScoreminScore ist
werden zurückgegeben.
Wird MinScoreMinScoreMinScoreMinScoreMinScoreminScore auf 0 gesetzt, so werden alle gefundenen Instanzen
zurückgegeben.
Wird ReturnResultHandleReturnResultHandleReturnResultHandleReturnResultHandleReturnResultHandlereturnResultHandle auf 'true'"true""true""true""true""true" gesetzt, so wird in
SurfaceMatchingResultIDSurfaceMatchingResultIDSurfaceMatchingResultIDSurfaceMatchingResultIDSurfaceMatchingResultIDsurfaceMatchingResultID ein Ergebnishandle zurückgegeben.
Weitere Details des Matchingverfahrens können dann mittels
get_surface_matching_resultget_surface_matching_resultGetSurfaceMatchingResultget_surface_matching_resultGetSurfaceMatchingResultGetSurfaceMatchingResult abgerufen werden.
Das zurückgegebene Handle muss mittels clear_surface_matching_resultclear_surface_matching_resultClearSurfaceMatchingResultclear_surface_matching_resultClearSurfaceMatchingResultClearSurfaceMatchingResult
freigegeben werden um Speicherverlust zu vermeiden.
Der Matching-Vorgang ist in drei Schritte unterteilt:
-
Näherungsweises Matching: Die ungefähren Posen der Instanzen des
Oberflächenmodells in der Szene werden gesucht.
Die 3D-Szene ObjectModel3DObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3D wird zunächst gleichmäßig
abgetastet. Der Parameter RelSamplingDistanceRelSamplingDistanceRelSamplingDistanceRelSamplingDistanceRelSamplingDistancerelSamplingDistance gibt die
Abtastdistanz relativ zum Durchmesser des Oberflächenmodells an.
Verkleinert man RelSamplingDistanceRelSamplingDistanceRelSamplingDistanceRelSamplingDistanceRelSamplingDistancerelSamplingDistance, so werden mehr
Punkte der Szene abgetastet, was zu einem stabileren aber
langsameren Matching führt.
Erhöht man RelSamplingDistanceRelSamplingDistanceRelSamplingDistanceRelSamplingDistanceRelSamplingDistancerelSamplingDistance, so werden weniger Punkte
abgetastet, was zu einem weniger stabilen aber schnelleren Matching
führt.
Eine Illustration zur RelSamplingDistanceRelSamplingDistanceRelSamplingDistanceRelSamplingDistanceRelSamplingDistancerelSamplingDistance befindet sich
bei dem Operator create_surface_modelcreate_surface_modelCreateSurfaceModelcreate_surface_modelCreateSurfaceModelCreateSurfaceModel.
Die abgetasteten Punkte können mit dem Operator
get_surface_matching_resultget_surface_matching_resultGetSurfaceMatchingResultget_surface_matching_resultGetSurfaceMatchingResultGetSurfaceMatchingResult abgerufen werden. Für ein
robustes Matching sollten mindestens 50-100 Punkte auf jeder
zu findenden Objektinstanz liegen.
Aus den abgetasteten Szenepunkten werden eine Reihe von
Schlüsselpunkten ausgewählt. Die Anzahl der Schlüsselpunkte wird
mit dem Parameter KeyPointFractionKeyPointFractionKeyPointFractionKeyPointFractionKeyPointFractionkeyPointFraction gesteuert. 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 KeyPointFractionKeyPointFractionKeyPointFractionKeyPointFractionKeyPointFractionkeyPointFraction, 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.
Die ausgewählten Schlüsselpunkte können mit dem Operator
get_surface_matching_resultget_surface_matching_resultGetSurfaceMatchingResultget_surface_matching_resultGetSurfaceMatchingResultGetSurfaceMatchingResult abgerufen werden.
Für jeden Schlüsselpunkt wird die optimale Pose des Oberflächenmodells
unter der Annahme, dass der Schlüsselpunkt auf einer Objektinstanz
liegt, bestimmt.
Dazu werden Punktpaare aus dem Schlüsselpunkt und allen anderen
Szenepunkten gebildet. Für jedes dieser Punktpaare werden die Paare
auf der Oberfläche des Oberflächenmodells gesucht, die einen ähnlichen
Abstand und eine ähnliche Orientierung besitzen. Das Ähnlichkeitsmaß
wird dabei über die Parameter 'feat_step_size_rel'"feat_step_size_rel""feat_step_size_rel""feat_step_size_rel""feat_step_size_rel""feat_step_size_rel" und
'feat_angle_resolution'"feat_angle_resolution""feat_angle_resolution""feat_angle_resolution""feat_angle_resolution""feat_angle_resolution" im Operator
create_surface_modelcreate_surface_modelCreateSurfaceModelcreate_surface_modelCreateSurfaceModelCreateSurfaceModel definiert.
Die Pose für welche die meisten Punkte aus der abgetasteten Szene auf
dem Modell liegen wird als optimale Pose für den Schlüsselpunkt
definiert. Die Anzahl an abgetasteten Szenepunkten ist die
Bewertung der Pose.
Aus den Posen aller Schlüsselpunkte werden diejenigen mit der
höchsten Bewertung ausgewählt und als näherungsweise Posen
weiterverwendet.
Die maximale Anzahl an ausgewählten Posen wird mit dem generischen
Parameter 'num_matches'"num_matches""num_matches""num_matches""num_matches""num_matches" gesteuert.
Ist die Pose-Verfeinerung deaktiviert, so wird die oben beschriebene
Bewertung jeder Pose in ScoreScoreScoreScoreScorescore zurückgegeben.
Der Wert der Bewertungen hängt dabei von der Größe der sichtbaren
Oberfläche der Instanz und von der Abtastdistanz der Szene ab.
Nur Posen deren Bewertung MinScoreMinScoreMinScoreMinScoreMinScoreminScore überschreitet
werden zurückgegeben.
Um einen guten Wert für MinScoreMinScoreMinScoreMinScoreMinScoreminScore zu erhalten wird empfohlen
das Matching auf mehreren Szenen zu testen.
Es ist zu beachten, dass in diesem Schritt näherungsweise Posen
ermittelt werden. Die Ungenauigkeit der Posen hängt von den
Abtastabständen von Szene und Modell ab, und ist normalerweise
weniger als 5% des Objektdurchmessers.
Die folgenden generischen Parameter steuern das näherungsweise
Matching, und werden mit GenParamNameGenParamNameGenParamNameGenParamNameGenParamNamegenParamName und
GenParamValueGenParamValueGenParamValueGenParamValueGenParamValuegenParamValue 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
Assertion: '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' 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' 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
Assertion: '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'. Allerdings wird der Wert im Gegensatz
zum Parameter 'max_overlap_dist_rel' bei
'max_overlap_dist_abs' als absoluter Wert angegeben. Eine
Beschreibung des Effekts dieses Parameters ist weiter oben bei
dem Parameter '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
Assertion: '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 die Normalen anhand einer
relativ kleinen Nachbarschaft berechnen.
Im Modus 'mls'"mls""mls""mls""mls""mls" wird eine größere Nachbarschaft
einbezogen und das komplexere aber 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_3dSurfaceNormalsObjectModel3dsurface_normals_object_model_3dSurfaceNormalsObjectModel3dSurfaceNormalsObjectModel3d.
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.
Mögliche Werte: 'fast'"fast""fast""fast""fast""fast", 'mls'"mls""mls""mls""mls""mls"
Standardwert: 'fast'"fast""fast""fast""fast""fast"
-
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 grobe Pose-Verfeinerung verwendet die abgetasteten Szenepunkte
des näherungsweisen Matchings. Die Pose wird derart verbessert, dass
die Abstände der abgetasteten Szenepunkte zur Ebene des nähsten
gefundenen Modellpunktes minimiert werden.
Die Ebene jedes Modellpunkts ist dabei die auf den Normalenvektor
des Punktes senkrecht stehende Ebene.
Die grobe Pose-Verfeinerung ist standardmäßig aktiviert und kann
durch Setzen des generischen Parameters
'sparse_pose_refinement'"sparse_pose_refinement""sparse_pose_refinement""sparse_pose_refinement""sparse_pose_refinement""sparse_pose_refinement" auf 'false'"false""false""false""false""false" deaktiviert
werden.
Die Anzahl der verfeinerten Posen ist proportional zur Anzahl der
im vorherigen Schritt ausgewählten Schlüsselpunkte. Für
große Szenen, die viele Stördaten (Szenenteile die auf
keiner Objektinstanz liegen) enthalten, kann es sinnvoll sein, die
grobe Pose-Verfeinerung zu deaktivieren.
Die Bewertung jeder Pose wird nach der Verfeinerung neu berechnet.
Dazu wird gezählt, wieviele Punkte des Modells einen entsprechenden
Punkt in der Szene haben, und diese Anzahl wird durch die Anzahl der
Modellpunkte geteilt.
Dies führt zu einem Wert zwischen 0 und 1, der in etwa den Anteil an
Modellfläche beschreibt, der in der Szene sichtbar ist (siehe unten).
Diese Bewertung ist genauer und stabiler als die Bewertung
aus dem näherungsweisen Matching, hängt aber immer noch von der
Abtastdistanz RelSamplingDistanceRelSamplingDistanceRelSamplingDistanceRelSamplingDistanceRelSamplingDistancerelSamplingDistance ab.
Die folgenden generischen Parameter steuern die grobe
Pose-Verfeinerung und werden mit GenParamNameGenParamNameGenParamNameGenParamNameGenParamNamegenParamName und
GenParamValueGenParamValueGenParamValueGenParamValueGenParamValuegenParamValue 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"
- 'score_type'"score_type""score_type""score_type""score_type""score_type":
-
Setzt die Art der zurückgegebenen Bewertung.
Verschiedene Bewertungen können nach der Pose-Verfeinerung berechnet
und zurückgegeben werden. Dieser Parameter wird ignoriert, wenn
sowohl die grobe als auch die exakte Pose-Verfeinerung deaktiviert
ist.
Es ist zu beachten, dass für die Berechnung der Bewertung nach
der groben Pose-Verfeinerung die abgetasteten Szenepunkte
verwendet werden, während für die Berechnung nach der exakten
Pose-Verfeinerung alle Szenepunkte verwendet werden (siehe unten).
Die Bewertung nach der groben Pose-Verfeinerung hängt damit von
der Abtastdistanz RelSamplingDistanceRelSamplingDistanceRelSamplingDistanceRelSamplingDistanceRelSamplingDistancerelSamplingDistance ab.
Die folgenden Bewertungsarten werden unterstützt:
- 'num_scene_points'"num_scene_points""num_scene_points""num_scene_points""num_scene_points""num_scene_points":
-
Die gewichtete Anzahl an abgetasteten Szenepunkten, die auf der
Oberfläche der gefundenen Objektinstanz liegen.
Jeder Szenenpunkt wird je nach Abstand zum gefundenen Modell
gewichtet.
Diese Bewertung ist genauer als die im näherungsweisen Matching
berechnete Bewertung.
Der Wert hängt von der Abtastdistanz RelSamplingDistanceRelSamplingDistanceRelSamplingDistanceRelSamplingDistanceRelSamplingDistancerelSamplingDistance
ab und liegt zwischen Null und der Anzahl der abgetasteten
Szenepunkte.
- 'num_model_points'"num_model_points""num_model_points""num_model_points""num_model_points""num_model_points":
-
Die Anzahl der abgetasteten Modellpunkte, die in der Szene
gefunden wurden. Ein Modellpunkt gilt als 'gefunden', wenn es
einen Szenepunkt in seiner Nähe gibt.
Der zurückgegebene Wert liegt zwischen Null und der Anzahl der
abgetasteten Modellpunkte.
- 'model_point_fraction'"model_point_fraction""model_point_fraction""model_point_fraction""model_point_fraction""model_point_fraction":
-
Der Anteil an den in der Szene gefundenen Modellpunkten. Für
diesen Wert werden die gefundenen Modellpunkte wie für
'num_model_points'"num_model_points""num_model_points""num_model_points""num_model_points""num_model_points" ermittelt und durch die Anzahl der
abgetasteten Modellpunkte geteilt. Dies entspricht in etwa
dem Anteil der Modelloberfläche, der in der Szene sichtbar ist.
Die Bewertung liegt zwischen Null und Eins.
Mögliche Werte: 'model_point_fraction'"model_point_fraction""model_point_fraction""model_point_fraction""model_point_fraction""model_point_fraction",
'num_scene_points'"num_scene_points""num_scene_points""num_scene_points""num_scene_points""num_scene_points",
'num_model_points'"num_model_points""num_model_points""num_model_points""num_model_points""num_model_points"
Standardwert: 'model_point_fraction'"model_point_fraction""model_point_fraction""model_point_fraction""model_point_fraction""model_point_fraction"
- '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 deaktibiert 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 Szenenpunkten 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"
-
Exakte Pose-Verfeinerung:
Verfeinert die in den vorherigen Schritten gefundenen Posen.
Dieser Schritt arbeitet ähnlich zur groben Pose-Verfeinerung und
minimiert die Abstände zwischen den Szenepunkten und den Ebenen
der nächstliegenden Modellpunkte. Anders als bei der groben
Pose-Verfeinerung werden allerdings
-
nur die 'num_matches'"num_matches""num_matches""num_matches""num_matches""num_matches" besten Posen des vorherigen
Schritts verfeinert, und
-
alle Punkte der in ObjectModel3DObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3D übergebenen Szene
für die Verfeinerung verwendet.
Die Verwendung aller Szenepunkte erhöht die Genauigkeit der
Verfeinerung, ist aber langsamer als eine Verfeinerung nur auf den
abgetasteten Punkten.
Die exakte Pose-Verfeinerung ist standardmäßig aktiviert, und kann
mit dem generischen Parameter 'dense_pose_refinement'"dense_pose_refinement""dense_pose_refinement""dense_pose_refinement""dense_pose_refinement""dense_pose_refinement"
deaktiviert werden.
Nach der exakten Pose-Verfeinerung wird die Bewertung jeder Pose
neu berechnet. Der maximale Abstand eines Punktes zum Modell, so
dass er als 'auf dem Modell liegend' betrachtet wird, wird durch
die 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" oder
'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" gesteuert (siehe unten).
Die numerisch maximal erreichbare Positionsgenauigkeit nach der
exakten Posen-Verfeinerung liegt bei etwa 0.1% der Modellgröße.
Die Genauigkeit hängt weiter vom Rauschen der Szenenpunkte, von der
Anzahl der Szenenpunkte und von der Modellform ab.
Die folgenden generischen Parameter steuern die exakte
Pose-Verfeinerung und beeinflussen ihre Genauigkeit und
Geschwindigkeit. Die Werte werden über GenParamNameGenParamNameGenParamNameGenParamNameGenParamNamegenParamName und
GenParamValueGenParamValueGenParamValueGenParamValueGenParamValuegenParamValue 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
Assertion: '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, wieviele 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
Assertion: '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 Abstandsschwellwert für die exakte Pose-Verfeinerung
relativ zum Durchmesser des Modells.
Nur Punkte deren Abstand zur Objektinstanz diesen Schwellwert
unterschreiten gehen in die Pose-Verfeinerung ein. Punkte, die
weiter von der Instanz entfernt sind, werden ignoriert.
Dieser Parameter wird ignoriert, wenn die exakte Pose-Verfeinerung
deaktiviert ist.
Vorgeschlagene Werte: 0.03, 0.05,
0.1, 0.2
Standardwert: 0.1
Assertion: 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"
- '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 Abstandsschwellwert 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
Assertion: 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"
- '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 Abstandsschwellwert für die Bewertung der Pose als
absoluten Wert.
Nur Szenepunkte deren Abstand zur gefundenen Objektinstanz diesen
Schwellwert unterschreiten gehen in die Berechnung der Bewertung
ein und werden als 'auf dem Objekt liegend' klassifiziert. Alle
anderen Szenepunkte werden ignoriert.
Der Schwellwert 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.
- 'score_type'"score_type""score_type""score_type""score_type""score_type":
-
Setzt die Art der zurückgegebenen Bewertung.
Verschiedene Bewertungen können nach der Pose-Verfeinerung berechnet
und zurückgegeben werden. Dieser Parameter wird ignoriert, wenn
sowohl die grobe als auch die exakte Pose-Verfeinerung deaktiviert
ist.
Es ist zu beachten, dass für die Berechnung der Bewertung nach
der groben Pose-Verfeinerung die abgetasteten Szenepunkte
verwendet werden, während für die Berechnung nach der exakten
Pose-Verfeinerung alle Szenepunkte verwendet werden.
Die folgenden Bewertungsarten werden unterstützt:
- 'num_scene_points'"num_scene_points""num_scene_points""num_scene_points""num_scene_points""num_scene_points":
-
Die gewichtete Anzahl der Szenepunkte, die auf der Oberfläche
der gefundenen Objektinstanz liegen.
Jeder Szenenpunkt wird je nach Abstand zum gefundenen Modell
gewichtet.
Der Wert liegt zwischen Null und der Anzahl der Szenepunkte.
- 'num_model_points'"num_model_points""num_model_points""num_model_points""num_model_points""num_model_points":
-
Die Anzahl der abgetasteten Modellpunkte, die in der Szene
gefunden wurden. Ein Modellpunkt gilt als 'gefunden', wenn es
einen Szenepunkt in seiner Nähe gibt (siehe
'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" bzw.
'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").
Der zurückgegebene Wert liegt zwischen Null und der Anzahl der
abgetasteten Modellpunkte.
- 'model_point_fraction'"model_point_fraction""model_point_fraction""model_point_fraction""model_point_fraction""model_point_fraction":
-
Der Anteil an den in der Szene gefundenen Modellpunkten. Für
diesen Wert werden die gefundenen Modellpunkte wie für
'num_model_points'"num_model_points""num_model_points""num_model_points""num_model_points""num_model_points" ermittelt und durch die Anzahl der
abgetasteten Modellpunkte geteilt. Dies entspricht in etwa
dem Anteil der Modelloberfläche, der in der Szene sichtbar ist.
Die Bewertung liegt zwischen Null und Eins.
Mögliche Werte: 'model_point_fraction'"model_point_fraction""model_point_fraction""model_point_fraction""model_point_fraction""model_point_fraction",
'num_scene_points'"num_scene_points""num_scene_points""num_scene_points""num_scene_points""num_scene_points",
'num_model_points'"num_model_points""num_model_points""num_model_points""num_model_points""num_model_points"
Standardwert: 'model_point_fraction'"model_point_fraction""model_point_fraction""model_point_fraction""model_point_fraction""model_point_fraction"
- '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 deaktibiert 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 Szenenpunkten 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"
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Automatisch parallelisiert auf interner Datenebene.
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.
Handle des Oberflächenmodells.
Handle des 3D-Objektmodells, welches die Szene
enthält.
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
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
Mindestbewertung der zurückgegebenen Posen.
Defaultwert: 0
Restriktion: MinScore >= 0
Namen der generischen Parameter.
Defaultwert: []
Werteliste: 'dense_pose_refinement'"dense_pose_refinement""dense_pose_refinement""dense_pose_refinement""dense_pose_refinement""dense_pose_refinement", '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_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_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_normal_computation'"scene_normal_computation""scene_normal_computation""scene_normal_computation""scene_normal_computation""scene_normal_computation", 'score_type'"score_type""score_type""score_type""score_type""score_type", 'sparse_pose_refinement'"sparse_pose_refinement""sparse_pose_refinement""sparse_pose_refinement""sparse_pose_refinement""sparse_pose_refinement"
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"
3D-Pose des Oberflächenmodells in der Szene.
Bewertung der gefundenen Objektinstanzen.
Wenn alle Parameter korrekt sind liefert find_surface_modelfind_surface_modelFindSurfaceModelfind_surface_modelFindSurfaceModelFindSurfaceModel den
Wert 2 (H_MSG_TRUE).
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
read_object_model_3dread_object_model_3dReadObjectModel3dread_object_model_3dReadObjectModel3dReadObjectModel3d,
xyz_to_object_model_3dxyz_to_object_model_3dXyzToObjectModel3dxyz_to_object_model_3dXyzToObjectModel3dXyzToObjectModel3d,
get_object_model_3d_paramsget_object_model_3d_paramsGetObjectModel3dParamsget_object_model_3d_paramsGetObjectModel3dParamsGetObjectModel3dParams,
read_surface_modelread_surface_modelReadSurfaceModelread_surface_modelReadSurfaceModelReadSurfaceModel,
create_surface_modelcreate_surface_modelCreateSurfaceModelcreate_surface_modelCreateSurfaceModelCreateSurfaceModel,
get_surface_model_paramget_surface_model_paramGetSurfaceModelParamget_surface_model_paramGetSurfaceModelParamGetSurfaceModelParam
refine_surface_model_poserefine_surface_model_poseRefineSurfaceModelPoserefine_surface_model_poseRefineSurfaceModelPoseRefineSurfaceModelPose,
get_surface_matching_resultget_surface_matching_resultGetSurfaceMatchingResultget_surface_matching_resultGetSurfaceMatchingResultGetSurfaceMatchingResult,
clear_surface_matching_resultclear_surface_matching_resultClearSurfaceMatchingResultclear_surface_matching_resultClearSurfaceMatchingResultClearSurfaceMatchingResult,
clear_object_model_3dclear_object_model_3dClearObjectModel3dclear_object_model_3dClearObjectModel3dClearObjectModel3d
refine_surface_model_poserefine_surface_model_poseRefineSurfaceModelPoserefine_surface_model_poseRefineSurfaceModelPoseRefineSurfaceModelPose
refine_surface_model_poserefine_surface_model_poseRefineSurfaceModelPoserefine_surface_model_poseRefineSurfaceModelPoseRefineSurfaceModelPose
3D Metrology