FRepの画像認識に失敗する
スポンサーリンク
画像認識がうまくいかない、失敗する理由
FRepで画像認識がうまくいかない、失敗するのには使い方に問題がある場合がありますので、一つ一つお知らせしていきます。
目次
これらが考えられますが、まずそもそも画像認識は正常に動く端末か確認するのが大切かと思いますので、HOME画面上のアプリをタッチで起動するプログラムが動くか確かめてみましょう。
画像認識ができるか確認
- HOME画面でスクリーンショットを撮る
- FRepを起動し記録の管理を選ぶ
- プログラムの作成を選ぶ
- 新規作成をタッチ
- 条件[+]から画像認識を選択
- 画像ファイルから選ぶで先ほど撮ったスクリーンショットを選択
- 好きなアイコンを囲うように範囲を指定して選ぶ
- 適用
- 制御設定の“完全一致”をタッチし色の類似度へ変更
- 成功時に認識領域の中央をタップにチェック
- 適用
- 端末の戻る✕3
- 新規作成のプログラムを再生してみる
これを再生すると5秒待機の後、自動でタッチしてアプリを出来れば端末上の問題は無くプログラミングの問題と考えます。
タッチ情報が取得されていない
rootを取得してないで、Android4.0以下の場合
上の再生を行った時に
『再生中断:2画像認識
FRepアプリのメニューより「タッチ情報の取得」を行ってください』
と出るのでタッチ情報の取得を行う。
- FRepを起動
- 端末のメニューボタン(戻るボタンでもHOMEボタンでもないヤーツ)
- タッチ情報の取得
- 指示通り タップ スワイプ 連打 長押しする
これでまた再生してみてください。
プログラムの問題 だとすると、
- 画像認識を完全一致にしている
- 画像認識時間が短い
- 画像認識を連続して行っている
が考えられる。
画像認識を完全一致にしている
画像を完全一致にしてしまうと認識成功率はがくっと下がるので
個人的には“画像認識ができるか確認”で行ったように色の類似度へ変更する。
パーセントは時々で変更するが、わたしはまぁ似ているならタッチしてよーくらいで全然問題ないと思うので…80%から50%くらいまで使い分けている。
画像認識時間が短い
画像認識時間とはその間中スクリーンショットを撮影し続けてますから、指定の場所に
指定の画像が来たら成功の操作をすぐしますねー、時間内になければ失敗の操作をしますねーというものです。
認識時間が終わるまでずーっと成功操作を行わない訳ではないので長めに設定しても良いと思います。
ぱっと一瞬見て成功の場合はAの操作、失敗の場合はBの操作のように操作を切り分けたければ、時間は短い方が良いと思います。わたしの端末だと0.002秒で切り分けさせています。
画像認識を連続して行っている
画像認識を連続で行うと処理が遅れプログラムが中断する可能性があります。
その場合は間に待機を少し入れ画像認識プログラムを編集し制御設定の
『次の待機を省略』の成功時、失敗時両方に青い下線 _(←こんなの)
が入らないようにする。 入っているとせっかく入れた待機が省略されてしまいます。
その他 思いつくこととすれば
システム初期設定の問題
端末依存なのか分かりませんが設定変更を行うことで解決することもあるようです。設定方法は…
- FRepの起動
- オプション
- システム設定
- 全ビットを画像認識に使用→チェックボックスを外す
- 端末の戻るボタン二回
画面にフィルターをかけていて暗い
わたしもどこかのページから勉強してFRepの使い方を覚えたのですが、どこかで見た中にScreen Filterをかけた方が電池の節約が出来て良いという記述がありました。
Screen Filter - Google Play の Android アプリ
ですが、これを入れると画像認識に失敗します…
ただし、画像認識を使用せず位置を指定してのタッチや操作を再生するだけならこのようなことは起こらないので画面が暗い分電池が減らないので有用かと思います。
ほかにもFRepの記事がありますので良ければどうぞ