专属域名
文档搜索
轩辕助手
Run助手
邀请有礼
返回顶部
快速返回页面顶部
收起
收起工具栏
轩辕镜像 官方专业版
轩辕镜像 官方专业版轩辕镜像 官方专业版官方专业版
首页个人中心搜索镜像

交易
充值流量我的订单
工具
提交工单镜像收录一键安装
Npm 源Pip 源Homebrew 源
帮助
常见问题
其他
关于我们网站地图

官方QQ群: 13763429

huridocs/pdf-document-layout-analysis Docker 镜像 - 轩辕镜像

pdf-document-layout-analysis
huridocs/pdf-document-layout-analysis
HURIDOCS的pdf-document-layout-analysis是一个基于Docker的智能PDF文档布局分析微服务,支持OCR识别、内容提取、元素分类(文本、标题、表格等)、阅读顺序确定及多格式转换(Markdown/HTML)。
6 收藏0 次下载activehuridocs镜像
🚀专业版镜像服务,面向生产环境设计
中文简介版本下载
🚀专业版镜像服务,面向生产环境设计

PDF文档布局分析

一个基于Docker的微服务,用于智能PDF文档布局分析、OCR识别和内容提取

!Python Version !FastAPI !Docker !GPU Support

由❤️ HURIDOCS 构建

⭐ GitHub 上给我们点赞 • 🐳 Docker Hub 拉取镜像 • 🤗 Hugging Face 查看


🚀 概述

本项目提供了一个强大且灵活的PDF分析微服务,基于整洁架构(Clean Architecture)原则构建。该服务支持PDF页面不同部分的OCR识别、分割和分类,可识别文本、标题、图片、表格、公式等元素,并确定这些元素的正确阅读顺序,还能将PDF转换为Markdown、HTML等多种格式。

✨ 核心功能
  • 🔍 高级PDF布局分析 - 高精度分割和分类PDF内容
  • 🖼️ 视觉与快速模型 - 可选择VGT(视觉网格Transformer)模型追求精度,或LightGBM模型追求速度
  • 📝 多格式输出 - 支持导出为JSON、Markdown、HTML,并可可视化PDF分割结果
  • 🌐 OCR支持 - 通过Tesseract OCR支持150+种语言
  • 📊 表格与公式提取 - 将表格提取为HTML,公式提取为LaTeX
  • 🏗️ 整洁架构 - 模块化、可测试且易维护的代码库
  • 🐳 Docker就绪 - 易于部署,支持GPU加速
  • ⚡ RESTful API - 全面的API,包含10+个端点

快速开始

运行服务:

  • 带GPU支持:
bash
docker run --rm --name pdf-document-layout-analysis --gpus '"device=0"' -p 5060:5060 --entrypoint ./start.sh huridocs/pdf-document-layout-analysis:v0.0.31
  • 无GPU支持:
bash
docker run --rm --name pdf-document-layout-analysis -p 5060:5060 --entrypoint ./start.sh huridocs/pdf-document-layout-analysis:v0.0.31

📝 服务还支持翻译功能,但需从源代码安装。请查看GitHub页面获取说明。

从PDF获取分割结果:

bash
curl -X POST -F 'file=@/PATH/TO/PDF/pdf_name.pdf' localhost:5060

停止服务:

bash
docker stop pdf-document-layout-analysis

💡 提示:将/path/to/your/document.pdf替换为实际PDF文件路径。服务将返回包含分割内容和元数据的JSON响应。

📋 目录

  • 🚀 快速开始
  • ⚙️ 依赖项
  • 📋 要求
  • 📚 API参考
  • 💡 使用示例
  • 🏗️ 架构
  • 🤖 模型
  • 📊 数据
  • 📈 基准测试
    • 性能
    • 速度
  • 🌐 OCR更多语言安装
  • 🔗 相关服务
  • 🤝 贡献指南

⚙️ 依赖项

必需
  • Docker Desktop 4.25.0+ - 安装指南
  • Python 3.10+(用于本地开发)
可选
  • NVIDIA Container Toolkit - 安装指南(用于GPU支持)

📋 要求

系统要求
  • 内存:至少2 GB
  • GPU内存:5 GB(可选,若无GPU将自动回退到CPU)
  • 磁盘空间:10 GB(用于模型和依赖项)
  • CPU:推荐多核以获得更好性能
Docker要求
  • Docker Engine 20.10+
  • Docker Compose 2.0+

📚 API参考

服务提供全面的RESTful API,包含以下端点:

核心分析端点
端点方法描述参数
/POST分析PDF布局并提取分割内容file、fast、ocr_tables
/save_xml/{filename}POST分析PDF并保存XML输出file、xml_file_name、fast
/get_xml/{filename}GET检索已保存的XML分析结果xml_file_name
内容提取端点
端点方法描述参数
/textPOST按内容类型提取文本file、fast、types
/tocPOST提取目录file、fast
/toc_legacy_uwazi_compatiblePOST提取目录(兼容Uwazi)file
格式转换端点
端点方法描述参数
/markdownPOST将PDF转换为Markdown(zip中包含分割数据)file、fast、extract_toc、dpi、output_file
/htmlPOST将PDF转换为HTML(zip中包含分割数据)file、fast、extract_toc、dpi、output_file
/visualizePOST可视化PDF上的分割结果file、fast
OCR和工具端点
端点方法描述参数
/ocrPOST对PDF应用OCRfile、language
/infoGET获取服务信息-
/GET健康检查和系统信息-
/errorGET测试错误处理-
通用参数
  • file:要处理的PDF文件(multipart/form-data格式)
  • fast:使用LightGBM模型而非VGT(布尔值,默认:false)
  • ocr_tables:对表格区域应用OCR(布尔值,默认:false)
  • language:OCR语言代码(字符串,默认:"en")
  • types:要提取的内容类型,用逗号分隔(字符串,默认:"all")
  • extract_toc:在输出开头包含目录(布尔值,默认:false)
  • dpi:转换的图像分辨率(整数,默认:120)

💡 使用示例

基本PDF分析

使用VGT模型的标准分析:

bash
curl -X POST \
  -F 'file=@document.pdf' \
  http://localhost:5060

使用LightGBM模型的快速分析:

bash
curl -X POST \
  -F 'file=@document.pdf' \
  -F 'fast=true' \
  http://localhost:5060

带表格OCR的分析:

bash
curl -X POST \
  -F 'file=@document.pdf' \
  -F 'ocr_tables=true' \
  http://localhost:5060
文本提取

提取所有文本:

bash
curl -X POST \
  -F 'file=@document.pdf' \
  -F 'types=all' \
  http://localhost:5060/text

提取特定内容类型:

bash
curl -X POST \
  -F 'file=@document.pdf' \
  -F 'types=title,text,table' \
  http://localhost:5060/text
格式转换

转换为Markdown:

bash
curl -X POST http://localhost:5060/markdown \
  -F 'file=@document.pdf' \
  -F 'extract_toc=true' \
  -F 'output_file=document.md' \
  --output 'document.zip'

转换为HTML:

bash
curl -X POST http://localhost:5060/html \
  -F 'file=@document.pdf' \
  -F 'extract_toc=true' \
  -F 'output_file=document.html' \
  --output 'document.zip'

📋 分割数据:格式转换端点会在zip输出中自动包含详细的分割数据。生成的zip文件包含{filename}_segmentation.json文件,其中包含每个检测到的文档段的信息,包括:

  • 坐标:left、top、width、height
  • 页面信息:page_number、page_width、page_height
  • 内容:text内容和段type(例如:"Title"、"Text"、"Table"、"Picture")
OCR处理

英文OCR:

bash
curl -X POST \
  -F 'file=@scanned_document.pdf' \
  -F 'language=en' \
  http://localhost:5060/ocr \
  --output ocr_processed.pdf

其他语言OCR:

bash
# 法语
curl -X POST \
  -F 'file=@document_french.pdf' \
  -F 'language=fr' \
  http://localhost:5060/ocr \
  --output ocr_french.pdf

# 西班牙语
curl -X POST \
  -F 'file=@document_spanish.pdf' \
  -F 'language=es' \
  http://localhost:5060/ocr \
  --output ocr_spanish.pdf
可视化

生成可视化PDF:

bash
curl -X POST \
  -F 'file=@document.pdf' \
  http://localhost:5060/visualize \
  --output visualization.pdf
目录提取

提取结构化目录:

bash
curl -X POST \
  -F 'file=@document.pdf' \
  http://localhost:5060/toc
XML存储和检索

分析并保存XML:

bash
curl -X POST \
  -F 'file=@document.pdf' \
  http://localhost:5060/save_xml/my_analysis

检索已保存的XML:

bash
curl http://localhost:5060/get_xml/my_analysis.xml
服务信息

获取服务信息和支持的语言:

bash
curl http://localhost:5060/info

健康检查:

bash
curl http://localhost:5060/
响应格式

大多数端点返回包含分割信息的JSON:

json
[
  {
    "left": 72.0,
    "top": 84.0,
    "width": 451.2,
    "height": 23.04,
    "page_number": 1,
    "page_width": 595.32,
    "page_height": 841.92,
    "text": "文档标题",
    "type": "Title"
  },
  {
    "left": 72.0,
    "top": 120.0,
    "width": 451.2,
    "height": 200.0,
    "page_number": 1,
    "page_width": 595.32,
    "page_height": 841.92,
    "text": "这是主要文本内容...",
    "type": "Text"
  }
]
支持的内容类型
  • Caption - 图片和表格标题
  • Footnote - 脚注文本
  • Formula - 数学公式
  • List item - 列表项和项目符号
  • Page footer - 页脚内容
  • Page header - 页眉内容
  • Picture - 图片和图表
  • Section header - 章节标题
  • Table - 表格内容
  • Text - 常规文本段落
  • Title - 文档和章节标题

🏗️ 架构

本项目遵循整洁架构原则,确保关注点分离、可测试性和可维护性。代码库分为不同的层:

目录结构
src/
├── domain/                 # 企业业务规则
│   ├── PdfImages.py       # PDF图像处理领域逻辑
│   ├── PdfSegment.py      # PDF分割实体
│   ├── Prediction.py      # 机器学习预测实体
│   └── SegmentBox.py      # 核心分割框实体
├── use_cases/             # 应用业务规则
│   ├── pdf_analysis/      # PDF分析用例
│   ├── text_extraction/   # 文本提取用例
│   ├── toc_extraction/    # 目录提取用例
│   ├── visualization/     # PDF可视化工用例
│   ├── ocr/              # OCR处理用例
│   ├── markdown_conversion/ # Markdown转换用例
│   └── html_conversion/   # HTML转换用例
├── adapters/              # 接口适配器
│   ├── infrastructure/    # 外部服务适配器
│   ├── ml/               # 机器学习模型适配器
│   ├── storage/          # 文件存储适配器
│   └── web/              # Web框架适配器
├── ports/                 # 接口定义
│   ├── services/         # 服务接口
│   └── repositories/     # 仓库接口
└── drivers/              # 框架和驱动
    └── web/              # FastAPI应用设置
层职责
  • 领域层:包含核心业务实体和规则,独立于外部关注点
  • 用例层:编排领域实体以满足特定的应用需求
  • 适配器层:实现内层定义的接口,并适配外部框架
  • 驱动层:包含框架、数据库和外部代理配置
主要优势
  • 🔄 依赖倒置:高层模块不依赖低层模块
  • 🧪 可测试性:易于隔离测试业务逻辑
  • 🔧 可维护性:外部框架的更改不影响业务规则
  • 📈 可扩展性:添加新功能无需修改现有代码

🤖 模型

服务提供两种互补的模型方法,每种方法针对不同的用例进行了优化:

1. 视觉网格Transformer(VGT)- 高精度模型

概述:由阿里巴巴研究团队开发的最先进视觉模型,能够"看到"整个页面布局。

核心特性:

  • 🎯 高精度:文档布局分析的最佳性能
  • 👁️ 视觉理解:分析整个页面上下文,包括空间关系
  • 📊 基于DocLayNet训练:使用全面的DocLayNet数据集
  • 🔬 研究支持:基于Advanced Literate Machinery

资源要求:

  • GPU:5GB+显存(推荐)
  • CPU:若无GPU,将自动回退到CPU
  • 处理速度:1.75秒/页(GPU [GTX 1070])或13.5秒/页(CPU [i7-8700])
2. LightGBM模型 - 快速高效

概述:轻量级集成的两个专用模型,使用Poppler的基于XML的特征。

核心特性:

  • ⚡ 高速:CPU上~0.42秒/页(i7-8700)
  • 💾 低资源使用:仅需CPU,内存占用小
  • 🔄 双模型方法:
    • 令牌类型分类器:识别内容类型(标题、文本、表格等)
    • 分割模型:确定正确的内容边界
  • 📄 基于XML:使用Poppler的PDF到XML转换提取特征

权衡:

  • 精度略低于VGT
  • 无视觉上下文理解
查看更多 pdf-document-layout-analysis 相关镜像 →
onlyoffice/documentserver logo
onlyoffice/documentserver
by Ascensio System SIA
认证
功能丰富的基于Web的办公套件,具备广泛的协作功能。
42750M+ pulls
上次更新:27 天前
onlyoffice/documentserver-ee logo
onlyoffice/documentserver-ee
by Ascensio System SIA
认证
暂无描述
31M+ pulls
上次更新:27 天前
onlyoffice/documentserver-de logo
onlyoffice/documentserver-de
by Ascensio System SIA
认证
ONLYOFFICE Developer Edition是面向开发者的办公协作解决方案开发工具包,提供丰富的API与SDK,支持将文档编辑(含文本文档、电子表格、演示文稿)、实时在线协作、版本管理及权限控制等核心功能无缝集成至企业自有应用或服务中,允许开发者根据业务需求自定义界面、扩展功能模块,并支持多平台部署与数据安全保障,助力快速构建定制化办公协作系统。
7500K+ pulls
上次更新:27 天前
mcp/aws-documentation logo
mcp/aws-documentation
by mcp
认证
用于访问AWS文档、搜索内容和获取推荐的工具。
210K+ pulls
上次更新:1 个月前
onlyoffice/4testing-documentserver logo
onlyoffice/4testing-documentserver
by Ascensio System SIA
认证
ONLYOFFICE Document Server Docker镜像提供在线文档编辑与协作功能,支持端口配置、HTTPS部署及数据存储,便于快速部署和集成到各类系统中。
6100K+ pulls
上次更新:1 天前
onlyoffice/4testing-documentserver-ee logo
onlyoffice/4testing-documentserver-ee
by Ascensio System SIA
认证
暂无描述
1100K+ pulls
上次更新:1 天前

轩辕镜像配置手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

登录仓库拉取

通过 Docker 登录认证访问私有仓库

Linux

在 Linux 系统配置镜像服务

Windows/Mac

在 Docker Desktop 配置镜像

Docker Compose

Docker Compose 项目配置

K8s Containerd

Kubernetes 集群配置 Containerd

K3s

K3s 轻量级 Kubernetes 镜像加速

Dev Containers

VS Code Dev Containers 配置

MacOS OrbStack

MacOS OrbStack 容器配置

宝塔面板

在宝塔面板一键配置镜像

群晖

Synology 群晖 NAS 配置

飞牛

飞牛 fnOS 系统配置镜像

极空间

极空间 NAS 系统配置服务

爱快路由

爱快 iKuai 路由系统配置

绿联

绿联 NAS 系统配置镜像

威联通

QNAP 威联通 NAS 配置

Podman

Podman 容器引擎配置

Singularity/Apptainer

HPC 科学计算容器配置

其他仓库配置

ghcr、Quay、nvcr 等镜像仓库

专属域名拉取

无需登录使用专属域名

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像支持哪些镜像仓库?

专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

oldzhang的头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
huridocs/pdf-document-layout-analysis
官方博客Docker 镜像使用技巧与技术博客
热门镜像查看热门 Docker 镜像推荐
一键安装一键安装 Docker 并配置镜像源
提交工单
咨询镜像拉取问题请 提交工单,官方技术交流群:13763429
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
咨询镜像拉取问题请提交工单,官方技术交流群:
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
官方邮箱:点击复制邮箱
©2024-2026 源码跳动
官方邮箱:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.