複雑な処理はAIに任せよう。
このブログでは、Power Automate for DesktopやPythonを使った業務効率化を紹介していますが、画像分析やテキスト分析などの複雑な処理を自分で作成するには限界があります。
Azure Cognitive Servicesは、そんな複雑な処理を可能にするAIの機能を、Power Automate やPythonプログラムに簡単に組み込んで利用することができます。
この記事ではAzureコグニティブサービスをPower Automate for Desktopで利用する方法について解説しています。
この記事では、初心者の方向けに下記を解説しています。
- Azureとは何かをざっくりと解説
- Azureを無料で利用する手順の解説
- Azure Cognitive Servicesとは何かをざっくりと解説
- Power Automate for Desktopで、Azure Cognitive Servicesを使って画像解析する方法を解説
Azure Cognitive Servicesとは?
Azure Cognitive Services(コグニティブサービス)とは、人間の持つ認知機能(音声・言語・視覚・決定)を獲得したAIを使って画像分析やテキスト分析をすることができるMicrosoftのサービスです。自分のプログラムやPower AutomateにAIの機能を簡単に組み込んで利用することができます。(Cognitiveは認知という意味を持つ英単語です。)
Cognitive Services は、あらゆる開発者およびデータ サイエンティストが AI を利用できるようにします。業界トップのモデルによって、さまざまなユースケースへの対応が可能になります。API を呼び出すだけで、見る、聞く、話す、検索する、理解する、高度な意思決定を迅速に行うといった機能をアプリに埋め込むことができます。スキル レベルを問わず、開発者およびデータ サイエンティストがアプリに AI 機能を簡単に追加できるようになります。
この 50 秒のビデオでは、よくご存じのプログラミング言語を使用して、さまざまなユース ケースで AI ソリューションをデプロイする方法をご紹介します。
引用元:Azure Cognitive Services – https://azure.microsoft.com/ja-jp/services/cognitive-services/
コグニティブサービスには下記のサービスがあります!
有名なのは、”画像から文字を抽出するComputer Vision”とか”テキスト分析を行うLanguage Service”などがあります!
Azure Cognitive Servicesに含まれるサービス
- Decision(決断)
- Anomaly detector
- Content moderator
- Personalizer
- Language(言語)
- Language service
- Translator
- Language understanding (classic)
- QnA maker (classic)
- Speech(音声)
- Speech service
- Vision(視覚)
- Computer vision
- Custom vision
- Face API
Azure Cognitive Servicesのメリット!
AIを使ったサービスや自動化を実現するには、通常、大量の教師データを用意してAIに学習させながら細かいチューニングを時間をかけて行う必要があります。しかし、コグニティブサービスを使えばそのステップを省略することができます。また、機械学習の知識を持ったエンジニアでなくてもAIを気軽に利用することができます。
Azure Cognitive Servicesのメリット
- 学習済みのAIを使うことができる!(あるいはノンプログラミングで簡単に学習させることができる)
- 深い専門知識がなくても少ないコストでAIを使うことができる!
Azure Cognitive Servicesを使ってみよう!
Azureってそもそも何?
Azure Cognitive Servicesは、Microsoft Azureのサービスの一部です。そのためAzureの利用登録が必要です。
Microsoft Azureは、Microsoftが提供するクラウドサービスの総評です。Azureを使えば、自身でサーバやソフトウェアを持たなくても必要なときに必要な分だけITリソースを利用することができます。
Azureは、AmazonのAWSやGoogleのGCPと並び、よく世界3大クラウドサービスのひとつに数えられている、世界を代表するクラウドサービスですね!
Azureは無料で誰でも試用することができます。
Azureは基本的には従量課金サービスです。でも無料枠があるので誰でも試すことができるよ。
無料枠で試用する場合もクレジットカード登録は必要です。きちんと無料枠設定をしておけば知らない間に課金されることはありませんので安心してください!
Azureの利用に必要なもの
- Microsoftアカウント(個人・ビジネス)
- クレジットカード
Microsoftアカウントをお持ちではない方は、下記から無料で作成できます。
新しい Microsoft アカウントを作成する方法
Azure登録手順の解説!
下記のMicrosoft Azure Cognitive Servicesの公式ページを開き、図の「無料で始める」をクリックします。
Microsoft Azure Cognitive Services
https://azure.microsoft.com/ja-jp/free/cognitive-services/
▲住所・氏名など個人情報を入力します。
▲利用規約やその他の同意事項を確認して、「同意する」にチェックを入れます。
入力が完了したら一番下の「次へ」をクリックします。
▲無料試用の場合もクレジットカードの入力が必要です。入力が完了したら一番の下の「サインイン」をクリックします。ここまでの作業で利用登録は完了です。
▲Azureの利用登録が完了すると、ようこそ画面が表示されます。画面の中にある「Azure Portalを続行する」ボタンをクリックします。
Power Automate for Desktopで画像分析をしてみる。
Azureの登録ができたので、Power Automate for Desktopを使って画像分析をしてみたいと思います!
1.Computer visionアプリケーションの作成
▲Azure Portal(https://portal.azure.com/)のAzureサービス一覧グループの中にある「Cognitive Services」をクリックします。「Cognitive Services」が表示されていない場合は、画面上部の検索窓から「Cognitive Services」で検索して探してください。
- サブスクリプション:請求グループを選択します。今回はデフォルトのAzure subscription 1を選択します。
- リソースグループを新規作成します。今回は「テスト」としました。
- リージョン:サーバが置かれた場所を選択します。お住まいの地域から近い場所で良いかと思います。日本の場合、東日本と西日本のいずれかがありますが、Power Automate Desktopでは現在東日本だけに対応していますので「東日本」を選択します。
- Name:アプリケーションの名前を付けます。他の人が既に使用している名前は設定することができません。
- Pricing tier:今回はテストなのでFree F0を選択します。
- 英文の注意事項を読んで同意事項にチェックを入れます。
- 「確認と作成」をクリックします。
サブスクリプションキーが2つ表示されますのでどちらか1つだけをコピーします。のちほどPower Automate Desktopのフロー作成の時に必要になりますのでメモ帳などに保存しておきます。無くしたり見られたりしないように注意してください。
以上でAzure portalでの操作は終わりです。続いてPower Automate for Desktopのフローを作成していきます。
2.Power Automate for Desktopのフローを作成する
Power Automate for Desktopで画像からテキストを抽出するにはOCRアクションを使います。
OCRとは:光学式文字認識(OCR)は、画像から文字列を抽出する技術です。
- サーバの場所:東日本
- サブスクリプションキー:前のステップでコピーしたキーを張り付けます。
- 画像を提供します:「GCSから」か「ファイルから」を選択します。GCSはインターネット上の画像のことです。ファイルはパソコンに保存済みの画像です。ここでは「GCSから」を選択します。
- 画像のURL:画像のURLを入力します。③で「ファイルから」を選択した場合は、ファイルパスを入力します。今回は下記の当サイトの画像(https://www.teijitaisya.com/wp-content/uploads/2021/11/Frame-176.png)を使います。
- 言語:日本語の場合は「ja」を選択します。
- 向きを検出します:画像の向きを検出するかどうかを設定します。true:する、false:しない
今回使う画像です↑。「動画で学ぼう」という文言が取得できれば成功です!
今回はOCRの結果を直接テキストファイルに出力してみたいと思います。
- 「テキストファイルに書き込みます」アクションを追加します。
- 「アプリケーションの実行」アクションを追加します。
▲「テキストファイルに書き込みます」アクションのパラメータを入力します。
- ファイルパス:結果を書き込むファイルです。.txt形式のファイルを事前に作成しておきましょう。ここではC:\Users\user\Documents\resultText.txtと入力しました。
- 書き込むテキスト:%JSONResponse%とします。これはOCRアクションが生成する変数です。
▲「アプリケーションの実行」アクションのパラメータを入力します。
- アプリケーションパス:上で書き込みを行ったテキストファイルのパスを指定します。ここではC:\Users\user\Documents\resultText.txtと入力しました。
フローを実行すると、メモ帳が開いてJSON形式のテキストが書き込まれていることが分かるかと思います。これが画像分析結果です。(下図)
▲”text”というキーに抽出された文字が取得出来ていることが分かるか思います。
きちんと文章にするにはループで”text”キーの値を取り出して文字列連結させる必要がありそうですね。それはまた別の機会にトライしてみたいと思います。
{ "language": "ja", "textAngle": 0.0, "orientation": "NotDetected", "regions": [ { "Properties": { "boundingBox": "34,19,571,379", "lines": [ { "Properties": { "boundingBox": "528,19,48,48", "words": [ { "Properties": { "boundingBox": "528,19,48,48", "text": "0" } } ] } }, { "Properties": { "boundingBox": "103,51,96,37", "words": [ { "Properties": { "boundingBox": "103,51,96,37", "text": "python" } } ] } }, { "Properties": { "boundingBox": "151,144,454,78", "words": [ { "Properties": { "boundingBox": "151,144,64,78", "text": "動" } }, { "Properties": { "boundingBox": "232,146,65,76", "text": "画" } }, { "Properties": { "boundingBox": "325,146,50,76", "text": "て" } }, { "Properties": { "boundingBox": "394,144,64,78", "text": "学" } }, { "Properties": { "boundingBox": "477,144,66,78", "text": "ぼ" } }, { "Properties": { "boundingBox": "567,151,38,71", "text": "う" } } ] } }, { "Properties": { "boundingBox": "34,375,93,23", "words": [ { "Properties": { "boundingBox": "34,379,16,18", "text": "て" } }, { "Properties": { "boundingBox": "63,378,14,20", "text": "じ" } }, { "Properties": { "boundingBox": "87,378,15,19", "text": "ら" } }, { "Properties": { "boundingBox": "112,375,15,22", "text": "ほ" } } ] } }, { "Properties": { "boundingBox": "66,276,39,39", "words": [ { "Properties": { "boundingBox": "66,276,39,39", "text": "0" } } ] } } ] } } ] }
まとめ
以上でPower Automate for Desktopで画像から文章を抽出する方法について解説しました。
Power Automate for DesktopやPower Automate には他にもコグニティブサービスを使ったアクションが用意されています。また次の機会に紹介していこうと思います。
参考
- Azure Cognitive Services とは
https://docs.microsoft.com/ja-jp/azure/cognitive-services/what-are-cognitive-services - Microsoft Azure Cognitive Services トップページ
https://azure.microsoft.com/ja-jp/services/cognitive-services/#customer-stories - Microsoft Azure Cognitive Services ドキュメント
https://docs.microsoft.com/ja-jp/azure/cognitive-services/ - Bing Spell Check API v7
https://docs.microsoft.com/ja-jp/rest/api/cognitiveservices-bingsearch/bing-spell-check-api-v7-reference - Computer vision – OCRの概要
https://docs.microsoft.com/ja-jp/azure/cognitive-services/computer-vision/overview-ocr