基于MinerU的PDF解析API

2024-09-08 09:36
文章标签 解析 api pdf mineru

本文主要是介绍基于MinerU的PDF解析API,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

基于MinerU的PDF解析API

- MinerU的GPU镜像构建
- 基于FastAPI的PDF解析接口

支持一键启动,已经打包到镜像中,自带模型权重,支持GPU推理加速,GPU速度相比CPU每页解析要快几十倍不等

主要功能

  • 删除页眉、页脚、脚注、页码等元素,保持语义连贯
  • 对多栏输出符合人类阅读顺序的文本
  • 保留原文档的结构,包括标题、段落、列表等
  • 提取图像、图片标题、表格、表格标题
  • 自动识别文档中的公式并将公式转换成latex
  • 自动识别文档中的表格并将表格转换成latex
  • 乱码PDF自动检测并启用OCR
  • 支持CPU和GPU环境
  • 支持windows/linux/mac平台

具体原理

请见PDF-Extract-Kit:https://github.com/opendatalab/PDF-Extract-Kit/blob/main/README-zh_CN.md
PDF文档中包含大量知识信息,然而提取高质量的PDF内容并非易事。为此,我们将PDF内容提取工作进行拆解:

  • 布局检测:使用LayoutLMv3模型进行区域检测,如图像,表格,标题,文本等;
  • 公式检测:使用YOLOv8进行公式检测,包含行内公式和行间公式;
  • 公式识别:使用UniMERNet进行公式识别;
  • 表格识别:使用StructEqTable进行表格识别;
  • 光学字符识别:使用PaddleOCR进行文本识别;

镜像地址:

阿里云地址:docker pull registry.cn-beijing.aliyuncs.com/quincyqiang/mineru:0.2-models

dockerhub地址:docker pull quincyqiang/mineru:0.2-models

启动命令:

docker run -itd --name=mineru_server --gpus=all -p 8888:8000 quincyqiang/mineru:0.2-models

具体截图请见博客:https://blog.csdn.net/yanqianglifei/article/details/141979684

启动日志:

输入参数:

访问地址:

http://localhost:8888/docshttp://127.0.01:8888/docs

解析效果:

返回内容字段包括:dict_keys([‘layout’, ‘info’, ‘content’])
其中content是一个字典列表:

{'type': 'text', 'text': '现在我们知道:价值实体就是劳动;劳动量的尺度就是劳动持续时间。', 'page_idx': 5
}

这篇关于基于MinerU的PDF解析API的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1147745

相关文章

python实现pdf转word和excel的示例代码

《python实现pdf转word和excel的示例代码》本文主要介绍了python实现pdf转word和excel的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一、引言二、python编程1,PDF转Word2,PDF转Excel三、前端页面效果展示总结一

基于C#实现PDF文件合并工具

《基于C#实现PDF文件合并工具》这篇文章主要为大家详细介绍了如何基于C#实现一个简单的PDF文件合并工具,文中的示例代码简洁易懂,有需要的小伙伴可以跟随小编一起学习一下... 界面主要用于发票PDF文件的合并。经常出差要报销的很有用。代码using System;using System.Col

Java操作PDF文件实现签订电子合同详细教程

《Java操作PDF文件实现签订电子合同详细教程》:本文主要介绍如何在PDF中加入电子签章与电子签名的过程,包括编写Word文件、生成PDF、为PDF格式做表单、为表单赋值、生成文档以及上传到OB... 目录前言:先看效果:1.编写word文件1.2然后生成PDF格式进行保存1.3我这里是将文件保存到本地后

通过C#获取PDF中指定文本或所有文本的字体信息

《通过C#获取PDF中指定文本或所有文本的字体信息》在设计和出版行业中,字体的选择和使用对最终作品的质量有着重要影响,然而,有时我们可能会遇到包含未知字体的PDF文件,这使得我们无法准确地复制或修改文... 目录引言C# 获取PDF中指定文本的字体信息C# 获取PDF文档中用到的所有字体信息引言在设计和出

使用Python实现批量访问URL并解析XML响应功能

《使用Python实现批量访问URL并解析XML响应功能》在现代Web开发和数据抓取中,批量访问URL并解析响应内容是一个常见的需求,本文将详细介绍如何使用Python实现批量访问URL并解析XML响... 目录引言1. 背景与需求2. 工具方法实现2.1 单URL访问与解析代码实现代码说明2.2 示例调用

使用SpringBoot创建一个RESTful API的详细步骤

《使用SpringBoot创建一个RESTfulAPI的详细步骤》使用Java的SpringBoot创建RESTfulAPI可以满足多种开发场景,它提供了快速开发、易于配置、可扩展、可维护的优点,尤... 目录一、创建 Spring Boot 项目二、创建控制器类(Controller Class)三、运行

SSID究竟是什么? WiFi网络名称及工作方式解析

《SSID究竟是什么?WiFi网络名称及工作方式解析》SID可以看作是无线网络的名称,类似于有线网络中的网络名称或者路由器的名称,在无线网络中,设备通过SSID来识别和连接到特定的无线网络... 当提到 Wi-Fi 网络时,就避不开「SSID」这个术语。简单来说,SSID 就是 Wi-Fi 网络的名称。比如

SpringBoot生成和操作PDF的代码详解

《SpringBoot生成和操作PDF的代码详解》本文主要介绍了在SpringBoot项目下,通过代码和操作步骤,详细的介绍了如何操作PDF,希望可以帮助到准备通过JAVA操作PDF的你,项目框架用的... 目录本文简介PDF文件简介代码实现PDF操作基于PDF模板生成,并下载完全基于代码生成,并保存合并P

SpringCloud配置动态更新原理解析

《SpringCloud配置动态更新原理解析》在微服务架构的浩瀚星海中,服务配置的动态更新如同魔法一般,能够让应用在不重启的情况下,实时响应配置的变更,SpringCloud作为微服务架构中的佼佼者,... 目录一、SpringBoot、Cloud配置的读取二、SpringCloud配置动态刷新三、更新@R

使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)

《使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)》在现代软件开发中,处理JSON数据是一项非常常见的任务,无论是从API接口获取数据,还是将数据存储为JSON格式,解析... 目录1. 背景介绍1.1 jsON简介1.2 实际案例2. 准备工作2.1 环境搭建2.1.1 添加