Computer Vision をローカルサーバーで使ってみる

## はじめに

- AI Computer Vision によって、すべての UiPath Robots がユーザーインターフェイス上のあらゆる要素を認識することが可能になります。
- フレームワークやオペレーティング システムの種類に関係なく、ほとんどの仮想デスクトップ インターフェイス (VDI) 環境で実行される視覚情報ベースの自動化を簡単に構築できます。
- 利用するには 19.10 バージョン以降の UIAutomation パッケージのインストールおよびAutomation Cloud へのログイン・OC接続等が必要です。（以下、OC非接続時の警告ダイアログ参考）
- スタンドアロンで利用する場合、UiPath.ComputerVision.LocalServer をインストールし、CVスコープのプロパティの「ローカルサーバーを使用」　を True としてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/59012e44-c29a-17b3-d683-29dc82b75907.png)

## ローカルサーバーの利用方法

「パッケージを管理」より UiPath.ComputerVision.LocalServer をインストールします。
説明欄に記載のある通り、UIA のパッケージは 22.7.0-preview 版以降に更新してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/5c5c9ea4-866a-f361-8b68-ae3da4e3bc84.png)

「CV スコープ」アクティビティを配置し、「ローカル サーバーを使用」のオプションを「True」に設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/0d24a460-a125-a57d-7deb-c20d80fb6dd6.png)

- 推奨ハードウェア仕様：以下のハードウェア仕様を満たすマシンが必要です。
    - 4 コア以上の CPU。複数の CPU によってパフォーマンスがスケールするため、8 コアであればさらに効果的です。ただし、16 コアを超えると、スケーリングによる速度の向上はほとんどまたはまったく見込めなくなります。
    - AVX2 のサポート: AVX2 命令に対応していない CPU はサポートされません。使用するとエラーが発生します。
    - 8 GB 以上の RAM
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/675dfbed-71bb-9192-5063-0a104cfb5028.png)

::: note
利用条件を満たさない場合、①または②の様なエラーが表示されます。（②は最新バージョンのUIA）
:::

先の例は CPU の命令フォーマットが非準拠のPCで再現したものです。[***こちら***](https://docs.uipath.com/ja/activities/other/latest/user-guide/about-the-computer-vision-local-server-pack#troubleshooting)のハードウェア要件によると命令フォーマットは『AVX2』をサポートしていなくてはなりません。
Intel の「i7-3770K CPU」の場合（私用PCでエラーとなる方）：
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/58d59970-2c0f-c81c-b1dc-0e61dc801e03.png)
Intel の「i7-8550U CPU」の場合（期待動作を得られる方）：
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/faa951bb-753f-8507-d6cf-93365c75ada4.png)

利用条件を満たす場合、要素取得処理実行後に選択したスクリーンのキャプチャがスコープに補完されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/7167d98d-1351-3127-6157-d5a07649ba29.png)

要素取得の処理速度は体感レベルでは変わりません。参考までに処理速度の実測サンプルを記載します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/e6d42cfd-d08b-a30e-9433-d9864ccedd3c.png)

- 要素読込時間（秒）：CV画面スコープで読み取り範囲を画面上で指定してから、アクティビティ上にスクリーンショットが補完されるまでにかかる時間です。
- ローカルサーバーで処理できる単語は 800 個に制限されています。 
- Robot 実行時の処理速度については、利用するサーバーによる差異は確認していません。

（要素数10～20個のキャプチャ例）
![CV10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/ef33a9c3-a53c-2ccb-9678-e24c6f44474a.png)
（要素数20～30個のキャプチャ例）
![CV11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/e7d648f6-9a8d-2a3d-24c3-c71d276c4fd6.png)
（要素数50個以上のキャプチャ例）
![CV12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/e1c07330-1e5a-5e1a-25de-7cffefb336d3.png)

記号やマーク、アイコンといった要素の取得では若干の差異のみですが、文章の読み取りでは UiPath のサーバーをもちいた方が精度が高くなる傾向を確認しました。（以下、一例。ハイライトされている部分のみCV操作が可能です。）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/17914d57-d6d7-ef40-4a05-34a9096a82af.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/3606024d-c007-52f4-1ceb-d26b58298421.png)

## 参考ガイド

***Computer Vision のアクティビティガイド：***

https://docs.uipath.com/ja/activities/other/latest/user-guide/about-the-computer-vision-activities

https://docs.uipath.com/ja/activities/other/latest/user-guide/computer-vision-activities

***Computer Vision をローカルサーバーで利用する際の留意事項：***

https://docs.uipath.com/ja/activities/other/latest/user-guide/about-the-computer-vision-local-server-pack#troubleshooting

最後までお読みいただきありがとうございます(=ﾟωﾟ)ﾉ