2020.01.06

UiPath AI Computer Vision で画面項目を高精度で認識する

D.M.です。今回は RPA の商用ソフト UiPath の AI 連携機能を紹介します。
 
UiPath は 2019 年に AI 連携を強く打ち出し、いくつかの新機能を提供し始めました。
詳細は公式ページの情報が詳しいです。
「RPAとAIの連携」
 
今回はその1つである AI Computer Vision を使ってみます。
 
この記事の対象者は以下の通りです。
・UiPath をある程度知っていて AI 連携機能について知りたい人。
・RPA と AI の連携について情報が知りたい人。
・なにか AI の利用事例を知りたい人。
 
今回は UiPath の基本機能については触れません。
もっとベーシックなことを知りたい人は以前の記事を参考にしてください。
「UiPath でブラウザのデータを Excel に貼り付ける」

AI Computer Vision とは

AI Computer Vision は AI を使って画面項目を人間が見たかのように認識する機能です。
公式ページはこちら。

何に使えるのか

UiPath の自動操作ロボは、操作の録画とその編集でプログラミングしますが、画面項目がなぜか選択できないというトラブルがよく発生します。
AI Computer Vision はこの問題を従来のソリューションよりも確実な手段で解決します。

画面項目認識のアプローチ全般のおさらい

従来は3つの方法がありました。( UiPath は全てを使えます)
 
1.座標認識
ターゲットの画面項目が基底点から何 px 離れているか X 座標 Y 座標で認識する。
基底点は画面左上端やウィンドウの左上端からの座標になることが多い。
2.画像認識
画像そのままのものが画面上に存在するかを探して認識する。
単純で成功しやすいが、ちょっとでもフォントサイズやピクセルがずれると認識されなかったりするので環境に依存しやすい。
UiPath では 80 %一致など塩梅が指定できる。
3.タグ認識
HTML や Windows のコンポーネントをタグで認識する。タグはレコーディング機能を使えば自動的に認識される。
UiPath 内のツール UI Explorer で修正可能。ツールでの編集はちょっと癖がありますがタグなので高精度で動作します。
 
ここで新たに4つ目が加わりました。
 
4. AI Computer Vision
AI の力で人間が見たのと同じようにして認識する新機能です。
モデルは Uipath のクラウドサーバにあるので API キーを設定するだけで使えます。
現状は回数制限があります。

メリット

この機能が特に効果的なのは以下を認識させるときです。
・Citrix / VMware / Windows リモートデスクトップ等の VDI 仮想化環境
 (リモート系やクロスプラットフォーム系はもともと画像認識でしか動かなかった)
・SAP アプリ
 (従来はテクニックを駆使して自動化をしていた)
・社内の独自ツール
 (よくわからない独自ツールはなぜか動かない)

利用の優先順位

高精度なら認識は全部 AI に依存してしまっていいのでは?と思ったのですが、勉強会で UiPath の中の人と雑談をした感じでは利用の優先順位は以下のようです。
タグ認識  AI Computer Vision  画像認識
理由なんですが、タグ認識は明示的なタグ文字列という従来のシステムが認識しやすい仕組みで動作するので画像認識のような曖昧さを含むものに比べると精度が高いです。
Uipath の CV は通信+モデル処理でリソースを食うので、ローカル環境だけで動くタグ認識に比べると遅くなります。
また AI Computer Vision は画像認識+AIという感じなので、単純な画像認識を使うよりかは AI Computer Vision のほうが優れた精度が出ます。
ただ、後述しますが外部サーバへ画面キャプチャを送信するため機密情報を含む箇所では実質的に利用できません。この点は利用に注意が必要です。

処理フロー

画面の指定箇所を画像キャプチャ取得
クラウド上の AI サーバと通信し AI で画面項目を認識
クリック対象を正確に判定
※この画像の元ネタはこちら。

やってみる

私は直近の開発で Chrome の印刷ボタンが認識されない事象に出くわしました。Chrome 拡張機能の UiPath Web Automation の 再インストールやホットキーで印刷を実行させる方法など選択肢はありましたが、ここは練習がてら AI Computer Vision を使ってみます。

お題

UiPath で弊社ホームページのトップを印刷してみます。
手動で Chrome で印刷しようとすると上の画像のような画面が出ますが、 Uipath で自動操作を試みた時なぜか青の印刷ボタンが認識されず押せないトラブルに。。
この問題を解決するために AI Computer Vision を利用してみます。
先に開発したものの全体像をお見せするとこんな感じになりました。
超シンプルですが以下で設定方法を説明します。

準備

まず準備として UiPath Studio のデザインメニューの「パッケージを追加」を開きます。
「パッケージを追加」から UIAutomation アクティビティの最新版をインストールします。(2020年1月時点で19.11.0)
もう1点、 UiPath のクラウドにログインし API キーを発行します。
メニューのライセンス→その他サービスの中でコンピュータビジョンのAPIキーが取得できます。
現状無料のコミュニティライセンスでもいけるようです。

開発

いよいよここからが開発です。
デフォルトで使える「ブラウザを開く」アクティビティを設定して、GMOインターネットグループのホームページを開いて、印刷画面を出すように設定します。(簡単なので割愛)
次に UiPath Studio でアクティビティを CV で検索すると、先ほどインストールしたアクティビティが表示されます。
以下の画像のような感じです。

CV画面スコープアクティビティ

AI Computer Vision を使うには、第一に「CV画面スコープ」アクティビティを設定します。このスコープ内で認識して項目をクリックさせたりします。
スコープを設定した直後に利用規約と注意事項が出てきますが、超重要なので必ず確認してください。
私の理解では「画像を UiPath のクラウドサーバに送信して保持するので機密情報などセキュリティ上の問題になりそうな箇所ではこの機能を使うな」っていう感じです。詳細を読むと本番環境では画像が送信されても保持されないので、保持はあくまで開発環境での AI のトレーニング用のようですが、やばいものを外に持ち出ししないに越したことはありません。これを回避するには社内にサーバを立てる必要があります(要お問い合わせ)。ご注意を!
同意して次に進むと設定項目が出てきます。
右側のプロパティに先ほど準備した API のキーを設定します。
URLには”https://cv.uipath.com” を設定します。
上記のCV画面スコープで「ブラウザー内で要素を指定」を選択すると、現在の画面のどこを認識させたいかを聞かれるので、私は印刷ウィザードの全体を以下のように選択しました。
すると通信が発生し、結果認識された画面項目が以下のように表示されます。

CVクリックアクティビティ

続いて「CVクリック」アクティビティを設定します。
CVクリックアクティビティで「スコープで指定」を選択すると以下のように画面が認識されます。
クリック対象の印刷ボタンを選びます。
今回は似たような項目があると赤い字で表示されたので、印刷の隣にあるキャンセルボタンをアンカーとして指定しました。
これで設定完了です。
実行してみましょう。
デモ動画。15秒です。

感想

機能自体は結構簡単に設定できました。利用回数制限や機密情報に関する注意事項さえ気をつければ積極的に利用していけそうです。

最後に、次世代システム研究室では、グループ全体のインテグレーションを支援してくれるアーキテクトを募集しています。アプリケーション開発の方、次世代システム研究室にご興味を持って頂ける方がいらっしゃいましたら、ぜひ募集職種一覧からご応募をお願いします。

皆さんのご応募をお待ちしています。

  • Twitter
  • Facebook
  • はてなブックマークに追加

グループ研究開発本部の最新情報をTwitterで配信中です。ぜひフォローください。

 
  • AI研究開発室
  • 大阪研究開発グループ

関連記事