リモートワークで導入して良かったツール詳しく見る

Power Automate for DesktopでComputer Visionを使ってみた。

この記事ではPower Automate Desktop(以下:PAD)で画像から文字を抜き出す方法について解説します。

この記事で解説すること

  • Power Automate for Desktopで使えるOCRの種類の解説
  • Power Automate for DesktopでAzure Cognitive Services(コグニティブサービス)のComputer Visionを使ったOCRのやり方
目次

Power Automate Desktopで画像から文字列を抽出するには?

画像から文字列を抽出する技術をOCRといいます。

Power Automate for Desktopでも簡単にOCRを使うことができます。

Power Automate for DesktopにはOCR関連のアクションが3つあります。

Power Automate DesktopのOCR系のアクション

  • OCRグループの中の「OCRを使ってテキストを抽出」アクション
  • Microsoft コグニティブグループ – Computer Visionグループの中の「OCR」アクション
  • Googleコグニティブ – ビジョングループの中の「テキスト検出」アクション

PDFファイルからテキストを抽出するには「PDFからテキストを抽出」アクションがあります。

Power Automate DesktopのOCRアクションの比較

OCRグループ
「OCRを使ってテキストを抽出」アクション
Microsoftコグニティブ
Computer Visionグループ
「OCR」アクション
Googleコグニティブ
ビジョングループ
「テキスト検出」アクション
利用する方法Power Automate Desktopをインストールすれば最初から利用できる。Microsoft Azureのアカウント登録をしてサブスクリプションキーの取得が必要。Google Cloud Platform(GCP)のアカウント登録とAPIキーの取得が必要。
使用されるOCR技術Tesseract-OCRMicrosoft Azure Computer Vision Google Cloud Vision API
料金無料従量課金制
期間限定で無料試用可能。
従量課金制
無料枠(Alwas-free)あり。
日本語対応状況日本語パックのインストールが必要。少しわかりにくいかも。日本語標準対応日本語標準対応
精度

精度については、後日比較してみたいと思います。

気になる無料枠ですが、Microsoft Azureは12か月の無料試用期間中は回数制限付きで無料で利用できます。期間を過ぎたあとは無料で使える枠は無さそうです。GCPは12か月の無料試用期間を過ぎてもAlways-freeという枠がありますので、その枠内であれば継続して無料使用ができそうです。

料金については必ず最新の公式の情報を確認するようにお願いします。

Computer VisionのOCRを使ってみたいと思います。

この記事ではComputer Visionを使ったOCRを試してみたいと思います。Computer Visionを使うにはMicrosoft Azureの登録とサブスクリプションキーの取得が必要です。手順については下記の記事で解説していますのであわせてご覧ください。

PADフロー完成図

下の画像から文字列を読み取り、テキストファイルに出力します。

使用する画像
使用する画像
フロー完成図

Power Automate for Desktopフロー作成手順

STEP
「OCR」アクションを追加します。
  1. サーバの場所:東日本
  2. サブスクリプションキー:AzureでComputer Visionアプリを作成したときに発行されたキーを張り付けます。
  3. 画像を提供します:「GCSから」か「ファイルから」を選択します。GCSはインターネット上の画像のことです。ファイルはパソコンに保存済みの画像です。ここでは「GCSから」を選択します。
  4. 画像のURL:画像のURLを入力します。③で「ファイルから」を選択した場合は、ファイルパスを入力します。
    ファイルパスの例:C:\Users\user\OneDrive\Pictures\Screenshots\Screenpresso\miyazawakenji.jpg
  5. 言語:日本語の場合は「ja」を選択します。自動検出の場合は「unk」を入力します。
  6. 向きを検出します:画像の向きを検出するかどうかを設定します。true:する、false:しない

「OCR」アクションの結果は、JSONResponse変数に格納されます。

JSONResponseを見るとわかるように、regions/lines/words/textのように構造化データがかえってきます。

regionが文章の塊、linesが行、wordsが1行の文章の塊、textが1文字に対応していてそれぞれリスト形式で取得されます。For eachで1文字ずつ取得していきます。

STEP
For eachループを追加します。

▲「ループ」グループの中にある「For each」アクションを追加します。

  1. 反復処理を行う値:%JSONResponse[‘regions’]%
  2. 生成された変数:%region%

生成された変数」はデフォルトでは%CurrentItem%という名前ですが、このあとFor eachを複数追加していくとわかりづらくなるため、わかりやすい名前に変更しています。

STEP
2つ目のFor eachループを追加します。
  1. 反復処理を行う値:%region[‘lines’]%
  2. 生成された変数:%line%
STEP
3つ目のFor eachループを追加します。
  1. 反復処理を行う値:%line[‘words’]%
  2. 生成された変数:%word%
STEP
「変数の設定」アクションを追加します。

▲「変数の設定」アクションを追加します。変数に1文字ずつ変数に追記していきます。

  1. 設定%result%
  2. 宛先%result%%word[‘text’]%
STEP
「テキストに行を追加」アクションを追加します。
  1. 元のテキスト%result%
  2. 追加するテキスト(空白)

行のループのうしろに改行コードを挿入するために、テキストを行に追加アクションを追加します。「追加するテキスト」を空白に設定することで改行することができます。

テキストに行を追加アクションについての解説は下記の記事で解説しています。

STEP
「テキストをファイルに書き込みます」アクションを追加します。

▲フローの最後に結果をテキストファイルに出力します。

  1. ファイルパス%result%
  2. 書き込むテキスト%result%
  3. ファイルが存在する場合:既存の内容を上書きする
  4. エンコード:UTF-8
STEP
フロー実行結果
取得結果
使用する画像
元画像

完璧ではないですがそこそこのレベルで取得できました。

Power Automate Desktopソースコード

下記はソースコードです。PADのフローデザイナーにコピペすると私が作成したフローを再現できます。

MicrosoftCognitive.OCRMicrosoft.OCRFromFile ServerLocation: Cognitive.MicrosoftServerLocation.JapanEast SubscriptionKey: $'''a239a8a1b404448ead7786d814dad835''' ImageFile: $'''C:\\Users\\user\\OneDrive\\Pictures\\Screenshots\\Screenpresso\\miyazawakenji.jpg''' Language: $'''unk''' DetectOrientation: $'''false''' Timeout: 30 Response=> JSONResponse StatusCode=> StatusCode
LOOP FOREACH region IN JSONResponse['regions']
    LOOP FOREACH line IN region['lines']
        LOOP FOREACH word IN line['words']
            SET result TO $'''%result%%word['text']%'''
        END
        Text.AppendLine Text: result LineToAppend: $'''''' Result=> Result
    END
END
File.WriteText File: $'''C:\\Users\\user\\Documents\\OCRResult.txt''' TextToWrite: result AppendNewLine: True IfFileExists: File.IfFileExists.Overwrite Encoding: File.FileEncoding.DefaultEncoding

まとめ

じょじお

以上で、Microsoft AzureのComputer Visionを使ったOCRについて紹介しました。

参考

ノンプログラマーでも自動化スキルを身につける。

よかったらシェアしてね!
URLをコピーする
URLをコピーしました!
目次
閉じる