pdf2md·技术调研

解析技术调研:

技术项源代码·官方说明优/劣势补充
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) 模式,其他方案有合适条件再补充测试~

  • 8
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

成熟的小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值