【HALCON】create_shape_model 関数について - シェイプモデルの作成と設定
2024-08-22
2024-08-22
create_shape_model 関数とは
create_shape_model
関数は、入力画像からシェイプモデルを作成するために使用されます。このシェイプモデルは、後にfind_shape_model
などの関数で画像内の対応するオブジェクトを検索する際に使用されます。モデルの作成には複数のピラミッドレベルや回転角度の設定が関与し、精度と速度のバランスを取るために各種パラメータを調整できます。
使用方法
create_shape_model
関数の基本的な構文は以下の通りです。
create_shape_model(Template, NumLevels, AngleStart, AngleExtent, AngleStep, Optimization, Metric, Contrast, MinContrast, ModelID)
Template
: シェイプモデルを作成するための入力画像NumLevels
: 使用するピラミッドレベルの数AngleStart
: モデルが持つ最小回転角度AngleExtent
: 回転角度の範囲AngleStep
: 回転角度のステップ長(精度)Optimization
: モデルの最適化方法Metric
: マッチングの際に使用するメトリクスContrast
: モデルのコントラスト設定MinContrast
: モデルが持つ最小コントラストModelID
: 作成されたシェイプモデルのハンドル
具体例
以下に、create_shape_model
関数を使用してシェイプモデルを作成する具体例を示します。
create_shape_model(TemplateImage, 'auto', -0.39, 0.79, 'auto', 'auto', 'use_polarity', 30, 10, ModelID)
この例では、入力画像TemplateImage
からシェイプモデルを作成し、モデルのIDがModelID
として返されます。回転角度の範囲やステップ長、コントラストなどは自動的に設定されています。
パラメータの詳細
-
NumLevels
: 使用するピラミッドレベルの数を設定します。auto
を指定すると、最適なレベル数が自動的に決定されます。レベル数を増やすことで検索速度が向上しますが、正確なモデルを保持するためのポイントが十分に含まれるよう注意が必要です。 -
AngleStart / AngleExtent
: モデルが認識できる回転角度の範囲を指定します。回転するオブジェクトを扱う場合、適切な角度範囲を設定することが重要です。 -
Optimization
: 大規模なモデルの場合、Optimization
を設定することでモデルのポイント数を削減し、処理時間を短縮できます。auto
を選択すると、最適な設定が自動的に選択されます。 -
Metric
: モデルのマッチング方法を指定します。use_polarity
は、モデルと画像のコントラストが一致している場合に使用されます。その他、ローカルなコントラスト変動を許容するignore_local_polarity
なども選択できます。 -
Contrast / MinContrast
: モデルの特徴点を選択するためのコントラスト設定を行います。Contrast
は、テンプレート画像内の重要な特徴を強調するための閾値設定です。一方、MinContrast
は、ノイズからモデルを分離し、画像内の低コントラスト領域でもモデルが認識されるようにします。
パフォーマンスの最適化
create_shape_model
では、ピラミッドレベルや回転角度の設定によって、処理速度と精度のバランスを調整できます。また、大規模なモデルではポイント数を削減することで、検索速度を大幅に向上させることが可能です。さらに、Metric
やContrast
の設定により、複雑なシーンでも正確なマッチングを実現できます。
まとめ
create_shape_model
関数は、画像内の特定のオブジェクトをシェイプモデルとして作成し、後続のマッチング処理に利用するための基本的なツールです。精度の高いマッチングを行うためには、各パラメータを適切に設定し、ピラミッドレベルや回転角度、コントラストなどの要素を考慮することが重要です。この関数を活用することで、効率的で高精度な画像認識が可能になります。