使用できる画像認識方式 #
RunLeashでは、リアルタイムの映像から切り出した画像(キャプチャ画像)と、事前に作成した画像(テンプレート画像)の2枚がどれだけ似ているかを見ています。
RunLeashで使用できる画像認識は以下のとおりです。
- テンプレートマッチング(1)
- 色情報の比較(2~3)
- 指定色の出現ピクセル数/割合(4~5)
- ヒストグラム(6)
- Hash(7、12~17)
- L2Norm(8)
- AKAZE、ORB(9、10)
- POCー位相限定相関(11)
テンプレートマッチング(1) #
キャプチャ画像の指定領域内にテンプレート画像が存在するかをチェックします。
特徴 #
- テンプレート画像の出現位置が変化しても検出できる。
テンプレート画像を作成する画面で、限定探索
にチェックを入れると領域を指定できます。チェックを入れずに作成した場合、単に2枚の画像の類似度を求める処理となります。
探索範囲のみをあとから変更したい場合、表の一番右、LTX、LTY、RBX、RBYの値を調整してください。
テンプレートマッチングは計算量が比較的大きく、処理に時間がかかります。
以下の手法により、計算量を減らすことができます。
- グレースケールのフィルタを使用する。
- 限定探索を使用し、探索範囲を可能な限り小さくする。
V1.92より、マスク処理を施した場合の類似度算出結果を正規化しています。
以前の値を使用したい場合、設定→Other タブを開き、テンプレートマッチング(マスクあり)の結果を正規化する
のチェックを外してください。
仕様 #
マスク処理なし→CCOEFF Normed(Correlation coefficient:相関係数 を明るさで正規化)
マスク処理あり→SQDIFF(Sum of Squared Difference:差分相関)
各処理についての参考資料:https://qiita.com/pachi-dragon/items/394b26b1621de92bfd98
色情報の比較(2~3) #
2→ピクセル毎に色差を判定し、色差が少ないピクセルがいくつあるかをチェックする。
3→各ピクセルの色差を合計したものを対象とする。
特徴 #
- 非常に小さい領域にしか変化がない場合に明確に値が変化する(理由は↓)。
- 他の多くの方式は、基本的にテンプレート画像の輪郭を重要な情報と捉えるが、この方式とヒストグラムは色を重視する。
指定色の出現ピクセル数/割合(4~5) #
4→指定した色が監視範囲内にどれだけの割合存在するかをチェックする。
5→指定した色が監視範囲内にどれだけのピクセル数存在するかをチェックする。
使用例 #
-
スーパーマリオ64の計測終了地点(クッパ撃破後にスーパースターを取ったとき)。 スターを取得した瞬間に白煙が発生し、この場面前後で白のピクセルが大きく変化することはないため、白のピクセルの量をチェックすることで安定して一致判定を発生させられる。
-
スーパーマリオワールドの計測終了地点(クッパ撃破後にピーチが出現する時) ピーチが出現する瞬間、1フレームだけピーチは左を向き、その後は着地するまで右を向く。1フレームの表示はキャプチャソフトやRunLeashのフレームドロップ等により判定が発生しない可能性がある。 また、ピーチが現れる時、周囲にキラキラと輝くパーティクルが表示され、これがピーチに大きく被ると判定に影響が出る。 このような状況でも大きく変化が出ない情報のひとつに、ピーチのドレス(ピンク色、ユニーク)が画面内に占める割合がある。ピーチの向きに影響せず、パーティクル被りの影響も少ない。
ヒストグラム(6) #
2枚の画像のヒストグラムを出し、ヒストグラム同士の類似度を求める。
特徴 #
注意点 #
全く異なる場面でもヒストグラムが似ていれば一致判定が出てしまう。
仕様 #
ヒストグラムの比較方法:Bhattacharyya distance
Hash(7、12~17) #
画像をハッシュ化し、ハッシュ値を比較する。
_7→Difference Hash
12→Average Hash
13→BlockMean Hash
14→ColorMoment Hash
15→MarrHildreth Hash
16→Perceptual
17→RadialVariance
L2Norm(8) #
2枚の画像のユークリッド距離を算出する。
特徴 #
- RunLeashが実装している計算方法の中でもっとも計算量が少ない(100枚単位の同時マッチング処理にも耐えられる)
AKAZE、ORB(9、10) #
2枚の画像から特徴点をそれぞれ抽出し、関係性をチェックする。
特徴 #
- 回転や拡縮の影響を受けづらい。
注意点 #
画像が小さいと特徴点の抽出が上手くいかない。画像が大きいと処理に非常に時間がかかる(処理時間はAKAZE>ORB)。
POCー位相限定相関(11) #
画像をフーリエ変換してからマッチング処理を行う。
特徴 #
- わずかな位置ズレであれば吸収される。
例:スーパーマリオブラザーズ3のステージクリア時に表示される文字は毎回わずかにズレているが、その影響を受けない。
注意点 #
画像が小さいと誤認識が発生しやすい傾向がある。