综合介绍
Marker 是一个基于深度学习的文档处理工具,旨在将 PDF 文件快速准确地转换为 Markdown 格式。它支持多种文档类型,特别优化了书籍和科学论文的转换。Marker 能够去除页眉页脚等多余内容,格式化表格和代码块,并提取和保存图像。它还可以将大部分公式转换为 LaTeX 格式,支持在 GPU、CPU 或 MPS 上运行。
功能列表
- 将 PDF 文件转换为 Markdown 格式
- 支持多种文档类型,包括书籍和科学论文
- 去除页眉页脚等多余内容
- 格式化表格和代码块
- 提取并保存图像
- 将大部分方程式转换为 LaTeX 格式
- 支持 GPU、CPU 和 MPS 运行
使用帮助
安装流程
- 安装依赖:确保已安装 Python 3.6 及以上版本,并安装以下依赖:
pip install marker-pdf
- 运行示例:
marker_single /path/to/file.pdf /path/to/output/folder --batch_multiplier 2 --max_pages 10
使用指南
转换单个文件
marker_single /path/to/file.pdf /path/to/output/folder --batch_multiplier 2 --max_pages 10
--batch_multiplier
是在拥有额外 VRAM 的情况下,默认批处理大小的倍数。更高的数字将占用更多的 VRAM,但处理速度更快。默认设置为 2。默认批处理大小大约需要 3GB 的 VRAM。--max_pages
是要处理的最大页面数。省略此项将转换整个文档。--langs
是可选的以逗号分隔的文档语言列表,用于 OCR。默认是可选的,如果使用 tesseract,则需要提供。--ocr_all_pages
是一个可选参数,用于强制对 PDF 的所有页面进行 OCR。如果此参数或环境变量 `OCR_ALL_PAGES` 为真,将强制进行 OCR。
支持的 Surya OCR 语言列表可以在 [这里] 找到。如果您需要更多语言,可以使用任何支持的语言,只需将 OCR_ENGINE
设置为 ocrmypdf
。如果不需要 OCR,marker 可以支持任何语言。
转换多个文件
marker /path/to/input/folder /path/to/output/folder --workers 4 --max 10 --min_length 10000
--workers
是同时转换的 PDF 数量。默认设置为 1,但您可以增加此值以提高吞吐量,代价是增加 CPU/GPU 的使用率。每个工作进程在峰值时将使用 5GB 的 VRAM,平均使用 3.5GB。--max
是要转换的 PDF 最大数量。省略此项将转换文件夹中的所有 PDF。--min_length
是在 PDF 中提取的字符数的最小值,只有超过这个值的 PDF 才会被考虑进行处理。如果您要处理很多 PDF,建议设置此值,以避免对主要是图像的 PDF 进行 OCR(这会减慢处理速度)。--metadata_file
是一个可选的 JSON 文件路径,包含关于 PDF 的元数据。如果提供该文件,将用于为每个 PDF 设置语言。对于 Surya(默认),设置语言是可选的,但对于 Tesseract 是必需的。格式如下:
{ "pdf1.pdf": {"languages": ["English"]}, "pdf2.pdf": {"languages": ["Spanish", "Russian"]}, ... }
您可以使用语言名称或代码。具体代码取决于 OCR 引擎。有关 Surya 代码的完整列表,请参见 [这里],有关 Tesseract 的请见 [这里]。