CV君 2025-06-19 23:30 江苏
Github 仓库已经斩获2.5K星标
关注公众号,发现CV技术之美
最近华中科技大学主导开源的一款文档解析模型引起了业界关注,相比以往模型提高了在公开数据集上的识别精度、提高了速度,其模型参数量为3B,可在单机单卡(3090)上部署,非常值得关注。
MonkeyOCR 论文的比较对象是专业从事文档解析的开源工具 MinerU 和开源甚至闭源的商业大模型。
从上图可知,MonkeyOCR 整体上精度提升明显,且推理速度更快!
MonkeyOCR 的设计哲学
论文中认为文档解析的两条主流路径各有自己的问题。
基于管线的方法(Pipeline-based)将文档解析任务拆解为多个小任务,能够针对每个任务进行优化,但容易受到错误累积的影响。比如常拆解的任务流程:布局识别、区域分割、文本识别、表格识别、公式识别、结构重组,每个任务使用独立模型,这种设计哲学累积早期阶段的错误,后面任务的的模型再强也无法弥补。
另一种端到端大模型的方法,不考虑文档的结构和任务分解,让模型直接从文档推断出结构化结果,计算量上的挑战很大。
MonkeyOCR 则是一种居中的设计,Structure-Recognition-Relation (SRR)三元组方式:文档以目标检测(使用的YOLO)的形式被切分为块(Structure),每一块输入到端到端的大模型中进行识别(Recognition)(分块后会使得LLM推理计算量大大下降),然后结合文档结构和识别到的具体内容来预测多个块内容之间的关系(Relation)。
问题关键:数据集的构建
以上 MonkeyOCR 论文中提出的 Structure-Recognition-Relation (SRR) 三元组方法并不难理解,但要实现有效的模型训练,需要有标注的大量的数据,实际上论文在此处的介绍颇多。
作者构建了一个大规模文档解析数据集 MonkeyDoc,下表展示了其与其他常见数据集的对比:
下图展示了数据的文档类型(PPT、笔记、杂志、试卷等)、结构分块示例(表格、图像、文本、公式等)。
数据集的生成,充分利用了开源数据集、可解析的PDF文档、数据合成方法、专家大模型的自动标注结果。
(没有仔细确认)粗略计算,作者构建了上百万有标注的训练数据。
实现与结果
下图展示了 MonkeyOCR 文档解析的过程,实际实现中使用针对文档结构识别的 DocLayout-YOLO做结构检测,在 32 个 A800 显卡训练 53 个小时。
实验结果显示,MonkeyOCR 与同样开源的专用模型MinerU、开源的多模态大模型Qwen2.5-VL、闭源的大模型GPT4o相比,整体上取得了更好的结果,尤其在中文内容的识别上的领先似乎更明显。
实际测试
作者提供了可直接体验的 demo:http://vlrlabmonkey.xyz:7685/ ,大家可以试玩一下。
因为之前做过一点药方识别工作,我顺手在百度下载了一张图片测试,并把结果和 MinerU 进行了比较:
从这一张图看,MonkeyOCR 的结构检测这块还是蛮好的,因为识别出药方中间部分是表格,所以最终结果也是以表格展示,不过遗憾的是“茯苓”的茯识别错了。
另外,在试用这个demo网站的时候,多次发现图片文件上传和解析时系统提示error的情况,貌似网站对于分辨率大的图片处理有bug,如果大家测试最好不要图片太大。
总之,对于从事文档解析方向研究和工程的同学来说,MonkeyOCR 都是一个值得尝试的选项。
END
欢迎加入「OCR」交流群👇备注: