Dolphin PDF转Markdown:一条命令完整跑通
【免费下载链接】DolphinThe official repo for “Dolphin: Document Image Parsing via Heterogeneous Anchor Prompting”, ACL, 2025.项目地址: https://gitcode.com/GitHub_Trending/dolphin33/Dolphin
Dolphin 是一个文档图片解析模型:把 PDF 或文档照片丢给它,按阅读顺序吐出 Markdown 和 JSON。表格出来就是 HTML 表格,公式是可直接编译的 LaTeX。本文用仓库自带示例页,带你把第一次转换完整跑通。
它解决什么问题
你实际会碰到的三种情况:
- 论文里的表格想复用:把表格图给 Dolphin,输出的 HTML 表格列数与原文一致。
- 拍照的会议纪要要电子化:有透视畸变的拍照页会被整页解析,文字按阅读顺序出来。
- 学术报告里的公式要转 LaTeX:公式以 $...$ 输出,编译即可用。
| Dolphin 能力 | 典型场景 |
|---|---|
| 页面级解析,demo_page.py | 整份 PDF 转 Markdown |
| 元素级解析,demo_element.py | 单独解析一张表格、公式或代码 |
| 版面分析,demo_layout.py | 只要元素框和阅读顺序 |
原理是两阶段:先在页面上定位每个元素和阅读顺序,再按类型批量解析内容。
环境准备:安装命令
📦 三步就能就绪:
- 克隆仓库并装依赖:
git clone https://gitcode.com/GitHub_Trending/dolphin33/Dolphin cd Dolphin && pip install -r requirements.txt- 拉取 Dolphin-v2 模型权重:
huggingface-cli download ByteDance/Dolphin-v2 --local-dir ./hf_model模型放在 ./hf_model,也就是脚本默认读取的路径。
最小可运行示例:第一条解析命令
仓库的 demo/page_imgs/ 里有现成示例页,挑一页就能跑:
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:每个元素一条 JSON,带框坐标
- layout_visualization/page_1_layout.png:版面框叠加图
多页 PDF 会自动逐页处理,最后合成一份 .md 和一份 .json,页与页之间用分割线隔开。
参数速查表:按问题找参数
🔧 不用背参数,按你的情况查:
| 你的情况 | 怎么配 |
|---|---|
| 手里只有一张元素图(表格/公式/代码) | 换 demo_element.py,加 --element_type |
| 文档大、解析慢 | 加 --max_batch_size 8,提高并行批大小 |
| 输出的 Markdown 想再规整 | 加 --post_process |
| 只要版面和阅读顺序 | 换 demo_layout.py,不输出文本内容 |
元素级解析,比如一张代码图:
python demo_element.py --model_path ./hf_model --input_path ./demo/element_imgs/code.jpeg --element_type code转换结果里各元素长什么样
不同元素在 Markdown 里对应不同形态:
| 元素 | Markdown 形态 |
|---|---|
| 正文/标题 | 普通文本,章节变成 #/## |
| 表格 | HTML 表格标签,列数与原文一致 |
| 公式 | $...$ LaTeX,可直接编译 |
| 代码 | 围栏代码块 |
| 插图 | Figure,自动裁图并保存 |
转换规则都写在 utils/markdown_utils.py。你打开 md 对照原页,元素逐个看:
常见坑速查表
| 现象 | 原因 | 处理 |
|---|---|---|
| 启动报找不到模型 | 权重没下载 | 跑 huggingface-cli download 落到 ./hf_model |
| 拍照文档元素框互相重叠 | 拍摄透视畸变 | 会自动退回整页解析,仍差就摆正重拍 |
| 公式有奇怪的 LaTeX 符号 | 模型原始输出需修正 | 加 --post_process,自动修常见问题 |
| 看不准阅读顺序对不对 | 版面结果没可视化 | 打开 layout_visualization/ 下的 *_layout.png 核对 |
写在最后
Dolphin PDF转Markdown 一步到位:人读的 Markdown、程序读的 JSON,表格公式代码各归各位。批量处理时把 --input_path 指到文件夹即可整目录跑。想深入就看 官方中文说明,有翻车案例也欢迎丢到仓库 issue 里共同修。
【免费下载链接】DolphinThe official repo for “Dolphin: Document Image Parsing via Heterogeneous Anchor Prompting”, ACL, 2025.项目地址: https://gitcode.com/GitHub_Trending/dolphin33/Dolphin
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考