# TrainPatMaxPattern

FindPatMaxPatterns 関数で使用するために、画像からパターンを抽出し学習します。

## TrainPatMaxPattern の概要

PatMax® パターンは幾何図形特徴の集合です。ここで、各特徴は、ピクセル値が異なる 2 つの領域間の境界上の点です。TrainPatMaxPattern 関数でパターンを学習し、次に FindPatMaxPatterns 関数を使用して、画像内でそのパターンの 1 つ以上のインスタンスを検出します。PatMax は、マシンビジョンに利用可能な他のパターン検出技術との差別化を図る、次の 3 つの重要な機能を提供します。

- 外観が、回転、スケーリング、伸長された対象物の高速検出
- 対象物のグレースケール値ではなく、形状に基づく検出技術
- 非常に高い精度

PatMax が他のパターン位置決め技術と異なる点は、ピクセルグリッド表現に基づいていないということです。この表現では回転やスケーリングを効率的かつ高精度に行うことができません。代わりに、PatMax では、パターンマッチングのための迅速かつ正確な変換が可能な特徴ベースの表現を使用します。

注 : 学習済みの PatMax パターンを含むセルをハイライトすると、そのパターンの特徴が表示されます。これにより、このパターンを保持している TrainPatMaxPattern のプロパティシートを表示せずに、学習されているパターンを参照できます。

## TrainPatMaxPattern の入力

パラメータ | 説明
画像 | This parameter must reference a spreadsheet cell that contains an 画像 data structure; by default, this parameter references A0, the cell containing the data structure. This parameter can also reference other Image data structures, such as those returned by the 画像Vision Data Access functions or 座標補正関数.
フィクスチャ | Fixture入力、またはビジョンツール関数の画像座標系の出力に関連する対象領域 (ROI) を定義します。フィクスチャに関連する ROI を設定すると、フィクスチャが回転または移動した場合に、フィクスチャに対応して ROI を確実に回転または移動できます。 デフォルト設定は画像の左上隅で、(0, 0, 0) になります。
X (デフォルト = 0) | 画像座標での X オフセット。
Y (デフォルト = 0) | 画像座標での Y オフセット。
角度 (デフォルト = 0) | 画像座標系での画像の X 軸からの回転 (時計回り +/-360 度)。
パターン領域 | これは対象領域 (ROI) とも呼ばれ、解析の対象となる画像の領域を表します。[領域] パラメータをダブルクリックすると、変換と回転が可能な対話型グラフィックスモードを作成できます。このパラメータを選択して、プロパティシートの [ジョブの編集] ツールバーにある [領域の最大化] ボタンを押すと、画像全体が対象になるように領域が自動的に拡張されます。
X | フィクスチャ座標での原点の X オフセット
Y | フィクスチャ座標での原点の Y オフセット
幅 | 領域の X 軸に沿った寸法。
高さ | 領域の Y 軸に沿った寸法。
角度 | フィクスチャ座標での角度
カーブ | 領域の X 軸と反対側の境界線との間の角度変位
注 : [フィクスチャ] および [領域] パラメータは、画像の範囲内で定義されている必要があります。画像の範囲内で定義されていない場合、この関数は #ERR を返します。
外部定義領域 | このパラメータは、Annulus、Circle、Region、 EditAnnulus、EditCircle、EditCompositeRegion、EditPolygon、EditRegion へのセル参照を使用します。このパラメータを使用すると、関数は [領域] と [フィクスチャ] の設定を無視し、参照先領域に指定された画像領域を検査します。EditCompositeRegion 関数コントロールを参照している場合は、検査領域がさまざまな形状の混合となることがあります。合成領域内の各形状は、検査領域に対して加算または減算 (マスキング) されるように割り当てることができます。 注 : このパラメータが外部定義領域の参照として設定されている場合に、この関数の内部領域を使用するには、セル参照に値 0 を入力し、このパラメータを手動で 0 に設定する必要があります。それ以外の場合、この関数は引き続き外部定義領域を参照します。
パターン原点 | 学習パターンの原点の X および Y を、学習領域の中心からのオフセットとして指定します。
オフセット X | 学習パターンの中心からの X オフセットを指定します。
オフセット Y | 学習パターンの中心からの Y オフセットを指定します。
パターン設定 | パターンの学習のための設定を指定します。
アルゴリズム | パターンの学習に使用するアルゴリズムを指定します。
0 = PatMax (デフォルト) | PatMax アルゴリズムは、PatQuick よりも高い精度を提供しますが、実行に要する時間はより長くなります。
1 = PatQuick | PatQuick アルゴリズムは、PatMax よりも精度は劣りますが、実行に要する時間は短縮されます。
融通性 | 周囲長の偏差の量を指定します (0～10、デフォルト = 0)。 0 = 許容しない 1 以上 = 柔軟な境界
極性を無視 | 学習パターンに対して、色が反転した一致特徴を含む一致を検出可能かどうかを指定します。
0 = OFF (デフォルト) | 色が反転した特徴は一致しません。
1 = ON | 色が反転した一致特徴を許容します。
感度 | 0 = 実装されていません
粗粒度 | 粗粒度をピクセル単位で指定します。粗粒度は、大きな特徴を検出して、画像内の大まかなパターン一致を実行時に迅速に検出するために使用されます (0 ～ 10、デフォルト = 0)。 注 : 1.0 未満の値が指定された場合、[粗粒度] および [微粒度] の両方のパラメータ値が自動的に計算されます。
微粒度 | 微粒度をピクセル単位で指定します。微粒度は、小さな特徴を検出して、パターン位置を正確に判定するために使用されます (0～10、デフォルト = 0)。 注 : 1.0 未満の値が指定された場合、[粗粒度] および [微粒度] の両方のパラメータ値が自動的に計算されます。 微粒度の値を粗粒度の値よりも大きくすることはできません。
イベントの学習 | モデル学習イベントトリガを含むセルにセル参照を指定します。 注 : 学習は、プロパティシートが開いているとき、またはボタンやその他の条件付き有効セルなどのイベントトリガがゼロ以外のときに発生します。
学習画像の再使用 | パターンを学習するために使用した画像を保存し、[パターン設定] パラメータが変更されたときに使用するかどうかを指定します。
0 = OFF (デフォルト) | 現在の画像 (画像 パラメータに指定された画像) がパターンの学習/再学習に使用されます。
1 = ON | 1 つ以上の [パターンの設定] パラメータが変更された場合は、パターンを学習するために最初に使用された画像が、パターンの再学習に使用されます。ON にすると、[画像] パラメータによって識別された画像がパターン学習に使用され、その画像のコピーがジョブに保存されます。それより後の [パターンの設定] パラメータへの変更は、格納された画像を使用して実行されます。 注 : このパラメータが有効なときに、[フィクスチャ] 入力パラメータが変更され、[パターン領域] (または、[外部定義領域]) が移動または変更されると、関数は入力画像内の学習領域を調整し、新しい画像を保存して、パターンを再学習します。 [学習画像の再使用] パラメータが ON (有効) に変わったが、パターンがまだ学習されていない場合、パラメータが OFF (無効) になり新しいパターンが学習されるまで、関数は #ERR を返します。
タイムアウト | 関数が有効なパターンをサーチする時間をミリ秒単位で指定します (0～30000)。この時間が経過すると、処理は中止され、#ERR が返されます。値を 0 に設定すると設定値が無効になり、タイムアウトは適用されません。
表示 | 画像上の TrainPatMaxPatternグラフィックスの表示モードを指定します。
0 = 非表示 | TrainPatMaxPatternを含んでいるセルがスプレッドシート内でハイライトされている場合を除き、すべてのグラフィックスが表示されません。
1 = 結果のグラフィックスのみ | 学習されたパターンの特徴が常に表示されます。
2 = 入力と結果のグラフィックス | 入力画像領域、パターンの原点、および学習された特徴が常に表示されます。 注 : 学習された特徴の色 (緑、黄、赤) は、特徴の一致候補の品質を表しています。緑は品質が高いことを、赤は低いことを表します。すべての学習特徴が緑色になるまで粒度パラメータを調節する必要があります。または、より品質の高い画像を選択して、学習します。特徴 (エッジ) や画像コントラストがより明瞭であるほど高い結果が得られます。
3 = 全て表示: 入力、結果および学習画像 | 入力画像領域、パターンの原点、学習された特徴、および学習画像が常に表示されます。

## TrainPatMaxPattern の出力

戻り値 | 学習されたパターンを含んでいる Patterns データ構造体。入力パラメータが無効であれば #ERR を返します。
結果 | TrainPatMaxPattern 関数が初めてセルに挿入されると、学習状態が右隣のセルに自動的に表示されます。パターンを学習できない場合は #ERR が挿入されます。 1 つの パターンVision Data Access functionsがスプレッドシートに自動挿入されます。
学習済み | GetTrained(パターン) | パターンを学習できた場合には 1、学習できなかった場合には 0 を返します。
注 : この関数のプロパティシートには、パターンを学習し易くするためのヒントとして、補助的な情報文字列が表示されます。表示される可能性のある情報文字列としては次のものがあります。 パターンに含まれるマッチ特徴が少なすぎることがあります。 特徴の粒度を自動的に設定するのは困難です。 手動で [粒度] を設定してください。学習画像の表示がぼやけているので、パターンが予想より正確でないことがあります。 疎粒度の特徴が同じ方向であるために、パターン結果が不安定になることがあります。 高精度な特徴が多いため、実行時間が長くなることがあります。手動で [粒度] を設定してください。 パターンに含まれる情報が不十分なため、角度またはスケールを正確に測定できないことがあります。 スプレッドシートに情報文字列を挿入するには、GetInfoString データアクセス関数を使用します。