Help us understand the problem. What is going on with this article?

【UiPath×AI】UiPathからGoogle Vision APIを呼ぶ

More than 1 year has passed since last update.

前置き

 以前から「何かUiPathでAI連携っぽい事を試したい」と考えていたのですが、7/30のUiPath AI ExpoのセッションでGoogleやMSが"学習済みAI"を紹介してたのを思い出したので、手軽に試せるネタとしてUiPathから学習済みAIへ連携させてみます。

まぁちょっとコレを見てよ

ゲームのスクリーンショットをGoogle Cloud Vision AIのデモ画面に食わせてみました。
image.png
image.png
すごくない?UiPathとは全然関係ないけど、
画像をアップロードするだけで様々な情報を取り出してくれます。

  • まず日本語OCRの精度は完璧(むしろ取り過ぎてる)
  • キャラクターと被ってる小さなテキストすら正確に抽出
  • 画像中のキャラクターも(ゲームCGなのに)人と認識できてる

これがクラウドの学習済みAIの威力なのか・・・

無料期間があったりタダで試せるAIサービスとしては

などがありますが、上記デモ画面の結果を見て即Google Cloudに決めました。

アカウント登録にクレジットカードの登録が必要ですが、無理な使い方しなければ12ヶ月間は無料なので、その範囲で色々やっていきます。
早速サービスアカウント作って、Cloud Vision AI用のAPIキーを取得しました。
image.png
これでGoogle側の準備は完了、早速UiPathからAPI経由で画像を送り、Vision AIから解析結果を受けてみようと思います。

Google Vision API連携用パッケージを使う

APIなので普通ならPython等のScriptから呼ぶんだけど、さすがUiPath、既にUiPath GO!に連携用パッケージ Google Vision が用意されてます。
(ちなみにStudioのパッケージ管理ダイアログからもお手軽にインストールできます)
image.png

ちなみにGO!ページの"リソース"タブには解説書も付いてます。優しい!でも中身English!
image.png

インストールするとアクティビティパネルに連携 > Google > Vision の階層でActivityが用意されます。今回は"テキストを検出"(Text Detection)を使って画像中のテキストを抽出してみます。
image.png

Vision AIからテキスト抽出結果を受け取る("テキストを検出"Activity)

まず"Google Visionスコープ"を置いて、その中に"テキストを検出"を置く。
image.png
"Google Visionスコープ"の入力プロパティは多いですが、AIサービス認証の種類に応じたプロパティが用意されているだけ。認証をAPIキーで行うなら、認証の種類=ApiKeyにしてAPIキーを記入します。
image.png
"テキストを検出"の入力プロパティには解析させたい画像のパスを記入。
image.png
出力テキストの返り方には2つあり、"識別されたテキスト"はUiPath.GoogleVision.Models.LinePropertiesの配列、"返されたテキスト"はStringです。
おそらく前者はテキストブロック毎の位置・テキストの情報、後者はテキスト全体と想像。

まず前者を1行ずつWriteLineしてみる。(X位置 : Y位置 : 抽出テキスト)
item.TextRegion.X.ToString()+" : "+item.TextRegion.Y.ToString()+" : "+item.Description
image.png image.png

結果 → image.png
う~ん、なんか思ってたのと違う。配列はテキストブロック毎でなく、1要素目に全体のテキストがまとまってしまってるし、2要素目以降は細かすぎるブツ切りテキストで使い道が無い。

一方後者は → image.png
こっちは予想通り。画像内の全部のテキストが改行付きで返ってきます。
ちなみにデモ画面でしっかり"市民"と取れてたのが、こっちだと"売民"で間違ってる。
呼んでるエンジン違うのかな?

Vision AIからテキスト抽出結果を受け取る("手書き文字認識"Activity)

"テキストを検出"がイマイチだったので、別の"手書き文字認識"(Handwriting Detection) Activityを試してみる。
フローの組み方やプロパティはさっきと一緒です。
image.png
同様に、返ってきた
"識別されたテキスト"(UiPath.GoogleVision.Models.LinePropertiesの配列)と
"返されたテキスト"(String)をチェック。
前者の結果 → image.png
後者の結果 → image.png
デモ画面で使われていたエンジンはコッチだったようです。
テキストは正確だし、ブツ切りも抑えられてるし、使うならこっちかな。


今回はここまで。UiPath×AIと言いつつUiPathからAPI呼んでみただけなのでタイトル詐欺かもしれない。

ガンガンQiitaに投稿していた1年前に比べ、今は社内にUiPathがだいぶ普及してきたので自分がオートメーションを開発する必要が無くなり、気づけば「前にStudioを立ち上げたのっていつだろう?」状態。
最近は社内のUiPathライセンスの管理やリセラーさんとのコストダウン交渉~契約発注みたいなオジサン仕事ばかりで開発力がめっきり落ちているので、せめて家では何とか新しい開発ネタにチャレンジして投稿していきたい!

というわけでAI連携はまだまだ遊べそうなので、次回もVision AIを使って面白い事をやりたいと思います。

UmegayaRollcake
UiPath Academyの外堀を浅く埋める形でUiPathネタを書いていこうと思ってます。
https://www.youtube.com/channel/UCdo1xFEK-wRiVIQDs2cdvUg
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした