使用 Pix2Text 将复杂 PDF 文档进行 OCR 识别并转换为 LaTeX / Markdown

April 4, 2026
Published in 技术教程

Abstract

在学术研究或日常工作中,我们经常会遇到需要将扫描版 PDF 文档或包含复杂数学公式的书籍提取为可编辑的 Markdown 或 LaTeX 源码的需求。传统的文字识别(OCR)工具往往对版面结构和复杂的数学公式无能为力,而 Pix2Text 则提供了一套强大且开源的解决方案。本文将详细记录在 macOS 环境下,从安装配置环境、下载核心深度学习模型,到最终成功把 PDF 转换为包含公式的 Markdown 文件的完整流程。

Keywords: OCR, LaTeX, PDF转换, Python, 深度学习, Pix2Text

为什么选择 Pix2Text?

Pix2Text (P2T) 旨在成为 Mathpix 的免费开源 Python 替代品。它能够:

  1. 分析图片和 PDF 的版面(Layout Analysis),将文本、数学公式、图表、表格拆解开来。
  2. 识别不同语言的文字,包含英文和简体中文。
  3. 准确地检测并识别复杂的行内和行间数学公式,并转写为纯正的 LaTeX 代码。

准备与安装:创建隔离的 Python 运行环境

这套工具背后依赖大量的深度学习框架(例如 PyTorch),为了不污染操作系统的全局 Python 环境,推荐使用 venv 来创建独立的虚拟环境。

以下是具体的执行命令:

# 1. 切换到项目主目录
cd /Users/zhengqingwei/Downloads/Pix2Text-main

# 2. 创建名为 venv 的虚拟环境
python3 -m venv venv

# 3. 激活虚拟环境
source venv/bin/activate

# 4. 升级 pip 并执行安装
pip install --upgrade pip

# 安装支持多语言版和全功能依赖库的 Pix2Text 版本
pip install "pix2text[multilingual]"

在执行 pip install "pix2text[multilingual]" 的过程中,系统会自动下载一系列依赖,包括 torchtorchvisioncnocrcnstdeasyocr 等。安装视网络情况可能需要几分钟。

运行模型及核心下载项解析

Pix2Text 有多种不同的底层模型,分别负责不同的识别能力。在第一次执行预测脚本时,程序会自动从 HuggingFace 等开源平台缓存这些权重文件(大约占据以 GB 计的空间):

  1. 版面分析 (Layout Analysis) 模型:使用的是 DocLayout-YOLO(位于 ~/.pix2text/1.1/layout-docyoco/doclayout_yolo_docstructbench_imgsz1024.pt)。它负责框出 PDF 里哪里是文字、哪里是公式。
  2. 文本检测模型:基于 CnSTD 引擎的 ch_PP-OCRv5_det_infer.onnx
  3. 文本识别模型:基于 CnOCRdensenet_lite_136-gru
  4. 数学公式检测 (MFD)pix2text-mfd-1.5.onnx
  5. 数学公式识别 (MFR):用来将截图渲染为 LaTeX,加载了 mfr-1.5 的 ONNX 模型版本。

首次测试:快速扫描 PDF 前几页

对于一本厚达成百上千页的书(比如测试文件 book/surface.pdf),如果使用普通的 CPU 进行全量识别,可能需要运转几十分钟到数小时。因此,在正式挂机跑之前,强烈建议只测试前 1~3 页,以确保一切配置无误。

使用命令行参数中的 --rec-kwargs '{"page_numbers": [0, 1, 2]}' 来指定仅处理前三页:

# 确保在已激活 venv 的环境下
source venv/bin/activate 

# 执行预测:-l 设定识别中英文,--file-type 为 pdf 格式,-i 输入源文件,-o 输出文件夹
p2t predict \
    -l en,ch_sim \
    --file-type pdf \
    -i book/surface.pdf \
    -o output-md \
    --rec-kwargs '{"page_numbers": [0, 1, 2]}'

运行结果

输出会自动提取进 output-md 目录中。打开里面的 output.md,可以看到提取结果——带有完美包裹的 LaTeX 公式块:

## Theoretical Surface Science

$$
= \frac{1} {}
$$

AMcocopi Perspecive Second Edition

进阶使用:全书转换

当前面几页的测试输出满足期待后,就可以不加页码限制,对全书逐页进行扫描与 OCR 重构:

source venv/bin/activate && p2t predict -l en,ch_sim --file-type pdf -i book/surface.pdf -o output-md

可以将其放在终端后台长期运行。运行结束后,该目录下将会生成一份详尽的、包含可编辑 LaTeX 公式的完整 Markdown 书籍。

总结

Pix2Text 提供了出色的命令行封装接口和 Python API,即便不懂底层的 AI 框架和模型细节,也能通过简单的 pip install 和一行 p2t predict 轻松构建强大的学术 OCR 工作流。未来还可结合更高性能的显卡(GPU)对该过程进行成倍加速。

参考资料

  1. Pix2Text 官方 GitHub 仓库. GitHub, https://github.com/breezedeus/Pix2Text. link
  2. DocLayout-YOLO 模型文档. HuggingFace, https://huggingface.co. link
  3. CnOCR: 中文 OCR 识别工具. GitHub, https://github.com/breezedeus/cnocr. link
  4. CnSTD: 中文文本检测工具. GitHub, https://github.com/breezedeus/cnstd. link