把 OCR 重新定义成"视觉文本压缩"——一个 VLM 吃下整页文档,端到端输出
更新于 2026-08-06 · 2026/01/27 发布 OCR2
← 返回汇总不叫 OCR,叫"上下文光学压缩"——重新审视视觉编码器的角色
DeepSeek 官方开源的视觉语言模型,用单一 VLM 端到端处理图片和 PDF 的文字识别。核心创新是 Contexts Optical Compression(上下文光学压缩)——从 LLM 中心视角研究 vision encoder 如何高效压缩视觉文本。不走传统 OCR 多模型串联路线,一个模型搞定版面、公式、表格、多语种。
并发推理吞吐约 2500 tokens/s(单卡 A100-40G)。已被 vLLM 上游官方支持。
传统 OCR 是"检测文字 → 识别文字"的流水线。DeepSeek-OCR 换了个视角:OCR 的本质是把图像里的文字信息,压缩成 LLM 能理解的 token 序列。既然如此,何不直接用 VLM 做端到端的"光学压缩"?
# 环境:CUDA 11.8 + torch 2.6.0 from vllm import LLM, SamplingParams from vllm.model_executor.models.deepseek_ocr import NGramPerReqLogitsProcessor from PIL import Image llm = LLM(model="deepseek-ai/DeepSeek-OCR", enable_prefix_caching=False, mm_processor_cache_gb=0, logits_processors=[NGramPerReqLogitsProcessor]) image = Image.open("doc.png").convert("RGB") prompt = "<image>\n Free OCR." output = llm.generate( [{"prompt": prompt, "multi_modal_data": {"image": image}}], SamplingParams(temperature=0.0, max_tokens=8192, extra_args=dict(ngram_size=30, window_size=90), skip_special_tokens=False)) print(output[0].outputs[0].text)
| 项目 | 定位 | 技术路线 | 原生文本 PDF | 扫描件 | 关系 |
|---|---|---|---|---|---|
| pdf-inspector | 路由 + 规则解析 | 纯 Rust,零 ML | 极快 | ❌ | 上游互补:原生文本它处理,扫描件交给 DeepSeek-OCR |
DeepSeek-OCR | VLM 模型 | 单一视觉语言模型 | 慢 | ✅ 强 | — 本页 — |
| MinerU | 端到端产品 | VLM+OCR 双引擎 | 慢 | ✅ | 直接竞品:同为 VLM 路线,MinerU 工程更完整 |
不要二选一,组合使用才是生产最优解:
pdf-inspector 直接提取,亚秒级,零 GPU 成本。
按需选:DeepSeek-OCR(单模型简洁)或 MinerU(工程生态全)。GPU 只花在真正需要的地方。
DeepSeek 品牌 + MIT License + 学术创新的组合很有杀伤力。"单一 VLM 吃天下"的路线如果精度持续领先,可能倒逼 MinerU 这类多引擎方案简化。但当前工程成熟度不足,更适合作为 MinerU VLM 后端的替代/竞品来评估,而非直接上生产。
OCR 的未来可能就是一个 VLM——DeepSeek-OCR 是这条路线的旗舰样本。
如果你的文档以扫描件为主、追求单模型简洁、能接受自己搭工程,DeepSeek-OCR 值得一试。若要开箱即用的完整产品,MinerU 仍是更稳的选择。最佳实践是让 pdf-inspector 先把简单的 PDF 过滤掉,再让两者处理真正需要 OCR 的部分。