Datalab 发布了围绕 100 万参数识别模型构建的 OCR 工具包 Indra OCR,可输出文字、版面结构与阅读顺序。发布方自测称,它在 32 核 CPU 上每秒可处理 49.4 页,吞吐量分别为 PaddleOCR 的 PP-OCR 文本模型和 Tesseract 的 11.5 倍、16.9 倍;不过,默认模式的文本得分仍低于完整文档处理流水线 PP-StructureV3。
据 Datalab 公布的吞吐测试,各工具在同一台无 GPU 的 AMD EPYC 机器上,以 OCR 模式和默认设置处理同样的 300 页文档,每核运行一个单线程工作进程。32 核下,PP-OCR 和 Tesseract 分别达到每秒 4.28 页、2.92 页,Indra OCR 的 49.4 页为 3 次运行的平均值。
上述数据不含模型加载。将加载计入后,Indra OCR 通过 convert_many 处理 300 页任务的吞吐量为每秒 37.7 页。对于带有可用文本层的 PDF,它会直接读取文本层;发布方报告,这类页面的中位耗时为 130 毫秒,需要 OCR 的页面则为 304 毫秒。
Datalab 使用自建的 OmniParseBench 评测准确性,覆盖 2,937 页、16,288 项通过或失败测试。各工具使用默认设置,在 x86 的 4 个 vCPU 上逐页运行。
发布方自测显示,Indra OCR 默认模式总分为 62.1,高于 PP-StructureV3 的 58.4;文本得分为 41.3,低于后者的 55.6,但高于 PP-OCR 的 35.8 和 Tesseract 的 19.3。关闭文本层、仅使用 OCR 时,Indra OCR 文本得分为 33.5,略低于 PP-OCR。
该评测中,Indra OCR 默认模式单页中位耗时为 228 毫秒,PP-StructureV3 为 40,958 毫秒。后者因一个分片运行停滞,结果少计了 19 页。
数学识别默认关闭。开启 --math 后,额外识别器可输出带行内 LaTeX 的文本。官方报告总分升至 66.8,文本得分达到 57.5;表格得分则从 56.4 降至 54.8,原因是部分单元格数字被识别成数学内容。
Indra OCR 可输出 Markdown 或 JSON,并提供行与版块的边界框、版块标签和阅读顺序。Markdown 输出默认移除页眉、页脚,表格以 HTML 表示。
官方列出的局限包括:多级表头、合并单元格或无框线的复杂表格常丢失结构,暂不支持手写与竖排文字。扫描件和图片的 OCR 支持拉丁、西里尔、希腊、天城、孟加拉文字及简繁中文;阿拉伯文、日文假名、韩文等只能通过数字 PDF 的文本层读取。
代码已在 GitHub 的 datalab-to/indra 仓库公开,模型托管于 Hugging Face 的 datalab-to/indra-ocr,可通过 pip install indra-ocr 安装。