首页
看点啥
插画图片
首页 看点啥 个人电脑玩AI-08让5060 Ti给你打工——我拿 Unlimited-OCR扫了 600 页书然后悟了

个人电脑玩AI-08让5060 Ti给你打工——我拿 Unlimited-OCR扫了 600 页书然后悟了

2026-07-06 0

前言:我拿 VLM 扫了 600 页书,然后悟了

先说结论——Unlimited-OCR 是我目前用过单页效果最强的文档解析工具,没有之一。 但如果你听信某些教程,去试它所谓的“多页批处理”接口,那大概率会在第 3 页就看着显存飙红、程序崩掉。正确且唯一有效的姿势,就是写个 for 循环,一页一页地喂,让它每页都“失忆”一次。 我就是用这种“笨方法”,在 5060 Ti 16G 上成功啃完了 600 多页排版爆炸的技术书,输出 Markdown 质量吊打 PaddleOCR 十条街。

个人电脑玩AI-08让5060 Ti给你打工——我拿 Unlimited-OCR扫了 600 页书,然后悟了

下面把我的血泪经验全摊开,包括为什么必须逐页循环、怎么把 600 页跑稳、以及合并脚本怎么写,顺便吐槽一下那些“伪多页”的坑。

第一铁律:OCR 就是 OCR,别让它干编辑的活

这条是我用爆显存换来的教训,必须写在最前面:

PaddleOCR 这么干过,崩了;Unlimited-OCR 我也试过,加了 “请修正错别字”,单页推理从 5 秒变 30 秒,显存从 10G 飙到 15.8G,第三页直接 OOM。所以我的 prompt 永远焊死成官方原版:

prompt='document parsing.' # 多一个单词都不要!

错别字、逻辑问题,那是人眼和 LLM 的事,别在 OCR 这一步瞎操心。

为什么我抛弃 PaddleOCR,死磕 Unlimited-OCR?

PaddleOCR 快是快,但面对多栏、表格、公式,它吐出来的就是一坨“线性文字”——左栏读到一半跳右栏,表格变成空格分隔的灾难,公式全成乱码。我花在“修复结构”上的时间,比跑 OCR 本身还多。

而 Unlimited-OCR 是端到端的 VLM,直接输出带 Markdown 结构的文本:

单页效果简直是艺术品。但问题来了——怎么把艺术品安全地拼成 600 页的“连环画”?

大坑:官方“多页模式”是个纸老虎

我在网上看到有人吹 Unlimited-OCR 可以直接传 PDF 路径,内部自动处理多页。于是我也试了试,结果:

后来翻源码才明白,官方那个“多页”其实就是把 PDF 转成图片列表,然后 for 循环调用同一个模型——但它没有做任何显存管理和输出聚合,效果还不如我们自己写循环。所以我的结论是:

我的“笨方法”:逐页循环,稳如老狗

既然官方靠不住,那就自己动手。我的完整流水线如下:

1. PDF 转图片(用 PyMuPDF 或 pdf2image)

import fitz# PyMuPDFpdf = fitz.open("book.pdf")for page_num in range(len(pdf)):page = pdf[page_num]pix = page.get_pixmap(dpi=200)pix.save(f"page_{page_num+1:03d}.png")

2. 逐页调用 Unlimited-OCR(千万别开任何“批处理”参数)

for page_num in range(1, total_pages+1):img_path = f"page_{page_num:03d}.png"model.infer(tokenizer,prompt='document parsing.', # 焊死!image_file=img_path,output_path=f"./output/page_{page_num:03d}",base_size=1024,image_size=640,crop_mode=False,# 书本排版整齐,关掉更省显存max_length=32768,no_repeat_ngram_size=35,ngram_window=128,save_results=True,)# 每页跑完清一下缓存,防止碎片堆积torch.cuda.empty_cache()

关键点:

3. 合并脚本(灵魂所在)

光输出一堆碎片文件没用,必须合并成一本完整的 Markdown。我的合并脚本做了这几件事:

整套脚本跑完,600 页直接变成一个 5MB 的 book.md,导入 Obsidian 后大纲清晰,搜索公式、跳转章节丝般顺滑。

为什么逐页循环反而比“批处理”更好?

  1. 显存可控:每页处理完释放,不会累积。
  2. 输出干净:每页独立,合并脚本可以精准控制标题编号和跨页元素。
  3. 容错性强:万一某页崩了,只需要重跑那一页,不用全部重来。
  4. 可以并行:如果你有多张卡,可以分页并行跑,但我一张 5060 Ti 串行也够用。

给后来者的终极忠告

最后,为“单页循环”正名

有人说“逐页循环太 low,不够智能”,但我想说——在 GPU 资源有限的情况下,稳定、可控、高质量,比花里胡哨的“原生多页”重要一万倍。 我用这套流水线处理了 600 页,成果是一份可以直接出版级的 Markdown 文档,而某些“高级批处理”可能连 50 页都跑不下来。

所以,如果你也想用 Unlimited-OCR 处理多页文档,别犹豫,直接上循环。代码我都给你备好了,拿去抄就行。

本章代码(含 PDF 转图、逐页 OCR、合并脚本)已上传至 Gitee

喜欢(0)

上一篇

Claude Code 源码解密:Anthropic 是怎样构建 AI 编程助手的

Claude Code 源码解密:Anthropic 是怎样构建 AI 编程助手的

下一篇

Trae远程开发中DeepSeek自定义模型4054错误的排查及修复

Trae远程开发中DeepSeek自定义模型4054错误的排查及修复
猜你喜欢