Docling OCRエンジン

単一「最良」OCR機関は存在しない。台・言語・設定意欲で適材選択。本頁は全機関比較、機関別導入 + CLI + Python、移植iso:言語系、GPU backend、複写調理法を収録。機関事実は公式OCR概念native機関解説で検証済み。

1
Step 1

1. どのエンジンを選ぶか

デジタル (テキスト) PDFにOCRは不要なことが多い。まず--no-ocrで最速を試し、スキャン頁のみエンジン追加。

状況選択理由
既定・迷いRapidOCRpipのみ導入、CPU親和、多言語、将来GPU可。最も無難な初手。
100超言語や自作traineddataTesseract (CLIかtesserocr)実績あるエンジン。文字モデル (script/Latin)、縦書き日本語 (jpn_vert)、自作学習済み可。
Macでゼロ設定OcrMacデバイス内Apple Vision利用。本体もモデル取得も不要。
手軽なCJK + ラテンEasyOCRpipのみでGen2自動取得。複数言語同時。
NVIDIA集積で最大処理量Nemotron OCRGPU加速。英語+多言語モデル (Linux x86_64・CUDA 13.x)。
OCRが別役務KServe v2Doclingが自前遠隔口を呼ぶ。言語符号は自デプロイのもの。
特殊モデル要プラグイン (OnnxTR・SuryaOCR)--allow-external-plugins付き plugin 導入。
2
Step 2

2. OCRのパイプライン位置 (様式と旗)

OCRは既定有効 (--ocr)。3旗が適用範囲実行機関を定める。Python等価: PdfPipelineOptions().do_ocr = TrueRapidOcrOptions / EasyOcrOptions / TesseractOcrOptions / TesseractCliOcrOptions / OcrMacOptions / NemotronOcrOptionsのいずれかをmode=OcrMode.FULL_PAGE付きで。OCR視野は--debug-visualize-ocrで可視化。

値・既定意味
--ocr / --no-ocr既定有効主開閉。--no-ocrはOCR完全省略。デジタルPDF最速。
--ocr-modedefaultfull_pagelayout_regionspdf_aware_layout_regions機関投入域。full_pageは頁全面端々 (低速・スキャン最適)。--force-ocrは廃止。--ocr-mode full_page利用。
--ocr-engineauto (既定)・rapidocreasyocrtesseracttesserocrocrmacnemotron-ocrkserve_v2_ocr実行機関。autoは導入済みから台依存選択。
--ocr-lang comma区切り (例chdeuiso:de)言語。 native か移植 ( 11節参照)。空 (--ocr-lang "") は機関任せ。
--psm0〜13OCR機関の頁 segmentation 様式。
3
Step 3

3. エンジン比較表

エンジン最適な用途プラットフォーム備考ドキュメント
auto (default) 利用可能なエンジンをDoclingに選ばせる。All--ocr-engineのデフォルト値。インストール状況とプラットフォームからDoclingが選択。Pythonではocr_optionsを未設定のままにする。 ドキュメント
RapidOCR 軽量・CPUフレンドリーな多言語OCR。無難な既定の選択。Cross-platform既定バックエンドはONNX Runtime (openvino/paddle/torchも可)。pip install "docling[rapidocr]"。1実行1言語。PP-OCR v4/v5/v6トークン、latin/cyrillic/arabic/devanagari系を含む。Python: RapidOcrOptions。 ドキュメント
Tesseract (CLI) 100超言語の実績あるOCR。自作traineddataも可。Cross-platform (system binary)システムTesseract本体と言語データが必要 (TESSDATA_PREFIXは末尾/付き)。CLI利用ならpipエクストラ不要。Python: TesseractCliOcrOptions。lang空でOSDスクリプト検出 (osdファイルが必要)。 ドキュメント
Tesseract (tesserocr) 同精度のTesseractをPythonバインディングで高速に。Cross-platform (compiled)システム本体の後にpip install "docling[tesserocr]"。WindowsではC++ビルドツールが必要な場合あり。Python: TesseractOcrOptions。 ドキュメント
EasyOCR 手軽な多言語セットアップ。CJK・ラテン系文字。Cross-platformpip install "docling[easyocr]"。独自のGen2モデルを自動取得。複数言語を同時指定できるが、リストは短く (en単独がen+deより高精度)。Python: EasyOcrOptions。 ドキュメント
OcrMac Macでのゼロセットアップ・ネイティブOCR (Apple Vision)。macOS onlypip install "docling[ocrmac]"。モデル同梱なし。対応言語はmacOSバージョン依存。Python: OcrMacOptions。 ドキュメント
Nemotron OCR NVIDIAサーバーでの大規模GPU高速OCR。Linux x86_64 + CUDA 13.xcu130インデックス付きでpip install "docling[feat-ocr-nemotron]" (Python 3.12。v2.0.2は3.11/3.13追加)。englishまたはmultilingual (+約170のラテン系ベストエフォート)。Python: NemotronOcrOptions。 ドキュメント
KServe v2 OCR リモートOCRマイクロサービスを呼び出す。ServiceKServe v2エンドポイントに接続。langは検証・マッピングなしで先頭エントリのみ逐語送信。自前のデプロイのコードを使う。 ドキュメント
4
Step 4

4. 各機関を導入する

Tesseract本体はOS別。下記OS別完全手順は導入概要とOS指南参照。オフライン・CI機用にOCRモデル事前取得: docling-tools models download --allか個別--easyocr-lang de--rapidocr-backend-lang onnxruntime:elCLI解説参照。

brew install tesseract leptonica pkg-config
sudo apt-get install -y tesseract-ocr tesseract-ocr-eng libtesseract-dev libleptonica-dev pkg-config
sudo dnf install -y tesseract tesseract-devel tesseract-langpack-eng tesseract-osd leptonica-devel
機関導入本体要否
RapidOCRpip install "docling[rapidocr]" (またはpip install rapidocr onnxruntime)不要。pipのみ。
EasyOCRpip install "docling[easyocr]" (またはpip install easyocr)不要。初回に自取得。
Tesseract CLI本体のみ (下)。pipエクストラ不要要。本体 + TESSDATA_PREFIX (末尾/)。
Tesseract (tesserocr)本体先に、後pip install "docling[tesserocr]"要。Windowsは結合部に compiler 追加。
OcrMacpip install "docling[ocrmac]"macOSのみ。模型なし。VisionはOS内。
Nemotronpip install "docling[feat-ocr-nemotron]" --extra-index-url https://download.pytorch.org/whl/cu130 --index-strategy unsafe-best-matchLinux x86_64 + Python 3.12 + CUDA 13.x。
OnnxTR (plugin)pip install "docling-ocr-onnxtr[cpu]" + --allow-external-plugins不要。plugin 機構。

Windows: UB Mannheim版導入しPATH追加、TESSDATA_PREFIXtessdata\へ。tesserocr失敗時はpip uninstall tesserocr後にpip install --no-binary :all: tesserocr

5
Step 5

5. RapidOCR詳解 ( backend・PP-OCR版・言語)

RapidOCRはPP-OCR模型の包み。backend (runtime) とPP-OCR版 (模型世代) が独立に変わる。

言語札 (native 符号): v4: arabic, ch, chinese_cht, cyrillic, devanagari, en, japan, ka, korean, latin, ta, tev5: arabic, ch, cyrillic, devanagari, el, en, eslav, korean, latin, ta, te, thv6: ch, chinese_cht, en, japan + 欧州約45符号 (de, fr, es, it, pt, nl, pl …)。別名zh→ch, zh_cn→ch, zh_tw→chinese_cht, ja/jp→japan, ko→korean (注意: v6の朝鮮語は別名のみ)。de/germanfr/frenchは二重存在。

文字系 (1札で多言語): cyrillic (34: 露・宇・哈…+英)、devanagari (14: 印地・マーカー・梵…+英)、arabic (9: 阿・波・ Urdu …+英)、eslav (東 Slav: 露・白・宇+英)。

1実行1言語: RapidOCRはlang先頭のみ用い残りに警告。Python: RapidOcrOptions(lang=["eslav"], backend="onnxruntime")。独自 checkpoint 可 (独自模型例参照)。

docling convert scan.pdf --ocr-engine rapidocr --ocr-mode full_page
BackendPP-OCR版備考
onnxruntime (既定)v4, v5, v6最大適用。PP-OCRv5のeslav/cyrillic唯一。
openvinov4, v5, v6Intel器材経路。
paddlev4, v5, v6PaddlePaddle runtime。
torchv4, v5 (中国語のみ), v6PP-OCRv5 + torchは中国語のみ
6
Step 6

6. EasyOCR詳解 (言語表は短く)

EasyOCR (Gen2 checkpoint、craft_mlt_25k.pth検出) は複数言語同時可。ただし解決は要求全言語を覆う単一 checkpoint を選ぶ。不要言語追加は黙って降格: ["en"]は精密english_g2.pth["en","de"]は汎用latin_g2.pthに後退。

docling convert scan.pdf --ocr-engine easyocr --ocr-lang en
Checkpoint適用
english_g2.pthen
latin_g2.pth欧州・ラテン系 (de, fr, es, it, pt, nl, pl …)
zh_sim_g2.pthch_sim + en
japanese_g2.pth / korean_g2.pthja / ko + en
telugu.pth / kannada.pthte / kn + en
cyrillic_g2.pthru, be, bg, uk, mn … + en
7
Step 7

7. Tesseract詳解 (CLIとtesserocr・traineddata)

docling convert scan.pdf --ocr-engine tesseract --ocr-lang deu+eng
TESSDATA_PREFIX=/opt/homebrew/share/tessdata/ docling convert scan.pdf --ocr-engine tesserocr
  • 二味一機関: tesseractは本体CLI呼出し (pipエクストラ不要)。tesserocrは庫内結合 (高速、結合部要)。同精度・同一traineddata。
  • 言語 = traineddata語幹: deu, chi_sim, chi_tra, srp_latn, aze_cyrl, deu_latf, frk, jpn_vert, script/Latin, script/Cyrillicに自作学習済み追加可。導入済み.traineddataが利用可能域。
  • 構築時検査: 欠落は変換途中ではなく即時失敗し、導入済み一覧を報文に含む。
  • lang = 文字検出: --ocr-lang ""は頁毎の向き・文字検出 (osd traineddata要)。
  • 自動言語検出公式例参照。
8
Step 8

8. OcrMac詳解 (macOSのみ)

OcrMacはApple Visionの薄包み。本体も取得模型もなし。認識器はOS内蔵のため、対応集合はocrmac版でなく自macOS版の属性。

docling convert scan.pdf --ocr-engine ocrmac --ocr-mode full_page
  • 導入: pip install "docling[ocrmac]"。Python: OcrMacOptions
  • BCP-47地域付き照合: iso:dede-DEに、iso:ptpt-BRに、iso:zh-CNzh-Hansに当たる。
  • vi-VT等変則地域符号は裸 (native) 渡し。空langはVision自動。
9
Step 9

9. Nemotron OCR詳解 (Linux + CUDA)

Linux x86_64 + CUDA 13.xとcu130版torch索引要 (導入行は4節)。1実行1言語 (先頭勝ち)。Python: NemotronOcrOptions

Nemotron版Python言語
v2.0.03.12のみenglish (別名en)・multilingual (別名multi: 英・中繁簡・日・韓・露) + 約170ラテン系ベストエフォート (警告・NVIDIA未検証)
v2.0.23.11・3.12・3.13上同様
10
Step 10

10. KServe v2とplugin機関 (OnnxTR・SuryaOCR)

  • KServe v2: OCRが遠隔 micro 役務の場合。langは無検証・無写像。先頭のみ逐語送信、残りは警告破棄。自デプロイ符号利用。iso:は相手が話す場合のみ (皆無)。
  • OnnxTR plugin: pip install "docling-ocr-onnxtr[cpu]"--allow-external-plugins有効化、plugin名で選択。docling-OCR-OnnxTR庫参照。
  • 独自模型SuryaOCR公式例参照。第三者選択肢は--show-external-pluginsで列挙。
11
Step 11

11. 言語: native符号と移植iso:札

各機関は一字段OcrOptions.langで言語受領。各項目は正確に二様式:

native符号 (接頭辞なし)。機関固有表記を逐語通過: ch (PP-OCR中国語)、deu (Tesseract独語)、ch_sim (EasyOCR)、en-US (Vision)。

移植札。BCP-47をiso:付きで機関写像: iso:deiso:en-USiso:zh-Hant非既定文字は必ず明示: セルビア・ラテンはiso:sr-Latn必須 (既定セルビアはキリル)。

各機関は対応を自己申告: supported_ocr_languages()はnative + BCP-47符号をlang貼付可能な表記で返す。Doclingは黙って代替しない。非対応言語は例外となり機関の可能域を列挙。RapidOCRとNemotronは同時1言語 (先頭札勝ち・残り警告)。

意味代わりの言い方
mul複数言語機関固有の多言語符号 (例Nemotron multilingual)
und未定空表か所望文字の言語
zxx言語内容なしOCR停止: --no-ocr / do_ocr=False
from docling.datamodel.pipeline_options import TesseractCliOcrOptions
TesseractCliOcrOptions(lang=["deu", "eng"])       # native: tesseract -l deu+eng
TesseractCliOcrOptions(lang=["iso:de", "iso:en"]) # 移植: 同義

機関別の空言語表の意味。影符号 (裸 = 模型、iso: = 言語):

機関lang=[] (--ocr-lang "")
Tesseract (双方)頁毎の向き・文字検出 (osd文書要)
EasyOCR英語 (en)
RapidOCR簡体中国語既定 (ch)
Nemotron英語模型
OcrMacVision自動
KServeen送信
符号裸到達iso:意味
chPP-OCR簡体中国語ch-Latn = チャモロ語
kaPP-OCRカンナダ語ka-Geor = グルジア語 (PP-OCR不可。誤り)
angEasyOCRアンギカ語古英語
frkTesseract独 broken 体フランク語
tabEasyOCRタバサラン語 (キリル)タバサラン語 (ラテン)
mahEasyOCRマガヒー語マーシャル語
12
Step 12

12. OCRのGPU高速化

  • CUDA上RapidOCR: GPU版ONNX Runtime導入 (pip install "docling[onnxruntime]")。CUDAExecutionProviderort.get_available_providers()にあること。onnxruntime backend + CUDA器利用。torch backendは代替 (注意: PP-OCRv5 + torchは中国語のみ)。
  • Nemotronは設計上GPU専用 (CUDA 13.x・Linux x86_64)。
  • EasyOCR / Tesseract / OcrMacは実質CPU bound。高速CPUに置きGPU予算は配置・表段階へ。調整 (batch・VLM役務) は公式GPU指南へ。
import onnxruntime as ort
assert "CUDAExecutionProvider" in ort.get_available_providers()

from docling.datamodel.accelerator_options import AcceleratorDevice, AcceleratorOptions
from docling.datamodel.pipeline_options import PdfPipelineOptions, RapidOcrOptions
pipeline_options = PdfPipelineOptions(
    accelerator_options=AcceleratorOptions(device=AcceleratorDevice.CUDA),
    ocr_options=RapidOcrOptions(backend="onnxruntime", lang=["eslav"]),
)
13
Step 13

13. 複写調理法 (CLI + Python)

スキャンPDF全文OCR。機関明示。デジタルPDFのOCR省略 (最速)。独英 portable 札:

作例詳解: 全文OCR強制Tesseract言語検出RapidOCR独自模型地元例集構成生成器

docling convert scan.pdf --ocr-mode full_page
docling convert scan.pdf --ocr-engine rapidocr
docling convert report.pdf --no-ocr --to md
docling convert scan.pdf --ocr-engine rapidocr --ocr-lang iso:de,iso:en
from docling.datamodel.base_models import InputFormat
from docling.datamodel.pipeline_options import (
    OcrMode, PdfPipelineOptions, RapidOcrOptions,
)
from docling.document_converter import DocumentConverter, PdfFormatOption

pipeline_options = PdfPipelineOptions()
pipeline_options.do_ocr = True
pipeline_options.ocr_options = RapidOcrOptions(mode=OcrMode.FULL_PAGE)
# 必要に応じEasyOcrOptions / TesseractOcrOptions / TesseractCliOcrOptions
# / OcrMacOptions (macOS) / NemotronOcrOptions (Linux CUDA)に入替え。

converter = DocumentConverter(
    format_options={InputFormat.PDF: PdfFormatOption(pipeline_options=pipeline_options)}
)
doc = converter.convert("scan.pdf").document
print(doc.export_to_markdown())
14
Step 14

14. OCR対処

  • スキャン文未認識 — OCR停止か既定様式が欠落層を見逃し。--ocr-mode full_page強制、他機関試験。スキャンPDFのOCR参照。
  • OCRエクストラ導入不可 — RapidOCR/EasyOCRはpipのみ。Tesseractは本体 + TESSDATA_PREFIX先行。OCR包導入誤り参照。
  • 変換低速 — OCRと富化模型が最高価CPU段階。デジタルPDFは--no-ocr--table-mode fastかGPU。変換低速参照。
  • GPU無視torch.cuda.is_available() / CUDAExecutionProvider確認、--device cuda利用 (Apple Siliconはmps)。GPU未使用参照。
  • 誤言語出力 — 影確認 (kaiso:ka-Geor)、EasyOCR表短縮、supported_ocr_languages()検証。
15
Step 15

15. OCR FAQ

初心者に最適機関?
RapidOCR。pip一包、本体不要、CPU親和、多言語、後日GPU可。pip install "docling[rapidocr]"--ocr-engine rapidocrで開始。
OCR自体要否?
スキャン・画像PDFのみ。デジタルPDFは本文保持。--no-ocrが高速・高精度なことも。スキャン無出力は--ocr-mode full_pageの合図。
native符号とiso:札どちら?
機関既知ならnative (chdeu) が最短。機関切替耐性とiso:sr-Latn等文字指定には portable (iso:deiso:zh-Hant) 必須。裸ka (カンナダ模型) とiso:ka-Geor (グルジア語) の影混同に注意。
EasyOCRは言語追加でなぜ劣化?
仕様。EasyOCRは要求全言語を覆う単一 checkpoint 選択。["en","de"]は英語専用から汎用ラテンに後退。文書含有のみ要求。
RapidOCR複数言語同時可?
否。1実行1言語 (先頭勝ち)。文字系札 (latincyrillicarabicdevanagarieslav) か言語別実行で。
Tesseractが自言語を見出さない?
traineddata導入 (tesseract-ocr-<言語>)、tesseract --list-langs確認、末尾/付きTESSDATA_PREFIX出力。構築子報文が導入済みを列挙。
GPU利用機関は?
RapidOCR (CUDA付きonnxruntime/torch backend) とNemotron (CUDAのみ)。EasyOCR・Tesseract・OcrMacは実質CPU。
独自OCR模型の利用法?
RapidOCRとSuryaOCRは独自 checkpoint 対応。RapidOCR独自例SuryaOCR例参照。第三者機関は--allow-external-plugins経由。

Docling v2.129.0で検証 · 最終確認 2026-09-22 · 公式ソース