🚀 PP-DocLayout_plus-L
PP-DocLayout_plus-L は高精度のレイアウト領域検出モデルです。このモデルは RT-DETR-L をベースに、独自のデータセットで学習されています。このデータセットには、中国語と英語の論文、PPT、多レイアウトの雑誌、契約書、書籍、試験用紙、古典書籍、研究報告書などが含まれています。このレイアウト検出モデルは 20 種類の一般的なカテゴリをカバーしており、文書のタイトル、段落タイトル、テキスト、ページ番号、要約、表、参考文献、脚注、ヘッダー、フッター、アルゴリズム、数式、数式番号、画像、表、印章、グラフタイトル、グラフ、サイドバーテキスト、参考文献リストなどがあります。
主要指標
モデル |
mAP(0.5) (%) |
PP-DocLayout_plus-L |
83.2 |
注意:上記の精度指標は、独自のバージョンのサブ領域検出データセットで評価されています。このデータセットには、中国語と英語の論文、雑誌、新聞、研究報告書、PPT、試験用紙、教科書などの 1000 枚の文書タイプの画像が含まれています。
🚀 クイックスタート
📦 インストール
1. PaddlePaddle のインストール
以下のコマンドを参考に、pip を使用して PaddlePaddle をインストールしてください。
python -m pip install paddlepaddle-gpu==3.0.0 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/
python -m pip install paddlepaddle-gpu==3.0.0 -i https://www.paddlepaddle.org.cn/packages/stable/cu126/
python -m pip install paddlepaddle==3.0.0 -i https://www.paddlepaddle.org.cn/packages/stable/cpu/
PaddlePaddle のインストールの詳細については、PaddlePaddle 公式サイトを参照してください。
2. PaddleOCR のインストール
PyPI から最新バージョンの PaddleOCR 推論パッケージをインストールします。
python -m pip install paddleocr
💻 使用例
基本的な使用法
1 つのコマンドで機能をすぐに試すことができます。
paddleocr layout_detection \
--model_name PP-DocLayout_plus-L \
-i https://cdn-uploads.huggingface.co/production/uploads/63d7b8ee07cd1aa3c49a2026/N5C68HPVAI-xQAWTxpbA6.jpeg
また、レイアウト検出モジュールのモデル推論をあなたのプロジェクトに組み込むこともできます。以下のコードを実行する前に、サンプル画像をローカルマシンにダウンロードしてください。
from paddleocr import LayoutDetection
model = LayoutDetection(model_name="PP-DocLayout_plus-L")
output = model.predict("N5C68HPVAI-xQAWTxpbA6.jpeg", batch_size=1, layout_nms=True)
for res in output:
res.print()
res.save_to_img(save_path="./output/")
res.save_to_json(save_path="./output/res.json")
実行後の結果は次のとおりです。
{'res': {'input_path': '/root/.paddlex/predict_input/N5C68HPVAI-xQAWTxpbA6.jpeg', 'page_index': None, 'boxes': [{'cls_id': 2, 'label': 'text', 'score': 0.9870168566703796, 'coordinate': [34.101395, 349.85275, 358.5929, 611.0788]}, {'cls_id': 2, 'label': 'text', 'score': 0.986599326133728, 'coordinate': [34.500305, 647.15753, 358.29437, 848.66925]}, {'cls_id': 2, 'label': 'text', 'score': 0.984662652015686, 'coordinate': [385.71417, 497.41037, 711.22656, 697.8426]}, {'cls_id': 8, 'label': 'table', 'score': 0.9841272234916687, 'coordinate': [73.76732, 105.94854, 321.95355, 298.85074]}, {'cls_id': 8, 'label': 'table', 'score': 0.983431875705719, 'coordinate': [436.95523, 105.81446, 662.71814, 313.4865]}, {'cls_id': 2, 'label': 'text', 'score': 0.9832285642623901, 'coordinate': [385.62766, 346.22888, 710.10205, 458.772]}, {'cls_id': 2, 'label': 'text', 'score': 0.9816107749938965, 'coordinate': [385.78085, 735.19293, 710.5613, 849.97656]}, {'cls_id': 6, 'label': 'figure_title', 'score': 0.9577467441558838, 'coordinate': [34.421764, 20.055021, 358.7124, 76.53721]}, {'cls_id': 6, 'label': 'figure_title', 'score': 0.9505674839019775, 'coordinate': [385.7235, 20.054104, 711.2928, 74.92819]}, {'cls_id': 0, 'label': 'paragraph_title', 'score': 0.9001894593238831, 'coordinate': [386.46353, 477.035, 699.4023, 490.07495]}, {'cls_id': 0, 'label': 'paragraph_title', 'score': 0.8846081495285034, 'coordinate': [35.413055, 627.7365, 185.58315, 640.522]}, {'cls_id': 0, 'label': 'paragraph_title', 'score': 0.8837621808052063, 'coordinate': [387.1759, 716.34235, 524.78345, 729.2588]}, {'cls_id': 0, 'label': 'paragraph_title', 'score': 0.8509567975997925, 'coordinate': [35.50049, 331.18472, 141.64497, 344.81168]}]}}
可視化画像は次のとおりです。

コマンドとパラメータの詳細については、ドキュメントを参照してください。
高度な使用法
単一のモデルの能力には限界がありますが、複数のモデルで構成されるパイプラインは、現実のシナリオでの難題を解決するための強力な能力を提供します。
PP-StructureV3
レイアウト分析は、文書画像から構造化情報を抽出する技術です。PP-StructureV3 は以下の 6 つのモジュールで構成されています。
- レイアウト検出モジュール
- 汎用 OCR サブパイプライン
- 文書画像前処理サブパイプライン(オプション)
- 表認識サブパイプライン(オプション)
- 印章認識サブパイプライン(オプション)
- 数式認識サブパイプライン(オプション)
1 つのコマンドで PP-StructureV3 パイプラインをすぐに試すことができます。
paddleocr pp_structurev3 -i https://cdn-uploads.huggingface.co/production/uploads/63d7b8ee07cd1aa3c49a2026/KP10tiSZfAjMuwZUSLtRp.png
数行のコードでパイプラインの推論を試すことができます。PP-StructureV3 パイプラインを例に説明します。
from paddleocr import PPStructureV3
pipeline = PPStructureV3()
output = pipeline.predict("./KP10tiSZfAjMuwZUSLtRp.png")
for res in output:
res.print()
res.save_to_json(save_path="output")
res.save_to_markdown(save_path="output")
パイプラインで使用されるデフォルトのモデルは PP-DocLayout_plus-L
です。コマンドとパラメータの詳細については、ドキュメントを参照してください。
📚 ドキュメント
📄 ライセンス
このプロジェクトは Apache-2.0 ライセンスを採用しています。