目錄
- 一、doclayout_yolo 核心功能
- 二、安裝方法
- 1. 直接安裝
- 2. 通過 PDF-Extract-Kit 安裝
- 三、使用示例
- 1. 快速體驗(HuggingFace Demo)
- 2. 本地推理代碼
- 3. 批量處理
- 四、技術亮點
- 五、應用場景
- 六、其他說明
- 1.相關資源
- 2. 注意事項
doclayout_yolo 是一個基于 YOLOv10 架構的文檔布局檢測工具包,旨在快速、高效地識別文檔中的不同元素(如文本、圖像、表格、標題等)。它結合了 DocSynth-300K 數據集的預訓練模型和全局到局部的感知機制,適用于論文、教科書、試卷、幻燈片等多種文檔類型的布局分析。
一、doclayout_yolo 核心功能
-
文檔布局檢測
- 支持檢測文檔中的多種元素(如文本塊、表格、圖像、標題、列表等)。
- 提供高精度的邊界框標注和分類結果。
- 支持實時推理,適合大規模文檔處理場景。
-
多文檔類型支持
- 適用于論文、教科書、試卷、幻燈片、財務報表等復雜布局的文檔。
- 通過合成數據(DocSynth-300K)預訓練,具備較強的泛化能力。
-
高效推理
- 基于 YOLOv10 架構優化,推理速度極快(FPS 高)。
- 支持 GPU 加速(CUDA)和 CPU 推理。
-
靈活集成
- 可作為獨立工具使用,也可集成到 PDF 解析流程中(如
PDF-Extract-Kit
)。 - 提供 HuggingFace 模型加載接口,便于擴展和部署。
- 可作為獨立工具使用,也可集成到 PDF 解析流程中(如
二、安裝方法
1. 直接安裝
僅用于頁面布局檢測:
pip install doclayout-yolo==0.0.2
2. 通過 PDF-Extract-Kit 安裝
支持完整的文檔解析(布局檢測 + 內容提取):
- 克隆倉庫:
git clone https://github.com/opendatalab/PDF-Extract-Kit.git cd PDF-Extract-Kit
- 安裝依賴:
pip install -r requirements.txt
- 運行布局檢測腳本:
python scripts/layout_detection.py --config configs/layout_detection.yaml
三、使用示例
1. 快速體驗(HuggingFace Demo)
- 訪問 HuggingFace Demo:DocLayout-YOLO Demo
- 上傳文檔圖像,實時查看布局檢測結果。
2. 本地推理代碼
import cv2
from doclayout_yolo import YOLOv10
from huggingface_hub import hf_hub_download# 下載并加載預訓練模型
filepath = hf_hub_download(repo_id="juliozhao/DocLayout-YOLO-DocStructBench",filename="doclayout_yolo_docstructbench_imgsz1024.pt"
)
model = YOLOv10(filepath)# 模型推理
det_res = model.predict("path/to/image", # 輸入圖像路徑imgsz=1024, # 輸入圖像尺寸conf=0.2, # 置信度閾值device="cuda:0" # 使用 GPU(如無 GPU 改為 "cpu")
)# 保存檢測結果
annotated_frame = det_res[0].plot(pil=True, line_width=5, font_size=20)
cv2.imwrite("result.jpg", annotated_frame)
3. 批量處理
通過 PDF-Extract-Kit
實現批量處理:
python scripts/layout_detection.py --config configs/layout_detection.yaml
四、技術亮點
-
可控感知模塊(CRM)
- 通過多分支卷積核和特征選擇機制,提取不同粒度的上下文特征。
- 參數共享設計降低計算開銷,提升推理效率。
-
全局到局部結構(GL)
- 分層感知機制:
- 淺層:大卷積核保留大尺寸元素的紋理特征。
- 中間層:中等卷積核感知中等尺寸物體。
- 深層:輕量瓶頸層提取語義信息。
- 分層感知機制:
-
高性能表現
- 在 DocStructBench 評測集中,綜合性能(mAP 和 FPS)優于現有方法。
- 平均精度均值(mAP)和每秒幀數(FPS)均達到 SOTA 水平。
五、應用場景
-
文檔數字化
- 快速識別文檔中的文本、表格、圖像等元素,為 OCR 提供布局信息。
-
信息提取
- 結合布局檢測結果,精準提取表格、列表、關鍵段落等結構化信息。
-
內容理解
- 分析文檔布局結構,輔助語義理解(如學術論文的章節劃分)。
-
自動化標注
- 作為標注工具的預處理模塊(如 X-AnyLabeling 已集成該模型)。
六、其他說明
1.相關資源
- GitHub 主頁:DocLayout-YOLO
- 論文:arXiv:2410.12628
- HuggingFace Demo:體驗鏈接
- PDF-Extract-Kit:文檔解析工具
- MinerU:PDF 轉 Markdown 工具
2. 注意事項
- 依賴庫:
ultralytics
、YOLOv10
、huggingface_hub
。 - 社區貢獻:支持批量推理、自定義數據集訓練等功能。
- 開源協議:MIT License,可自由用于商業和研究場景。
-
硬件要求
- 推薦使用 GPU(NVIDIA CUDA 支持)以獲得最佳性能。
- 若無 GPU,可改用 CPU 推理,但速度會顯著下降。
-
模型兼容性
- 當前版本主要支持圖像輸入(如 PDF 轉圖像后的單頁)。
- 如需處理 PDF 文件,需結合
PDF-Extract-Kit
或其他 PDF 解析工具。
-
自定義訓練
- 可參考官方文檔擴展模型,支持自定義數據集訓練。
doclayout_yolo
是一款高效、精準的文檔布局檢測工具,結合了 YOLOv10 的速度優勢和 DocSynth-300K 數據集的泛化能力。無論是科研人員還是工業開發者,都可以通過該工具快速實現文檔處理任務,顯著提升文檔數字化、信息提取等場景的效率。