• TOP
  • 記事一覧
  • AWSのOCRサービス完全ガイド:Textract、Rekognition、Comprehendの使い分け

AWSのOCRサービス完全ガイド:Textract、Rekognition、Comprehendの使い分け

更新日:2025/02/09

Amazon Textract 文書・フォーム処理特化 表形式データ抽出 Amazon Rekognition 画像・動画分析 テキスト検出機能 Amazon Comprehend 自然言語処理 テキスト分析・理解

AWSのOCRサービスとは

AWSが提供するOCR(光学文字認識)サービスは、ビジネスのデジタル化を加速させる重要なツールです。主に以下の3つのサービスがあります:

  1. Amazon Textract
    • PDFや画像からのテキスト抽出に特化
    • S3と連携した大量文書の処理が可能
    • フォームや表形式データの構造化抽出
  2. Amazon Rekognition
    • 画像・動画分析がメイン機能
    • リアルタイムの文字認識が可能
    • クラウドネイティブな統合性
  3. Amazon Comprehend
    • 抽出されたテキストの意味理解
    • 自然言語処理による高度な分析
    • マルチ言語対応

各サービスの特徴と使い分け

Amazon Textract

  • 最適な用途
    • 請求書や領収書の自動処理
    • フォームデータのデジタル化
    • 大量の文書からのデータ抽出
  • 主な機能
    • 表形式データの抽出
    • キーバリューペアの認識
    • PDFドキュメントの処理

Amazon Textractのリージョン対応状況

Amazon Textract 対応リージョン 対応済み 未対応 米国東部/西部 • バージニア北部 • オハイオ • カリフォルニア • オレゴン アジアパシフィック • ムンバイ • ソウル • シンガポール • シドニー 東京 (未対応) 欧州 • フランクフルト • アイルランド • ロンドン • パリ ※ リージョンの対応状況は定期的に更新されます。最新情報はAWSドキュメントをご確認ください。

推奨リージョンの選び方:

  1. 日本国内向けサービスの場合
  • アジアパシフィック(シンガポール)
    • 東京リージョンが未対応のため、地理的に最も近い
    • 安定した低レイテンシー
    • 日本との時差が少ない
  1. グローバルサービスの場合
  • 米国東部(バージニア北部)
    • AWSの最大リージョン
    • 最も安定している
    • 料金が比較的安価
    • 新機能が最も早く導入される
リージョン選択 レイテンシー 利用者との距離 コスト リージョン別料金 コンプライアンス データ規制

AWS Textractを使用したNode.jsアプリケーション

AWS SDK Textractのインストール

npm install @aws-sdk/client-textract

IAM権限の設定
必要なIAMポリシー:

AmazonTextractFullAccess

AmazonTextractFullAccess 基本的なTextract操作に必要な全権限を含む AmazonTextractServiceRole 非同期処理用(オプション) AWSIAMIdentityCenter… IDセンター連携用(オプション) ※ 基本的な使用には「AmazonTextractFullAccess」のみで十分です

AWS SDK for JavaScriptを使用して下記の実装が可能です

1. SDKインポート @aws-sdk/client-textract 2. Textractクライアント初期化 region, credentials設定 3. OCRコマンド実行 DetectDocumentTextCommand const { TextractClient,     DetectDocumentTextCommand } = require(‘@aws-sdk/client-textract’); const client = new TextractClient({   region: ‘region’,   credentials: {…} });
const { TextractClient, DetectDocumentTextCommand } = require('@aws-sdk/client-textract');

// Textractクライアントの初期化
const textractClient = new TextractClient({
  region: 'リージョン',
  credentials: {
    accessKeyId: 'アクセスキー',
    secretAccessKey: 'シークレットキー'
  }
});

// OCR処理のエンドポイント
app.post('/api/ocr', upload.single('file'), async (req, res) => {
  try {
    // 1. ファイルの検証
    if (!req.file) {
      return res.status(400).json({ error: 'ファイルが提供されていません' });
    }

    // 2. 画像形式のチェック
    const allowedMimeTypes = ['image/jpeg', 'image/jpg', 'image/png'];
    if (!allowedMimeTypes.includes(req.file.mimetype)) {
      return res.status(400).json({ 
        error: 'サポートされていないファイル形式です。JPEG, PNGのみ対応' 
      });
    }

    // 3. S3へのアップロード
    const fileKey = `uploads/ocr-${Date.now()}-${req.file.originalname}`;
    await s3Client.send(new PutObjectCommand({
      Bucket: 'バケット名',
      Key: fileKey,
      Body: req.file.buffer
    }));

    // 4. Textractによる文字認識
    const textractResponse = await textractClient.send(new DetectDocumentTextCommand({
      Document: {
        S3Object: {
          Bucket: 'バケット名',
          Name: fileKey
        }
      }
    }));

    // 5. 認識結果の整形
    const extractedText = textractResponse.Blocks
      .filter(block => block.BlockType === 'LINE')
      .map(block => block.Text)
      .join('\n');

    res.json({
      success: true,
      text: extractedText
    });

  } catch (error) {
    res.status(500).json({ error: 'OCR処理に失敗しました' });
  }
});

PDFの処理が難しい理由

  1. 構造の複雑さ
  • テキスト、画像、表が混在
  • 複数のレイヤーが重なり合っている
  • ページごとに異なるレイアウト
テキストレイヤー 画像レイヤー フォームレイヤー PDFの複雑な構造
  1. Textractの特別な設定

AWS SDK for JavaScript (v3) の Textract Client 内の別のコマンドAnalyzeDocumentCommandが必要になります。

  • 特別な設定(FeatureTypes)が必要
  • 同期・非同期の使い分けが必要
AnalyzeDocumentCommand PDFの処理に必要 FeatureTypes必須 TABLES, FORMS等 同期処理 非同期処理
Textract Commands の違い DetectDocumentTextCommand const command = new DetectDocumentTextCommand({   Document: { S3Object: {…} } }); 画像ファイル向け シンプルなテキスト抽出 高速処理 低コスト AnalyzeDocumentCommand const command = new AnalyzeDocumentCommand({   Document: { S3Object: {…} },   FeatureTypes: [‘TABLES’, ‘FORMS’] }); PDF対応 高度な文書解析 表・フォームの認識 FeatureTypes指定が必要 処理時間とコストが高め
  1. 実用面の課題
  • 処理時間が画像より大幅に長い
  • 複数ページの処理が必要
  • コストが画像処理より高額
画像処理: 数秒 PDF処理: 数分~数十分 画像コスト: $ PDFコスト: $$$

Amazon Rekognition

  • 最適な用途
    • 商品ラベルの読み取り
    • 看板やポスターの文字認識
    • 動画内のテキスト検出
  • 主な機能
    • リアルタイム文字認識
    • 多言語テキスト検出
    • 画像内の複数テキスト認識

Amazon Comprehend

  • 最適な用途
    • 文書の自動分類
    • 重要情報の抽出
    • センチメント分析
  • 主な機能
    • エンティティ認識
    • キーフレーズ抽出
    • 文書分類

導入時の注意点とベストプラクティス

  1. ストレージの考慮
    • S3との連携が推奨
    • 適切なIAMロール設定
    • データ保持期間の設定
  2. コスト最適化
    • 処理量に応じたスケーリング
    • バッチ処理の活用
    • 無駄なAPI呼び出しの削減
  3. セキュリティ対策
    • データ暗号化の実装
    • アクセス権限の適切な設定
    • 監査ログの有効化

料金比較

サービスごとの料金体系(概算):

  • Textract:ページ単位の課金
  • Rekognition:画像/動画の処理時間による課金
  • Comprehend:処理したテキスト量による課金
人気記事ランキング
話題のキーワードから探す