先锐评几句:
AI文档解析其实挺重要的,以我自己为例,做很多别的ai任务时,都需要OCR作为基础,如果这块做的不好,影响后续一系列的工作。
最近华中科技大学(HUST)主导开源的一款名为 MonkeyOCR 的文档解析模型还挺火的。它不光在公开数据集上识别精度超越了某些闭源大模型(包括GPT4o),速度还更快,更重要的是,它可在单机单卡(3090)上部署,参数量仅为3B。
高精度、快速度、低门槛的文档解析,真的可能实现吗?
(这名字好难听,谁起的,猴子OCR。。)
初见MonkeyOCR:开源新星,实力不凡
这款引起业界广泛关注的MonkeyOCR文档解析模型,其主要作者团队来自华中科技大学和金山。它在GitHub仓库已迅速斩获2.5K星标,足见其受关注程度和潜力。
MonkeyOCR 在论文中直接对标的,是专业从事文档解析的开源工具MinerU,以及包括GPT4o在内的开源或闭源的商业大模型。它的目标很明确:要在精度和速度上都做到行业领先。
- 论文链接: https://arxiv.org/abs/2506.05218
- 代码仓库: https://github.com/Yuliang-Liu/MonkeyOCR
- 在线体验: http://vlrlabmonkey.xyz:7685/
从OmniDocBench数据集的对比结果来看(如下图所示),MonkeyOCR 在整体精度上提升明显,而且推理速度也确实更快,这对于实际应用来说,是实打实的性能飞跃。
OmniDocBench 数据集与其他 SOTA 技术的比较结果
MonkeyOCR的设计哲学:一条折中但高效的路径
论文中,作者首先对当前文档解析的两条主流技术路径提出了独到的“批评”:
基于管线的方法(Pipeline-based):
这种方法将文档解析任务拆解为多个独立的小任务,比如布局识别、区域分割、文本识别、表格识别、公式识别、结构重组等,每个任务都用独立模型优化。这样做的好处是每个环节可以精细调优,但致命缺点是容易受到错误累积的影响。早期阶段的识别错误,会像滚雪球一样影响后续任务,导致“一步错,步步错”,后面再强的模型也无法弥补。Pipeline-based 方法错误累积示例
端到端大模型的方法:
这类模型直接从原始文档推断出结构化结果,不考虑文档的内部结构和任务分解。它们虽然思路简洁,但面临巨大的计算量挑战,尤其是在处理高分辨率或复杂文档时,推理成本非常高。
MonkeyOCR 则巧妙地选择了一条居中的设计,提出了一种名为 Structure-Recognition-Relation (SRR) 的三元组方式:
- Structure(结构): 文档首先通过目标检测(这里使用了强大的 YOLO 模型)被切分为一个个独立的“块”(比如文本块、图片块、表格块等)。这一步是为了提前识别文档的物理结构。
- Recognition(识别): 每一个被切分出来的“块”,会单独输入到端到端的大模型中进行识别。由于文档被分成了小块,LLM(大型语言模型)的推理计算量会大大下降,效率自然就上来了。
- Relation(关系): 最后,模型会结合文档的整体结构信息和识别到的具体内容,来预测这些“块”之间内在的逻辑关系(比如这段文字属于哪个标题,这个表格和哪个段落相关联)。
这种SRR设计哲学,既避免了纯管线方法的错误累积,又大幅降低了端到端大模型的计算负担,是实现高效高精度文档解析的关键。
核心突破:大规模高质量数据集MonkeyDoc的构建
理解了MonkeyOCR的设计思路后,你可能会觉得SRR三元组方法本身并不算特别“新颖”。但要实现一个真正有效的AI模型,尤其是文档解析这种对数据质量要求极高的任务,大规模、高质量的标注数据才是真正的核心! 这也正是MonkeyOCR论文中着墨颇多的地方。
作者团队构建了一个名为 MonkeyDoc 的大规模文档解析数据集,它的规模和多样性都超越了常见的同类数据集(具体对比见下表):
MonkeyDoc 数据集与其他文档解析数据集比较
MonkeyDoc 不仅包含了多种文档类型(如PPT、笔记、杂志、试卷等),还详细标注了各种结构分块(表格、图像、文本、公式等),如下图的数据样例所示:
MonkeyDoc 包含的标注数据样例和合成数据样例
这个数据集的生成过程也颇具匠心,它充分利用了多种来源和方法:
- 利用现有开源数据集: 整合已有的优质资源。
- 可解析的PDF文档: 直接从PDF中提取结构化信息。
- 数据合成方法: 通过算法自动生成大量多样化的数据,扩充样本。
- 专家大模型的自动标注结果: 引入顶尖AI模型的标注能力,提高标注效率和质量。
MonkeyDoc 数据集生成的三大核心阶段
粗略计算,作者团队通过这些方法,构建了上百万级别的有标注训练数据,这无疑是MonkeyOCR模型成功的关键基石。
实现细节与亮眼实验结果
MonkeyOCR 在实际实现中,使用了专门针对文档结构识别的 DocLayout-YOLO 来进行结构检测。整个模型在32个 A800 显卡上训练了53个小时,这对于一个高性能AI模型来说,是标准且必要的投入。
MonkeyOCR 整个文档解析过程示意图
实验结果令人印象深刻!MonkeyOCR 与同样开源的专用模型 MinerU、开源的多模态大模型 Qwen2.5-VL,以及闭源的商业大模型 GPT4o 进行了对比。结果显示,MonkeyOCR 在整体上取得了更好的性能,尤其在处理中文内容识别上的领先优势似乎更为明显。
在 OmniDocBench 数据集上不同任务上的对比结果
在 OmniDocBench 数据集上跨9种 PDF 页面类型比较结果
实测体验:优点突出,小问题也别忽略
作者提供了可直接体验的Demo网站:http://vlrlabmonkey.xyz:7685/,非常推荐大家亲自上手试玩一下。
(最喜欢有demo的了!!!这点夸夸)
在网上下载了一张药方图片进行测试,并把 MonkeyOCR 的结果和常用的 MinerU 进行了对比:
MinerU 客户端测试结果
MonkeyOCR 官网测试结果
从这张图片来看,MonkeyOCR 的结构检测确实做得蛮好的,因为它准确识别出药方中间部分是表格,所以最终结果也是以表格形式展示,结构化能力很强。不过,也遗憾地发现一个小问题: 图片中的“茯苓”的“茯”字识别错了。这说明在某些特定字体或手写体识别上,仍有提升空间。
另外,在试用这个Demo网站的时候,我多次遇到图片文件上传和解析时系统提示错误的情况。貌似网站对于分辨率特别大的图片处理有Bug,如果大家测试,最好不要上传过大的图片,这是个小“坑”哦。
总结:未来可期,值得一试!
总而言之,对于从事文档解析方向研究和工程的同学来说,MonkeyOCR 无疑是一个非常值得关注和深入尝试的开源项目。它在高精度、高速度、低部署门槛之间找到了一个很好的平衡点,尤其是其独特的设计哲学和大规模数据集构建方法,为业界提供了宝贵的参考。
虽然目前在个别字符识别和Demo稳定性上还有一些小瑕疵,但这丝毫不影响它作为一款潜力巨大的开源模型,未来在文档自动化、知识提取等领域发挥重要作用。
也希望大家可以在评论区说说,你们在实际情况中用过那些ocr或者文档解析比较好用的