Form Recognizerの領収書処理機能を体験してみた
はじめに
本記事は下記アドベントカレンダーの12/20分の記事になります。
Microsoft Azure Cognitive Services Advent Calendar 2020 - Qiita
今回の目的
MS Learnのモジュールを使って、Form Recognizerを使うとどんなデータが得られるのか知る!
docs.microsoft.com
Form Recognizerとは?
Azure Cognitive Servicesのひとつで、
ドキュメントからテキスト、キーと値のペア、テーブル、構造などを特定して抽出してくれるWeb APIです。
領収書や名刺などの写真からデータを抽出できます。
Form Recognizer とは - Azure Cognitive Services | Microsoft Docs
[アップデート情報]
2020年11月に日本語対応になりました。
(今回の記事ではそこまで試せてません…すみません。
What's new in Form Recognizer? - Azure Cognitive Services | Microsoft Docs
「Form Recognizer を使用した領収書の分析」演習
Azure Machine Learning ワークスペースの作成
Azure上でMachine Learningリソースを作ります。
Azure Machine Learning Studioでの操作
Machine Learningのリソースができると、Azure Machine Learning Studioへ移動できます。
Azure Machine Learning Studioとは
データ サイエンティスト開発者向けの Web ポータルです。
Azure Machine Learningの中の一つのサービスです。
プロジェクト作成とアセット管理のための少量コードおよびコードなしのオプションが用意されています。
Azure Machine Learning スタジオとは | Microsoft Docs
初回接続時にはワークスペースの設定があります。
無事にAzure Machine Learning Studioが開けると、ホーム画面が出ます。
これだけでもできることが多そうに見えますね。
コンピューティングインスタンスの作成
演習内容を実行するための仮想マシンを作ります。
Azure Machine Learning コンピューティング インスタンスとは
データ サイエンティスト向けのマネージド クラウドベース ワークステーションです。
機械学習のための仮想マシンのような感じでしょうかね。
Azure Machine Learning コンピューティング インスタンスとは - Azure Machine Learning | Microsoft Docs
このコンピューティングインスタンスを作るときに少し狼狽えました。
なぜなら作れるVMがひとつもなかったのです!
別途ライセンスが必要なのかしらと不安になりましたが、よく見てみるとこんな表記が。
まさかこんなところでCOVID-19の影響を感じることになるとは思いませんでした。
クォータ制限引き上げのリクエストを送ると使えるようになるとのことなので、送りました。
モジュールに書いてある指定のStandard_DS11_v2はDv2シリーズなので指定をします。
メモリを最適化した Dv2 と DSv2 シリーズ VM - Azure Virtual Machines | Microsoft Docs
リクエストを送って、1~2分後くらいにリクエスト承認のメールが飛んできます。
そのメールを受け取った直後はまだ制限引き上げされませんでしたが、その日のうちくらいには使えるようになりました。
これで無事にコンピューティングインスタンスが作成できました。
演習用ファイルを用意する
スタジオ上の[Notebooks]に新しいファイルを作成します。
GitHubから演習ファイルをクローンします。
大量のファイルが作成されます。
これを使うためにはAzure上のForm Recogniserリソースにあるキーとエンドポイントが必要になります。
Form Recogniserのリソース作成
AzureポータルでForm Recogniserリソースを作ります。
キーとエンドポイントを使用しますので、メモしておきます。
演習ファイルの実行
Azure Machine Learning Studioに戻り、[01f - Receipts with Form Recognizer.ipynb]を開きます。
4種類の実行できるセルが含まれたドキュメントのようなものが開きます。
2つめのセルに先ほどメモしたキーとエンドポイントを入力します。
[すべてのセルの計算と実行を開始する]を実行します。
1つ目のセルに読み取り対象のレシート画像が表示されます。
4つ目のセルに読み取ったレシートの情報が出力されます。
別のレシート画像を[ai-fundamentals]>[data]>[form-receipt]のフォルダにアップロードして
ソースコードを編集すれば、別のレシート画像で試せます。
おわりに
今回は出来上がっているものをちょっと触っただけですが、画像からそれなりにちゃんとデータを取り出してくれることがわかっただけでも面白かったです。
このモジュールでは日本語レシートはあまりちゃんと読み取ってもらえなかったので、日本語対応を試すには別の方法をやってみようと思います。