indra-ocr - 面向 CPU 的轻量文档 OCR 与版面解析模型
indra-ocr 是 datalab-to 发布的 ONNX 文档识别模型,据项目自述可在 CPU 上以每秒 49 页的速度把 PDF 与图片转成 Markdown、纯文本或带坐标框的 JSON,模型体积约 18 MB,无需 PyTorch。本文整理其维护状态、主要能力、使用入口与许可限制。
indra-ocr 是 datalab-to 发布在 Hugging Face 上的一个图像转文本(image-to-text)模型仓库,任务定位是文档识别:把 PDF 与图片转成 Markdown、纯文本,或带行框、版面块与阅读顺序的 JSON。据项目自述,它的设计重心是 CPU 上的吞吐与延迟,主识别器约 100 万参数,模型文件合计约 18 MB,运行在 ONNX Runtime 上,不依赖 PyTorch。它适合需要在普通 x86 服务器或本地机器上批量处理扫描件、数字版 PDF 的开发者,也适合把版面结构(标题、列表、表格、脚注等)作为下游输入的信息抽取流程。需要说明的是,以下能力描述均来自项目自述与 README,本文并未实际运行该项目。
维护者与状态
该仓库由 datalab-to 维护,托管于 Hugging Face,框架标注为 onnx,任务类型为 image-to-text。仓库创建时间为 2026-10-10,最后更新时间为 2026-10-15,属于非常新的项目。截至 2026-10-18,近 30 天下载量为 1053,点赞数为 170。事实表中没有给出正式 release 版本号,因此这里不引用任何版本标签;如需确认发布状态,应以仓库页面为准。
主要能力
据项目说明,indra-ocr 的能力可以分成以下几块:
- 速度与延迟:README 称其在 CPU 上可达每秒 49 页,单页在 4 个 x86 vCPU 上约 230 ms。这些数字是项目自述的对比结果,本文未做复现。
- 版面与坐标框:为每一行和每一个版面块输出边界框,块带标签(标题、列表、表格、图注、脚注、页眉等),并给出阅读顺序。
- 数字版 PDF 处理:优先读取 PDF 自带的文本层,只对缺失部分做 OCR;项目称文本层模式在 75 个语系的 1125 页上验证过,通过检查的页面可保留至少 98% 的字符,从右到左的文字保持原有顺序。
- 扫描与图片 OCR 语种:覆盖拉丁字母(约 50 种语言)、西里尔字母、希腊字母、天城文、孟加拉文,以及简体与繁体中文。
- 输出形态:每页返回 markdown、逐行纯文本、行级框与置信度、版面块、来源标记(文本层 / OCR / 混合 / 错误)、旋转与倾斜校正角度,以及各阶段耗时。
- 本地查看器:附带一个本地 Web 查看器,可叠加显示行、版面块与阅读顺序,并切换管线选项;文件保留在本机。
使用入口
仓库地址为 datalab-to/indra-ocr。据 README,安装与调用方式如下,需要 Python 3.10 或更新版本,首次运行会从 Hugging Face 下载约 18 MB 的模型并缓存:
pip install indra-ocr indra-ocr paper.pdf indra-ocr *.pdf --out results/ indra-ocr scan.png --format json indra-ocr-viewer
命令行支持 --format(md / text / json)、--mode(auto / ocr / text)、--cores、--dpi、--max-pages、--password、--keep-furniture、--math、--timings、--model-dir 等选项。Python 侧可通过 indra_ocr.load() 与 conv.convert() 逐页迭代,或用 convert_many() 多进程批量处理;后者在 macOS 与 Windows 上需要 if __name__ == "__main__": 保护。若已有本地模型副本,可设置 INDRA_OCR_MODEL_DIR 或传入 --model-dir。
许可与限制
事实表标注的许可证为 openrail。项目 README 进一步说明:代码采用 Apache 2.0,模型权重使用修改版 OpenRAIL-M 许可,研究、个人使用以及融资或营收低于 2000 万美元的初创公司可免费使用,且不得用于与其 API 竞争的场景;如需移除 OpenRAIL 要求或更广泛的商业授权,需另行联系。由于事实表只给出 openrail 这一项,具体条款请以仓库 LICENSE 文件为准,本文不对可商用性下结论。
项目自述的已知限制包括:
- 复杂表格:合并单元格、跨行文本、嵌套表头或无框线表格可能出现行列错位,简单网格表格表现较好。
- 手写内容:不支持手写文字。
- OCR 语种边界:阿拉伯文、希伯来文、泰文、日文假名、韩文谚文等只能通过数字版 PDF 的文本层处理,在扫描件与图片上会出错。
- 退化扫描件:项目定位是干净印刷体的高速处理,老旧或质量较差的扫描件不在适用范围内。
此外,数学公式默认不输出 LaTeX,需要显式开启 --math,项目称该选项在含公式页面上会变慢。