Template Matching vTool#
これは、エッジがぼやけている、または境界が明確に定義されていないオブジェクトの検出に最適です。ピクセルのグレー値情報の比較には多くの処理時間と Memory が消費されるため、Basler では小さなオブジェクトに対して使用することをお勧めします。
Template Matching vToolは、Image入力ピンを介して画像を受け入れ、出力ピンを介して検出された一致に関する情報を出力します。
また、アライメント変換データを出力することで、Image Alignment vToolが入力画像を、マッチング中に使用した参照画像に位置合わせできます。これにより、Measurements vToolが参照画像とは異なる位置にあるオブジェクトを測定できます。
ROI Creator vToolを使用して関心領域を指定する場合、Template Matching vToolがROI入力ピンを介してROIデータを受け入れます。この場合、オブジェクトはマッチングモデルのデフォルトの基準点が関心領域内にある場合にのみ検出されます。
関心領域は、その特定領域内のオブジェクトにフォーカスを合わせたり、誤った候補を除外したり、処理時間を短縮したりするために使用できます。
Template Matching vToolの領域出力は、Roi入力ピンを備えたvToolのRoi入力としても使用できます。詳細については、「ROI Creator vTool」トピックを参照してください。
Calibration vToolによって提供される変換データを使用して、一致の位置をメートル単位のワールド座標で出力できます(Positions_m出力ピンが使用可能になります)。これを行うには、Calibration vToolをマッチングの前に使用し、両方のvToolsの変換出力/入力ピンを接続します。
Template Matching vToolのライセンスを購入するには、Baslerウェブサイトをご覧ください。

Template Matching Versions#
Template Matching vToolには2つのバージョンがあります。次の表にバージョン間の違いを示します。表見出しのバージョンをクリックすると、このトピックの関連セクションに直接ジャンプします。
| Starter | Basic | |
|---|---|---|
| テンプレートの定義方法を教えてください。 | オブジェクトの周囲に長方形を適合させます。 | ペンツールを使用して、オブジェクトの輪郭をトレースします。 |
| タイムアウトを指定できますか? | いいえ | はい |
| 基準点を定義できますか? | いいえ | はい |
| ティーチングされたオブジェクトと異なる角度でオブジェクトを検出できますか? | いいえ | はい |
| Roi入力ピンに有効なデータタイプ | RectangleF | RectangleF、RectangleF配列、領域、領域配列 |
| 入力としてサポートされているPixel Formatは何ですか? | 8ビットモノクロまたはカラー画像 | 8ビット〜16ビットモノクロまたはカラー画像 |
| ライセンスの購入 | pylon Software Suiteに含まれています | Baslerウェブサイトにアクセス |
仕組み#
テンプレートを定義して入力画像に適用することで、一致に関する次の情報を収集できます。
- マッチングスコア
- 位置
- 方向
- 一致の視覚化を含む領域
テンプレートの定義#
テンプレートマッチングの最初の手順は、アプリケーションによって検出されるオブジェクトの代表的な画像に基づくモデルのティーチングです。
このティーチング画像では、領域をマークしてティーチングします。アプリケーションはこのモデルを使用し、本番環境でオブジェクトを検出します。
画像に完全に表示されているオブジェクトのみが検出されます。つまり、テンプレート画像でマークされた領域は、検索画像に完全に含まれている必要があります。そのため、オブジェクトにマークを付けるときはできるだけ小さなペンを使用して正確に行ってください。
オブジェクトは、ティーチングされたモデルのオブジェクトに対して、サイズがまったく同じで、カメラまでの距離が同じ位置にある必要があります。
テンプレートマッチングは、モデルと検索画像のグレー値情報に直接基づいて行われます。テンプレートマッチングでは、正規化相互相関アルゴリズムが使用されます。
情報
- 代表的な画像をテンプレートとして選択します。
- テンプレート画像でオブジェクトの領域をマークする場合、オブジェクトに特徴的で、検索画像で一般的に表示される領域を選択します。
基準点の使用#
Template Matching Basic vToolを使用すると、マークしたオブジェクト内に基準点を表示できます。デフォルトでは、基準点はオブジェクトの重心に配置されます。ほとんどのアプリケーションでは、これで十分機能します。
情報
関心領域を使用している場合、デフォルトの基準点は関心領域内に存在する必要があります。
ただし、必要に応じて、基準点を別の位置に移動できます。一例は、ロボットピッキングアプリケーションです。そのシナリオでは、ロボットのグリッパーと、ピックするオブジェクトの形状を考慮して、ビジョンシステムがロボットのグリッピング位置を決定する必要があります。ここでは、これらの両方の側面に対応するように、基準点を適切に配置できます。
基準点を表示するには、まずティーチング画像にテンプレート領域をマークする必要があります。
モデル設定#
学習したモデルのオブジェクトとは異なる向きのオブジェクトを検出するには、目標角度を定義し、目標角度からの逸脱が許可される許容誤差値を追加します。これは、vToolのBasicバージョンでのみ使用できます。
実行の設定#
- Matches:限られた数のオブジェクトしか発生しないアプリケーションの場合は、一致する可能性のある数を、正確にこの数に制限することをお勧めします。これにより、処理速度と堅牢性が向上します。
- Score: 一致するごとにスコア値が計算されます。このスコアは、モデル内の領域と検索画像内で一致した領域の間の相関り係数です。
最適なScore設定を見つけるには、中程度の値から始めてテスト画像をいくつか実行します。Scoresピンの出力値を確認します。一致を確実に検出するには、常にScoreオプションをScoresピンによって出力されるスコアよりも低い値に設定してください。これは、多少の許容誤差を持たせるためのベストプラクティスであり、推奨事項です。
テスト画像で決定された最低のスコア出力値の50〜80%の間のスコア値を選択します。スコアが低すぎると、意図しない一致も検出される可能性があります。その場合は、テスト画像で目的のオブジェクトのみが見つかるまで、スコア値を再調整してください。
画像内に複数の一致がある場合は、スコアの降順で並べ替えられます。 - タイムアウト:タイムクリティカルなアプリケーションの場合、タイムアウトを指定できます。タイムアウトは、例えば、ティーチングされたオブジェクトが画像に含まれていない場合など、処理時間が変化する場合や予測できない場合に役立ちます。タイムアウトを指定すると、検出プロセスは指定されたタイムアウト後に停止し、次の画像に進みます。
Baslerでは、タイムアウトを目的の制限時間よりも少し短く設定することを推奨しています。これは、vToolが検出プロセスを即座に停止しないためです。したがって、タイムアウトは目的の時間制限の70~80%に設定します。
Output Settings#
Alignment Transformation#
位置合わせ変換データを出力する場合は、2つのオプションから選択できます:
- Single value: 最初の合致のみの位置合わせ変換データを出力します。この場合の出力ピン名はAlignmentTfです。
- Array: 見つかったすべての合致の位置合わせ変換データを配列として出力します。この場合の出力ピン名はAlignmentTfsです。
情報
この機能が導入される前に作成されたレシピは、引き続き機能します。そのようなレシピを読み込むと、位置合わせ変換の出力はSingle valueに設定されます。必要に応じてこれを変更できます。
Position Output#
vToolのBasicバージョンでは、一致したオブジェクトの位置の絶対座標と相対座標のどちらを出力するかを選択できます。
- Absoluteは、座標が画像座標系の原点(0,0)を基準にしていることを意味します。領域ピクセルの座標も原点に基づきます。
- Relativeは、座標がreference pointからの相対値であることを意味します。領域ピクセルの座標もそれに合わせて変換されます。
キャリブレーションの使用#
結果として得られた位置の一致は、ワールド座標にメートル単位で出力することもできます。これを実現するには、Calibration vToolのTransformation出力ピンを、Template Matching vToolのTransformation入力ピンに接続します。
Template Matching vToolを設定するには、実際の処理と同じキャリブレーション構成を使用する必要があります。
情報
- 2次元画像を生成する3次元ワールド空間内のオブジェクトの表面は、空間のほぼ同じ平面上にある必要があります。この場合、ワールド内のオブジェクトと画像内のエッジの位置の違いによる遠近法の歪みの影響は無視できます。
- 広角レンズでは、光学設定により大きな遠近法の歪みが生じます。これらのレンズの場合、検査オブジェクトの高さは、オブジェクトからカメラまでの距離に比べて低くする必要があります。または、オブジェクトの高さを無視できない場合は、同じ高さレベルのテンプレート画像内の領域を選択します。
- キャリブレーションのセットアップ中にキャリブレーションプレートの表面をこの平面に配置して、オブジェクトの平面を登録します。
トラブルシューティング#
ヒント
発生する可能性のある問題のリストを以下に示します。
- 学習プロセスに時間がかかる
- vToolの実行時間が非常に長い
- レシピが非常に大きい
これらが発生した場合は、次の最適化を検討してください。
- 検索しているオブジェクトが長方形や円などの対称である場合、またはオブジェクトが特定の許容範囲内でのみ予想される場合は、検出角度を制限します。
- 検索しているオブジェクトに鮮明なエッジがある場合は、代わりにGeometric Pattern Matching vToolの使用を検討してください。そのアルゴリズムは画像部分ではなくエッジを検出し、処理の高速化とメモリの節約につながります。
- 画像の解像度が非常に高い場合は、Image Transformer vToolで画像をダウンスケーリングしてからテンプレートを検索してみてください。
一般的な使用例#
- オブジェクトのCounting:この場合、Scores出力ピンの要素数のみが関係します。
- image coordinatesでのオブジェクトのLocating:後続の処理には、Positions_pxおよびAngles_radの出力ピンを使用します。
- world coordinatesでのオブジェクトのLocating:Positions_mおよびAngles_radの出力ピンを使用して、オブジェクトの位置をロボットなどに送信し、オブジェクトを把握します。
Template Matching Starter#
異なる方向のオブジェクトを検出する場合は、[Rotation]チェックボックスをオンにします。これにより、[モデルの設定]エリアのオプションが使用可能になります。これらを使用して、ターゲット角度と、オブジェクトがターゲット角度から逸脱することを許容する許容値を定義できます。[増分]オプションを使用すると、段階的に検出が行われるように指定できます。より大きな増分を選択すると、処理がより速く実行されるため、検出が高速化されます。
画像内で検出するオブジェクトの数を指定したり、無制限の数のオブジェクトを検索したりできます。一致の数を予想される数に制限すると、処理が高速かつ堅牢になります。
スコア値を調整することで、オブジェクトが、ティーチングされたオブジェクトとどの程度一致するかを指定できます。
Template Matching Starterは、境界ボックスを使用して、オブジェクトで領域をマークします。画像をロードすると、自動的に四角形が表示されます。これをターゲットオブジェクトの周囲に配置し、必要に応じてサイズを変更します。この操作では長方形のハンドルを使用するか、[矩形の設定]エリアに目的の値を手動で入力できます。
vToolの設定#
Template Matching Starter vToolを設定するには:

- [vToolの設定]エリアの[レシピ管理]ペインで、[設定を開く]をクリックするか、[vTool]をダブルクリックします。
[Template Matching Starter]ダイアログが開きます。 - ティーチング画像を撮影するか、開きます。[
Single Shot]ボタンを使用してライブ画像を取得するか、[Open Image]ボタンをクリックして既存の画像を開くことができます。 - [矩形の設定]エリアで、テンプレートとして使用するオブジェクトに合わせて四角形の位置とサイズを変更します。
- ツールバーのTeachボタンをクリックして、マッチングモデルをティーチングします。
- 必要に応じて、[Execution Settings]エリアの[Matches]設定を調整し、一致の数を最大に制限します。
- 必要に応じて、ターゲットオブジェクトのみが見つかるように[Score]設定を調整します。
- 単一の一致または見つかったすべての一致に対して位置合わせ変換データを出力するかどうかを指定します。
テンプレートマッチングの結果は、ピンデータビューで表示できます。ここで、表示する出力を選択できます。
Template Matching Basic#
異なる向きのオブジェクトを検出したい場合は、Model Settingsエリアのオプションを使用します。これらを使用すると、目標角度と、オブジェクトが目標角度から逸脱することが許可される許容誤差を定義できます。
画像内で検出するオブジェクトの数を指定したり、無制限の数のオブジェクトを検索したりできます。一致の数を予想される数に制限すると、処理が高速かつ堅牢になります。
スコア値を調整することで、オブジェクトが、ティーチングされたオブジェクトとどの程度一致するかを指定できます。
タイムクリティカルなアプリケーションの場合、タイムアウトを指定できます。タイムアウトは、例えば、ティーチングされたオブジェクトが画像に含まれていない場合など、処理時間が変化する場合や予測できない場合に役立ちます。
vToolの設定#
Template Matching Basic vToolを設定するには:

- [vTool Settings]エリアの[Recipe Management]ペインで、[Open Settings]をクリックするか、[vTool]をダブルクリックします。
[Template Matching Basic]ダイアログが開きます。 - ティーチング画像を撮影するか、開きます。[
Single Shot]ボタンを使用してライブ画像を取得するか、[Open Image]ボタンをクリックして既存の画像を開くことができます。 - ペンを使用して、画像内の目的の領域をマークします。
図面を修正するには、消しゴムを使用するか、図面を完全に削除します。 - ツールバーのTeachボタンをクリックして、マッチングモデルをティーチングします。
- 必要に応じて、[基準点を表示する]をクリックして基準点を表示します。
基準点がテンプレート領域の中央に表示され、[基準点を手動で設定する]ボタンが使用可能になります。これで、基準点を目的の位置にドラッグできます。[基準点を手動で設定する]を再度クリックすると、基準点がデフォルトの位置に戻ります。 - 必要に応じて、Model Settingsエリアで回転角度と許容誤差を定義します。
- 必要に応じて、[Execution Settings]エリアの[Matches]設定を調整し、一致の数を最大に制限します。
- 必要に応じて、ターゲットオブジェクトのみが見つかるように[Score]設定を調整します。
- タイムアウトを指定する場合は、[No timeout]チェックボックスをオフにし、入力フィールドに目的のタイムアウトを入力します。
- 単一の一致または見つかったすべての一致に対して位置合わせ変換データを出力するかどうかを指定します。
テンプレートマッチングの結果は、ピンデータビューで表示できます。ここで、表示する出力を選択できます。
入力#
画像#
Camera vToolから、またはImage Format ConvertervToolなどの画像を出力するvToolから、直接画像を受け入れます。
- データ型:Image
- 画像フォーマット:8ビット〜16ビットモノクロまたはカラー画像。カラー画像は内部でモノクロ画像に変換されます。Starterバージョンは8ビットのPixel Formatをサポートしています。
Roi#
領域または矩形を出力するROI Creator vToolなどのvToolから、関心領域を受け入れます。複数の矩形または領域が内部で結合されて、単一の関心領域が形成されます。StarterバージョンではRectangleFのみを受け入れます。
- データタイプ:RectangleF、RectangleF配列、領域、領域配列
変換#
Calibration vToolから変換データを受け入れます。
- データ型:Transformation Data
出力#
スコア#
一致のスコアを降順で返します。
- データ型:Float Array
Positions_px#
画像座標(行/列)での一致の位置を返します。
- データ型:PointF Array
Positions_m#
ワールド座標での一致の位置をメートル単位(x/y)で返します。
- データ型:PointF Array
Angles_rad#
一致の方向をラジアンで返します。
- データ型:Float Array
領域#
検出されたすべての一致の領域を返します。
- データ型:Region Array
AlignmentTf#
Image Alignment vToolが入力画像内のオブジェクトをマッチング時に使用された基準オブジェクトと位置合わせするために使用する変換データを返します。alignment transformation outputはSingle valueに設定されています。
- データ型:Transformation Data
AlignmentTfs#
Image Alignment vToolが入力画像内のオブジェクトをマッチング時に使用された基準オブジェクトと位置合わせするために使用する変換データを返します。alignment transformation outputはArrayに設定されています。
- データ型:Transformation Data Array