#PowerAutomate Desktop の OCR アクションを試してみた

# Power Automate Desktop とは

ローコード開発プラットフォームの Power Platform のうち自動化を担当する Power Automate ですが、APIがない、既存のデスクトップアプリケーションやWebサービスなども、クラウド連携したいという要望に応えるために、RPA機能として追加されたものが、Power Automate Desktop です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/7ed49b9f-4056-4faa-500b-621108e281e0.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/60e833cd-f81a-5cdc-ece4-22fc8a2810e5.png)

このような形で、アプリケーションの操作を指定し、クラウドサービスである、Power Automate から呼び出し、実行結果を取得することで、既存のアプリケーションも簡単にクラウド連携ができるようになりました。

# OCR アクション

Power Automate Desktop は、アプリケーションの代行操作以外にも、様々なアクションが用意されています。
その中で、OCRというアクションがあるので開いてみましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/f59a2e15-a488-612c-5ec6-63b616d0fee1.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/8859289c-82a4-2d73-b9ad-55a23d3146e2.png)

アクションを見る限りだと
Tesseract OCR もしくは MODI OCR のエンジンを作成して、そのエンジンを使ってテキスト抽出を行うという流れのようですね。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/3c0be097-f030-d1ab-51a6-145f141a69db.png)

試しに簡単な英文の画像を使って抽出してみましょう。

## Tesseract OCR

とりあえず、英語の Wikipedia のトップページにあるこちらの画像を Tesseract OCRを使って読み込ませてみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/f356e315-a1cc-f3f7-0c24-9fd9176e1c40.png)

各アクションの設定値はこんな感じです

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/9705032a-9bf7-b53a-093a-b2e1dac0c52e.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/7af006f2-d5fe-d684-fcc6-c87b0ea47598.png)

実行した結果は・・・うまく取れてますね！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/adaec461-c559-7dd4-f053-6da7c7effb71.png)

## MODI OCR

今度は、MODI OCRエンジンを使ってみます。

MODI OCRのエンジン設定はこんな感じです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/26950c66-52b0-0a64-1804-2cc62d0df399.png)

実行してみると・・・
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/e939bdfd-89d7-19da-8516-9a2871c37194.png)

あらま、ランタイムエラー・・・

### そもそもMODI OCRってなんぞ？

MODI とは Microsoft Office Document Imaging という機能だそうで、 Office 2007 までは標準で入っていた機能のようです。

Wikipedia の情報だとこちら
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/b64bb920-86be-1c4d-0a6b-045c8ef0514d.png)

[出典元：Wikipedia Microsoft Office ツール](https://ja.m.wikipedia.org/wiki/Microsoft_Office_%E3%83%84%E3%83%BC%E3%83%AB#Document_Scanning%E3%81%A8Document_Imaging)

とりあえず、Office 2007 をインストールした上でもう一度試してみたところ、問題なく抽出することができました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/f30a3f69-0976-416e-b90c-09e5111bb7f8.png)

SharePoint Designer 2007 にも含まれているようです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/ea3f69ed-ee8c-b5f7-9d6b-ca3bf3949f36.png)

・・・が、既にサポート終了につき配布されていません。

MSDNライブラリからダウンロードすることは今のところ可能ですので、契約されている方はこちらからダウンロードしましょう。


## 日本語のテキストを抽出

MODIの場合は、日本語も標準で抽出できるようです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/57ff305b-bcaf-e341-995e-9ddf1557d455.png)

というわけで、今度は日本語Wikipedia のこちらを読み込ませてみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/ac15e7a0-bd09-849b-c35e-eb258eb5e194.png)

## MODI OCR


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/f1b18c4d-d3e5-8b60-8df7-df66ed6710db.png)

## Tesseract OCR

標準だと日本語が入っていません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/1b2cf5f3-2035-f9ae-3894-9afbf51acf87.png)

ほかの言語を使うを有効化すると、言語データを求められます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/f97fca9b-a982-a453-d3fc-0b028868030e.png)

言語データは、Tesseract の github ページのインストーラーに含まれているようです。
[GitHub - Tesseract at UB Mannheim](https://github.com/UB-Mannheim/tesseract/wiki)

上記リンクからインストーラーをダウンロードし、インストールしてみましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/2aa1f2bb-78c4-2811-5c31-fe477346e8f7.png)

インストール時は、この ```Additional language data``` にチェックを入れることをお忘れなく

インストールが完了したら、言語データパスに、インストール先のフォルダの ```tessdata``` を指定します。
更に、言語の省略形として ```jpn``` を指定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/3acd7a70-de3e-3436-9460-49aded3719e2.png)

では、試してみましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/b53f69df-8144-5242-88b9-e9553a5f0caf.png)


# まとめ

Power Automate Desktop にて OCR アクションを使うやり方をまとめてみました。
実際には、画像ファイルだけでなく、画面全体や、アクティブウィンドウの画面もOCRの対象にすることができたりと、かなり幅広い設定ができるようですので、皆さんもぜひ色々試してみてください！