🔧 検出がうまくいかないときの調整

検出がうまくいかないときに、どの設定をどう変えればよいかを説明します。

調整の進め方

検出の安定度は、画面・端末・検出画像の組み合わせによって変わります。すべての環境で完璧に検出できるわけではありません。次の点に注意して調整してください。

  • 設定は一度に1つだけ変える

    複数の設定を同時に変えると、どの変更が効いたのかがわからなくなります。

  • 変更するたびに再生して確認する

    チュートリアルの練習用画面は条件が一定なので、変更が本当に効いたのかを判断しやすくなります。

そもそも検出できる画面かを確認する

アプリの画面によっては、画面内容の読み取りを制限している場合があります。この場合はどの設定を変えても画像検出・テキスト検出はできません。

Android のスクリーンショット機能で対象の画面を撮影してみてください。検出したい領域が黒く塗りつぶされている場合、そのアプリが画面内容の読み取りを制限している状態です。TapEzy でも同様に画面内容を読み取れないため、画像検出・テキスト検出は使用できません。この場合は画面キャプチャを必要としない画面要素検出をご検討ください。

画像検出の調整

まったく検出されない

まず検出画像を切り直してください。カウンターやレベル表示など、画面ごとに変化する部分が検出画像に混ざっていると検出できません。変化しない部分だけを切り出してください。

また、検出画像と画面に現れる画像のスケールが違いすぎると検出できない場合があります。可能であればスケールが一致するように検出画像を取り直してください。

ときどき検出に失敗する

誤差許容度を少しずつ上げてください。既定値は 70 で、0 から 100 の範囲で設定できます。値を高くすると検出画像にマッチしやすくなりますが、誤検出も増えます。一度に大きく上げず、都度再生して確認しながら調整してください。

別の場所を誤って検出する

検出範囲を、検出画像が現れる領域に絞ってください。あわせて誤差許容度を下げると誤検出が減ります。

色や明るさが変わると検出できない

グレースケールで検出がオンになっているかを確認してください。この設定は既定でオンになっています。オンの場合、検出時に画像をグレースケール化して比較するため、選択状態やテーマの変更などで色だけが変わる対象にも対応できます。オフにしている場合はオンに戻してください。

検出が遅い

まず検出範囲を絞ってください。検出範囲が大きいほど処理時間がかかります。あらかじめ検出画像が現れる領域がわかっている場合は、必ず範囲を設定してください。検出範囲を絞ることは、速度だけでなく精度の面でも効果があるため、最初に試してください。

検出範囲を絞ってもなお速度が気になる場合は、拡縮倍率で縮小してください。画像検出の拡縮倍率は x1/16 から x1 の範囲で、縮小方向のみ設定できます。複雑な画像でない場合、縮小することで効率が上がります。

テキスト検出の調整

まったく検出されない

まず検出するテキストを短くしてください。もっとも効果があります。ほかと紛れない範囲で、特徴的な部分だけに削ってください。

検出するテキストは、画面に表示されているとおりに入力してください。大文字・小文字の違いでも検出できないことがあります。

文字が小さくて検出できない

画面に表示される文字が小さすぎると、検出が成功しにくくなります。拡縮倍率で拡大してください。テキスト検出の拡縮倍率は x1/16 から x16 の範囲で、縮小・拡大の両方が設定できます。

ただし拡大するとメモリ消費量が増え、動作が不安定になる可能性があります。拡大する場合は、あわせて検出範囲を絞って処理負荷を軽減することもご検討ください。

別の場所にある同じ文字を検出してしまう

検出範囲を、対象の文字が現れる領域に絞ってください。

長い文の一部を誤って検出する

要素単位での一致に限定をオンにしてください。オンにすると、単語単位で検出するテキストと完全に一致した場合のみ検出されます。長い文の中に部分的に埋もれている一致を除外できるほか、検出結果の位置が行全体の中心にずれることも防げます。

なお、行のテキスト全体が検出するテキストと完全に一致する場合は、この設定のオン・オフにかかわらず検出されます。この設定が効くのは、長い行の一部として一致した場合だけです。

「要素単位での一致に限定」をオンにすると検出できない

オフに戻してください。オンのときは、行の中の単語が検出するテキストと完全に一致している必要があります。検出するテキストが単語より大きい単位(複数の単語にまたがる文字列など)の場合は一致しません。

検出するテキストは、オン・オフにかかわらず常に大文字・小文字を区別して照合されます。ただしオフのときは、一致箇所を特定できなくても行全体を検出結果として返すため、検出自体は成功します。オンのときはこの動作がないため、大文字・小文字が違うと検出されません。たとえば画面に Login と表示されているのに検出するテキストlogin としている場合、オンでは検出されません。

検出が遅い

まず検出範囲を絞ってください。あらかじめ対象の文字が現れる領域がわかっている場合は、必ず範囲を設定してください。検出範囲を絞ることは、速度だけでなく精度の面でも効果があるため、最初に試してください。

検出範囲を絞ってもなお速度が気になる場合は、文字が大きければ拡縮倍率で縮小することでも効率が上がります。

文字が表示されていない部品を操作したい

アイコンだけのボタンや、ラベルのない入力欄など、画面に文字として表示されていない部品はテキスト検出では検出できません。画面要素検出に切り替えてください。画面要素検出は画面キャプチャの許可が不要で、再生予約でも使用できます。

検出全般で気をつけること

画面の向きが変わると検出に失敗する

検出範囲は画面上の座標として保存されます。画面の向きが変わるなどして、設定した検出範囲が画面とまったく重ならない状態になると、必ず検出に失敗します。

画面の向きが変わる可能性がある場合は、検出範囲を設定せず全画面のままにするか、向きごとにシナリオを分けてください。

複数の画像や文字を順番に検出したい

検出のステップを必要な数だけ並べれば、上から順に処理されます。

テキスト検出では、検出するテキストに複数行を入力すると、各行が別々の候補として検出されます。「見つかったら別のステップへ飛ぶ」「別のシナリオへ移る」といった流れは、ステップジャンプやシナリオジャンプのステップで組めます。

再生予約では画像検出・テキスト検出・数値検出は使えない

画像検出・テキスト検出・数値検出は画面キャプチャを必要とします。再生予約では画面キャプチャが使用できないため、これらのステップを含むシナリオは再生予約では実行されず、「失敗: スクリーンキャプチャが必要」として記録されます。

この判定はシナリオジャンプ先のシナリオもさかのぼって行われます。無効にしたステップは判定の対象外です。

時刻を指定して自動で動かしたい場合は、画面キャプチャが不要な画面要素検出をご検討ください。

関連ページ