Name
find_planar_uncalib_deformable_model T_find_planar_uncalib_deformable_model FindPlanarUncalibDeformableModel find_planar_uncalib_deformable_model FindPlanarUncalibDeformableModel FindPlanarUncalibDeformableModel — Unkalibrierte Suche nach den besten Matches eines planaren deformierbaren
Modells in einem Bild.
find_planar_uncalib_deformable_model (Image : : ModelID , AngleStart , AngleExtent , ScaleRMin , ScaleRMax , ScaleCMin , ScaleCMax , MinScore , NumMatches , MaxOverlap , NumLevels , Greediness , GenParamName , GenParamValue : HomMat2D , Score )
Herror T_find_planar_uncalib_deformable_model (const Hobject Image , const Htuple ModelID , const Htuple AngleStart , const Htuple AngleExtent , const Htuple ScaleRMin , const Htuple ScaleRMax , const Htuple ScaleCMin , const Htuple ScaleCMax , const Htuple MinScore , const Htuple NumMatches , const Htuple MaxOverlap , const Htuple NumLevels , const Htuple Greediness , const Htuple GenParamName , const Htuple GenParamValue , Htuple* HomMat2D , Htuple* Score )
Herror find_planar_uncalib_deformable_model (Hobject Image , const HTuple& ModelID , const HTuple& AngleStart , const HTuple& AngleExtent , const HTuple& ScaleRMin , const HTuple& ScaleRMax , const HTuple& ScaleCMin , const HTuple& ScaleCMax , const HTuple& MinScore , const HTuple& NumMatches , const HTuple& MaxOverlap , const HTuple& NumLevels , const HTuple& Greediness , const HTuple& GenParamName , const HTuple& GenParamValue , HTuple* HomMat2D , HTuple* Score )
HTuple HImage ::FindPlanarUncalibDeformableModel (const HDeformableModel& ModelID , const HTuple& AngleStart , const HTuple& AngleExtent , const HTuple& ScaleRMin , const HTuple& ScaleRMax , const HTuple& ScaleCMin , const HTuple& ScaleCMax , const HTuple& MinScore , const HTuple& NumMatches , const HTuple& MaxOverlap , const HTuple& NumLevels , const HTuple& Greediness , const HTuple& GenParamName , const HTuple& GenParamValue , HTuple* Score ) const
HTuple HDeformableModel ::FindPlanarUncalibDeformableModel (const HImage& Image , const HTuple& AngleStart , const HTuple& AngleExtent , const HTuple& ScaleRMin , const HTuple& ScaleRMax , const HTuple& ScaleCMin , const HTuple& ScaleCMax , const HTuple& MinScore , const HTuple& NumMatches , const HTuple& MaxOverlap , const HTuple& NumLevels , const HTuple& Greediness , const HTuple& GenParamName , const HTuple& GenParamValue , HTuple* Score ) const
void FindPlanarUncalibDeformableModel (const HObject& Image , const HTuple& ModelID , const HTuple& AngleStart , const HTuple& AngleExtent , const HTuple& ScaleRMin , const HTuple& ScaleRMax , const HTuple& ScaleCMin , const HTuple& ScaleCMax , const HTuple& MinScore , const HTuple& NumMatches , const HTuple& MaxOverlap , const HTuple& NumLevels , const HTuple& Greediness , const HTuple& GenParamName , const HTuple& GenParamValue , HTuple* HomMat2D , HTuple* Score )
HHomMat2DArray HDeformableModel ::FindPlanarUncalibDeformableModel (const HImage& Image , double AngleStart , double AngleExtent , double ScaleRMin , double ScaleRMax , double ScaleCMin , double ScaleCMax , double MinScore , Hlong NumMatches , double MaxOverlap , const HTuple& NumLevels , double Greediness , const HTuple& GenParamName , const HTuple& GenParamValue , HTuple* Score ) const
HHomMat2D HDeformableModel ::FindPlanarUncalibDeformableModel (const HImage& Image , double AngleStart , double AngleExtent , double ScaleRMin , double ScaleRMax , double ScaleCMin , double ScaleCMax , double MinScore , Hlong NumMatches , double MaxOverlap , Hlong NumLevels , double Greediness , const HTuple& GenParamName , const HTuple& GenParamValue , HTuple* Score ) const
HHomMat2DArray HImage ::FindPlanarUncalibDeformableModel (const HDeformableModel& ModelID , double AngleStart , double AngleExtent , double ScaleRMin , double ScaleRMax , double ScaleCMin , double ScaleCMax , double MinScore , Hlong NumMatches , double MaxOverlap , const HTuple& NumLevels , double Greediness , const HTuple& GenParamName , const HTuple& GenParamValue , HTuple* Score ) const
HHomMat2D HImage ::FindPlanarUncalibDeformableModel (const HDeformableModel& ModelID , double AngleStart , double AngleExtent , double ScaleRMin , double ScaleRMax , double ScaleCMin , double ScaleCMax , double MinScore , Hlong NumMatches , double MaxOverlap , Hlong NumLevels , double Greediness , const HTuple& GenParamName , const HTuple& GenParamValue , HTuple* Score ) const
void HOperatorSetX .FindPlanarUncalibDeformableModel ( [in] IHUntypedObjectX* Image , [in] VARIANT ModelID , [in] VARIANT AngleStart , [in] VARIANT AngleExtent , [in] VARIANT ScaleRMin , [in] VARIANT ScaleRMax , [in] VARIANT ScaleCMin , [in] VARIANT ScaleCMax , [in] VARIANT MinScore , [in] VARIANT NumMatches , [in] VARIANT MaxOverlap , [in] VARIANT NumLevels , [in] VARIANT Greediness , [in] VARIANT GenParamName , [in] VARIANT GenParamValue , [out] VARIANT* HomMat2d , [out] VARIANT* Score )
IHHomMat2DX* HDeformableModelX .FindPlanarUncalibDeformableModel ( [in] IHImageX* Image , [in] double AngleStart , [in] double AngleExtent , [in] double ScaleRMin , [in] double ScaleRMax , [in] double ScaleCMin , [in] double ScaleCMax , [in] double MinScore , [in] Hlong NumMatches , [in] double MaxOverlap , [in] VARIANT NumLevels , [in] double Greediness , [in] VARIANT GenParamName , [in] VARIANT GenParamValue , [out] VARIANT* Score )
IHHomMat2DX* HImageX .FindPlanarUncalibDeformableModel ( [in] IHDeformableModelX* ModelID , [in] double AngleStart , [in] double AngleExtent , [in] double ScaleRMin , [in] double ScaleRMax , [in] double ScaleCMin , [in] double ScaleCMax , [in] double MinScore , [in] Hlong NumMatches , [in] double MaxOverlap , [in] VARIANT NumLevels , [in] double Greediness , [in] VARIANT GenParamName , [in] VARIANT GenParamValue , [out] VARIANT* Score )
static void HOperatorSet .FindPlanarUncalibDeformableModel (HObject image , HTuple modelID , HTuple angleStart , HTuple angleExtent , HTuple scaleRMin , HTuple scaleRMax , HTuple scaleCMin , HTuple scaleCMax , HTuple minScore , HTuple numMatches , HTuple maxOverlap , HTuple numLevels , HTuple greediness , HTuple genParamName , HTuple genParamValue , out HTuple homMat2D , out HTuple score )
HHomMat2D[] HDeformableModel .FindPlanarUncalibDeformableModel (HImage image , double angleStart , double angleExtent , double scaleRMin , double scaleRMax , double scaleCMin , double scaleCMax , double minScore , int numMatches , double maxOverlap , HTuple numLevels , double greediness , HTuple genParamName , HTuple genParamValue , out HTuple score )
HHomMat2D HDeformableModel .FindPlanarUncalibDeformableModel (HImage image , double angleStart , double angleExtent , double scaleRMin , double scaleRMax , double scaleCMin , double scaleCMax , double minScore , int numMatches , double maxOverlap , int numLevels , double greediness , HTuple genParamName , HTuple genParamValue , out HTuple score )
HHomMat2D[] HImage .FindPlanarUncalibDeformableModel (HDeformableModel modelID , double angleStart , double angleExtent , double scaleRMin , double scaleRMax , double scaleCMin , double scaleCMax , double minScore , int numMatches , double maxOverlap , HTuple numLevels , double greediness , HTuple genParamName , HTuple genParamValue , out HTuple score )
HHomMat2D HImage .FindPlanarUncalibDeformableModel (HDeformableModel modelID , double angleStart , double angleExtent , double scaleRMin , double scaleRMax , double scaleCMin , double scaleCMax , double minScore , int numMatches , double maxOverlap , int numLevels , double greediness , HTuple genParamName , HTuple genParamValue , out HTuple score )
Der Operator find_planar_uncalib_deformable_model find_planar_uncalib_deformable_model FindPlanarUncalibDeformableModel find_planar_uncalib_deformable_model FindPlanarUncalibDeformableModel FindPlanarUncalibDeformableModel sucht die besten
NumMatches NumMatches NumMatches NumMatches NumMatches numMatches Instanzen eines perspektivisch verzerrten deformierbaren
Modells ModelID ModelID ModelID ModelID ModelID modelID in dem Suchbild Image Image Image Image Image image . Die Modelle müssen
vorher durch create_planar_uncalib_deformable_model create_planar_uncalib_deformable_model CreatePlanarUncalibDeformableModel create_planar_uncalib_deformable_model CreatePlanarUncalibDeformableModel CreatePlanarUncalibDeformableModel oder
read_deformable_model read_deformable_model ReadDeformableModel read_deformable_model ReadDeformableModel ReadDeformableModel erzeugt worden sein.
Die projektive Transformation (Homographie), die die Lage des gefundenen
Matches beschreibt, wird in HomMat2D HomMat2D HomMat2D HomMat2D HomMat2D homMat2D zurückgegeben. In dem Fall
dass mehrere Objekte gefunden werden, werden die verschiedenen Homographien
aneinandergefügt. Eine einzelne Homographie kann einfach durch
tuple_select_range(HomMat2D,Index*9,(Index+1)*9-1, SelectedHomMat2D)
extrahiert werden. Die verschiedenen Ergebnisse werden in abfallender
Reihenfolge nach Score Score Score Score Score score sortiert. Die Zeilen und Spaltenkoordinaten
des Ursprungs des deformierbaren Modells im Suchbild können durch Aufruf
von projective_trans_pixel(HomMat2D,0,0,Row,Column) bestimmt werden.
Normalerweise ist der Ursprung des Modells der
Schwerpunkt der Region des Bildes, das zur Erzeugung des Formmodells
mit create_planar_uncalib_deformable_model create_planar_uncalib_deformable_model CreatePlanarUncalibDeformableModel create_planar_uncalib_deformable_model CreatePlanarUncalibDeformableModel CreatePlanarUncalibDeformableModel verwendet wurde.
Ein anderer Ursprung kann mit set_deformable_model_origin set_deformable_model_origin SetDeformableModelOrigin set_deformable_model_origin SetDeformableModelOrigin SetDeformableModelOrigin gesetzt
werden. Für Visualisierungszwecke können die Modellkonturen, die durch
get_deformable_model_contours get_deformable_model_contours GetDeformableModelContours get_deformable_model_contours GetDeformableModelContours GetDeformableModelContours extrahiert wurden, mit Hilfe
des Operators projective_trans_contour_xld projective_trans_contour_xld ProjectiveTransContourXld projective_trans_contour_xld ProjectiveTransContourXld ProjectiveTransContourXld und die Stelle, die
durch HomMat2D HomMat2D HomMat2D HomMat2D HomMat2D homMat2D gegeben ist, dargestellt werden.
Zusätzlich wird in Score Score Score Score Score score die Bewertung der gefundenen
Instanzen zurückgegeben. Die Bewertung ist eine Zahl zwischen 0 und
1 und ist ein ungefähres Maß dafür, welcher Anteil des Modells im
Bild zu sehen ist. Falls z.B. die Hälfte des Modells im Bild
verdeckt ist, kann die Bewertung nicht größer als 0.5 sein.
Eingabeparameter im Detail
Image:
Der Definitionsbereich des Bildes Image Image Image Image Image image gibt den
Suchbereich für den Referenzpunkt des Modells an, d.h. für den
Schwerpunkt der Region des Bildes, das zur Erzeugung des deformierbaren
Modells mit create_planar_uncalib_deformable_model create_planar_uncalib_deformable_model CreatePlanarUncalibDeformableModel create_planar_uncalib_deformable_model CreatePlanarUncalibDeformableModel CreatePlanarUncalibDeformableModel verwendet wurde.
Ein eventuell mit set_deformable_model_origin set_deformable_model_origin SetDeformableModelOrigin set_deformable_model_origin SetDeformableModelOrigin SetDeformableModelOrigin anders gesetzter
Ursprung wird nicht berücksichtigt. Das Modell wird innerhalb des
Definitionsbereiches des Eingabebildes nur an den Stellen gesucht,
an denen das Modell vollständig in das Bild passt. Das bedeutet,
dass das Modell nicht gefunden werden kann, wenn es aus dem Bild
herausragt, selbst wenn eine Bewertung größer als MinScore MinScore MinScore MinScore MinScore minScore erreichen
würde (siehe unten).
Außerdem kann es sein, dass das Modell, wenn es in einer der
Pyramidenebenen den Bildrand berührt, ebenfalls nicht gefunden wird,
auch wenn es im ursprünglichen Bild vollständig enthalten ist. Als
Daumenregel gilt hier, dass das Modell dann nicht gefunden werden
könnte, wenn seine Distanz zum Bildrand unter
fällt.
Dieses Verhalten
kann mit set_system('border_shape_models','true') set_system("border_shape_models","true") SetSystem("border_shape_models","true") set_system("border_shape_models","true") SetSystem("border_shape_models","true") SetSystem("border_shape_models","true") umgestellt
werden, so dass auch Modelle gefunden werden, die aus dem Bild
herausragen, falls sie eine Bewertung größer als MinScore MinScore MinScore MinScore MinScore minScore
erreichen. Dabei werden Punkte außerhalb des Bildes als verdeckt
angesehen, d.h. sie verringern die Bewertung. Es ist zu beachten,
dass dieser Modus die Laufzeit der Suche erhöht.
Es ist weiter zu beachten, dass in seltenen
Fällen, die typischerweise nur in künstlichen Bildern auftreten,
auch dann kein Modell gefunden wird, wenn das Modell in einer
Pyramidenebene die reduzierte Bilddomäne berührt. In diesem Fall
kann es helfen, die Region der Domäne um
, z.B., mit
dilation_circle dilation_circle DilationCircle dilation_circle DilationCircle DilationCircle zu vergrößern.
Winkel- und Skalierungs-Parameter:
Die Parameter AngleStart AngleStart AngleStart AngleStart AngleStart angleStart , AngleExtent AngleExtent AngleExtent AngleExtent AngleExtent angleExtent , ScaleRMin ScaleRMin ScaleRMin ScaleRMin ScaleRMin scaleRMin ,
ScaleRMax ScaleRMax ScaleRMax ScaleRMax ScaleRMax scaleRMax , ScaleCMin ScaleCMin ScaleCMin ScaleCMin ScaleCMin scaleCMin und ScaleCMax ScaleCMax ScaleCMax ScaleCMax ScaleCMax scaleCMax legen
einen grundsätzlichen Bereich bis zu einer anisotropen Transformation fest,
der auf der obersten Pyramidenstufe des Bildes erschöpfend durchsucht wird.
Die Parameter AngleStart AngleStart AngleStart AngleStart AngleStart angleStart und AngleExtent AngleExtent AngleExtent AngleExtent AngleExtent angleExtent legen den
Winkelbereich für die möglichen Rotationen des Modells im Bild fest,
die erschöpfend durchsucht werden. ScaleRMin ScaleRMin ScaleRMin ScaleRMin ScaleRMin scaleRMin , ScaleRMax ScaleRMax ScaleRMax ScaleRMax ScaleRMax scaleRMax ,
ScaleCMin ScaleCMin ScaleCMin ScaleCMin ScaleCMin scaleCMin und ScaleCMax ScaleCMax ScaleCMax ScaleCMax ScaleCMax scaleCMax bestimmen den möglichen Bereich
von anisotropen Skalierungen die im Bild erschöpfend durchsucht werden.
Eine Skalierung von 1 für beide Skalierungsfaktoren entspricht
der Originalgröße des Modells.
Es ist zu beachten, dass der Operator
find_planar_uncalib_deformable_model find_planar_uncalib_deformable_model FindPlanarUncalibDeformableModel find_planar_uncalib_deformable_model FindPlanarUncalibDeformableModel FindPlanarUncalibDeformableModel Objekte außerhalb dieses
Bereiches, z.B. auch dann wenn das Objekt perspektivisch verzerrt ist,
findet. Demzufolge sind die Bereichsparameter eine Art Hinweis für den
Suchalgorithmus find_planar_uncalib_deformable_model find_planar_uncalib_deformable_model FindPlanarUncalibDeformableModel find_planar_uncalib_deformable_model FindPlanarUncalibDeformableModel FindPlanarUncalibDeformableModel , und ausgehend
von diesem Bereich kann in einem größeren Bereich, der von der Anzahl der
Pyramidenstufen wie auch vom Bildinhalt abhängt, detektiert werden.
Es ist zum Beispiel wichtig zu beachten, dass kleine Skalierungsunterschiede
ohne die explizite Angabe eines Skalierungsbereichs detektiert werden, was
zu einer schnelleren Ausführungszeit führt.
Falls das Objekt signifikante Skalierungsunterschiede aufweist, aber nur
kleine perspektivische Verzeichnungen, benötigt man nur eine isotrope
Skalierung und ScaleCMin ScaleCMin ScaleCMin ScaleCMin ScaleCMin scaleCMin wie auch ScaleCMax ScaleCMax ScaleCMax ScaleCMax ScaleCMax scaleCMax sollten auf
den Wert 1.0 gesetzt werden, um zu signalisieren, dass keine anisotrope
Skalierung benötigt wird. Falls das Objekt auch unter deutlichen
Verkippungen erkannt werden soll, benötigt man eine anisotrope Skalierung.
In diesem Fall wird die anisotrope Skalierung durch ScaleRMin ScaleRMin ScaleRMin ScaleRMin ScaleRMin scaleRMin und
ScaleRMax ScaleRMax ScaleRMax ScaleRMax ScaleRMax scaleRMax in Zeilenrichtung, und durch ScaleCMin ScaleCMin ScaleCMin ScaleCMin ScaleCMin scaleCMin und
ScaleCMax ScaleCMax ScaleCMax ScaleCMax ScaleCMax scaleCMax in Spaltenrichtung eingestellt.
Es ist zu beachten, dass die Transformationen intern so behandelt
werden, dass erst die Skalierungen und dann die Rotation angewendet
werden. Daher sollte das Modell im Normalfall so ausgerichtet
werden, dass es im Modellbild horizontal oder vertikal erscheint.
Zusätzlich verarbeitet find_planar_uncalib_deformable_model find_planar_uncalib_deformable_model FindPlanarUncalibDeformableModel find_planar_uncalib_deformable_model FindPlanarUncalibDeformableModel FindPlanarUncalibDeformableModel die
Parameter 'angle_step', 'scale_r_step' und 'scale_c_step', die mit dem
Operator create_planar_uncalib_deformable_model create_planar_uncalib_deformable_model CreatePlanarUncalibDeformableModel create_planar_uncalib_deformable_model CreatePlanarUncalibDeformableModel CreatePlanarUncalibDeformableModel gesetzt werden
können, oder aber, wie unten beschrieben, mit den generischen Parametern
GenParamName GenParamName GenParamName GenParamName GenParamName genParamName und GenParamValue GenParamValue GenParamValue GenParamValue GenParamValue genParamValue . In den meisten Fällen führen die
Werte, die automatisch mit create_planar_uncalib_deformable_model create_planar_uncalib_deformable_model CreatePlanarUncalibDeformableModel create_planar_uncalib_deformable_model CreatePlanarUncalibDeformableModel CreatePlanarUncalibDeformableModel
berechnet werden können, zu guten Resultaten.
Der Parameter 'angle_step' bestimmt die Schrittweite innerhalb des ausgewählten Winkelbereichs. Der Parameter 'angle_step' sollte aufgrund der Größe des
Objekts gewählt werden. Kleinere Modelle besitzen nur eine kleine Anzahl
von verschiedenen diskreten Rotationen im Bild. Deshalb sollte 'angle_step' für kleinere Modelle größer gewählt werden. Falls AngleExtent AngleExtent AngleExtent AngleExtent AngleExtent angleExtent kein ganzzahliges
Vielfaches von 'angle_step' ist, wird 'angle_step' entsprechend angepasst.
Die Parameter 'scale_r_step' und 'scale_c_step' bestimmen die Schrittweite
innerhalb des Skalierungsbereichs. Wie auch 'angle_step' sollten 'scale_r_step'
und 'scale_c_step' aufgrund der Größe des Modells gewählt werden.
Falls der jeweilige Skalierungsbereich kein ganzzahliges Vielfaches von
'scale_r_step' und 'scale_c_step' ist, werden 'scale_r_step'
und 'scale_c_step' entsprechend angepasst.
MinScore:
Der Parameter MinScore MinScore MinScore MinScore MinScore minScore bestimmt, welchen Score ein potenzieller
Match mindestens haben muss, damit er als Instanz des Modells im Bild
angesehen wird. Umso höher MinScore MinScore MinScore MinScore MinScore minScore gewählt wird, umso schneller
wird die Suche im Bild. Falls das Modell niemals verdeckt wird,
kann MinScore MinScore MinScore MinScore MinScore minScore sogar auf 0.8 oder sogar 0.9 gesetzt werden.
NumMatches:
Die maximale Anzahl der Instanzen, die gefunden werden können, kann mit
NumMatches NumMatches NumMatches NumMatches NumMatches numMatches angegeben werden. Falls mehr als NumMatches NumMatches NumMatches NumMatches NumMatches numMatches
Instanzen einen Wert größer als MinScore MinScore MinScore MinScore MinScore minScore haben, werden nur die
besten NumMatches NumMatches NumMatches NumMatches NumMatches numMatches zurückgegeben. Falls weniger als
NumMatches NumMatches NumMatches NumMatches NumMatches numMatches gefunden werden, wird nur diese Anzahl zurückgegeben,
das heißt, dass der Parameter MinScore MinScore MinScore MinScore MinScore minScore Vorrang vor
NumMatches NumMatches NumMatches NumMatches NumMatches numMatches hat. Sollen alle Modellinstanzen, deren
Bewertung MinScore MinScore MinScore MinScore MinScore minScore übersteigt, im Bild gefunden werden,
muss NumMatches NumMatches NumMatches NumMatches NumMatches numMatches auf 0 gesetzt werden.
In seltenen Fällen muss NumMatches NumMatches NumMatches NumMatches NumMatches numMatches auf
einen höheren Wert als die beabsichtigte Anzahl von gefundenen
Instanzen gesetzt werden. Das ist z.B. der Fall, wenn ein kleiner Wert für
MinScore MinScore MinScore MinScore MinScore minScore gesetzt wurde.
Beim Tracken der Matches durch die Bildpyramide werden auf jeder
Ebene Matches verworfen, die wenig vielversprechend sind. Dadurch ist
es möglich, dass Matches verworfen werden, die auf der niedrigsten
Pyramidenebene einen höheren Score gehabt hätten. Beispielsweise kann das
dazu führen, dass der gefundene Match für NumMatches NumMatches NumMatches NumMatches NumMatches numMatches gleich
1 nicht mit dem Match mit dem höchsten Score übereinstimmt, der von
NumMatches NumMatches NumMatches NumMatches NumMatches numMatches gleich 0 oder > 1 zurückgegeben wird.
Falls erwartet wird, dass mehrere Objekte mit einem ähnlichen Score gefunden
werden können, aber nur das Modell mit dem höchsten Score
zurückgegeben werden soll, kann es vorteilhaft sein, NumMatches NumMatches NumMatches NumMatches NumMatches numMatches zu
erhöhen, und dann den Match mit dem höchsten Score auszuwählen.
MaxOverlap:
Falls das Modell Symmetrien aufweist, kann es vorkommen, dass
mehrere Instanzen an ähnlichen Positionen im Bild, aber mit
verschiedenen Rotationen gefunden werden. Mit dem Parameter
MaxOverlap MaxOverlap MaxOverlap MaxOverlap MaxOverlap maxOverlap kann bestimmt werden, um welchen Anteil,
ausgedrückt als Zahl zwischen 0 und 1, sich zwei Instanzen höchstens
überlappen dürfen, damit sie als verschieden angesehen werden, und
somit zurückgeliefert werden. Falls sich zwei Instanzen um mehr als
MaxOverlap MaxOverlap MaxOverlap MaxOverlap MaxOverlap maxOverlap überlappen, wird nur die beste gefundene Instanz
zurückgeliefert. Die Berechnung der Überlappung erfolgt anhand der
kleinsten umschließenden Rechtecke beliebiger Orientierung der
Konturen (siehe smallest_rectangle2 smallest_rectangle2 SmallestRectangle2 smallest_rectangle2 SmallestRectangle2 SmallestRectangle2 ). Bei
MaxOverlap MaxOverlap MaxOverlap MaxOverlap MaxOverlap maxOverlap =0 dürfen sich die gefundenen Instanzen nicht
überlappen, bei MaxOverlap MaxOverlap MaxOverlap MaxOverlap MaxOverlap maxOverlap =1 werden alle gefundenen
Instanzen zurückgeliefert.
GenParamName, GenParamValue:
Mit Hilfe der generischen Parameter GenParamName GenParamName GenParamName GenParamName GenParamName genParamName und
GenParamValue GenParamValue GenParamValue GenParamValue GenParamValue genParamValue können mögliche Parameter angepasst werden,
die typischerweise nicht von dem Benutzer verändert werden müssen.
Grundsätzlich wird die Position mit hoher Subpixelgenauigkeit
('least_squares_very_high' "least_squares_very_high" "least_squares_very_high" "least_squares_very_high" "least_squares_very_high" "least_squares_very_high" ) durch eine kleinste-quadrate Ausgleichung
berechnet, das heißt, das die Abstände von Modellpunkten
zu ihren korrespondierenden Bildpunkten minimiert werden. Falls
diese hohe Genauigkeit von einer Anwendung nicht benötigt wird, kann
die Subpixelgenaue Verfeinerung verringert oder sogar ganz ausgeschaltet
werden, um die Laufzeit zu verkürzen. Hierzu wird
'sub_pixel' in GenParamName GenParamName GenParamName GenParamName GenParamName genParamName und 'none' "none" "none" "none" "none" "none" ,
'least_squares' "least_squares" "least_squares" "least_squares" "least_squares" "least_squares" oder 'least_squares_high' "least_squares_high" "least_squares_high" "least_squares_high" "least_squares_high" "least_squares_high" für
GenParamValue GenParamValue GenParamValue GenParamValue GenParamValue genParamValue übergeben. Eine weitere Anwendung für GenParamName GenParamName GenParamName GenParamName GenParamName genParamName
und GenParamValue GenParamValue GenParamValue GenParamValue GenParamValue genParamValue ist das Überschreiben der Diskretisierungsschritte
des Suchraums 'angle_step', 'scale_r_step' und 'scale_c_step', die definiert
wurden als das Model mit create_planar_uncalib_deformable_model create_planar_uncalib_deformable_model CreatePlanarUncalibDeformableModel create_planar_uncalib_deformable_model CreatePlanarUncalibDeformableModel CreatePlanarUncalibDeformableModel
erzeugt wurde.
Wie in create_planar_uncalib_deformable_model create_planar_uncalib_deformable_model CreatePlanarUncalibDeformableModel create_planar_uncalib_deformable_model CreatePlanarUncalibDeformableModel CreatePlanarUncalibDeformableModel beschrieben, führt
der deformierbare Matching-algorithmus eine vollkommene Suche des
Basissuchbereichs, der mit AngleStart AngleStart AngleStart AngleStart AngleStart angleStart , AngleExtent AngleExtent AngleExtent AngleExtent AngleExtent angleExtent ,
ScaleRMin ScaleRMin ScaleRMin ScaleRMin ScaleRMin scaleRMin , ScaleRMax ScaleRMax ScaleRMax ScaleRMax ScaleRMax scaleRMax , ScaleCMin ScaleCMin ScaleCMin ScaleCMin ScaleCMin scaleCMin und
ScaleCMax ScaleCMax ScaleCMax ScaleCMax ScaleCMax scaleCMax angegeben wird, aus. Um die Erkennung von sogar
perspektivisch verzeichneten Objekten zu erlauben, wird eine zusätzliche
Transformation geschätzt. Diese zusätzliche Transformation bring
das Modell vom ursprünglichen Suchbereich in einen größeren,
perspektivisch verzeichneten Suchbereich. Dadurch, dass perspektivische
Verzeichnungen erlaubt werden, steigt das Risiko von falschen Matches.
Eine zusätzliche Verwendung des Parameters GenParamName GenParamName GenParamName GenParamName GenParamName genParamName ist es,
falsch als positiv Klassifizierte Matches zu verwerfen. Das ist zum Beispiel
nötig, falls ein kleiner Wert in MinScore MinScore MinScore MinScore MinScore minScore angegeben wurde und
das Bild signifikanten Hintergrund mit ähnlichem Aussehen wie das Modell
enthält.
Um beliebige, zufällige, perspektivische Verzeichnungen zu unterdrücken,
können die Parameter 'angle_change_restriction' "angle_change_restriction" "angle_change_restriction" "angle_change_restriction" "angle_change_restriction" "angle_change_restriction" und
'aniso_scale_change_restriction' "aniso_scale_change_restriction" "aniso_scale_change_restriction" "aniso_scale_change_restriction" "aniso_scale_change_restriction" "aniso_scale_change_restriction" in GenParamName GenParamName GenParamName GenParamName GenParamName genParamName verwendet werden.
Mit 'angle_change_restriction' "angle_change_restriction" "angle_change_restriction" "angle_change_restriction" "angle_change_restriction" "angle_change_restriction" wird die maximal tolerierte
Winkelverzeichnung eingeschränkt (zwischen dem Standardwert 0.0, der
beliebige Deformationen erlaubt, und
,
der keine Deformation erlaubt.
Dieser Parameter überprüft, ob ein Winkel von 90 Grad an den Ecken des an den
Achsen ausgerichteten Rechtecks um die Modellpunkte um mehr als den
korrespondierenden GenParamValue GenParamValue GenParamValue GenParamValue GenParamValue genParamValue für die Modellinstanz verändert wird.
Es ist zu beachten, dass dieser Parameter sowohl den affinen (die Scherung)
als auch den perspektivischen Anteil der Transformation einschränkt.
Zum Beispiel kann mit 'angle_change_restriction' "angle_change_restriction" "angle_change_restriction" "angle_change_restriction" "angle_change_restriction" "angle_change_restriction" ein rechteckiges Modell
davon abgehalten werden sich zu einem Parallelogram oder Trapez zu verformen.
Mit dem Parameter 'aniso_scale_change_restriction' "aniso_scale_change_restriction" "aniso_scale_change_restriction" "aniso_scale_change_restriction" "aniso_scale_change_restriction" "aniso_scale_change_restriction" kann der anisotrope
Skalierungsanteil eingeschränkt werden (der kleinere Anteil geteilt durch den
größeren Skalierungsfaktor).
Der Wertebereich dieses Parameters reicht vom Standardwert 0.0, der beliebige
Deformationen erlaubt, bis zu 1.0, wo keine Deformationen erlaubt sind.
Ein Beispiel dafür ist, dass mit diesem Parameter ein quadratisches Modell
nicht zu einem rechteckigen Modell verformt werden kann.
NumLevels:
Mit NumLevels NumLevels NumLevels NumLevels NumLevels numLevels wird die Anzahl der Pyramidenebenen
festgelegt, die bei der Suche verwendet werden soll. Die Anzahl der
Ebenen wird gegebenenfalls auf den bei der Erzeugung mit
create_planar_uncalib_deformable_model create_planar_uncalib_deformable_model CreatePlanarUncalibDeformableModel create_planar_uncalib_deformable_model CreatePlanarUncalibDeformableModel CreatePlanarUncalibDeformableModel angegebenen Bereich beschnitten.
Falls NumLevels NumLevels NumLevels NumLevels NumLevels numLevels als 0 angegeben wird, wird die mit
create_planar_uncalib_deformable_model create_planar_uncalib_deformable_model CreatePlanarUncalibDeformableModel create_planar_uncalib_deformable_model CreatePlanarUncalibDeformableModel CreatePlanarUncalibDeformableModel angegebene Anzahl verwendet.
Greediness:
Der Parameter Greediness Greediness Greediness Greediness Greediness greediness bestimmt, wie „gierig“ die Suche
durchgeführt werden soll. Für Greediness Greediness Greediness Greediness Greediness greediness =0 wird eine
sichere Suchheuristik verwendet, die das Modell, falls im Bild
vorhanden, immer findet, wenn die anderen Parameter passend gesetzt sind.
Allerdings ist die Suche hiermit relativ
zeitaufwendig. Für Greediness Greediness Greediness Greediness Greediness greediness =1 wird eine unsichere
Suchheuristik verwendet, bei der es in seltenen Fällen vorkommen
kann, dass das Modell nicht gefunden wird, obwohl es im Bild
sichtbar ist. Für Greediness Greediness Greediness Greediness Greediness greediness =1 wird die maximale
Suchgeschwindigkeit erreicht. In den allermeisten Fällen wird das
Formmodell für Greediness Greediness Greediness Greediness Greediness greediness =0.9 immer sicher gefunden.
Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
Automatisch parallelisiert auf interner Datenebene.
Eingabebild, in dem das Modell gefunden werden soll.
Kleinste auftretende Rotation des Modells.
Defaultwert: -0.39
Wertevorschläge: -3.14, -1.57, -0.79, -0.39, -0.20, 0.0
Ausdehnung des Winkelbereichs.
Defaultwert: 0.78
Wertevorschläge: 6.29, 3.14, 1.57, 0.79, 0.39, 0.0
Restriktion: AngleExtent >= 0
Kleinste auftretende Skalierung des Modells in
Zeilenrichtung.
Defaultwert: 1.0
Wertevorschläge: 0.5, 0.6, 0.7, 0.8, 0.9, 1.0
Restriktion: ScaleRMin > 0
Größte auftretende Skalierung des Modells in
Zeilenrichtung.
Defaultwert: 1.0
Wertevorschläge: 1.0, 1.1, 1.2, 1.3, 1.4, 1.5
Restriktion: ScaleRMax >= ScaleRMin
Kleinste auftretende Skalierung des Modells in
Spaltenrichtung.
Defaultwert: 1.0
Wertevorschläge: 0.5, 0.6, 0.7, 0.8, 0.9, 1.0
Restriktion: ScaleCMin > 0
Größte auftretende Skalierung des Modells in
Spaltenrichtung.
Defaultwert: 1.0
Wertevorschläge: 1.0, 1.1, 1.2, 1.3, 1.4, 1.5
Restriktion: ScaleCMax >= ScaleCMin
Minimale Bewertung der zu findenden Instanzen
des Modells.
Defaultwert: 0.5
Wertevorschläge: 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0
Typischer Wertebereich: 0
≤
MinScore
MinScore
MinScore
MinScore
MinScore
minScore
≤
1
Minimale Schrittweite: 0.01
Empfohlene Schrittweite: 0.05
Anzahl der zu findenden Instanzen des Modells
(oder 0 für alle Treffer).
Defaultwert: 1
Wertevorschläge: 0, 1, 2, 3, 4, 5, 10, 20
Maximale Überlappung der zu findenden
Instanzen des Modells.
Defaultwert: 1.0
Wertevorschläge: 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0
Typischer Wertebereich: 0
≤
MaxOverlap
MaxOverlap
MaxOverlap
MaxOverlap
MaxOverlap
maxOverlap
≤
1
Minimale Schrittweite: 0.01
Empfohlene Schrittweite: 0.05
Anzahl der verwendeten Pyramidenebenen (und
unterste zu verwendende Pyramidenebene falls
|NumLevels NumLevels NumLevels NumLevels NumLevels numLevels | = 2).
Defaultwert: 0
Werteliste: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
„Gierigkeit“ der Suchheuristik (0: sicher
aber langsam; 1: schnell aber Matches können
„übersehen“ werden).
Defaultwert: 0.9
Wertevorschläge: 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0
Typischer Wertebereich: 0
≤
Greediness
Greediness
Greediness
Greediness
Greediness
greediness
≤
1
Minimale Schrittweite: 0.01
Empfohlene Schrittweite: 0.05
Namen der allgemeinen Parameter.
Defaultwert: []
Werteliste: [], 'angle_change_restriction' "angle_change_restriction" "angle_change_restriction" "angle_change_restriction" "angle_change_restriction" "angle_change_restriction" , 'angle_step' "angle_step" "angle_step" "angle_step" "angle_step" "angle_step" , 'aniso_scale_change_restriction' "aniso_scale_change_restriction" "aniso_scale_change_restriction" "aniso_scale_change_restriction" "aniso_scale_change_restriction" "aniso_scale_change_restriction" , 'scale_c_step' "scale_c_step" "scale_c_step" "scale_c_step" "scale_c_step" "scale_c_step" , 'scale_r_step' "scale_r_step" "scale_r_step" "scale_r_step" "scale_r_step" "scale_r_step" , 'subpixel' "subpixel" "subpixel" "subpixel" "subpixel" "subpixel"
Werte der allgemeinen Parameter.
Defaultwert: []
Werteliste: [], 'least_squares' "least_squares" "least_squares" "least_squares" "least_squares" "least_squares" , 'least_squares_high' "least_squares_high" "least_squares_high" "least_squares_high" "least_squares_high" "least_squares_high" , 'least_squares_very_high' "least_squares_very_high" "least_squares_very_high" "least_squares_very_high" "least_squares_very_high" "least_squares_very_high" , 'none' "none" "none" "none" "none" "none"
Homographie zwischen Modell und gefundenem Objekt.
Bewertung der gefundenen Instanzen des Modells.
Sind die Parameterwerte korrekt, dann liefert
find_planar_uncalib_deformable_model find_planar_uncalib_deformable_model FindPlanarUncalibDeformableModel find_planar_uncalib_deformable_model FindPlanarUncalibDeformableModel FindPlanarUncalibDeformableModel den Wert 2 (H_MSG_TRUE). Gegebenenfalls
wird eine Fehlerbehandlung durchgeführt.
create_planar_uncalib_deformable_model create_planar_uncalib_deformable_model CreatePlanarUncalibDeformableModel create_planar_uncalib_deformable_model CreatePlanarUncalibDeformableModel CreatePlanarUncalibDeformableModel ,
read_deformable_model read_deformable_model ReadDeformableModel read_deformable_model ReadDeformableModel ReadDeformableModel
find_planar_calib_deformable_model find_planar_calib_deformable_model FindPlanarCalibDeformableModel find_planar_calib_deformable_model FindPlanarCalibDeformableModel FindPlanarCalibDeformableModel
Matching