多くのドキュメントパイプラインは「PDF を受け取ったら OCR」と決め打ちしますが、実際には ページの 60%〜80% は OCR 不要です。選択可能なテキスト層、ベクタ表、埋め込みフォントを持つページに対して OCR を走らせるのは、OCR Cost の無駄遣いです。PDF 事前検査(pre-flight) を入れてから Textract や Document AI を呼ぶのが、OCR Optimization で最も ROI の高い一手です。本記事では、なぜ検査が必要か、ページ分類の方法、本番導入のポイントを解説します。
1. OCR の前に PDF を検出する理由
PDF OCR は多くの場合ページ課金です。AWS Textract、Google Document AI、Azure Document Intelligence、ABBYY、PaddleOCR マネージド版など、単価は $0.0015〜$0.05+/ページ と幅があります。問題は PDF が単一フォーマットではないこと。同じ「請求書.pdf」でも:
- 基幹システムからのネイティブテキスト PDF(
pdftotextで即全文取得); - Word から変換した埋め込みフォント PDF;
- スキャナ由来のラスター画像のみの PDF(OCR 必須);
- 表紙だけスキャン、本文はテキストのハイブリッド。
事前検査なしで全ページ OCR すると、既存のテキスト層を「画像として再読み」することになり、コストだけでなく誤認識も増えます。金融・法務・保険のバッチ処理では、ページ単位の pre-flight + ルーティング でクラウド OCR 呼び出しを半減させるのは珍しくありません。電子契約や銀行明細などテキスト比率が高いコーパスでは、年間 70%〜80% の OCR Cost 削減も現実的です。
2. 1 ページの本当のコスト
最適化の前に計測口径を揃えましょう。クラウドベンダーの一般的な課金軸:
| 項目 | 2026 年の目安単価 | 備考 |
|---|---|---|
| 基本 OCR(テキストのみ) | $0.0015〜0.003/ページ | 表・フォームなし |
| 表 / フォーム OCR | $0.01〜0.05/ページ | Document AI 構造化ティア |
| 手書き / 低品質スキャン | 1.5〜3 倍のプレミアム | 人手 QA キューが必要な場合も |
| 自前 GPU(償却) | ≈$0.0003〜0.001/ページ | 利用率に依存 |
例:月 200 万ページ、混合単価 $0.008/ページ なら年間 OCR 約 $192,000。pre-flight で 75% がテキスト抽出で足りる(限界費用ほぼゼロ)と判明し、25% だけ OCR なら OCR 支出は約 $48,000——約 75% 削減。誤認識による再作業が減ると、体感では 80% に近づくこともあります。
単価はリージョンや Batch、コミット量で変動します。感度分析には Google Document AI の料金 と AWS Textract の料金 を参照してください。LLM の多段ルーティングで API 費を抑えているなら、ドキュメント側も同じ規律が必要です——OmniRoute 移行検収リスト のような層別パターンが参考になります。
3. 3 種類の PDF:ルーティングせよ、一括 OCR するな
| タイプ | シグナル | ルート | 相対コスト |
|---|---|---|---|
| A. ネイティブテキスト | フォントあり;pdftotext が閾値超 | 抽出 + エンコーディング正規化 | ≈0 |
| B. ハイブリッド | 一部ページはテキスト、一部はスキャン | ページ単位ルーティング | 中 |
| C. フラットスキャン | フォントなし;全面ビットマップ | OCR(必要なら傾き補正・ノイズ除去) | 高 |
ハイブリッド文書で失敗しがちなのは「ファイル全体に一つの戦略」を当てることです。200 ページの M&A 資料でも、スキャン付録だけ OCR が必要なケースは珍しくありません。ページ単位の検出こそ、本物の PDF OCR 最適化です。Adobe の PDF フォントガイド は埋め込みテキストとスキャン層の違いを説明しています——検出器は拡張子ではなく、ページごとの text operator を見るべきです。
4. 5 段階の pre-flight パイプライン
- 構造プローブ:ページ数、暗号化、破損——課金 OCR の前に修復。
- テキスト層プローブ:ページごとの文字数とフォントオブジェクト;閾値超かつゴミ文字率が低ければ
TEXT_OK。 - 画像カバレッジ:大きなビットマップ + テキスト空 →
SCAN。 - 品質スコア:DPI、コントラスト、傾き——有料リトライを避けるため OCR 前に前処理。
- ルート:
TEXT_OK→ ローカル抽出;SCAN→ OCR キュー;HYBRID→ ページ分割。
メトリクスをエクスポート:preflight_text_ratio、ocr_pages_ratio、ocr_retry_rate。月次レビューは、ページ単価の値引き交渉だけより効果的です。
5. OSS とクラウド API
| 段階 | ローカル / OSS | クラウド API |
|---|---|---|
| pre-flight / 抽出 | PyMuPDF、poppler、qpdf | 通常不要 |
| OCR エンジン | Tesseract、PaddleOCR、Surya | Document AI、Textract、Azure DI |
| 表 | pdfplumber、camelot(ネイティブ PDF) | クラウドのフォーム/表モード |
OCR Optimization の勝ちパターン:ローカル pre-flight、SCAN ページだけクラウド OCR。
6. Python ルーティング例
import fitz # PyMuPDF
MIN_CHARS = 30
def page_classify(page) -> str:
text = page.get_text("text").strip()
if len(text) >= MIN_CHARS:
return "TEXT_OK"
if page.get_images(full=True) and len(text) < MIN_CHARS:
return "SCAN"
return "HYBRID"
本番ではタイムアウト、暗号化 PDF のハンドラ、検索用メタデータを追加してください。pre-flight ワーカーは安定した CPU が必要です——バッチジョブは CI ワークロードに似ており、騒がしい共有 VPS より専用ノードが有利です(下記のクラウド Mac 参照)。
7. 事例:年間約 80% 削減
越境物流 SaaS が 1 日 8,000 PDF(約 32,000 ページ)を取り込んでいました。Document AI 全量 OCR($0.006/ページ)で月約 $5,760。ページ単位 pre-flight 導入後、OCR 対象は 22% のみ——月額 OCR 約 $1,270(約 78% 削減、pre-flight 計算コストは月 $200 未満)。
| フェーズ | 施策 | OCR ページ比率 | 月額 OCR(目安) |
|---|---|---|---|
| 導入前 | 全量クラウド OCR | 100% | ~$5,760 |
| 導入後 | ページ pre-flight + ローカル抽出 | 22% | ~$1,270 |
| 削減 | — | — | ~78% |
副次効果:ネイティブ ID フィールドの精度が OCR 時 ~96% からほぼ 100% に。追跡番号の誤読に関するサポートチケットが 40% 以上減少——OCR Cost 最適化で見落とされがちな隠れメリットです。
8. OCR 最適化チェックリスト
- ☐ ダッシュボード:抽出 / OCR / リトライページの可視化
- ☐ ページ単位ルーティング——ファイル単位の単一戦略禁止
- ☐ SCAN ページは OCR 前に品質ゲート(DPI・傾き)
- ☐ ネイティブ表は pdfplumber で、写真 OCR しない
- ☐ 言語別にエンジンベンチマーク(CJK とラテン系を分離)
- ☐ TEXT_OK ページを週 0.1% 人手スポットチェック
- ☐ OCR 呼び出しが日次 +30% でアラート(段階的 API ルーティング と同じ FinOps 規律)
9. よくある質問
pre-flight は OCR より遅い?
ページごとのテキストプローブはミリ秒単位——クラウド OCR の RTT よりはるかに短いです。IO バウンドのバッチはワーカー並列化で対応。
偽のテキスト層は?
低品質な不可視 OCR テキストを載せたスキャン PDF があります。ゴミ文字率と画像重複チェックで疑わしいページを SCAN にダウングレード。
暗号化 PDF は?
pre-flight でパスワード解決。復号失敗を課金 OCR に繰り返し送らないこと。
80% は普遍的?
ネイティブテキストの割合次第。純スキャンアーカイブは 10%〜20%;電子請求書・契約書は 70%〜85% も。まず 1% サンプルで統計を取る。
Tesseract でクラウド OCR を置き換え?
単純レイアウトの大量処理には有効。複雑な表・手書きはクラウドや専用モデルが有利。pre-flight はローカル、難例はクラウドが定石。
LLM の「PDF 読み取り」との関係は?
マルチモーダルモデルはトークン課金で PDF を読むと高額。先にクリーンなテキスト/JSON に変換——OCR 前検出と同じ FinOps ロジックです。
pre-flight と OCR に安定ワーカーを
pre-flight、画像前処理、自前 OCR は長時間の CPU/GPU ジョブです。共有 VPS のノイズでタイムアウト→有料リトライが発生し、OCR Cost が膨らみます。Apple Silicon のユニファイドメモリは PyMuPDF とローカル推論の並列に向き、macOS の Python スタックは企業向け権限モデルとも相性が良いです。
PDF OCR や RAG 取り込みパイプラインを構築中なら、Nuvcloud 専用 Mac mini M4 を pre-flight/OCR ワーカーに——プランを見る、予測可能なハードウェアで OCR Optimization を。