【HALCON】find_ncc_model 関数について - NCCモデルの検出
2024-09-04
2024-09-04
HALCON
のfind_ncc_model
関数は、正規化相互相関(NCC: Normalized Cross-Correlation)を用いて画像内で形状モデルを検出し、その位置や角度を特定するためのツールです。この関数を使用することで、回転やスケールの変化に対応しながら、高精度で形状認識が可能になります。産業オートメーションや品質検査など、さまざまな分野での応用が期待されています。
find_ncc_model 関数の概要
find_ncc_model
関数は、事前に作成されたNCC形状モデルを使用して、入力画像内でそのモデルに対応する物体を検出します。この手法は、テンプレート画像と入力画像間の類似度を計算することで、物体の位置や一致度を測定します。NCCは、照明の変化やノイズに対しても比較的頑健であり、回転やスケールの変化にも対応可能です。
使用方法
find_ncc_model
関数の基本的な使用方法は以下の通りです。
find_ncc_model(Image, ModelID, AngleStart, AngleExtent, MinScore, NumMatches, MaxOverlap, SubPixel, Row, Column, Angle, Score)
Image
検出対象となる画像。ModelID
検出に使用するNCC形状モデルのID。AngleStart
,AngleExtent
検出対象の回転角度範囲。MinScore
検出されたモデルが有効と判断されるための最小スコア。NumMatches
検出される最大のインスタンス数。MaxOverlap
検出されたインスタンス間で許容される最大重なり率。SubPixel
サブピクセル精度での結果を求めるための設定。Row
,Column
検出されたモデルの位置。Angle
検出されたモデルの回転角度。Score
各検出結果のスコア。
具体例
以下に、find_ncc_model
関数を使用してNCC形状モデルを検出する例を示します。
* 画像の読み込み
read_image(Image, 'ncc_model_example_image')
* NCC形状モデルの読み込み
read_ncc_model('ncc_model_file', ModelID)
* NCCモデルの検出
find_ncc_model(Image, ModelID, 0, 3.14, 0.5, 1, 0.5, 'true', Row, Column, Angle, Score)
* 検出結果の表示
disp_message(WindowHandle, 'NCC Model Detected at: (' + Row + ', ' + Column + ')', 'window', 12, 12, 'black', 'true')
この例では、指定された画像内でNCC形状モデルを検出し、その位置や角度を表示します。これにより、物体の正確な位置や回転角度を把握することができます。
応用例
find_ncc_model
関数は、以下のようなシナリオで特に有用です。
- 産業オートメーション
製造ラインでの部品配置や組み立て工程での位置認識。 - 品質検査
製品の欠陥検出や一致度検査。 - ロボット誘導
ロボットが物体を正確に認識し、操作するための位置決めに使用されます。特に、正確な形状認識が必要なロボットアームの操作や、物体のピッキングなどで効果的です。 - 印刷業やパッケージ検査
ラベルや印刷物が正しく配置されているか、またはパッケージの位置が正確であるかを確認するために使用され、製品の品質を保証します。 - 電子部品検査
基板上の部品配置が正確かどうかを確認し、不良品の早期検出に役立ちます。高精度の位置認識により、ミスを未然に防ぎます。
まとめ
HALCON
のfind_ncc_model
関数は、正規化相互相関を利用して形状モデルを正確に検出するためのツールであり、回転やスケールの変化にも対応します。産業オートメーションや品質検査、ロボット誘導などの多様な分野での利用が期待されており、正確な位置や姿勢の認識が求められる場面で特に効果的です。高い精度と安定性を持つこの関数を活用することで、効率的で信頼性の高いシステム構築が可能です。