【WinActor】画像マッチングの設定のコツとエラー対策
皆さんこんにちは!開発エンジニアのYYです。
私は普段、WinActorやBizRobo!を用いてお客様先の業務自動化を支援しております。
今回は、WinActorの代表的な機能の一つである「画像マッチング」について、
私が実際の業務内で活用した、画像マッチングの設定のコツやエラー対策をご紹介いたします。
1.画像マッチングのよくあるエラー
WinActorの画像マッチング機能を利用する際、特によく発生するエラーには以下のようなものがあります。
・画像が見つからないエラー
画面レイアウトやサイズが変更されたり、画面の解像度が異なったりする場合に発生することが多いです。
また、画像が少しでも異なると一致と認識されないこともあります。
実際にあったエラーは、画面取得時と、エラーで確認した際の画像が微妙に異なっていたというものでした。
肉眼では変わらず、画像をピクセル単位で見てようやく判別できました。
・画面の読み込み遅延によるエラー
画像マッチングは画面が完全に表示されていない状態で実行すると、エラーを引き起こすことがあります。
たとえば、Webページやアプリケーションの遅延により、画面が完全に表示される前にマッチング処理が走るなどすると、
エラーが発生する場合があります。
・背景色やフォント変更による誤認識
UIデザインの変更などで操作対象となるWebページやアプリケーションの背景色やフォントが変わると、
画像マッチングが失敗しやすくなります。
2.画像マッチングエラーの原因とその対策
ここまでで挙げたよくあるエラーへの対策をそれぞれ確認していきます。
よくあるエラー1:画像が見つからないエラー
<対策>
①検索範囲の設定
WinActorの画像マッチング機能では、画像の検索範囲を制限する事ができます。
例えば、画面全体を検索するのではなく、画面の特定のエリア(画面の右半分など)だけで画像を探すように設定することで、
不要な箇所でのマッチング失敗を防げます。
検索範囲は「画像マッチング」ノードの設定画面の下図赤枠から設定できます。
②マッチ率設定の活用
WinActorでは「マッチ率」の機能を使用することで、画像の一部が異なっていてもマッチングを成功させられます。
これにより、多少のレイアウト変更や色合いの違いがあっても対応が可能です。
マッチ率があまり高すぎるとマッチしない場合がどうしても出てくるので、個人的におすすめのマッチ率は80%以上です。
(ちなみにWinActor Ver7.1以降ではマッチ率のデフォルト値は90%となっております)
設定箇所は下図赤枠内になります。
また、Ver7.4以降では、ロボ実行後の「ログ出力」画面で、画像マッチング後の実際のマッチ率を確認できますので、
ロボットの調整時に活用していきましょう。
よくあるエラー2:画面の読み込み遅延によるエラー
<対策>
①「待機」の挿入
ページやアプリケーションの読み込みが完了していない状態で画像マッチングを行うとエラーが発生します。
これを回避するためには、処理の前に適切な「待機(Wait)」を挿入することが有効です。
特に、動的に変化するWebページの場合、ページが完全に読み込まれるまで待つことが必要な場合もあります。
待機にはいくつかのノード・ライブラリが用意されております。
(「ウィンドウ状態待機」「指定時間待機」など)
待機するシステムやファイルの種類や挙動で適宜判断していく必要があります。
②画面読み込み確認を行う
本命の画像マッチングの前に、特定の要素が画面上に表示されていることを確認する
もう一つの画像マッチングを追加する方法もあります。
まず、本命のマッチング部分の近くにあるアイコンなどで事前に画像マッチングを行い、
画面の読み込みが完了したかを確認します。
それから次の処理に進むことで、エラーの発生率を下げられます。
よくあるエラー3:背景色やフォント変更による誤認識
<対策>
①画像のマッチ範囲を最小限にする
マッチング範囲を設定する際に、不要な背景や装飾などを避けて、本当にクリックしたいボタンやアイコンだけを
画像マッチングの範囲とすることで、ある程度はUIの変更などにも対応する事は出来ます。
②画像の撮り直し
こちらは事前の対策というよりは、事象が発生してしまった後のエラー対応になりますが、
画像マッチングで設定していたマッチング画像を撮り直すという方法があります。
UI変更などのサイト側の更新には中々事前に対応する事は難しいので、この方法を採る事がほとんどになります。
3.最後に
いかがでしたでしょうか?
WinActorの画像マッチングは、操作画面上の要素が取れない場合などにでも操作できる非常に強力な機能です。
設定をきちんと行い、エラー対策もしっかり行うことで、より安定したロボット開発の実現に近づける事が出来ます。
最後までお読みいただきありがとうございました。
弊社では経験豊富な開発者が多数おりますので、もしご興味がございましたら是非弊社にご相談ください。