【HALCON】find_shape_models 関数について - 複数の形状モデルの検出
2024-09-04
2024-09-04
HALCON
のfind_shape_models
関数は、画像内で複数の形状モデルを同時に検出し、それぞれの位置や姿勢を特定するための強力なツールです。この関数は、物体が異なる回転角度やスケールで画像内に現れる場合でも、複数の形状を高精度で認識することができます。これにより、産業オートメーションや品質検査など、様々な分野で複数の物体を同時に認識し、位置決めを行うことが可能になります。
find_shape_models 関数の概要
find_shape_models
関数は、事前に作成された複数の形状モデルを使用して、入力画像内でそれらのモデルに対応する物体を検出します。この関数は、異なる回転角度やスケールで現れる物体を同時に認識し、それぞれの物体の位置や姿勢を特定することができます。製造ラインでの部品認識や品質検査、複数の物体が存在する場面でのロボット誘導など、様々な産業用アプリケーションにおいて役立ちます。
使用方法
find_shape_models
関数の基本的な使用方法は以下の通りです。
find_shape_models(Image, ModelIDs, AngleStart, AngleExtent, MinScore, NumMatches, MaxOverlap, SubPixel, NumLevels, Greediness, Rows, Columns, Angles, Scores)
Image
検出対象となる画像。ModelIDs
検出に使用する複数の形状モデルのIDリスト。AngleStart
,AngleExtent
検出対象の回転角度範囲。MinScore
検出されたモデルが有効と判断されるための最小スコア。NumMatches
検出される最大のインスタンス数(複数モデルの同時検出)。MaxOverlap
検出されたインスタンス間で許容される最大重なり率。SubPixel
サブピクセル精度での結果を求めるための設定。NumLevels
画像のピラミッドレベルの数。Greediness
検出処理のグリーディネス(速さと精度のバランス)を指定。Rows
,Columns
検出された各モデルの位置(行列座標)。Angles
検出された各モデルの回転角度。Scores
各検出結果のスコア。
具体例
以下に、find_shape_models
関数を使用して複数の形状モデルを同時に検出する例を示します。
* 画像の読み込み
read_image(Image, 'shape_models_example_image')
* 複数の形状モデルの読み込み
ModelIDs := ['model_1', 'model_2', 'model_3']
for i := 0 to |ModelIDs|-1 by 1
read_shape_model(ModelIDs[i], ModelID[i])
endfor
* 複数形状モデルの検出
find_shape_models(Image, ModelID, 0, 3.14, 0.5, 10, 0.5, 'true', 5, 0.9, Rows, Columns, Angles, Scores)
* 検出結果の表示
for i := 0 to |Rows|-1 by 1
disp_message(WindowHandle, 'Model ' + i + ' Detected at: (' + Rows[i] + ', ' + Columns[i] + ')', 'window', 12, 12, 'black', 'true')
endfor
この例では、指定された画像内で複数の形状モデルを検出し、それぞれの位置、回転角度、スコアを表示します。これにより、複数の物体を同時に認識し、各物体の正確な位置決めを行うことが可能になります。
応用例
find_shape_models
関数は、以下のようなシナリオで特に有用です。
- 産業オートメーション
製造ラインで異なる形状やサイズの部品を同時に検出し、正確な位置決めを行うことで、効率的な組み立てや検査を実現します。 - 品質検査
製品の外観検査において、複数のモデルを同時に検出し、欠陥や形状の不一致を確認します。 - ロボット誘導
複数の形状を正確に検出することで、ロボットによる物体のピックアンドプレース操作を支援します。
まとめ
HALCON
のfind_shape_models
関数は、画像内で複数の形状モデルを同時に検出し、それらの位置や姿勢を特定するための強力なツールです。この関数を使用することで、産業用アプリケーションにおいて、複数の物体を効率的かつ正確に認識し、位置決めを行うことが可能になります。