パッケージ(OSS / ライブラリ)
| パッケージ | 概要 | ライセンス | URL |
|---|---|---|---|
| DocLayout-YOLO | Title, Table, Figureなど文書系ラベルの検出ができるパッケージ。Ultralytics社のPyTorchベースのYOLOv10が使われておりAGPL-3.0のため、商用利用時にはソースコード公開義務の感染に注意が必要。 | AGPL-3.0 | https://github.com/opendatalab/DocLayout-YOLO |
| surya | 行単位のテキスト検出、文字認識、および読み順(Reading Order)の推定において高い精度を誇る。GPU/CPUでの動作が可能。商用利用不可ではないがGPL-3.0のため、組み込み先のライセンス感染に強い注意が必要。 | GPL-3.0 | https://github.com/datalab-to/surya |
| PaddleOCR | PaddleOCR-VL: 多言語混在VLM, PP-OCRv5: 文字認識, PP-StructureV3: レイアウト解析など、OCRに必要な機能が網羅されたツールキット。Baidu製で日本語対応の精度も高いが、バックエンドがPaddlePaddleである点と、中国製ソフトウェアの利用制限がある企業では注意。 | Apache-2.0 | https://github.com/PaddlePaddle/PaddleOCR |
| dots.ocr | 日本語OCRに特化した軽量ライブラリ。PDFから画像への変換や前処理をラップしており、手軽にOCRを試すのに適しているが、バックエンドの依存関係や更新頻度は要確認。 | MIT | https://github.com/rednote-hilab/dots.ocr |
| Florence-2 | Microsoftが公開した軽量なVLM。OCR、キャプション生成、物体検出(Grounding)を単一モデルでこなす。「<OCR>」などのプロンプトでタスクを切り替え可能。商用利用しやすいライセンスと高い汎用性で注目されている。 |
MIT | https://huggingface.co/microsoft/Florence-2-large |
| EasyOCR | PyTorchベースで、80以上の言語に対応した軽量OCR。Clova AIのDeep Text Recognitionをベースにしており、導入が非常に容易。精度はSOTA(最先端)には劣る場合があるが、手軽なベースラインとして優秀。 | Apache-2.0 | https://github.com/JaidedAI/EasyOCR |
| Tesseract 5 | Googleがメンテナンスする老舗OCRエンジン。LSTMベース。深層学習系モデルに比べるとレイアウト解析や手書き精度は劣るが、CPUのみで軽量に動作し、インストールの容易さから現在でもベースラインとしてよく使われる。 | Apache-2.0 | https://github.com/tesseract-ocr/tesseract |
| Table Transformer | Microsoftが開発した**表構造認識(TSR)**特化モデル。DETR(Detection Transformer)ベースで、画像内の表の行・列・セルを高精度に検出する。PubTables-1Mで学習されており、表解析のベースラインとして広く利用される。 | MIT | https://github.com/microsoft/table-transformer |
| img2table | 直線検出ベースの手法で、画像内の表の行・列・セルを高精度に検出する。罫線のない表にも適用可能。 | MIT | https://github.com/xavctn/img2table |
クラウドサービス
クラウドAPIは「特化型」か「汎用型」かで使い分けるのが一般的。
| クラウドサービス | 概要 | 料金体系 | URL |
|---|---|---|---|
| Google: Vertex AI Gemini | Gemini 1.5 Pro/Flashなどが利用可能。マルチモーダル入力により、画像内のテキスト抽出だけでなく「要約」「構造化データへの変換」まで一気通貫で行えるのが強み。 | トークン課金 / 画像枚数課金 | https://cloud.google.com/vertex-ai |
| Google: Cloud Vision API | 汎用的な画像認識API。TEXT_DETECTION (OCR) と DOCUMENT_TEXT_DETECTION (高密度文書向け) がある。座標とテキスト検出の安定感は高いが、表構造の認識などは含まれない。 |
従量課金 (1000ユニットあたりなど) | https://cloud.google.com/vision/docs |
| Google: Document AI | 請求書、本人確認書類、マイナンバーカードなど「特定の文書タイプ」に特化したプロセッサを提供。OCRだけでなくKey-Valueペアの抽出(構造化)まで行う。Human-in-the-loop(人間による修正)機能も統合可能。 | ページ数課金 (プロセッサにより単価異なる) | https://cloud.google.com/document-ai |
| Azure: OpenAI | GPT-4oなどのマルチモーダルモデルが利用可能。推論能力が高く、複雑なレイアウトの文書から特定の情報を抽出するタスクに強い。 | トークン課金 | https://azure.microsoft.com/ja-jp/products/ai-foundry/models/openai |
| Azure: Document Intelligence | (旧 Form Recognizer)。「Layout」モデルによる段落・表・チェックボックスの構造認識が非常に強力。「Read」モデルによる純粋なOCRも高精度。日本語の手書き文字にも強い定評がある。 | ページ数課金 (1000ページあたりなど) | https://azure.microsoft.com/ja-jp/products/ai-foundry/tools/document-intelligence |
| Mistral OCR | Mistral AIが提供するドキュメント解析API。OCRだけでなく、PDFをMarkdown形式に直接変換し、図表や数式の構造まで理解する能力が非常に高い。GPT-4o等の他社モデルと比較しても文書理解性能(DocVQA等)でSOTAクラスを記録している。 | ページ/画像数課金 | https://docs.mistral.ai/capabilities/document/ |
手法 (Methodology)
OCRおよび文書理解のアプローチは、大きく分けて以下の3世代に分類。
-
Modular Approach (パイプライン型):
-
Text Detection (検出): 画像内の文字領域(Bounding Box)を特定する。
- 代表例: DBNet, CRAFT
-
Text Recognition (認識): 切り抜いた画像の文字をテキストに変換する。
- 代表例: CRNN, SVTR, MATRN
- メリット: 各モジュールごとのデバッグや差し替えが容易。
-
Text Detection (検出): 画像内の文字領域(Bounding Box)を特定する。
-
Layout-aware Approach (レイアウト解析型):
- テキスト情報だけでなく、画像(Visual)と座標(Layout)情報をTransformerに入力し、文書全体の構造(意味的な塊)を理解する。
- 代表例: LayoutLMv3, DiT (Document Image Transformer)
-
End-to-End VLM / Donut Approach (生成型):
- 画像を直接入力し、JSONやMarkdownなどのテキストを直接生成する。OCRというよりは「画像キャプション」に近いアプローチ。文字の座標を出さない(またはトークンとして出す)のが特徴。
- 代表例: Donut, Nougat, GOT-OCR2.0, Pix2Struct
ローカル組み込み向けモデル
| モデル | 概要 | ライセンス | URL |
|---|---|---|---|
| Qwen3-VL | アリババクラウドが開発した文書理解が得意なVLM | Apache 2.0 | https://github.com/QwenLM/Qwen3-VL |
データセット
評価や学習によく用いられる代表的なデータセット。
| データセット | 概要 | ライセンス | URL |
|---|---|---|---|
| OmniDocBench | 多様なドキュメントタイプを含む包括的なベンチマーク。 | Apache-2.0 | https://github.com/opendatalab/OmniDocBench |
| PubLayNet | IBMが作成した100万以上の科学論文PDF画像とアノテーション(Text, Title, List, Table, Figure)。レイアウト解析のデファクトスタンダード。 | CDLA-Permissive | https://github.com/ibm-aur-nlp/publaynet |
| DocVQA | 文書画像とその内容に関する質問(QA)のセット。Document VQAタスクの評価に用いられる。 | CC BY 4.0 | https://www.docvqa.org/ |
| Cord | レシート画像のデータセット。文字の認識だけでなく、店名・合計金額などのエンティティ抽出(Information Extraction)のタスクによく使われる。 | MIT | https://github.com/clovaai/cord |
評価指標
OCRやレイアウト解析の精度を測るための指標です。
| 評価指標 | 概要 | URL |
|---|---|---|
| Normalized Edit Distance (NED) | レーベンシュタイン距離(編集距離)を文字列長で正規化したもの。OCRの文字認識誤り率(Character Error Rate)の逆数的な指標として使われる。1に近いほど正解に近い。 | - |
| BLEU | 機械翻訳の評価指標だが、OCRでは生成されたテキストと正解テキストのn-gram一致率を見るために使われる。特にVLMによる生成系アプローチで重視される。 | - |
| METEOR | BLEUと同様に翻訳評価に使われるが、同義語や語幹も考慮して一致判定を行うため、より人間の感覚に近い評価ができるとされる。 | - |
| TEDS | Tree Edit Distance based Similarity。表(Table)の構造認識評価に使われる。表をHTMLのような木構造とみなし、構造の正しさとセルの内容の正しさを統合して評価する。 | Github: TEDS |
| mAP | mean Average Precision。物体検出(レイアウト解析)における、検出ボックスの位置ズレ(IoU)とクラス分類の正解率を総合した指標。$AP_{50}$などがよく使われる。 | - |
| mAR | mean Average Recall。検出漏れがどれだけ少ないかを示す指標。OCRにおいては「読み取り漏れ」は致命的なため、mAPと併せて確認が必要。 | - |