乐于分享
好东西不私藏

扫描版 PDF “又聋又哑”?别手打,用 Marker 让它“开口说话”

扫描版 PDF “又聋又哑”?别手打,用 Marker 让它“开口说话”

你找到一篇关键论文,打开 PDF:每页都是图片,Ctrl+F 搜不了。想定位一个材料名或摘录一段方法描述,只能对着屏幕逐字敲。分辨率偏低、字迹边缘模糊、带噪点的扫描件,或是盖着图书馆印章的旧论文,处理起来更棘手。

手工打字既慢,也容易漏掉上下文。Marker 的处理价值正好对应这个场景:先把扫描页解析成可搜索、可复制、可继续整理的 Markdown 或 JSON 工作稿。

图 1|扫描页到 PDF 解析工作稿。 从不可选中的图片,到可以搜索、复制和标注的文本。

1. 先解析扫描 PDF:工作稿比单纯识别更有用

扫描页最先要解决的,不是排版有多漂亮,而是先恢复文字层。Marker 会在必要时使用基于 Surya 的 OCR 引擎,同时处理标题、段落、阅读顺序、表格、公式和图片,并输出 Markdown、JSON、HTML 或 chunks。

Marker 不只是把图片转成字符:它会把 OCR、版面和阅读顺序放在同一条 PDF 转换链里处理。所以扫描页 OCR 只是它处理 PDF 的一个入口,在识别文字的同时也关注页面结构等信息的解析处理。

图 2|Marker 的 PDF 解析工作稿。 先得到可搜索的工作稿,关键细节仍要回原 PDF 核对。

2. 安装与配置:装好 Marker,还要准备 Surya 推理后端

Marker 项目本体使用 pip install marker-pdf 安装。想要对没有文字层的扫描 PDF 做解析,还需要准备作为 OCR 引擎的 Surya 推理服务。Marker 首次运行会尝试启动服务,模型和推理后端配置有两种:

CPU 路径:llama.cpp + Surya GGUF 模型。

NVIDIA GPU 路径:Docker + NVIDIA Container Toolkit + vLLM + Surya 模型。

图 3|Marker 官方安装与推理后端说明。 安装 Marker 后,扫描 OCR 仍需按硬件准备 Surya 推理后端。

两条路径按硬件二选一,不需要同时安装。准备好其中一套推理环境后,扫描页或乱码文字层再加 --force_ocr

marker_single paper.pdf --force_ocr --output_format markdown --paginate_output

--force_ocr 会让整份文档重新走 OCR;如果只有少数页面异常,可以再用 --page_range 缩小处理范围。它解决的是“没有可用文字层”,不能恢复原图里已经模糊或被印章遮住的字符。

3. 从检索到引用:能定位,不能定稿

Marker 生成的工作稿,最适合先做检索入口。输入材料名、方法名或关键词,先定位它出现在哪一页,再回到对应页面看上下文,比对着扫描图逐页翻找更省力。

找材料名、方法名、关键词: 工作稿可以直接承担,核对命中页是否对应。

阅读普通正文、整理线索: 可以先用工作稿,核对段落上下文和页码。

写入调研表、方案或引用: 不能直接用,数字、单位、公式、表格、图注和脚注都要回原 PDF 核对。

扫描件的解析质量决定工作稿能否直接使用。最危险的不是整段乱码,而是只错一个字符:例如把 10⁻³ 识别成 10³,句子仍然通顺,数值含义却已经变了。

所以拿到工作稿后,按这个顺序确认一遍:

先搜一个已知关键词,确认输出确实可检索。

再按页码回原 PDF,确认标题、段落和上下文没有错位。

最后挑一个数字或公式;核对通过,才能写进正式材料。

手上那篇让人头疼的扫描论文,今天可以先输出一份带页码分隔的 Markdown:搜一个目标词,再抽查一个数字或公式。关键词命中但页码对不上,只把结果当检索线索;数字或公式无法回原页确认,就不要写进调研表或文章引用。

下一步问题|正文能复制,双栏粘贴却乱序怎么办?

下一期看 Docling:当难点从"读不出来"变成"顺序读不对",该怎样恢复论文的阅读结构。