PatMax(幾何学形状パターンマッチング)

PatMax は Cognex が独自にアルゴリズムを開発したパターンマッチングの位置決めツールです(米国認可済み特許技術です。模倣品にご注意ください)。世界中の装置に組み込まれています。様々な条件下において、正確に位置決めできることは、装置全体の性能を向上させます。

始めに、位置を検出したい対象物をモデル登録します。運用時、カメラの前で対象物が移動したり、次の対象物が来ても、画像の中からパターンを探して、(x, y)位置 、回転角度、サイズを報告します。

測定の精度は、カタログ値は、位置精度 1/40 ピクセル、角度精度 0.02 度、サイズ精度 0.05% です。

PatMax は、対象物の輪郭形状を認識して、画像の中からそのパターンを見つけ、位置・角度・サイズ・得点を計算します。

PatMax が報告する位置へ、次の検査ツールの領域を移動させ、対象物の、幅、面積、欠陥などを測定します(位置が正確でないと正しく測定できません)。位置を追従することをフィクスチャと言います。

In-Sight EasyBuilder で PatMax を使うときの手順を示します。

前もって実世界寸法への変換(カメラキャリブレーション)を行えば、位置はメートルやミリメートル単位で出力します。キャリブレーションのときに座標系の原点(0, 0)を指定することができます。原点を指定せず、モデル登録時からどのくらい移動したか、を調べるときもあります。

チェッカーボードキャリブレーションを行えば、レンズと遠近の歪みを補正できます。画像変換も行うと、処理時間が追加されますが、測定がより正確になります。【検査】、【画像フィルタツール】-【変換】 を追加して、変換ツールの出力画像を、以降のツールで使用します

アプリケーションステップの【位置決め】、【位置決めツール】-【PatMaxパターン】 を追加します

位置を検出したい対象物をモデル登録します。登録後、PatMax が認識する形状が緑ラインで表示されます。期待する形で登録されている事を確認します

なるべくユニークな形を位置決めパターンにしたほうが認識率が良くなります。例えば、検出する数を増やし、しきい値を下げ、2番目の候補(背景)を確認します。得点差が十分あれば、誤認識し難くなります(EasyBuilder では、複数のパターンを検出するために、PatMaxパターン(1-10)、を使います)。

ノイズや対象物の変形があるときは、アクセプトしきい値を下げます。場合によっては、多くのサンプルを試して、目的パターンの最低得点と、2番目候補(背景)の最高得点の中間に、アクセプトしきい値を設定します

対象物が回転するときは角度範囲を指定します(±度)。サイズが変化するときはスケール許容を指定します(±%)

クラッタは余分な特徴です。チェックを入れると余分な特徴があるときに得点を下げます。例えば、丸をモデル登録したとき、クラッタが無効ならば、丸と、中に棒がある丸とで、同じ得点になり、区別が付きません。クラッタを有効にすると、中に棒がある丸の得点が下がるので、区別できます

ノイズが多い画像では、クラッタを無効にしてノイズを無視します

デフォルトでは指定したモデル領域の中心が報告位置(モデル原点)になります。水平オフセットと、垂直オフセットを調整して、変更できます。単位はピクセルです

例えば、対象物の角を正確にモデル原点にするには、2直線の交点を求めて、PatMax がその位置を報告するように水平・垂直オフセットを微調整します。カメラキャリブレーションを行っているときは、PatMax が報告する X、Y は、メートルやミリメートル単位なので、水平・垂直オフセット(ピクセル単位)を調整するのに、少し手間がかかります。

角位置を求めるツールは、運用時には不要なので、【演算&ロジックツール】-【グループ】を追加して、作業に使うツールをまとめます。【幾何・計測ツール】-【直線交点】を追加します。【演算&ロジックツール】-【演算】を4つ追加し、PatMax の X、Y、交点の X、Y を、小数点以下の値まで表示します。水平・垂直オフセットを調整して、PatMaxのX=交点X、PatMaxのY=交点Y、にします。調整のために PatMax の回転許容値は一旦 0 にします。調整が終わったら、グループツールのツール有効を OFF にします

準備した PatMax パターンを、次のツールの 【全般】-【ツールフィクスチャ】に指定すれば、検査領域が、対象物の移動に追従します

パターンマッチングの位置精度を確認するには、対象物上の2ヵ所の間の距離を測定します。カメラの前で対象物を移動させても、対象物上の2ヵ所の位置関係は変わらないので、距離はいつも同じ値になるはずです。

この画像は、およそ1ピクセル=0.04348mm なので、0.000785mm は 0.018 ピクセルの違いです。

2個目の PatMax パターンのツールフィクスチャが、デフォルトでは、1個目の PatMax パターンを参照するので、なしに変更します

以上、