Dolphin 文档解析:PDF 转 Markdown 的两阶段开源方案
2026/9/19 22:09:07 网站建设 项目流程

Dolphin 文档解析:PDF 转 Markdown 的两阶段开源方案

【免费下载链接】DolphinThe official repo for “Dolphin: Document Image Parsing via Heterogeneous Anchor Prompting”, ACL, 2025.项目地址: https://gitcode.com/GitHub_Trending/dolphin33/Dolphin

拿到一份双栏排版的学术论文,想把它变成可编辑、能直接喂给 LLM 的 Markdown,最头疼的从来不是文字识别,而是版式、表格和公式怎么还原。Dolphin 是字节跳动开源的文档图像解析模型(ACL 2025),核心任务就是 PDF 转 Markdown:先把页面切出版式与阅读顺序,再对文本、表格、公式、代码分而治之。

⚡ 3 分钟跑通第一次转换

git clone https://gitcode.com/GitHub_Trending/dolphin33/Dolphin cd Dolphin pip install -r requirements.txt

模型权重放在 Hugging Face,用 CLI 拉到本地:

pip install huggingface_hub huggingface-cli download ByteDance/Dolphin-v2 --local-dir ./hf_model

对仓库自带的示例页面跑一条解析命令,--input_path指向图片、PDF 或整个目录:

python demo_page.py --model_path ./hf_model --save_dir ./results \ --input_path ./demo/page_imgs/page_1.png

跑完在./results下看三样东西:markdown/page_1.md是转换好的 Markdown,output_json/page_1.json带每个元素的 bbox 与阅读顺序,layout_visualization/是版式框可视化。

能力拆解:按内容类型各管一段

版式分析与阅读顺序

解析分两阶段。第一阶段只做版式:定位标题、段落、表格、公式等元素框并给出阅读顺序;第二阶段再按顺序逐元素解析内容。双栏论文按"读完左栏再右栏"的顺序输出,而不是按物理位置乱排。标题元素会按 sec_0 到 sec_5 映射成####的 Markdown 层级。想只看版式不解析内容,跑python demo_layout.py --model_path ./hf_model --input_path <图片>即可。

表格结构化提取

表格元素输出为 HTML<table>标签,保留行列结构,默认路径会自动从模型输出里抽出干净的 table 标签。手上有裁剪好的单张表格图时,直接走元素级接口:--element_type table

公式转 LaTeX

公式被识别为独立块,转成$$...$$包裹的 LaTeX,上下标、分式、范数符号这类结构都会保留。单个公式截图可以单独丢给元素级接口:--element_type formula

代码块识别

代码区域会被标成 code 标签,输出时包进围栏代码块,注释与缩进都保留:--element_type code可单独处理代码截图。

元素到 Markdown 的拼装逻辑集中在 MarkdownConverter,想弄清某类元素的输出格式,读它最快。

进阶调优:遇到 X 就加 Y

  • 元素多、想加快解码:--max_batch_size 8,默认 4,控制同一次并行解码的元素数。
  • 公式或表格输出有小瑕疵(重复尾巴、多余 quad):加--post_process开启后处理。
  • 只想核对版式框:换用demo_layout.py,只输出 bbox、标签和阅读顺序。
  • 只有裁剪好的元素图:用demo_element.py --element_type <text|table|formula|code>,配--print_results直接看控制台输出。
  • 批量处理:--input_path指向目录即可,多页 PDF 会自动拆页并合成一份带分页线的 md。

效果验证

下面是一段双栏论文页的实际演示,完整走一遍 PDF 转 Markdown:左侧是原始页面,右侧按阅读顺序并行解析出的内容。

版式先定顺序、内容再并行解码,这是它对双栏长文档比较稳的原因;输出顺序和原文阅读习惯一致,不用人工重排。

排障清单

  • PDF 报 "Failed to convert PDF" → 多为加密或损坏文件,重新导出后再试。
  • 表格或公式格式异常 → 加--post_process切换后处理路径。
  • 长输出结尾出现重复内容 →--post_process会截断重复尾巴。
  • 怀疑版式框错位 → 打开layout_visualization/里的可视化图核对 bbox。
  • CPU 上推理太慢 → 无 CUDA 时模型以 float 运行,建议放 GPU 用 bfloat16。

Dolphin 把版式分析和内容解析拆成两阶段,让 PDF 转 Markdown 不再靠单一 OCR 硬扛所有元素。克隆仓库,把权重拉到./hf_model,跑起你的第一份转换。

【免费下载链接】DolphinThe official repo for “Dolphin: Document Image Parsing via Heterogeneous Anchor Prompting”, ACL, 2025.项目地址: https://gitcode.com/GitHub_Trending/dolphin33/Dolphin

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询