AWSのOCRサービス完全ガイド:Textract、Rekognition、Comprehendの使い分け
更新日:2025/02/09

AWSのOCRサービスとは
AWSが提供するOCR(光学文字認識)サービスは、ビジネスのデジタル化を加速させる重要なツールです。主に以下の3つのサービスがあります:
- Amazon Textract
- PDFや画像からのテキスト抽出に特化
- S3と連携した大量文書の処理が可能
- フォームや表形式データの構造化抽出
- Amazon Rekognition
- 画像・動画分析がメイン機能
- リアルタイムの文字認識が可能
- クラウドネイティブな統合性
- Amazon Comprehend
- 抽出されたテキストの意味理解
- 自然言語処理による高度な分析
- マルチ言語対応
各サービスの特徴と使い分け
Amazon Textract
- 最適な用途:
- 請求書や領収書の自動処理
- フォームデータのデジタル化
- 大量の文書からのデータ抽出
- 主な機能:
- 表形式データの抽出
- キーバリューペアの認識
- PDFドキュメントの処理
Amazon Textractのリージョン対応状況
推奨リージョンの選び方:
- 日本国内向けサービスの場合
- アジアパシフィック(シンガポール)
- 東京リージョンが未対応のため、地理的に最も近い
- 安定した低レイテンシー
- 日本との時差が少ない
- グローバルサービスの場合
- 米国東部(バージニア北部)
- AWSの最大リージョン
- 最も安定している
- 料金が比較的安価
- 新機能が最も早く導入される
AWS Textractを使用したNode.jsアプリケーション
AWS SDK Textractのインストール
npm install @aws-sdk/client-textract
IAM権限の設定
必要なIAMポリシー:
AmazonTextractFullAccess
AWS SDK for JavaScriptを使用して下記の実装が可能です
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の処理が難しい理由
- 構造の複雑さ
- テキスト、画像、表が混在
- 複数のレイヤーが重なり合っている
- ページごとに異なるレイアウト
- Textractの特別な設定
AWS SDK for JavaScript (v3) の Textract Client 内の別のコマンドAnalyzeDocumentCommandが必要になります。
- 特別な設定(FeatureTypes)が必要
- 同期・非同期の使い分けが必要
- 実用面の課題
- 処理時間が画像より大幅に長い
- 複数ページの処理が必要
- コストが画像処理より高額
Amazon Rekognition
- 最適な用途:
- 商品ラベルの読み取り
- 看板やポスターの文字認識
- 動画内のテキスト検出
- 主な機能:
- リアルタイム文字認識
- 多言語テキスト検出
- 画像内の複数テキスト認識
Amazon Comprehend
- 最適な用途:
- 文書の自動分類
- 重要情報の抽出
- センチメント分析
- 主な機能:
- エンティティ認識
- キーフレーズ抽出
- 文書分類
導入時の注意点とベストプラクティス
- ストレージの考慮
- S3との連携が推奨
- 適切なIAMロール設定
- データ保持期間の設定
- コスト最適化
- 処理量に応じたスケーリング
- バッチ処理の活用
- 無駄なAPI呼び出しの削減
- セキュリティ対策
- データ暗号化の実装
- アクセス権限の適切な設定
- 監査ログの有効化
料金比較
サービスごとの料金体系(概算):
- Textract:ページ単位の課金
- Rekognition:画像/動画の処理時間による課金
- Comprehend:処理したテキスト量による課金

-
検索
(例) debug search etc.. -
カテゴリー
-
mixhostでのWordPress利用について
更新日:2024/04/02
299 view
-
scrollHint
更新日:2024/03/13
250 view
-
XML Sitemap Generator for Google不具合のダウングレード対応、代替プラグイン
更新日:2024/06/13
236 view
-
【SnowMonkey】納品までのフローまとめ
更新日:2025/02/15
163 view
-
ワードプレスでフォントを変えたいとき、プラグインを使えば初心者でも簡単
更新日:2025/02/16
144 view
-
【Googleサーチコンソール】検索画面で表示させたくない「Googleのインデックス削除」
更新日:2024/06/07
130 view
-
【Snow Monkey】ショートコードで編集画面で任意の場所にHTMLファイルを挿入
更新日:2025/04/04
124 view
-
キーワード検索で上位表示させる方法【SEO】
更新日:2023/10/28
120 view
-
tailwindcss使い方
更新日:2024/03/13
120 view
-
Recline: GitHub Copilotで動作するClaude 3.5 Sonnet搭載の開発支援ツール
更新日:2025/01/20
110 view
-
WordPressプラグイン「All-in-One WP Migration」のトラブル
更新日:2022/03/31
84 view
-
ワードプレスセキュリティー対策まとめ【2025年】「site guard wordpress」「BackWPup バージョン5でUI変更!?」
更新日:2025/02/25
76 view
-
SSHを使用してGitHubのリポジトリをクローン、複数の接続元で公開鍵をディレクトリで区別する方法
更新日:2025/01/13
47 view
-
VSCodeで開発効率を劇的に向上させる!Roo-Clineプラグイン完全ガイド【Gemini API】
更新日:2025/02/08
43 view
-
Express、FastAPIを使用し、二重fetch構成のメリット
更新日:2025/03/28
41 view
-
「JSONスキーマ」と「Few-shot Learning」で実現する次世代生成AIソフトウェア開発の可能性
更新日:2025/02/12
40 view
-
WordPressの無料画像素材のおすすめダウンロードサイト!
更新日:2022/02/22
35 view
-
リファクタリング【VSCode Javasctipt Python】
更新日:2025/03/09
35 view
-
形態素解析とは?初心者でもわかるツールの使い方と実践例
更新日:2025/02/08
33 view
-
【Next.js AWS】音声文字起こし&要約、分析アプリケーション(S3)(Transcribe)(Amazon Bedrock)
更新日:2025/02/13
30 view