Batasan Blog

人類みな五十歩百歩

Sikulix 精度

 

dynabook N40にUbuntuを入れてRPAで遊ぶシリーズ第3弾です(笑)。 sikulixのエディターは、スクリーンショットをとってそのままコーディングできるすぐれものである。 Sikulix エディター その昔、長らくviでしかプログラミングしたことがないので、このエディターの便利さには感動すら覚える(笑)。
sikulixをしばらく使っていると、「画像精度」という概念があることに気づく。「認識度」と言ってもいいかもしれない。つまりあらかじめ保存した画像と、実際の画面で「一致」したらクリックする、などとロジックをコーディングするわけであるが、この「一致」は比較的適当である(笑)。人間的には似ても似つかない場所を勝手にクリックしたり、逆に全く同じはずなのに「Not found」と冷たく言われたりする。こういった微調整が必要なのが他のプログラミングとはすこし違うところだ。 sikulixの素晴らしいところは、この「精度」の微調整もエディターから操作できるところだ。切り取った画像をクリックすると、「パターン設定」というウインドウがでて、「マッチングプレビュー」というタブがある。下のほうをみるとスライドバーがあって「認識度」を変更できるようになっている。「認識度」を下げると少しでも似ているモノがあれば「一致」と判断するし、上げるとわずかな違いでも「不一致」と判断するようになる。このあたりの微調整が必要なのはRPAらしいところだし、工夫の余地が多いところだ。遊びならよいが仕事でやっているみなさんには本当に頭が下がる思いである。 こうやって微調整した結果はpythonのコードだとこんなふうになる。

click(Pattern("画像.png").similar(0.90))

これは「認識度」を90%に設定したという意味である。sikulixのエディターはすばらしいが、慣れてくると直にこのあたりをviで編集するほうに回帰するようになっていくのはプログラマーのサガである(笑)。   ちなみに画像に対してclick()関数でクリックされる位置を微調整するには隣のタブの「ターゲットオフセット」で行うことができる。こちらもsikulixのエディターならマウス操作で行えるが、コーディングだとこんな感じで調整することができる。

click(Pattern("画像.png").similar(0.90).targetOffset(-275,20))

こちらも直に...以下同文である(笑)。