この記事では、Microsoft 365でインデックスを作成して取得できるように、画像からテキストを抽出するソリューションについて説明します。 Foundry Tools でAI Builderドキュメント インテリジェンスとAzureドキュメント インテリジェンスを使用すると、トレーニング済みのモデルを使用して画像からテキストを抽出するPower Automate ワークフローを構成できます。 ワークフローを構成したら、ドキュメントを検索して、図形やオブジェクトに埋め込まれた意味のあるテキストをすばやく検索できます。 たとえば、エンジニアリング 回路図で特定のコンポーネント内の部品番号を検索したり、各ファイルを手動で開いたりスキャンしたりすることなく、一連のプラント ダイアグラムでラベル付けされたすべてのバルブを検索できます。
アーキテクチャ
このアーキテクチャの Visio ファイルをダウンロードします。
Workflow
次のワークフロー手順は、前の図の数値に対応しています。
- メーカーは、特定のオブジェクトを認識するために、AI Builderで物体検出モデルをトレーニングします。
- ユーザーは、オブジェクト内のテキストを含むドキュメントを、直接またはMicrosoft Teamsを介して、SharePointまたはOneDriveドキュメント ライブラリにアップロードします。
- アップロード イベントによって、Power Automate フローがトリガーされます。
- フローは、アップロードされたドキュメントに対してAI Builder モデルを実行してオブジェクトを検出します。 AI Builderは、検出されたすべてのオブジェクトのピクセル座標を含む JSON ファイルを返します。
- Power Automate は、文書全体に対する光学式文字認識(OCR)スキャンを行うために、ドキュメントを Foundry Tools の Azure Document Intelligence にも送信します。 ドキュメント インテリジェンスは、抽出されたテキストとそのピクセル座標を含む JSON ファイルを返します。
- フローは、AI Builder出力とドキュメント インテリジェンス出力のピクセル座標を比較する関数をAzure Functionsで呼び出します。 検出されたオブジェクトが抽出されたテキストと交差すると、関数は一致したテキストとオブジェクト情報を JSON ペイロードとして返します。
- フローは、一致したテキストとメタデータをMicrosoft 365の元のドキュメントに書き込みます。
- Microsoft Searchは、ドキュメントの新しいメタデータにインデックスを付け、Microsoft 365間で検出できるようにします。
- ユーザーは、PnP モダン検索 Web パーツを使用して、SharePoint内のメタデータを検索できます。
コンポーネント
このソリューションでは、Microsoft Power Platform、Azure、およびMicrosoft 365の次のコンポーネントを使用します。
Microsoft Power Platform
- AI Builderは、作成者がアプリとフローに AI を追加できるMicrosoft Power Platform機能です。 このシナリオでは、AI Builderを使用して、画像に関心のあるオブジェクトを識別するカスタムオブジェクト検出モデルをトレーニングして実行します。
- Power Automateは、アプリとサービス全体のアクションを自動化する、コードの少ないワークフロー サービスです。 このシナリオでは、Power Automate、抽出されたメタデータを SharePoint ライブラリに書き戻して、ドキュメント アップロード トリガーから開始するフローを調整します。
紺碧
- ドキュメント インテリジェンス は、機械学習を使用して OCR とインテリジェントなドキュメント処理を行うクラウドベースの Foundry Tools サービスです。 このシナリオでは、アップロードされた各ドキュメントに対してフル ページ OCR スキャンを実行し、抽出されたテキストをピクセル座標で返します。
- Azure Functionsは、イベント ドリブンのサーバーレス コンピューティング サービスです。 このシナリオでは、HTTP によってトリガーされる関数を使用して、AI Builderとドキュメント インテリジェンスによって返されるピクセル座標を比較し、交差するテキストを返すジオメトリ ロジックをホストします。 Power Automateは HTTP 経由で関数を呼び出し、応答を使用するため、HTTP トリガーが適切です。
Microsoft 365
- Microsoft 365のSharePoint、OneDrive、および Teams は、Power Automate フローをトリガーするアップロード ソースであり、フローが抽出されたメタデータを書き込むストレージ ターゲットでもあります。
- Microsoft Searchは、抽出されたテキスト メタデータにインデックスを付け、Microsoft 365全体で検出できるようにします。
- PnP Modern Search は、Microsoft Search インデックスを使用して柔軟でパーソナライズされた検索エクスペリエンスを構築するために使用できるオープンソースのSharePoint Web パーツのセットです。
代替案
- 非構造化入力またはマルチモーダル入力には、Azure Content Understanding を使用します。 ドキュメント インテリジェンスは、Foundry Tools の Azure Content Understanding の一部であり、非構造化コンテンツとマルチモーダル コンテンツ用の LLM を利用したアナライザーを追加します。 入力に構造化されたドキュメントに加えて、フリーフォーム画像、オーディオ、ビデオなどの非構造化コンテンツが含まれている場合、またはコンテンツを文字起こしするのではなく、理由を指定する必要がある場合は、Content Understanding ツールの使用を検討してください。 たとえば、エンジニアリング図面のリビジョン ノートを要約したり、機器の種類別に図を分類したり、テキストを読むだけでなく、コンテンツの解釈が必要な質問に回答したりする必要がある場合があります。 詳細については、「 ドキュメント処理に適した Foundry Tools を選択する」を参照してください。
- ドキュメント インテリジェンスのみを使用します。 OCR 結果を画像内の特定のオブジェクトにスコープ設定する必要がない場合は、AI Builderと geometry-comparison 関数アプリをスキップし、ドキュメント インテリジェンスAzure使用してドキュメント全体に対して OCR を実行できます。 その後Power Automate結果のテキストをメタデータとしてMicrosoft 365に格納します。
- 組み込みのSharePoint OCR を使用します。 Microsoft 365のSharePointは、画像と PDF に対して OCR を実行し、抽出されたテキストを検索インデックスに追加できます。 このオプションでは、カスタム フローは必要ありませんが、現在のソリューションが提供する構造化オブジェクトと座標マッピングも公開されません。
- Azure Logic Appsを使用して大量の処理を行います。 ドキュメントを高速に処理したい場合、または Power Automate のフローごとのスロットリングを回避したい場合は、Power Automate を Logic Apps に置き換えてください。Logic Apps では、専用のワークフロー レベルと、より高いアクション数の上限が提供されます。 詳細については、「 Logic Apps の制限と構成」を参照してください。
シナリオの詳細
スケマティック ダイアグラムと産業用ダイアグラムには、多くの場合、テキストを含むオブジェクトが含まれています。 たとえば、建物計画では、個々の部屋、電気回路、HVAC 機器にラベルを付けたり、エンジニアリング回路図に各コンポーネント内の部品番号が表示されたりすることがあります。 これらのドキュメントを手動でスキャンして関連するテキストを検索するのは手間がかかり、時間がかかります。 このソリューションでは、カスタムオブジェクト検出モデルとOCRを組み合わせて、ドキュメントだけでなく、表示されるオブジェクトによって埋め込みテキストを検索できます。
考えられるユース ケース
- エンジニアリング回路図。 複雑なスケマティックには、コンポーネント、吹き出し、リビジョン ブロックなど、多くのオブジェクト タイプが含まれています。 このソリューションを使用すると、スケマティック内の特定のコンポーネントをすばやく見つけることができます。 検索可能な埋め込みテキストは、調査を行い、部品の不足を特定し、リコールと故障の通知を見つけるのに役立ちます。
- 産業用図。 多くの場合、製造アセンブリを説明する図は、ポンプ、バルブ、自動スイッチ、およびその他のコンポーネントにラベルを付けます。 これらのオブジェクト内のテキストのインデックス作成は、予防的なメンテナンス、危険なコンポーネントの分離、およびリスク管理の可視性をサポートします。
- 建築図面と施設図面。 フロア プラン、電気プラン、HVAC 図面では、部屋、回路、および機器にラベルが付けられます。 これらのラベルのインデックスを作成すると、大きな図面セット全体で特定のアセットを簡単に見つけることができます。
考慮事項
これらの考慮事項は、ワークロードの品質向上に使用できる一連の基本原則である Azure Well-Architected Framework の要素を組み込んでいます。 詳細については、「 Well-Architected Framework」を参照してください。
Reliability
信頼性は、アプリケーションが顧客に対して行ったコミットメントを確実に満たすことができるのに役立ちます。 詳細については、「信頼性の設計レビュー チェックリスト」を参照してください。
- 一時的な障害に備えて計画します。 ドキュメント インテリジェンスは、同時要求の制限を超えると HTTP 429 エラーを返します。 Power Automate フローはドキュメント インテリジェンスを直接呼び出すので、フロー内のそのアクションに対して指数バックオフを使用して再試行を構成します。
- フローをべき等にします。 SharePointトリガーとOneDrive トリガーは、イベントを再生できます。 ドキュメントが複数回処理されたときに安全なPower Automate フローとダウンストリーム メタデータの書き込みを設計します。 たとえば、ドキュメント ID にキーが設定されたメタデータをアップサートします。
- 実行時間の長い OCR スキャンを処理します。 大規模なマルチページ ドキュメントの OCR には時間がかかる場合があり、ドキュメント インテリジェンスは操作を非同期として処理します。 即時の応答を期待するのではなく、Document Intelligence を呼び出してドキュメントを送信し、結果が返るまでポーリングするように Power Automate フローを設計します。 低速スキャンで実行が失敗しないように、タイムアウト処理を組み込みます。
- 各サービスのサービス レベル アグリーメント (SLA) について説明します。 ドキュメント インテリジェンス、関数、およびPower Automateの SLA と回復特性を確認して、信頼性の目標が達成可能であることを確認します。
セキュリティ
セキュリティは、意図的な攻撃や貴重なデータとシステムの悪用に対する保証を提供します。 詳細については、セキュリティ設計レビューのチェックリストを参照してください。
- キーではなくマネージド ID を使用します。 Azure 関数を構成して、システム割り当てまたはユーザー割り当てのマネージド ID と Microsoft Entra ID を使用して AI Builder および Document Intelligence に認証できるようにします。 この方法では、サービス キーを格納する必要がなくなります。
- 残りのシークレットをAzure Key Vaultに格納します。 Power Automate コネクタなど、キーを使用する必要がある場合は、Key Vaultにキーを格納し、Azure Key Vault コネクタを使用して実行時にキーを取得します。 コネクタを設定するには、サポートされているMicrosoft Entra認証の種類を使用して接続を作成する必要があります。 接続オプションについては、Azure Key Vault コネクタのリファレンスとシークレットの取得アクションを参照してください。 get-secret 出力はフローの実行履歴に表示される可能性があるため、実行履歴へのアクセスをセキュリティで保護してください。
- ドキュメントのアクセス許可を尊重します。 抽出されたテキストをSharePointメタデータとして書き戻す場合は、検索結果が正しくトリミングされるように、インデックス付きメタデータがソース ドキュメントのアクセス許可を継承していることを確認します。
- 機密性の高いコンテンツを計画します。 OCR 出力には、個人データ、シークレット、またはその他の機密コンテンツを含めることができます。 Microsoft Purview秘密度ラベルとデータ損失防止ポリシーを、必要に応じてドキュメントとそのメタデータに適用します。
- ネットワークを分離します。 ネットワークの分離を必要とする規制されたワークロードの場合は、Functions アプリを仮想ネットワークに統合し、AI Builderとドキュメント インテリジェンスにプライベート エンドポイントを使用します。
- コネクタに最小限の特権を適用します。 Power Automateでは、テナント全体ではなく 1 つのSharePoint サイトなど、必要な最小スコープを接続に付与します。
コストの最適化
コストの最適化では、不要な経費を削減し、運用効率を向上させる方法に重点を置いています。 詳細については、「コスト最適化の設計レビュー チェックリスト」を参照してください。
- 適切なドキュメント インテリジェンスレベルを選択します。 Document Intelligence はページ単位で課金され、無料 (F0) レベルと標準 (S0) レベルを利用できます。 Azure料金計算ツールを使用してページボリュームを見積もり、運用環境に移行する前に適切なレベルを選択します。
- 呼び出す前にフィルター処理します。 無関係なアップロードで容量を消費しないように、サポートされていないファイルをスキップするには、Power Automate条件を使用します。 PDF を受け入れる場合は、サポートされているイメージ形式に各ページをレンダリングし、同じページイメージをAI Builderとドキュメント インテリジェンスの両方に送信します。そのため、両方の出力で同じピクセル座標空間が使用されます。 結果を照合する前に、各画像の PDF ページ番号を保持します。
- AI Builder クレジットの消費を計画する AI Builderは、モデル実行ごとに消費されるクレジットによってライセンスされます。 ライセンスとAI Builder クレジットを確認し、必要に応じて容量を追加します。
- 適切なPower Automateライセンスを選択します。 個々のユーザーにライセンスを付与するか、フロー自体にライセンスを付与する必要があるかに基づいて、Power Automate Premium ユーザーまたは Power Automate プロセス ライセンスを選択します。
- Azureコストを見積もります。 このシナリオのおおよそのAzure サービス コストについては、Azure料金計算ツールで構成済みの見積もりを使用します。 予想されるドキュメント ボリュームに合わせて値を調整します。 この見積もりは、このシナリオにおける Azure サービスのみを対象としており、これには、OCR 処理用の Azure Document Intelligence S0 レベルと、ピクセル座標照合ロジック用の Azure Functions の従量課金プランが含まれます。 Power Platform のAI BuilderとPower Automateコンポーネント、Microsoft 365 SharePoint、OneDrive、Teams は個別にライセンスされており、この見積もりには含まれません。
オペレーショナル エクセレンス
オペレーショナル エクセレンスは、アプリケーションをデプロイし、それを運用環境で実行し続ける運用プロセスをカバーします。 詳細については、「 オペレーショナル エクセレンスの設計レビュー チェックリスト」を参照してください。
- アプリケーション ライフサイクル管理 (ALM) には Power Platform ソリューションを使用します。 フロー、カスタム コネクタ、AI Builder モデルを Power Platform ソリューションにパッケージ化して、開発環境、テスト環境、運用環境間で昇格できるようにします。
- Azure関数でソース管理を使用します。 GitHubまたはAzure DevOpsに関数を格納し、継続的インテグレーションと継続的デリバリー (CI/CD) パイプラインを使用してデプロイします。 詳細については、Azure Functions の継続的デプロイメントを参照してください。
- すべてのレイヤーを監視します。 Application Insights を使用してAzure関数をインストルメント化し、Power Platform 管理センターでフローの実行を監視し、ドキュメント インテリジェンスの使用状況と調整をAzure Monitorで監視します。
- スケジュールに従ってモデルを再トレーニングします。 オブジェクト検出モデルは、ソース ドキュメントの進化に伴って誤差が出ます。 AI Builder モデルの再トレーニング周期を確立し、時間の経過に伴う精度を追跡します。
- メタデータ スキーマのバージョン管理を使用します。 SharePointメタデータ列をコントラクトとして扱います。 インジェストや既存の検索エクスペリエンスを中断せずに更新する方法を計画します。
パフォーマンス効率
パフォーマンス効率とは、ユーザーの要求を効率的に満たすためにスケーリングするワークロードの能力を指します。 詳細については、「パフォーマンス効率のための設計レビュー チェックリスト」を参照してください。
- サービスの制限について説明します。 スループットを計画する前に、ドキュメント インテリジェンス サービスのクォータと制限、およびAI Builderの制限を確認します。 要求クォータは、大量になると予想される場合は早い段階で増加します。
- ドキュメントを並行して処理する。 Power Automate では、アップロードをトリガーとする個別のフロー実行は既定で並行して開始されます。 ドキュメント バッチを処理するようにフローを再設計する場合は、コンカレンシーを有効にし、並列処理の次数をAI Builderおよびドキュメント インテリジェンスの制限内に収まるように制限します。
- 画像を正確に前処理します。 品質の高い入力により、再実行が減ります。 AI Builderおよびドキュメント インテリジェンスに画像を送信する前に、サイズの大きい画像をダウンサンプリングし、向きを正規化し、無関係な空白をトリミングすることを検討してください。
- コールドスタートを緩和する。 待機時間が重要な場合は、Flex Consumption で 常時対応のインスタンス を使用し、Premium プランで 事前に予約済みのインスタンス を追加して、コールドスタートの遅延を減らします。
- 大量処理には Logic Apps を検討してください。 高スループットのシナリオでは、Logic Apps Standard レベルでは、より高いアクション制限と、Power Automateよりも適切にスケーリングできる専用ランタイムが提供されます。
貢献者
Microsoft では、この記事を保持しています。 この記事を書いたのは、以下の寄稿者です。
主著者
- Steve Pucelik |シニア プロダクト マネージャー
その他の共同作成者:
- Lohith G N | シニア CSA、クラウドと AI プラットフォーム
公開されていない LinkedIn プロフィールを見るには、LinkedIn にサインインしてください。
次のステップ
- Foundry Tools における Azure ドキュメント インテリジェンスとは何ですか?
- ドキュメント インテリジェンスのカスタム モデル
- Power Automate における AI Builder の概要
- オブジェクトからテキストを抽出する (Power Platform コミュニティのブログ投稿)