画像マッチング

本章節では、テンプレートマッチングを用いた要素の検索・クリック操作方法を紹介します。FIRERPA はテンプレートマッチングと特徴点マッチング(SIFT)をサポートしています。はじめに、画像マッチングの基本情報について理解しておく必要があります。画像マッチングはテンプレートマッチングと特徴点マッチングに分けられ、テンプレートマッチングは同じ解像度のデバイスに適しており、より効率的です。特徴点マッチングは異なる解像度の画面に適していますが、一部の閾値はデバイス画面のサイズに応じて微調整が必要になる場合があります。

ヒント

すべてのマッチング処理は FIRERPA サーバー側で行われ、お使いの端末のリソースを消費しません。ただし、モバイル端末の性能制限により効率が低下するため、パフォーマンスが求められる場合はご自身の端末でスクリーンショットを撮りマッチングを行ってください。

マッチングインターフェース

画像マッチングインターフェースはやや複雑ですが、ほとんどの場合、調整が必要なのは threshold および distance パラメータのみです。各パラメータの意味は以下のパラメータ解説で確認できます。インターフェースの主な形式は次のとおりで、デフォルトでは全画面マッチングを行い、テンプレートマッチング方式を使用します。このインターフェースは主にホストマシンの計算リソースを節約するためのもので、パフォーマンスや認識結果に要件がある場合は、スクリーンショットインターフェースを用いてご自身でスクリーンショットマッチングを行うことも可能です。

d.find_similar_image(data, threshold=0.0, distance=250, scale=1.0, area=FindImageArea.FIA_WHOLE_SCREEN, method=FindImageMethod.FIM_TEMPLATE)
フィールド説明
dataマッチング対象画像のバイトデータ(切り抜き画像)
threshold破棄閾値(類似度)
distance最大特徴点距離(特徴マッチングのみ)
scaleスケールマッチング(パフォーマンス向上、テンプレートマッチングでは非適用)
areaマッチング領域(領域限定によるパフォーマンス向上)
methodマッチング方式

マッチング方式

マッチング方式はテンプレートマッチングと特徴点マッチングをサポートしています。テンプレートマッチングはテクスチャが明確でターゲット形状が固定されている場合に適していますが、回転、スケール変化、照明変化にはロバストではありません。特徴点マッチングはコーナーやエッジなどの画像特徴点を検出・記述し、2つの画像間でマッチングを行います。回転、スケール変化、照明変化などに対して高いロバスト性を持ち、複雑なシーンのマッチングタスクに適しています。

マッチング方式説明
FindImageMethod.FIM_TEMPLATEテンプレートマッチング
FindImageMethod.FIM_FEATURE特徴点マッチング

マッチング領域

マッチング領域は主にモバイル端末のパフォーマンスを調整するために使用されます。ほとんどの場合、マッチングが必要な項目は画面上の固定領域に存在するため、その領域を指定して画像サイズを小さくすることで、マッチング時の計算量を減らすことができます。

マッチング領域説明
FindImageArea.FIA_WHOLE_SCREEN全画面マッチング
FindImageArea.FIA_LEFT左半画面マッチング
FindImageArea.FIA_TOP_LEFT左上画面マッチング
FindImageArea.FIA_TOP上半画面マッチング
FindImageArea.FIA_TOP_RIGHT右上画面マッチング
FindImageArea.FIA_RIGHT右半画面マッチング
FindImageArea.FIA_BOTTOM_RIGHT右下画面マッチング
FindImageArea.FIA_BOTTOM下半画面マッチング
FindImageArea.FIA_BOTTOM_LEFT左下画面マッチング