Azure Document Intelijence入門
はじめに
Microsoft Azureには、画像からテキストを抽出するOCRの機能を持ったサービス「Azure Form Recognizer」というサービスがあったのですが、2023年7月に名称変更して「Azure Document Intelijence」というサービス名に変更になりました。
「Azure Form Recognizer」については、以前からこちらの記事で紹介していますが、今回の名称変更を受けて、改めて「Azure Document Inteljence」について紹介します。
Azure AI Servicesとは
Azure AI Serviceは、事前構築済みのAIモデルを利用することができるAzureのAI系のサービスの総称です。
Azure AI Serviceには以前Cognitive Services および Azure Applied AI Services と呼ばれていたものすべてが含まれています。
https://learn.microsoft.com/ja-jp/azure/ai-services/what-are-ai-services
Azure Document IntelijenceもAzure AI Servicesの一つです。
Azure Document Intelijenceとは
Azure Document Intelijenceとは、請求書、レシート、名刺などのドキュメントから文字情報を取得するOCR機能の一つです。
Azure Document IntelijenceのAPIを実行すると、リクエスト時で渡されたPDFファイルなどのドキュメントのURLを解析し、解析したテキスト情報をHTTPレスポンスとして返します。
https://docs.microsoft.com/ja-jp/azure/applied-ai-services/form-recognizer/
https://azure.microsoft.com/ja-jp/products/ai-services/ai-document-intelligence
Azure Document Intelijenceの機能
Azure Document Intelijenceは次の機能を持っています。
- ドキュメント分析モデル
- 事前構築済みモデル
- カスタムモデル
ドキュメント分析モデル(Document analysis model)
ドキュメント分析モデルはドキュメントから、テキストや、テーブルの構造、テキスト、テキストのバウンディングボックスの座標(位置情報)などをドキュメントから抽出します。
事前構築済みモデル(Prebuilt model)
事前構築済みモデルは請求書、レシート、名刺などMicrosoftが事前に用意している特定のドキュメント専用のAIモデルを使用して、フォームを解析する機能です。
カスタムモデル
カスタムモデルは、ユーザが独自に作成することができるAIモデルです。
事前構築済みモデルに用意されていないオリジナルのフォームを解析する場合は、カスタムモデルが必要です。
Composeモデル(複合モデル)
Composeモデルは複数のカスタムモデルを組み合わせたモデルです。
Composeモデルに対してテキスト解析要求を実行すると、設定したカスタムモデルの中から要求を受けたファイルが最も適合する割り当てモデルを選択し、そのモデルの結果を返します。
最大100個の学習済みカスタムモデルを1つのComposeモデルに割り当てることができます。
https://westus.dev.cognitive.microsoft.com/docs/services/form-recognizer-api-v2-1/operations/Compose
Azure Document Intelijence Studioから操作
Document IntelijenceはAzureポータルでDocument Intelijenceのリソースの作成後、 Azure Document Intelijence Studioにアクセスすることで、利用することができるようになります。
余談ですが、旧サービスのForm Recognizerの初期のときは、以下のWEB UIを使用していました。
この当たりは名称変更とともに改善された点になるかと思います。
https://fott-2-1.azurewebsites.net/layout-analyze
https://qiita.com/komiyasa/items/afee82f7baddcd820251
Document analysisを操作
Document analysisは以下の3つのAPIを使用することができます。
- Read API
- Layout API
- General API
Readを使用する
Readはドキュメントからテキスト情報を読取る機能です。
以下の手順書で使用することができます。
- Readをクリック
- 解析対象のファイルを選択、Run analysisをクリックすると結果が表示されます
また、Codeタブをクリックすると、解析するときに使用するPythonコードを確認することができる。
Layoutを使用する
Layoutはテキスト + ドキュメント構造を抽出する機能です。
ドキュメントの構造とは、ドキュメント上のテキストがテーブル形式のドキュメントを持っているかということ示します。
- Layoutをクリックする
- 解析対象のファイルを選択、Run analysisをクリックすると結果が表示されます
- Selection marksタブをクリックすると選択肢形式として認識されたテキストの比率を表示できる
- Tablesタブをクリックするとテーブル形式として認識されたテキストを表示できる
General Documentを使用する
General Documentはテキスト + ドキュメント構造 + キーバリューのペアを抽出する機能です。
キーバリューのペアとは、ドキュメント上で電話番号というテキストと、実際の電話番号の値(000-000-000など)のようにキーと値の関係性をもつテキストを抽出する機能です。
- General Documentをクリック
- 解析対象のファイルを選択し、Run analysisをクリックすると結果が表示されます
Prebuilt modles(組み込みモデル)を使用する
Prebuilt models APIでは、以下の事前学習済みのドキュメントを解析することが可能です。
- 請求書
- 領収書
- ID
- 健康保険証
- 名刺
- 契約
- 米国税 W-2 フォーム
- 米国税 1098 フォーム
- 米国税 1098-E フォーム
- 米国税 1098-T フォーム
Custom models(カスタムモデル)を使用する
Custom modelsでは、以下の2つのAPIを使用することができます。
- Custom Extract Model
- Custom Classification Model
Custom Extract Model
Custom Extract Modelは、ドキュメント内の固定された位置にあるテキスト(ドキュメントのタイトルなど)をラベルとしてモデルに学習さえ、そのテキストを抽出することができる機能です。
- Custom extract modelをクリック
- 初回はカスタムモデルを作成するためのプロジェクトが必要なので、プロジェクトを作成します
プロジェクトを作成すると
プロジェクト名.fott
というファイルが接続先のストレージアカウントのコンテナ直下に作成されます。
- 必要情報を入力し、作成していきます
- 作成完了すると指定したストレージアカウントにCORSの設定が行われます
- Azure Document Studioに戻り、Label dataから対象ファイルを選択し、ラベルとして学習させるテキストフィールドを追加します 以下の例ではドキュメントのタイトルを認識させるための、書類分類というテキストフィールドを作成します
- フィールドとして抽出するテキストをドラッグして選択します
- Trainをクリックして、モデル作成画面を表示します
- Trainをクリックすると学習が開始され、Get to Modelsをクリックするとモデルの作成状況がわかります
- TestタブでRun analysisをクリックすると作成したモデルでテストをすることができます
以下にあるようにフィールドとして設定したテキストがドキュメントから抽出できていることがわかります
- 補足テーブル形式のフィールド
Azure Document Intelijenceではテーブル形式のフィールドも設定することも可能です。
デフォルトでもテーブル認識機能はついていますが、結合セルがあったり表の形式が不規則だと、テーブルとして認識されないことがあります。
このようなケースでは、テーブルフィールドを作成し、ファイル中のテーブルと関連付けを行う必要があります。
Custom Classification Model
Custom Classification Modelではドキュメントが何のドキュメントなのかを解析することができます。
- Custom classification modelをクリック
- プロジェクトを作成します
- 機械学習させるファイルをアップロードします※ファイルは5ファイル以上必要です
- Add Typeからドキュメントの種類を追加し、アップロードしたファイルがどの種類のドキュメントなのかを指定します
- Trainをクリックすると学習が開始されます
- モデルの作成が完了するとsucceseedと表示されます
- TestタブでRun analysisをクリックすると作成したモデルでテストをすることができます
実行すると指定したファイルがどの種類のドキュメントに近いのかが、パーセンテージで表示することができます。
参考ドキュメント TODO
※サポートされているファイル形式は、JPEG/JPG、PNG、BMP、TIFF、および PDF
おわりに
この記事では、AzureのOCRサービス「Document Intelijence」について紹介しました。
本記事が、AIを学習するエンジニアの参考になれば幸いです。
I