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

交易
充值流量我的订单
工具
提交工单镜像收录一键安装
Npm 源Pip 源Homebrew 源
帮助
常见问题轩辕镜像免费版
其他
关于我们网站地图
热门搜索:
pdf-document-layout-analysis

huridocs/pdf-document-layout-analysis

huridocs

HURIDOCS的pdf-document-layout-analysis是一个基于Docker的智能PDF文档布局分析微服务,支持OCR识别、内容提取、元素分类(文本、标题、表格等)、阅读顺序确定及多格式转换(Markdown/HTML)。

6 次收藏下载次数: 0状态:社区镜像维护者:huridocs仓库类型:镜像最近更新:6 个月前
轩辕镜像,快一点,稳很多。点击查看
中文简介
标签下载
镜像标签列表与下载命令
轩辕镜像,快一点,稳很多。点击查看

PDF文档布局分析

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

!Python Version !FastAPI !Docker !GPU Support

由❤️ HURIDOCS 构建

https://github.com/huridocs/pdf-document-layout-analysis • https://hub.docker.com/r/huridocs/pdf-document-layout-analysis • 🤗 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训练:使用全面的https://github.com/DS4SD/DocLayNet
  • 🔬 研究支持:基于https://github.com/AlibabaResearch/AdvancedLiterateMachinery

资源要求:

  • 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 镜像标签

docker pull docker.xuanyuan.run/huridocs/pdf-document-layout-analysis:<标签>

使用方法:

  • 登录认证方式
  • 免认证方式

DockerHub 原生拉取命令

docker pull huridocs/pdf-document-layout-analysis:<标签>

更多 pdf-document-layout-analysis 镜像推荐

onlyoffice/documentserver logo

onlyoffice/documentserver

onlyoffice
功能丰富的基于Web的办公套件,具备广泛的协作功能。
433 次收藏5000万+ 次下载
2 个月前更新
onlyoffice/documentserver-ee logo

onlyoffice/documentserver-ee

onlyoffice
暂无描述
4 次收藏100万+ 次下载
2 个月前更新
onlyoffice/documentserver-de logo

onlyoffice/documentserver-de

onlyoffice
ONLYOFFICE Developer Edition是面向开发者的办公协作解决方案开发工具包,提供丰富的API与SDK,支持将文档编辑(含文本文档、电子表格、演示文稿)、实时在线协作、版本管理及权限控制等核心功能无缝集成至企业自有应用或服务中,允许开发者根据业务需求自定义界面、扩展功能模块,并支持多平台部署与数据安全保障,助力快速构建定制化办公协作系统。
7 次收藏100万+ 次下载
2 个月前更新
AWS Documentation logo

mcp/aws-documentation

mcp(Model Context Protocol)
用于访问AWS文档、搜索内容和获取推荐的工具。
2 次收藏5万+ 次下载
11 天前更新
intel/document-summary logo

intel/document-summary

intel
文档摘要示例应用展示如何利用LlamaIndex框架(构建大型语言模型应用的强大工具)从长文档生成简洁且信息丰富的摘要。
2千+ 次下载
22 天前更新
intel/document-ingestion logo

intel/document-ingestion

intel
数据摄入微服务用于加载、解析PDF、DOCX、TXT等文档并创建嵌入,通过与向量数据库(PGVector)和数据存储(minIO)交互实现文档管理,提供第三方服务抽象、多文档类型支持及性能优化。
3.7千+ 次下载
15 天前更新

查看更多 pdf-document-layout-analysis 相关镜像

轩辕镜像配置手册

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

Docker 配置

登录仓库拉取

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

专属域名拉取

无需登录使用专属域名

K8s Containerd

Kubernetes 集群配置 Containerd

K3s

K3s 轻量级 Kubernetes 镜像加速

Dev Containers

VS Code Dev Containers 配置

Podman

Podman 容器引擎配置

Singularity/Apptainer

HPC 科学计算容器配置

其他仓库配置

ghcr、Quay、nvcr 等镜像仓库

Harbor 镜像源配置

Harbor Proxy Repository 对接专属域名

Portainer 镜像源配置

Portainer Registries 加速拉取

Nexus 镜像源配置

Nexus3 Docker Proxy 内网缓存

系统配置

Linux

在 Linux 系统配置镜像服务

Windows/Mac

在 Docker Desktop 配置镜像

MacOS OrbStack

MacOS OrbStack 容器配置

Docker Compose

Docker Compose 项目配置

NAS 设备

群晖

Synology 群晖 NAS 配置

飞牛

飞牛 fnOS 系统配置镜像

绿联

绿联 NAS 系统配置镜像

威联通

QNAP 威联通 NAS 配置

极空间

极空间 NAS 系统配置服务

网络设备

爱快路由

爱快 iKuai 路由系统配置

宝塔面板

在宝塔面板一键配置镜像

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

镜像拉取常见问题

使用与功能问题

配置了专属域名后,docker search 为什么会报错?

docker search 限制

Docker Hub 上有的镜像,为什么在轩辕镜像网站搜不到?

站内搜不到镜像

机器不能直连外网时,怎么用 docker save / load 迁镜像?

离线 save/load

docker pull 拉插件报错(plugin v1+json)怎么办?

插件要用 plugin install

WSL 里 Docker 拉镜像特别慢,怎么排查和优化?

WSL 拉取慢

轩辕镜像安全吗?如何用 digest 校验镜像没被篡改?

安全与 digest

第一次用轩辕镜像拉 Docker 镜像,要怎么登录和配置?

新手拉取配置

轩辕镜像合规吗?轩辕镜像的合规是怎么做的?

镜像合规机制

错误码与失败问题

docker pull 提示 manifest unknown 怎么办?

manifest unknown

docker pull 提示 no matching manifest 怎么办?

no matching manifest(架构)

镜像已拉取完成,却提示 invalid tar header 或 failed to register layer 怎么办?

invalid tar header(解压)

Docker pull 时 HTTPS / TLS 证书验证失败怎么办?

TLS 证书失败

Docker pull 时 DNS 解析超时或连不上仓库怎么办?

DNS 超时

docker 无法连接轩辕镜像域名怎么办?

域名连通性排查

Docker 拉取出现 410 Gone 怎么办?

410 Gone 排查

出现 402 或「流量用尽」提示怎么办?

402 与流量用尽

Docker 拉取提示 UNAUTHORIZED(401)怎么办?

401 认证失败

遇到 429 Too Many Requests(请求太频繁)怎么办?

429 限流

docker login 提示 Cannot autolaunch D-Bus,还算登录成功吗?

D-Bus 凭证提示

为什么会出现「单层超过 20GB」或 413,无法加速拉取?

413 与超大单层

账号 / 计费 / 权限

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

免费版与专业版区别

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

支持的镜像仓库

镜像拉取失败还会不会扣流量?

失败是否计费

麒麟 V10 / 统信 UOS 提示 KYSEC 权限不够怎么办?

KYSEC 拦截脚本

如何在轩辕镜像申请开具发票?

申请开票

怎么修改轩辕镜像的网站登录和仓库登录密码?

修改登录密码

如何注销轩辕镜像账户?要注意什么?

注销账户

配置与原理类

写了 registry-mirrors,为什么还是走官方或仍然报错?

mirrors 不生效

怎么用 docker tag 去掉镜像名里的轩辕域名前缀?

去掉域名前缀

如何拉取指定 CPU 架构的镜像(如 ARM64、AMD64)?

指定架构拉取

用轩辕镜像拉镜像时快时慢,常见原因有哪些?

拉取速度原因

为什么拉取镜像的 :latest 标签,拿到的往往不是「最新」镜像?

latest 与「最新」

查看全部问题→

用户好评

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

用户头像

oldzhang

运维工程师

Linux服务器

5

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

轩辕镜像
镜像详情
...
huridocs/pdf-document-layout-analysis
博客Docker 镜像公告与技术博客
热门查看热门 Docker 镜像推荐
安装一键安装 Docker 并配置镜像源
镜像拉取问题咨询请 提交工单,官方技术交流群:1072982923。轩辕镜像所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
镜像拉取问题咨询请提交工单,官方技术交流群:。轩辕镜像所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
商务合作:点击复制邮箱
©2024-2026 源码跳动
商务合作:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.