字节开源高效解析文档图像的新型多模态模型Dolphin,快速将复杂的文档图像转化为结构化数据。


 


先看效果


项目简介

Dolphin(Document Image Parsing via Heterogeneous Anchor Prompting)是一种创新的多模态文档图像解析模型,采用”先分析后解析”的范式。本仓库包含Dolphin的演示代码和预训练模型。

🌟 核心特性

  • • 🔄 基于单一视觉语言模型的两阶段”先分析后解析”方法
  • • 📊 在文档解析任务中展现卓越性能
  • • 🔍 自然阅读顺序的元素序列生成
  • • 🧩 针对不同文档元素的异构锚点提示
  • • ⏱️ 高效的并行解析机制
  • • 🤗 支持Hugging Face Transformers以便集成


📑 概述

文档图像解析面临文本段落、图表、公式和表格等元素复杂交织的挑战。Dolphin通过两阶段方法解决这些问题:

  1. 1. 🔍 第一阶段:通过生成自然阅读顺序的元素序列,进行全面的页面级布局分析
  2. 2. 🧩 第二阶段:使用异构锚点和任务特定提示高效并行解析文档元素

Dolphin通过轻量级架构和并行解析机制,在多样化页面级和元素级解析任务中展现出卓越性能。

🛠️ 安装指南

  1. 1. 克隆仓库:

    git clone https://github.com/ByteDance/Dolphin.git
    cd Dolphin
  2. 2. 安装依赖:

    pip install -r requirements.txt
  3. 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)

发表评论

×

下载每时AI手机APP

 

和大家一起交流AI最新资讯!

立即前往