先看效果
项目简介
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)