安爸-超级家庭

字节开源高效解析文档图像的新型多模态模型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)

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


扫描二维码,在手机上阅读