set_generic_shape_model_paramT_set_generic_shape_model_paramSetGenericShapeModelParamSetGenericShapeModelParamset_generic_shape_model_param (Operator)

Name

set_generic_shape_model_paramT_set_generic_shape_model_paramSetGenericShapeModelParamSetGenericShapeModelParamset_generic_shape_model_param — Setzen ausgewählter Parameter eines Formmodells.

Signatur

set_generic_shape_model_param( : : ModelID, GenParamName, GenParamValue : )

Herror T_set_generic_shape_model_param(const Htuple ModelID, const Htuple GenParamName, const Htuple GenParamValue)

void SetGenericShapeModelParam(const HTuple& ModelID, const HTuple& GenParamName, const HTuple& GenParamValue)

void HShapeModel::SetGenericShapeModelParam(const HTuple& GenParamName, const HTuple& GenParamValue) const

static void HOperatorSet.SetGenericShapeModelParam(HTuple modelID, HTuple genParamName, HTuple genParamValue)

void HShapeModel.SetGenericShapeModelParam(HTuple genParamName, HTuple genParamValue)

def set_generic_shape_model_param(model_id: HHandle, gen_param_name: Sequence[str], gen_param_value: Sequence[Union[int, float, str]]) -> None

Beschreibung

Der Operator set_generic_shape_model_paramset_generic_shape_model_paramSetGenericShapeModelParamSetGenericShapeModelParamSetGenericShapeModelParamset_generic_shape_model_param setzt die Parameter GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name des Formmodells ModelIDModelIDModelIDModelIDmodelIDmodel_id auf die in GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value gegebenen Werte.

Verschiedene Aspekte des Matching-Vorgangs können über die in GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name auswählbaren Parameter gesteuert werden. In den Parameterbeschreibungen weiter unten sind diese nach den folgenden Kategorien gruppiert (wobei die Kategorie den Hauptverwendungszweck, aber nicht notwendigerweise den einzigen Zweck des jeweiligen Parameters angibt):

Modifizieren des Modells
Finden von Modellinstanzen
  1. Modifizieren der Instanz

  2. Aussortieren der gefundenen Matches

  3. Grauwertbehandlung

  4. Verfeinerung

  5. Bildpyramide

  6. Ausgabe

Rechnerressourcen für die Suche

Nachfolgend werden die für die verschiedenen Kategorien setzbaren Parameter gelistet und Fälle in denen Parameterwerte automatisch angepasst werden aufgeführt.

Modifizieren des Modells

In diesem Abschnitt werden die Parameter aufgelistet und erläutert, die das Modell ModelIDModelIDModelIDModelIDmodelIDmodel_id selbst modifizieren. Wird ein zugehöriger Wert verändert, ist es notwendig das angepasste Modell vor dem Matching zu trainieren. Folgende Parameter GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name werden unterstützt:

Kontrast

Der Kontrast wird als Maß für lokale Grauwertdifferenzen verwendet mit Hilfe derer Objekte vom Hintergrund oder Teile von Objekten untereinander unterschieden werden. Für das Modell werden nur die Pixel gewählt, welche den gewünschten Kontrasteigenschaften in ihrer Umgebung entsprechen. Der gewünschte Kontrast kann ein einfacher Schwellenwert oder ein Hysterese-Schwellenwert sein, je nach dem welche Werte für 'contrast_low'"contrast_low""contrast_low""contrast_low""contrast_low""contrast_low" und 'contrast_high'"contrast_high""contrast_high""contrast_high""contrast_high""contrast_high" gesetzt wurden:

Für weitere Informationen zu Kontrast und dessen Einfluss auf das Matching mit Formmodellen wird auf den „Solution Guide II-B - Matching“ verwiesen.

In bestimmten Fällen kann es vorkommen, dass die automatische Bestimmung des Kontrastschwellenwerts nicht ausreichend ist. Daher sollte in diesen Fällen ein manuelles Setzen der Kontrastparameter bevorzugt werden, beispielsweise falls bestimmte Modellkomponenten aus anwendungsspezifischen Gründen mit inbegriffen oder unterdrückt werden sollen, oder wenn das Objekt verschiedene Kontrasteigenschaften aufweist. Die Kontrast-Schwellenwerte sollten mit inspect_shape_modelinspect_shape_modelInspectShapeModelInspectShapeModelInspectShapeModelinspect_shape_model überprüft werden bevor das Modell an train_generic_shape_modeltrain_generic_shape_modelTrainGenericShapeModelTrainGenericShapeModelTrainGenericShapeModeltrain_generic_shape_model übergeben wird.

Rotation

Die Spanne möglicher Rotationen von Formmodellen liegt zwischen 0 und 6.28 (= ), kann aber für die Suche eingeschränkt werden. Der Suchraum und damit die Diskretisierungsschritte für die Winkel kann modifiziert werden mit:

Skalierung

Der Suchraum und somit der Suchbereich sowie die Diskretisierungsschritte für die Skalierung kann mit Skalierungsparametern modifiziert werden. Die folgenden Tabelle gibt einen Überblick darüber welche Parameter für welche Art von Skalierung gesetzt werden können. Ein Skalierungswert von 1.0 entspricht dabei der Originalgröße des Modells in der entsprechenden Richtung.

GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name Isotrope Skalierung Anisotrope Skalierung
'iso_scale_max'"iso_scale_max""iso_scale_max""iso_scale_max""iso_scale_max""iso_scale_max" x
'iso_scale_min'"iso_scale_min""iso_scale_min""iso_scale_min""iso_scale_min""iso_scale_min" x
'iso_scale_step'"iso_scale_step""iso_scale_step""iso_scale_step""iso_scale_step""iso_scale_step" x
'scale_row_max'"scale_row_max""scale_row_max""scale_row_max""scale_row_max""scale_row_max" x
'scale_row_min'"scale_row_min""scale_row_min""scale_row_min""scale_row_min""scale_row_min" x
'scale_row_step'"scale_row_step""scale_row_step""scale_row_step""scale_row_step""scale_row_step" x
'scale_column_max'"scale_column_max""scale_column_max""scale_column_max""scale_column_max""scale_column_max" x
'scale_column_min'"scale_column_min""scale_column_min""scale_column_min""scale_column_min""scale_column_min" x
'scale_column_step'"scale_column_step""scale_column_step""scale_column_step""scale_column_step""scale_column_step" x
Metrik

Größe

Bildpyramide

Störungen

Finden von Modellinstanzen

In diesem Abschnitt werden die Parameter aufgelistet und erläutert, die die Suche mit dem Modell ModelIDModelIDModelIDModelIDmodelIDmodel_id modifizieren. Wird ein zugehöriger Wert verändert ist es nicht notwendig das Modell zu trainieren, außer ein zuvor nicht durch automatische Schätzung ermittelter Wert soll nun von train_generic_shape_modeltrain_generic_shape_modelTrainGenericShapeModelTrainGenericShapeModelTrainGenericShapeModeltrain_generic_shape_model automatisch geschätzt werden. Die Beschreibungen dieser Parameter enthalten eine entsprechende Bemerkung. Folgende Parameter GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name werden unterstützt:

  1. Modifizieren der Instanz

    Rotation

    • 'angle_start'"angle_start""angle_start""angle_start""angle_start""angle_start":

      Bestimmt den Startwert des Winkelbereichs möglicher Rotationen, für die das Modell gesucht wird.

      Mögliche Werte: 0.0, -3.14, 3.14.

      Default: 0.0.

    • 'angle_end'"angle_end""angle_end""angle_end""angle_end""angle_end"

      Bestimmt den Endwert des Winkelbereichs möglicher Rotationen, für die das Modell gesucht wird.

      Mögliche Werte: 0.0, 3.14, 6.28.

      Default: 6.28 (= ).

    Die Werte werden auf den Suchbereich abgebildet. Beispiel: 'angle_start'"angle_start""angle_start""angle_start""angle_start""angle_start" = '-rad(10)'"-rad(10)""-rad(10)""-rad(10)""-rad(10)""-rad(10)", 'angle_end'"angle_end""angle_end""angle_end""angle_end""angle_end" = 'rad(10)'"rad(10)""rad(10)""rad(10)""rad(10)""rad(10)" sucht nach Matches in den Winkelbereichen [rad(350), rad(360)] und [0, rad(10)].

    Skalierung

    Der Skalierungsbereich, der für das Modell bestimmt wird kann weiter eingeschränkt werden. Wird für diese Parameter der Wert auf 'auto'"auto""auto""auto""auto""auto" gesetzt, dann wird der Wert beim Aufruf von train_generic_shape_modeltrain_generic_shape_modelTrainGenericShapeModelTrainGenericShapeModelTrainGenericShapeModeltrain_generic_shape_model geschätzt.

    GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name Isotrope Skalierung Anisotrope Skalierung
    'restrict_iso_scale_max'"restrict_iso_scale_max""restrict_iso_scale_max""restrict_iso_scale_max""restrict_iso_scale_max""restrict_iso_scale_max" x
    'restrict_iso_scale_min'"restrict_iso_scale_min""restrict_iso_scale_min""restrict_iso_scale_min""restrict_iso_scale_min""restrict_iso_scale_min" x
    'restrict_scale_row_max'"restrict_scale_row_max""restrict_scale_row_max""restrict_scale_row_max""restrict_scale_row_max""restrict_scale_row_max" x
    'restrict_scale_row_min'"restrict_scale_row_min""restrict_scale_row_min""restrict_scale_row_min""restrict_scale_row_min""restrict_scale_row_min" x
    'restrict_scale_column_max'"restrict_scale_column_max""restrict_scale_column_max""restrict_scale_column_max""restrict_scale_column_max""restrict_scale_column_max" x
    'restrict_scale_column_min'"restrict_scale_column_min""restrict_scale_column_min""restrict_scale_column_min""restrict_scale_column_min""restrict_scale_column_min" x
    • 'restrict_iso_scale_max'"restrict_iso_scale_max""restrict_iso_scale_max""restrict_iso_scale_max""restrict_iso_scale_max""restrict_iso_scale_max":

      Beschränkt den möglichen Skalierungsbereich für den das Modell gesucht wird auf ein Maximum.

      Mögliche Werte: 'auto'"auto""auto""auto""auto""auto", 1.1, 1.2.

      Default: 'auto'"auto""auto""auto""auto""auto".

    • 'restrict_iso_scale_min'"restrict_iso_scale_min""restrict_iso_scale_min""restrict_iso_scale_min""restrict_iso_scale_min""restrict_iso_scale_min":

      Beschränkt den möglichen Skalierungsbereich für den das Modell gesucht wird auf ein Minimum.

      Mögliche Werte: 'auto'"auto""auto""auto""auto""auto", 0.9, 0.8.

      Default: 'auto'"auto""auto""auto""auto""auto".

    • 'restrict_scale_row_max'"restrict_scale_row_max""restrict_scale_row_max""restrict_scale_row_max""restrict_scale_row_max""restrict_scale_row_max":

      Beschränkt den möglichen Skalierungsbereich in Zeilenrichtung für den das Modell gesucht wird auf ein Maximum.

      Mögliche Werte: 'auto'"auto""auto""auto""auto""auto", 1.1, 1.2.

      Default: 'auto'"auto""auto""auto""auto""auto".

    • 'restrict_scale_row_min'"restrict_scale_row_min""restrict_scale_row_min""restrict_scale_row_min""restrict_scale_row_min""restrict_scale_row_min":

      Beschränkt den möglichen Skalierungsbereich in Zeilenrichtung für den das Modell gesucht wird auf ein Minimum.

      Mögliche Werte: 'auto'"auto""auto""auto""auto""auto", 0.9, 0.8.

      Default: 'auto'"auto""auto""auto""auto""auto".

    • 'restrict_scale_column_max'"restrict_scale_column_max""restrict_scale_column_max""restrict_scale_column_max""restrict_scale_column_max""restrict_scale_column_max":

      Beschränkt den möglichen Skalierungsbereich in Spaltenrichtung für den das Modell gesucht wird auf ein Maximum.

      Mögliche Werte: 'auto'"auto""auto""auto""auto""auto", 1.1, 1.2.

      Default: 'auto'"auto""auto""auto""auto""auto".

    • 'restrict_scale_column_min'"restrict_scale_column_min""restrict_scale_column_min""restrict_scale_column_min""restrict_scale_column_min""restrict_scale_column_min":

      Beschränkt den möglichen Skalierungsbereich in Spaltenrichtung für den das Modell gesucht wird auf ein Maximum.

      Mögliche Werte: 'auto'"auto""auto""auto""auto""auto", 0.9, 0.8.

      Default: 'auto'"auto""auto""auto""auto""auto".

    Deformation

    • 'max_deformation'"max_deformation""max_deformation""max_deformation""max_deformation""max_deformation":

      Bestimmt um wie viel ein Objekt vom Modell abweichen darf um als Match berücksichtigt zu werden. Die maximal zulässige Objektdeformation wird in Pixeln festgelegt. Für einen Wert von 0 wäre daher keine Abweichung für das Objekt zulässig.

      Beispiel: Ein Objekt, dessen Form im Vergleich zum Formmodell um 2 Pixel deformiert ist wird mit 'max_deformation'"max_deformation""max_deformation""max_deformation""max_deformation""max_deformation" = 2 noch gefunden.

      Höhere Werte in 'max_deformation'"max_deformation""max_deformation""max_deformation""max_deformation""max_deformation" erhöhen häufig auch die Laufzeit.

      Höhere Werte in 'max_deformation'"max_deformation""max_deformation""max_deformation""max_deformation""max_deformation" erhöhen außerdem häufig auch das Risiko ungewollte Matches zu finden. Dies ist insbesondere der Fall für kleine Objekte oder Objekte mit feinen Strukturen, da diese somit ihre charakteristische Form, welche wichtig für eine robuste Suche ist, verlieren.

      Zusammenspiel mit 'subpixel'"subpixel""subpixel""subpixel""subpixel""subpixel": Wenn eine Deformation erlaubt ist (also ein Wert größer 0 gesetzt wurde) dann hängt die Berechnung des Scores davon ab ob möglicherweise eine Subpixel-Verfeinerung durchgeführt wurde. In den meisten Fällen ändert sich der Score wenn eine Least-Squares-Adjustment-Methode gesetzt wurde. Mit dieser Methode kann ein höherer Score erreicht werden wenn 'max_deformation'"max_deformation""max_deformation""max_deformation""max_deformation""max_deformation" erhöht wird, da für die Modellpunkte mehr übereinstimmende Bildpunkte gefunden werden können.

      Default: 0.

  2. Aussortieren der gefundenen Matches

  3. Grauwertbehandlung

  4. Verfeinerung

  5. Bildpyramide

  6. Ausgabe

Rechnerressourcen für die Suche

In diesem Abschnitt werden die Parameter aufgelistet und erläutert, welche technische Einflüsse beim Suchen des Modells ModelIDModelIDModelIDModelIDmodelIDmodel_id betreffen. Folgende Parameter GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name werden unterstützt:

Automatische Modifikationen

In diesem Abschnitt werden die Parameter aufgelistet, die ohne weitere Benachrichtigung automatisch modifiziert werden:

Es ist zu beachten das Transformationen intern so berechnet werden, dass die Skalierung und dann die Rotation angewandt wird. Daher sollte das Modell üblicherweise so ausgerichtet werden, dass es horizontal oder vertikal im Modellbild auftritt.

Ausführungsinformationen

Dieser Operator modifiziert den Zustand des folgenden Eingabeparameters:

Während der Ausführung dieses Operators muss der Zugriff auf den Wert dieses Parameters synchronisiert werden, wenn er über mehrere Threads hinweg verwendet wird.

Parameter

ModelIDModelIDModelIDModelIDmodelIDmodel_id (input_control, Zustand wird modifiziert)  shape_model HShapeModel, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle des Formmodells.

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

Parameternamen.

Defaultwert: 'min_score' "min_score" "min_score" "min_score" "min_score" "min_score"

Werteliste: 'angle_end'"angle_end""angle_end""angle_end""angle_end""angle_end", 'angle_start'"angle_start""angle_start""angle_start""angle_start""angle_start", 'angle_step'"angle_step""angle_step""angle_step""angle_step""angle_step", 'border_shape_models'"border_shape_models""border_shape_models""border_shape_models""border_shape_models""border_shape_models", 'contrast_high'"contrast_high""contrast_high""contrast_high""contrast_high""contrast_high", 'contrast_low'"contrast_low""contrast_low""contrast_low""contrast_low""contrast_low", 'greediness'"greediness""greediness""greediness""greediness""greediness", 'iso_scale_max'"iso_scale_max""iso_scale_max""iso_scale_max""iso_scale_max""iso_scale_max", 'iso_scale_min'"iso_scale_min""iso_scale_min""iso_scale_min""iso_scale_min""iso_scale_min", 'iso_scale_step'"iso_scale_step""iso_scale_step""iso_scale_step""iso_scale_step""iso_scale_step", 'max_clutter'"max_clutter""max_clutter""max_clutter""max_clutter""max_clutter", 'max_deformation'"max_deformation""max_deformation""max_deformation""max_deformation""max_deformation", 'max_overlap'"max_overlap""max_overlap""max_overlap""max_overlap""max_overlap", 'metric'"metric""metric""metric""metric""metric", 'min_contrast'"min_contrast""min_contrast""min_contrast""min_contrast""min_contrast", 'min_score'"min_score""min_score""min_score""min_score""min_score", 'min_size'"min_size""min_size""min_size""min_size""min_size", 'model_cache'"model_cache""model_cache""model_cache""model_cache""model_cache", 'num_levels'"num_levels""num_levels""num_levels""num_levels""num_levels", 'num_matches'"num_matches""num_matches""num_matches""num_matches""num_matches", 'optimization'"optimization""optimization""optimization""optimization""optimization", 'origin_column'"origin_column""origin_column""origin_column""origin_column""origin_column", 'origin_row'"origin_row""origin_row""origin_row""origin_row""origin_row", 'prepare_clutter_region_for_visualization'"prepare_clutter_region_for_visualization""prepare_clutter_region_for_visualization""prepare_clutter_region_for_visualization""prepare_clutter_region_for_visualization""prepare_clutter_region_for_visualization", 'prepare_contours_for_visualization'"prepare_contours_for_visualization""prepare_contours_for_visualization""prepare_contours_for_visualization""prepare_contours_for_visualization""prepare_contours_for_visualization", 'pyramid_level_highest'"pyramid_level_highest""pyramid_level_highest""pyramid_level_highest""pyramid_level_highest""pyramid_level_highest", 'pyramid_level_lowest'"pyramid_level_lowest""pyramid_level_lowest""pyramid_level_lowest""pyramid_level_lowest""pyramid_level_lowest", 'pyramid_level_robust_tracking'"pyramid_level_robust_tracking""pyramid_level_robust_tracking""pyramid_level_robust_tracking""pyramid_level_robust_tracking""pyramid_level_robust_tracking", 'restrict_iso_scale_max'"restrict_iso_scale_max""restrict_iso_scale_max""restrict_iso_scale_max""restrict_iso_scale_max""restrict_iso_scale_max", 'restrict_iso_scale_min'"restrict_iso_scale_min""restrict_iso_scale_min""restrict_iso_scale_min""restrict_iso_scale_min""restrict_iso_scale_min", 'restrict_scale_column_max'"restrict_scale_column_max""restrict_scale_column_max""restrict_scale_column_max""restrict_scale_column_max""restrict_scale_column_max", 'restrict_scale_column_min'"restrict_scale_column_min""restrict_scale_column_min""restrict_scale_column_min""restrict_scale_column_min""restrict_scale_column_min", 'restrict_scale_row_max'"restrict_scale_row_max""restrict_scale_row_max""restrict_scale_row_max""restrict_scale_row_max""restrict_scale_row_max", 'restrict_scale_row_min'"restrict_scale_row_min""restrict_scale_row_min""restrict_scale_row_min""restrict_scale_row_min""restrict_scale_row_min", 'scale_column_max'"scale_column_max""scale_column_max""scale_column_max""scale_column_max""scale_column_max", 'scale_column_min'"scale_column_min""scale_column_min""scale_column_min""scale_column_min""scale_column_min", 'scale_column_step'"scale_column_step""scale_column_step""scale_column_step""scale_column_step""scale_column_step", 'scale_row_max'"scale_row_max""scale_row_max""scale_row_max""scale_row_max""scale_row_max", 'scale_row_min'"scale_row_min""scale_row_min""scale_row_min""scale_row_min""scale_row_min", 'scale_row_step'"scale_row_step""scale_row_step""scale_row_step""scale_row_step""scale_row_step", 'strict_boundaries'"strict_boundaries""strict_boundaries""strict_boundaries""strict_boundaries""strict_boundaries", 'subpixel'"subpixel""subpixel""subpixel""subpixel""subpixel", 'timeout'"timeout""timeout""timeout""timeout""timeout", 'use_clutter'"use_clutter""use_clutter""use_clutter""use_clutter""use_clutter"

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

Parameterwerte.

Defaultwert: 0.5

Wertevorschläge: -3.14, -1.57, -0.79, -0.39, 0.0, 0.39, 0.79, 1.57, 3.14

Ergebnis

Sind die Parameterwerte korrekt, dann liefert set_generic_shape_model_paramset_generic_shape_model_paramSetGenericShapeModelParamSetGenericShapeModelParamSetGenericShapeModelParamset_generic_shape_model_param den Wert TRUE. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

create_generic_shape_modelcreate_generic_shape_modelCreateGenericShapeModelCreateGenericShapeModelCreateGenericShapeModelcreate_generic_shape_model

Nachfolger

train_generic_shape_modeltrain_generic_shape_modelTrainGenericShapeModelTrainGenericShapeModelTrainGenericShapeModeltrain_generic_shape_model, find_generic_shape_modelfind_generic_shape_modelFindGenericShapeModelFindGenericShapeModelFindGenericShapeModelfind_generic_shape_model

Modul

Matching