コンテンツにスキップ

Amazon Textract

1. サービス概要

Amazon Textract は、スキャンした書類や画像に含まれるテキストとその構造(レイアウト)を、高精度に検出するマネージド型 OCR(Optical Character Recognition)サービスである。
単なる文字起こしだけでなく、フォームや表の構造を理解し、キーと値の関係や表データとして出力する点が特徴である。

主なユースケースとして、

  • 文書の電子化・アーカイブや帳票処理の自動化
  • 手書き書類のデータ化
  • 金融・保険業界での請求書や契約書解析

などが挙げられる。
従来の OCR エンジンに比べて、レイアウト認識と機械学習による高い正確性を実現する。

2. 主な特徴と機能

2.1 テキスト検出とレイアウト解析

画像や PDF ドキュメントからテキストを抽出するだけでなく、段組みやフォームのフィールドなどのレイアウトを把握。
Block という概念で段落・表・セル・キー・値を細かく分割して出力し、文書構造を再現しやすい点が強みである。

2.2 テーブル認識

複雑な表も自動検出し、セルごとの文字列を行列構造にマッピングする。
行や列の番号を特定して CSV 形式のように扱えるため、表形式データの解析・保存が容易になる。

2.3 フォーム抽出 (Key-Value Pairs)

キーと値の関係を識別し、「Name: John Doe」などの項目と値を自動的にペアとして抽出。
フォーム入力の自動処理(例: 顧客情報やアンケート結果の取り込み)を大幅に効率化する。

2.4 手書き文字への対応

スキャンした書類に含まれる活字だけでなく、手書きテキストの認識にも対応(英語の手書き対応など)。
完全なデジタル書式への変換が難しいケースでも、Textract が一定精度で手書き文字を読み取り可能である。

2.5 機密情報抽出 (Amazon A2I 連携)

異常値や機密度の高い項目を検出し、人間のレビューが必要な場合は Amazon A2I (Augmented AI)を組み合わせてヒューマン・イン・ザ・ループを構築可能。
これにより、重要な文書のコンプライアンス担保や精度向上を図れる。

3. アーキテクチャおよび技術要素

  1. S3 にアップロードされた PDF/画像ファイルを Textract API に入力
  2. Textract がクラウド上で OCR とレイアウト解析を行い、各 Block(LINE、WORD、TABLE、CELL など)を検出
  3. 出力結果は JSON 形式で返され、文字列と座標情報、キー-バリューペア、テーブル構造などを含む
  4. カスタムアプリケーションや Lambda が JSON をパースし、データを DB に保存したりレポートに変換
  5. A2I などを組み合わせて、人間のレビューを挟み、誤検知を補正

これにより、文書の構造化データ化を自動化し、ワークフローの効率化やペーパーレス推進を実現する。

4. セキュリティと認証・認可

Textract を導入する際、以下のポイントを考慮する:

  • IAM ポリシー: Textract API の呼び出し権限を最小限に限定する
  • S3 暗号化: 文書が保管される S3 バケットを KMS 暗号化し、機密文書の安全性を維持
  • VPC エンドポイント: Textract への呼び出しをプライベートネットワークで行い、インターネット経由を回避
  • CloudTrail: API 呼び出しを監査ログとして記録し、不正アクセスを検知・調査

5. 料金形態

Amazon Textract の料金は以下に基づきる:

  • OCR 文字数: ドキュメントのページまたは画像ごとの処理料金(1,000 ページ単位など)
  • 解析タイプ: 単純 OCR だけでなく、テーブル・フォーム抽出オプションで追加コスト
  • 無料利用枠: 小規模利用向けに 1,000 ページ(フォーム・テーブルなし)が月間無料などのオファー

6. よくあるアーキテクチャ・設計パターン

Textract の導入シナリオは多岐にわたりるが、代表例として:

  • 帳票処理自動化: 請求書や注文書をスキャンし、テーブル抽出で支払金額や顧客情報を取り込み、ERP に登録
  • 金融機関での KYC: 顧客の本人確認書類(運転免許証等)から名前・住所・顔写真を抽出し、システムへ登録
  • 医療・保険の書類管理: PDF カルテや保険申請書をテーブル・フォーム認識で自動入力し、管理データベースを更新
  • IoT 検査表解析: 手書きの検査記録を読み取り、ログシステムに登録して分析に活用

7. 設定・デプロイ手順(ハンズオン例)

  1. S3 バケットを準備し、OCR したい PDF ファイルや画像ファイルをアップロード
  2. AWS コンソールで「Amazon Textract」を検索、「Analyze Document」を選択し、S3 オブジェクトを指定
  3. 「Table/Forms 検出」オプションを有効にして実行すると、解析結果が JSON として表示される
  4. CLI や SDK で StartDocumentAnalysis や GetDocumentAnalysis を使用して非同期処理も可能
  5. 解析結果を S3 へエクスポートしたり、Lambda 関数で結果をパースして DB に保存するフローを構築
  6. 必須に応じて、手書き文字対応や Amazon A2I を使った人間レビューを追加

8. 試験で問われやすいポイント

8.1 OCR とフォーム/テーブル抽出

  • Detect Document Text: シンプルな文字列抽出
  • Analyze Document: テーブルとフォーム(Key-Value)検出が有効
  • Block 構造: PAGE、LINE、WORD、TABLE、CELL などの種類

8.2 非同期ジョブとリアルタイム API

  • Synchronous API: 小規模な画像(5MB 以下)をリアルタイムに処理
  • Asynchronous API: PDF や多数ページを非同期ジョブで処理し、SNS 通知またはポーリングで結果を受け取る

8.3 セキュリティと IAM

  • 最小権限: Textract と S3 の操作ポリシーを必要最小限に設定
  • データ暗号化: S3 暗号化により機密文書を保護

8.4 カスタムワークフロー (A2I)

  • Confidence Threshold: Textract の結果が一定信頼度を下回る場合に人的レビュー
  • 人間レビュー UI: Amazon A2I が提供する UI で補正

8.5 コスト管理

  • ページまたは画像単位: 分析リクエストごとの費用
  • フォーム・テーブルオプション: ベース料金に追加費用が加算

8.6 試験で頻出となる具体的な問われ方と答え

  • Q: Amazon Textract で表のセル情報を得るには?
  • A: AnalyzeDocument API を使用し、TABLE と CELL の Block を解析する。
  • Q: PDF の複数ページを一度に解析したい場合は?
  • A: StartDocumentAnalysis(Async)などの非同期ジョブを使用し、S3 へのアップロードを指定する。
  • Q: キーと値の抽出は何のために使う?
  • A: フォームの項目名と入力値を紐づけ、DB 登録や自動入力に活用。
  • Q: OCR 結果に誤差がある際の対処は?
  • A: Confidence スコアを確認し、低スコアな項目は人間レビュー(A2I)や再スキャンなどを検討。
  • Q: テキスト抽出だけが必要な場合のコストを抑えるには?
  • A: DetectDocumentText API を使い、フォーム・テーブル解析を行わないことで追加費用を避ける。