PyAutoGUIは、Pythonでスクリプトを書いてコンピュータの操作を自動化するためのライブラリです。
PyAutoGUIを使うことで、次のようなことができます。
- マウスカーソルの移動
- マウスクリック(左、右、中央)
- マウスホイールスクロール
- キーボード入力
- ファイルのドラッグアンドドロップ
- キーボードのショートカット(Ctrl + C、Ctrl + Vなど)
- キャプチャスクリーンショット
- 画面上の特定の画像を探す
PyAutoGUIを使えるようになると、RPAを実装することができます。
今回はPyAutoGUIの画像を探す時に、読み取り精度を上げる方法を解説します。
【Python】PyAutoGUIのlocateOnScreen関数で画像の読み取り精度を上げる方法
PyAutoGUIのlocateOnScreen関数で画像の読み取り精度を向上させる方法は、以下のとおりです。
1.画像の解像度を高める
2.画像のサイズを調整する
3.画像のフォーマットを選択する
4.画像をクリーンアップする
5.画像を回転させない
6.光の影響を最小限に抑える
7.confidence引数を適切に設定する
上記7つの対応を工夫することで、画像の認識精度を高めることが可能です。
詳しく解説していきます。
画像の解像度を高める
高解像度の画像を使用すると、より正確に認識されます。
画像の解像度を高める方法は、以下のとおりです。
・高解像度のカメラを使用する:デジタルカメラやスマートフォンカメラなどがこれに該当します。
・画像を編集ソフトで拡大する:Adobe PhotoshopやGIMPなどの画像編集ソフトを使用すると、画像の解像度を高めることができます。
・高解像度の画像をダウンロードする:高解像度の画像を含んだ画像データベースや写真共有サイトなどからダウンロードすることができます。
・画像をスキャンする:プリンターやスキャナーを使用することで、高解像度の画像を取得することができます。
スクショでとった画像を高画質化するには、waifu2xも有効です。
無料ですぐに試せるので、画像認識元となるデータで試してみるのもおすすめです。
画像のサイズを調整する
小さすぎる画像だと認識が難しい場合があります。
その場合は、画像サイズを大きくするなどの工夫が必要です。
画像のフォーマットを選択する
フォーマットによって認識率に差がでる場合があります。
例えばPNGは、他のフォーマットよりも認識率が高い場合があります。
そのためスクショする場合は、png形式で保管する方が望ましいです。
画像をクリーンアップする
不要な要素を除去することで、認識率が向上します。
・背景の除去:不要な背景を除去して、画像の中心となる物体だけを残す
・画像のトリミング:画像の端や余白を取り除いて画像のサイズを調整する
画像を回転させない
回転させると画像の認識が困難になります。
画像の方向を合わせることが大切です。
光の影響を最小限に抑える
光の影響を最小限にすることで、認識率が向上します。
スマホのカメラなどで写真を撮っている場合、光の加減によって画像認識が困難になるケースがあります。
またPC画面のスクリーンショットを使用する場合も、光の影響は関係あります。
スクリーンショット中に明るいところや暗いところがあったり、色調が異なる場合、画像認識ソフトウェアが正確に認識することが難しくなる可能性があります。
そのためPCのスクショを撮る場合は、画面の照明条件を一定にするなどの配慮が望ましいです。
confidence引数を適切に設定する
confidence引数を設定することで、画像の認識精度が上がります。
一般的にはconfidence値は、0.9から0.99までに設定するのが良いとされています。
但し実際には画像の検索条件や環境によって異なりますので、実際に動作させて試してみて最適な値を決定することが望ましいです。
詳細は以下の記事をご覧下さい。
もっと効率的に勉強したい方
独学での勉強に限界を感じている方は、思い切って課金するのも手です。
udemyなら基礎的な知識を短期間でマスターすることが可能です。
僕も最初の頃は、udemyの動画で勉強しました。
講師のコードを見ながら作成できるので、成長速度が非常に早くなりました。
数千円で数十時間の節約になるので、悩んでいる方はケチらず投資していきましょう!
コメント