【HALCON】find_surface_model 関数について - 3Dサーフェスモデルの検出

【HALCON】find_surface_model 関数について - 3Dサーフェスモデルの検出

2024-09-04

2024-09-04

HALCONfind_surface_model関数は、画像内で3Dサーフェスモデルを検出し、その位置や姿勢を特定するための強力なツールです。この関数は、物体の三次元表面形状を基に、深度情報を活用して高精度な物体認識を行います。これにより、産業オートメーションやロボットビジョン、品質検査など、さまざまな分野での応用が期待されます。

find_surface_model 関数の概要

find_surface_model関数は、あらかじめ作成された3Dサーフェスモデルを使用して、入力された3Dポイントクラウドや画像内でそのモデルに対応する物体を検出します。この関数は、物体の深度情報を活用して、正確に物体の位置や姿勢を特定することができ、製造ラインでの部品認識やロボットの誘導、品質検査に最適です。

使用方法

find_surface_model関数の基本的な使用方法は以下の通りです。

find_surface_model(SurfaceModelID, ObjectModel3D, RelSamplingDistance, KeyPointFraction, MinScore, ReturnResultHandle, ResultPose, ResultScore)
  • SurfaceModelID
    検出に使用する3DサーフェスモデルのID。
  • ObjectModel3D
    検出対象となる3Dオブジェクトモデルまたはポイントクラウド。
  • RelSamplingDistance
    サンプリング距離の相対値(0.0~1.0で指定)。
  • KeyPointFraction
    使用するキーポイントの割合(0.0~1.0で指定)。
  • MinScore
    検出されたモデルが有効と判断されるための最小スコア。
  • ReturnResultHandle
    結果ハンドルを返すかどうかを指定するフラグ。
  • ResultPose
    検出されたモデルの位置と姿勢(Pose)が格納される変数。
  • ResultScore
    各検出結果のスコアが格納される変数。

具体例

以下に、find_surface_model関数を使用して3Dサーフェスモデルを検出する例を示します。

* 3Dオブジェクトモデルの読み込み
read_object_model_3d(ObjectModel3D, 'surface_model_example.om3')

* 3Dサーフェスモデルの読み込み
read_surface_model('surface_model_file', SurfaceModelID)

* 3Dサーフェスモデルの検出
find_surface_model(SurfaceModelID, ObjectModel3D, 0.03, 0.2, 0.5, 'false', ResultPose, ResultScore)

* 検出結果の表示
disp_message(WindowHandle, '3D Surface Model Detected: Pose = ' + ResultPose, 'window', 12, 12, 'black', 'true')

この例では、指定された3Dサーフェスモデルを使用して、3Dオブジェクトモデル内の物体を検出し、その位置と姿勢を表示します。これにより、物体の3D位置決めが可能になります。

応用例

find_surface_model関数は、以下のようなシナリオで特に有用です。

  • 産業オートメーション
    製造ラインでの部品配置や組み立て工程での3D位置認識。
  • ロボットビジョン
    ロボットが物体を正確に認識し、操作するための3D位置決め。
  • 品質検査
    製品の欠陥検出や一致検査において、3Dサーフェスモデルを基に製品の欠陥や形状の一致を確認するために使用します。

まとめ

HALCONfind_surface_model関数は、3Dサーフェスモデルを利用して物体を正確に検出し、3D空間での位置や姿勢を特定するための強力なツールです。産業オートメーション、ロボットビジョン、品質検査など、さまざまな分野での高精度な物体認識に役立ちます。

Recommend