UiPath AI Computer Vision を試してみた

こんにちは、AI&ロボティクスセンターの大川です。
この記事は 『CRESCO Advent Calendar 2019』 19日目の記事です。

今回は、AI Computer Visionについて紹介したいと思います。

AI Computer Visionとは?

AI Computer Visionとは、機械学習によって画像からUI要素を検出し、そのUI要素に対して文字を取得したりクリックや文字の入力を行うアクティビティをまとめたパッケージです。

詳しくは、UiPathのサイトをご覧ください。
https://www.uipath.com/ja/resources/knowledge-base/ai-computer-vision-2019

環境を整える

AI Computer Visionは、APIキーを取得しないと使用することが出来ません。まずはAPIキーを取得しましょう。

UiPathのトップページから、「無料トライアルを始める」をクリック。

Community Cloudの「Try It」をクリック。

ログイン画面になるので、ログイン又はアカウントの登録をします。

または、以下のURLから直接ログイン画面へのアクセスも出来ます。
https://platform.uipath.com/

ログインするとダッシュボード画面が表示されるので、左のメニューから「ライセンス」を選択します。

「その他サービス」を選択し、コンピュータービジョンのAPIキーを「新しく生成」します。

生成されたAPIキーをコピーして、UiPath Studioの「CV 画⾯スコープ」アクティビティのプロパティにセットします。
また、URLには"https://cv.uipath.com"と入力します。

これで、AI Computer Visionが使用可能になりました。

ちなみに、同じプロジェクト内では「CV 画面スコープ」のアクティビティを配置する度に毎回APIキーをセットする必要はありません。一度セットしたら、自動でAPIキーがセットされるようです。

「CV 画面スコープ」内には、既にMicrosoft OCRエンジンのアクティビティが配置されており、UI操作関連のアクティビティはその下に配置していくことになります。

使ってみる

試しに、UiPathのページで少し遊んでみたいと思います。

Google ChromeでUiPathのページ(https://www.uipath.com/ja/)を開き、「CV 画面スコープ」アクティビティから画面上で指定をクリックし、Chromeブラウザを選択します。

(※ここで、Google Chromeの拡張機能にUiPath Web Automationがインストールされている場合は無効にします。UI要素を認識させないようにするためです。)

すると、数秒後にCV画面スコープのアクティビティ上にスクリーンショットが表示されるのでダブルクリックして見てみましょう。以下の画像のように、スクリーンショットに丸がいくつも囲われた画像が表示されると思います。これは、UiPathのAIが画像からUI要素を予測していることを表しています。

認識させる画像によっては、うまく要素を認識出来なかったり、文章の単位で認識せず一文字ずつの文字として認識したりすることもあります。というか色々試してみたところ、そういったパターンのほうが多いように思いました。

文字の取得もしてみましょう。「CVテキストを取得」のアクティビティを配置し、「スコープで指定」をクリックします。

すると、UI要素指定画面で青の領域の他に緑の領域も現れてくるのがわかります。

これは、青が取得したい要素で、緑がアンカーとする要素になります。AI Computer Visionのアクティビティではアンカーの指定が結構重要みたいで、これにより要素取得の精度が良くなったり逆に悪くなったりするようです。また、アンカーは複数個指定することも出来ます。

「CVテキストを取得」アクティビティのプロパティに結果の変数をセットし、「1行を書き込み」アクティビティで表示してみましょう。私の環境では、以下のように出力されました。

を 使 っ た 科 学 的 な ア プ ロ ー チ で RPA に よ る 業 務 の 自 動 化 を 計 画

AI」の文字を取得出来なかったのが少し残念ですが、概ねちゃんと取れているのではないでしょうか。

他のアクティビティも試してみましょう。UiPathのサイト上部にある虫眼鏡アイコンをクリックしてサイト内検索をやってみます。

  1. 「CVクリック」のアクティビティで、虫眼鏡アイコンを選択。
  2. 「CV文字を入力」のアクティビティで、サイト内検索フォームを選択。
  3. 入力文字列は、取り合えず「AI Computer Vision」にしてみましょう。

– 入力フォームを出現させないといけないので、UI要素選択中にF2キーを押下して「時間差で更新」する必要があります。
3. 「CVテキストを取得」のアクティビティで、一番上の検索結果の文章を取得。
4. 最後に、「1行を書き込み」などのアクティビティで結果を表示。

アンカー指定は、色々試行錯誤してみてください。
アクティビティの配置は、以下のようになるかと思います。

それでは実行してみましょう。私の環境では、以下のような文字列が取得出来ました。

Partners News Blog Newsroom Eventsmenu StartTrialContactChange Language: EN JP ES DE FRCN KO Hitentertosearch orESCtocloseAJ ComputerVisionAutomate business processes thatusevirtualdesktops- and moreYourRobot needsto beab[eto ‘see’ everythingyou’re automating.

正しい文字列は以下になります。

Partners News Blog Newsroom Events menu Start Trial Contact Change Language: EN JP ES DE FR CN KO Hit enter to search or ESC to close AI Computer Vision Automate business processes that use virtual desktops – and more Your Robot needs to be able to ‘see’ everything you’re automating. So what do you

比較すると、所々スペースが無くなっている箇所があり、「AI」が「AJ」になっていたり、「able」が「ab[e」になっていたりと多少誤認識もありましたが、結構良い精度で文字が認識されているのではないかと思います。

日本語の認識もしてみましょう。UiPathジャーニーのページ(https://www.uipath.com/ja/rpa/journey)で、赤枠の認識をしてみます。アクティビティの配置についての解説は、ここでは省略します。

“RPA は – 貫 し た プ ロ セ ス を 経 て 漕 在 能 力 を 最 大 限 に 、 、 発 揮 し ま す 。 UiPa は そ の プ ロ セ ス を 組 織 が 長 期 に わ た る 企 、 業 目 標 を 這 成 す る こ と が で き る よ う ノ ( – チ 、 ャ ) レ ワ – ク フ ォ – ス が 展 開 さ れ る ジ ャ – – で あ る と 考 え ま す 。 RPA を 短 期 的 な プ ロ ジ ェ ク ト ( お そ ら く 処 理 経 費 削 減 の た め か 正 確 性 向 上 の た め ) と 考 え て し ま う と 通 、 、 常 十 、 分 に 発 達 し た な 実 装 で 得 ら れ る メ リ ッ ト が 得 ら れ な く な っ て し ま い

正解の文章は、以下になります。

RPAは、一貫したプロセスを経て、潜在能力を最大限に発揮します。UiPathはそのプロセスを、組織が長期にわたる企業目標を達成することができるよう、バーチャルワークフォースが展開されるジャーニーであると考えます。
RPAを短期的なプロジェクト(おそらく処理経費削減のためか、正確性向上のため)と考えてしまうと、通常、十分に発達した健全な実装で得られるメリットが得られなくなってしまいます。

比較すると「、」が多い印象です。また、漢字の間違いもいくつかあります。例えば「潜在」が「漕 在」になっていたり、「達成」が「這 成」になっていたりです。
あとは、片仮名の精度が結構悪く見えます。漢字より片仮名のほうが認識するのが難しかったりするのでしょうか?

さいごに

AI Computer Visionを使ってみた感想としては、AIによりUI要素をある程度の精度で認識してくれるのは面白いと思いますが、結局は画像認識になってしまうため、どうしても自動化が不安定になってしまいます。しっかりとUI要素として検出してくれないと、実務で使うには難しいのではないかと思います。
とはいえ、個人的には中々楽しい機能であるとは思うので、どんなことが出来そうかもっと色々触ってみたいと思います。

  • このエントリーをはてなブックマークに追加