字节开源高效解析文档图像的新型多模态模型Dolphin,快速将复杂的文档图像转化为结构化数据。
先看效果
项目简介
Dolphin(Document Image Parsing via Heterogeneous Anchor Prompting)是一种创新的多模态文档图像解析模型,采用”先分析后解析”的范式。本仓库包含Dolphin的演示代码和预训练模型。
🌟 核心特性
- • 🔄 基于单一视觉语言模型的两阶段”先分析后解析”方法
- • 📊 在文档解析任务中展现卓越性能
- • 🔍 自然阅读顺序的元素序列生成
- • 🧩 针对不同文档元素的异构锚点提示
- • ⏱️ 高效的并行解析机制
- • 🤗 支持Hugging Face Transformers以便集成
📑 概述
文档图像解析面临文本段落、图表、公式和表格等元素复杂交织的挑战。Dolphin通过两阶段方法解决这些问题:
- 1. 🔍 第一阶段:通过生成自然阅读顺序的元素序列,进行全面的页面级布局分析
- 2. 🧩 第二阶段:使用异构锚点和任务特定提示高效并行解析文档元素
Dolphin通过轻量级架构和并行解析机制,在多样化页面级和元素级解析任务中展现出卓越性能。

🛠️ 安装指南
- 1. 克隆仓库:
git clone https://github.com/ByteDance/Dolphin.git cd Dolphin - 2. 安装依赖:
pip install -r requirements.txt - 3. 下载预训练模型:
选项A:原始模型格式(基于配置)
从百度网盘或Google云端硬盘下载,放入./checkpoints文件夹
选项B:Hugging Face格式
访问我们的Huggingface模型页,或通过命令下载:
`# 从Hugging Face Hub克隆
git lfs install
git clone https://huggingface.co/ByteDance/Dolphin ./hf_model或使用Hugging Face CLI
huggingface-cli download ByteDance/Dolphin --local-dir ./hf_model`
⚡ 推理使用
Dolphin提供两种推理框架,支持两种解析粒度:
- • 页面级解析:将整个文档图像解析为结构化JSON和Markdown格式
- • 元素级解析:解析单个文档元素(文本、表格、公式)
📄 页面级解析
使用原始框架(基于配置)
`# 处理单张文档图像
python demo_page.py --config ./config/Dolphin.yaml --input_path ./demo/page_imgs/page_1.jpeg --save_dir ./results
处理目录下所有文档图像
python demo_page.py --config ./config/Dolphin.yaml --input_path ./demo/page_imgs --save_dir ./results
自定义批处理大小进行并行元素解码
python demo_page.py --config ./config/Dolphin.yaml --input_path ./demo/page_imgs --save_dir ./results --max_batch_size 8`
使用Hugging Face框架
`# 处理单张文档图像
python demo_page_hf.py --model_path ./hf_model --input_path ./demo/page_imgs/page_1.jpeg --save_dir ./results
处理目录下所有文档图像
python demo_page_hf.py --model_path ./hf_model --input_path ./demo/page_imgs --save_dir ./results
自定义批处理大小进行并行元素解码
python demo_page_hf.py --model_path ./hf_model --input_path ./demo/page_imgs --save_dir ./results --max_batch_size 16`
🧩 元素级解析
使用原始框架(基于配置)
`# 处理单张表格图像
python demo_element.py --config ./config/Dolphin.yaml --input_path ./demo/element_imgs/table_1.jpeg --element_type table
处理单张公式图像
python demo_element.py --config ./config/Dolphin.yaml --input_path ./demo/element_imgs/line_formula.jpeg --element_type formula
处理单张文本段落图像
python demo_element.py --config ./config/Dolphin.yaml --input_path ./demo/element_imgs/para_1.jpg --element_type text`
使用Hugging Face框架
`# 处理单张表格图像
python demo_element_hf.py --model_path ./hf_model --input_path ./demo/element_imgs/table_1.jpeg --element_type table
处理单张公式图像
python demo_element_hf.py --model_path ./hf_model --input_path ./demo/element_imgs/line_formula.jpeg --element_type formula
处理单张文本段落图像
python demo_element_hf.py --model_path ./hf_model --input_path ./demo/element_imgs/para_1.jpg --element_type text`
💖 致谢
我们感谢以下开源项目的启发和参考:
- • Donut
- • Nougat
- • GOT
- • MinerU
- • Swin
- • Hugging Face Transformers
项目地址
https://github.com/bytedance/Dolphin/blob/master/README.md
扫码加入技术交流群,备注「开发语言-城市-昵称」
(文:GitHubStore)
