pdf2md·技术调研

news2024/11/14 19:57:04

解析技术调研:

技术项源代码·官方说明优/劣势补充
1
VikParuchuri/marker (Star 14.9K)
https://github.com/VikParuchuri/marker?tab=readme-ov-file
  • 优点:
    1. 耗时少
    2. 精度高(有ocr·模型·加持)
  • 缺点:
    • 需要部署大模型(6个模型)难度大,对硬件要求高。
    • 难以支持高并发处理场景的需求
    • 对计算公式的识别还存在不足

经过测试发现:

官方文档很粗糙,依赖版本不明确,存在兼容问题

需要仔细比各个依赖的版本号

因为marker-pdf 针对不同版本的代码结构变化很大。

目前探索出的稳定版本:
 
==》注意: 
marker-pdf 和 pdfText版本的搭配
0.2.6 《==》0.3.7


版本不高,很多特性缺失,如果要升级,需要重新核对插件的兼容的版本号。


 

测试机器带不动~

2
breezedeus/Pix2Text (Star 1.7K)
https://github.com/breezedeus/pix2text
Examples en - Pix2Text
  • 优点:
    1. 支持表格、图片、文本、公式,解析能力很强。
    2. 有ocr·模型版本加持。
    3. Pix2Text V1.1 则带来了完整的版面恢复能力
  • 缺点:
    1. 需要部署大模型(5种模型)难度大,对硬件要求高。
    2. 难以支持高并发处理场景的需求。

  • 版面分析模型:breezedeus/pix2text-layout (国内地址)。
  • 表格识别模型:breezedeus/pix2text-table-rec (国内地址)。
  • 文字识别引擎:支持 80+ 种语言,如英文、简体中文、繁体中文、越南语等。其中,英文简体中文识别使用的是开源 OCR 工具 CnOCR ,其他语言的识别使用的是开源 OCR 工具 EasyOCR 。
  • 数学公式检测模型(MFD):来自 CnSTD 的数学公式检测模型(MFD)。
  • 数学公式识别模型(MFR)
3opendatalab/PDF-Extract-Kit (Star 3.7K)
https://github.com/opendatalab/PDF-Extract-Kit
  • 优点:
    1. 解析能力强(模型加持):检测->识别->......
    2. 支持OCR-模型版本
  • 缺陷:
    1. 需要部署大模型(5种模型)难度大,对硬件要求高。
    2. 难以支持高并发处理场景的需求。

4
lxulxu / pdf-to-markdown  (Star 44)
https://github.com/lxulxu/pdf-to-markdown
  • 优点:
    • 相比上面的模型的方式,相对简单,开源者也未多说明。
  •  缺点:
    1. 仅支持中英文(由于PyMuPDF存在问题偶尔会出现乱码)
    2. 仅支持单栏布局
    3. 不支持页眉和页脚
    4. 不支持各种文本样式(包括颜色、加粗、斜体等)

通过PyMuPDF和PADDLE OCR提取PDF中文本、图片和表格创建markdown,基于Python 3.10 64-bit。

安装依赖

  1. 安装PaddlePaddle,参考Pip 安装-使用文档-PaddlePaddle深度学习平台

  2. pip install -r requirements.txt

 

命令行参数

可通过python start.py -h查看

  • -f:单个文件或文件夹路径,仅支持一级目录

例如python start.py -f samples

限制

  • 仅支持中英文(由于PyMuPDF存在问题偶尔会出现乱码)
  • 仅支持单栏布局
  • 不支持页眉和页脚
  • 不支持各种文本样式(包括颜色、加粗、斜体等)

……(其他待发现问题)

5
pymupdf4llm + pytesseract(ocr)
自定义组合模式-✅
  • 优点:
    1. 组合模式灵活,自由度高。
    2. pymupdf4llm转换MD时可以提取到图片 + 再借助OCR(非模型)能力,可以完整提取到文本内容
    3. ocr可以自由选型
  • 缺点:
    1. 表格板式读取不准确,只能提取到文本,没有格式。
    2. OCR提取只能提取到文本,没有版式。
    3. PDF的解析底层还是基于PyMuPDF,偶尔有乱码问题(可以通过设置编码和安装字体进行优化)

PyMuPDF的高级封装版本

目前选用的是免费插件pytesseract,

还有其他基于模型的ocr能力部署难度大,暂不集成,比如:surya-ocr

最后采用:

        pymupdf4llm + pytesseract(ocr) 模式,其他方案有合适条件再补充测试~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2081524.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】类与对象篇四

【C】类与对象篇四 一 . 再谈构造函数1 . 构造函数体赋值2. 初始化列表3. explicit关键字 二 . static成员 【面试题】三 . 友元1. 友元函数2. 友元类 四 . 内部类 一 . 再谈构造函数 1 . 构造函数体赋值 在创建对象时,编译器通过调用构造函数,给对象中…

AI 大模型时代,对前端工程师有哪些机遇和挑战?

随着人工智能的发展,AI大模型为人工智能领域带来了巨大的机遇和挑战。前端工程师作为软件开发的重要一环,也需要关注 AI 大模型的发展趋势,并探索如何将其应用于前端开发和优化中。 AI 大模型应用广泛,已经深入到各个行业&#x…

数据结构——队的基本操作

一、顺序队 队的用法:先进先出 跟平时我们遇到的大多情况一样,队的主要思想就是先进先出,比如我去食堂打饭,我先排那么就是我先打到饭咯 顺序队:其实说白了就是一块空间用两个指针去指向,为了实现先进先…

如何获取页面的MP3文件

1、使用Google浏览器, 2、F12打开网页编程模式 3、找到network选项卡, 4、然后点击播放按钮,此时network中会加载各类资源; 5、在type中找到’media‘,点击media的名称; 6、找到request url&#xff1…

【AI绘画教程】StableDiffusion新手教程|5分钟搞定平面线稿转3D效果,100%成功(附教程工具)

大家好,我是画画的小强 曾经,我们对于将线稿转化为精美上色作品只能望而却步,然而如今,有了稳定扩散人工智能AI绘画工具(SD),我们可以以更加神奇的方式为线稿赋予绚丽的色彩,将创意…

Powershell@2 文件操作整理

最近又开始折腾pipeline了,对文件操作,这里实践并记录一下 https://learn.microsoft.com/zh-cn/powershell/module/microsoft.powershell.management/get-content?viewpowershell-7.4 列出文件及文件夹 Get-ChildItem Get-ChildItem -Path D:\1_data…

神经内科经颅磁刺激(TMS)疗法介绍

经颅磁刺激(TMS)作为一种先进的非侵入性、无痛的治疗手段,其核心基于电磁学原理。该技术通过储能电容向特制线圈瞬间释放强大电流,生成穿透颅骨的强磁场。这一磁场在大脑内部诱导产生微弱的感应电流,触发一系列复杂的生…

Pascal编程语言

目录 一、Pascal语言的诞生与特点 二、Pascal编程环境的选择与安装 三、Pascal语法基础与实战 pascal复制代码 pascal复制代码 在计算机编程的丰富世界中,Pascal语言以其严谨的结构和强大的功能而独树一帜。对于初学者来说,Pascal编程语言不仅可以帮…

AI学习记录 - 怎么理解 torch 的 nn.Conv2d

有用就点个赞 怎么理解 nn.Conv2d 参数 conv_layer nn.Conv2d(in_channels3, out_channels 64, kernel_size3, stride1, padding0, biasFalse) in_channels in_channels 可以设置成1,2,3,4等等都可以,一般来说做图像识别的时…

大模型就业行情揭秘:哪些岗位最吃香?

随着人工智能技术的发展,尤其是大模型技术的成熟与广泛应用,相关行业的人才需求量也呈现出爆发式增长。对于想要进入这个领域的求职者来说,了解当前大模型就业岗位的行情显得尤为重要。本文将深入剖析目前大模型就业岗位的市场情况&#xff0…

本地生活本地推软件有哪些?手把手教你从零开始提升转化率!

当前,多家互联网大厂在本地生活版块的布局不断深入,让本地生活市场不断焕发新活力的同时,也使得竞争态势日益激烈。在此背景下,对于本地生活服务商而言,无论是想要拓展品牌商家资源,还是想要改善交付效果&a…

广东超高清视频产业高质量发展成果展在粤开展

8月27日,广东超高清视频产业高质量发展成果展于中国(广州)超高清视频创新产业园区广州国际媒体港举行。本次展会聚焦广东超高清视频产业,展示以新技术赋能广电新质生产力,推动广播影视和网络视听高质量发展的最新成果&…

[Arxiv 2024] Self-Rewarding Language Models

Contents IntroductionMethodExperimentsReferences Introduction 作者提出 Self-Rewarding 训练框架,LLM 在训练过程中同时担任 actor 和 critic,actor 负责合成新数据,critic 负责判断合成数据质量用于组成高质量的偏好数据集用于模型的下…

网络排名变差算法在充电桩计量可信度评价中的应用AcrelCloud-9000安科瑞充电柱收费运营云平台

摘要:网络排名变差算法是指根据充电交易流水数据构造桩车网络,利用复杂网络的投票智慧而非传统的物理实验来获得对量值的信心。将排名变差算法用于桩车网络计算中,旨在检定合格的充电桩对其他充电桩排名变化的影响,这种影响以电动…

若依添加字段权限功能

页面长这样 /*Navicat Premium Data TransferSource Server : 本地Source Server Type : MySQLSource Server Version : 80038Source Host : 127.0.0.1:3306Source Schema : healthTarget Server Type : MySQLTarget Server Version : 80038Fi…

干货满满!五大调光方式让你全面了解LED照明

LED的发光原理同传统照明不同,是靠P-N结发光,同功率的LED光源,因其采用的芯片不同,电流电压参数则不同,故其内部布线结构和电路分布也不同,导致了各生产厂商的光源对调光驱动的要求也不尽相同&a…

PHP付费心理测评小程序源码心理测试抑郁症性格测试H5变现系统源码

揭秘付费心理测试新宠:郁郁症性格测试小程序,如何变现又贴心? 🌈 引言:心理健康的数字化探索 在这个快节奏、高压力的时代,越来越多的人开始关注自己的心理健康。付费心理测试,尤其是针对郁郁…

【JAVA入门】Day26 - Lambda表达式

【JAVA入门】Day26 - Lambda表达式 文章目录 【JAVA入门】Day26 - Lambda表达式一、函数式编程二、Lambda表达式的省略写法 Lambda表达式在代码中最常用的功能就是简化匿名内部类的书写。 Ingeger[] arr {2, 3, 1, 5, 6, 7, 8, 4, 9};Arrays.sort(arr, new Comparator<Int…

【深度学习与NLP】——深度卷积神经网络AlexNet

目录 一、卷积神经网络的发展历程 二、简要介绍 三、代码实现 四、缺点和过时的地方 一、卷积神经网络的发展历程 早期理论基础阶段&#xff08;20 世纪 60 年代 - 80 年代&#xff09;&#xff1a; 1968 年&#xff0c;Hubel 和 Wiesel 通过对猫视觉神经的研究&#xff0…

Amazon Bedrock 实践:零基础创建贪吃蛇游戏

本文探讨了如何利用 Amazon Bedrock 和大型语言模型&#xff0c;快速创建经典的贪吃蛇游戏原型代码。重点展示了利用提示工程&#xff0c;将创新想法高效转化为可运行代码方面的过程。文章还介绍了评估和优化提示词质量的最佳实践。 亚马逊云科技开发者社区为开发者们提供全球的…