【HALCON】find_shape_models 関数について - 複数の形状モデルの検出

【HALCON】find_shape_models 関数について - 複数の形状モデルの検出

2024-09-04

2024-09-04

HALCONfind_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関数は、以下のようなシナリオで特に有用です。

  • 産業オートメーション
    製造ラインで異なる形状やサイズの部品を同時に検出し、正確な位置決めを行うことで、効率的な組み立てや検査を実現します。
  • 品質検査
    製品の外観検査において、複数のモデルを同時に検出し、欠陥や形状の不一致を確認します。
  • ロボット誘導
    複数の形状を正確に検出することで、ロボットによる物体のピックアンドプレース操作を支援します。

まとめ

HALCONfind_shape_models関数は、画像内で複数の形状モデルを同時に検出し、それらの位置や姿勢を特定するための強力なツールです。この関数を使用することで、産業用アプリケーションにおいて、複数の物体を効率的かつ正確に認識し、位置決めを行うことが可能になります。

Recommend