hotai.news
← 返回专题分析AI 开源 / 本站分析

文档 OCR 认对了字却读乱了顺序,indra 这类工具怎么选?

核对 Indra OCR 1.1.2 的原仓库和 CLI 源码,说明 CPU 安装条件、PDF 文本层与 OCR 模式、JSON 阅读顺序,以及复杂表格、手写和模型许可限制。

HotAI.news 来源核对(Codex)发布于 2026-10-14来源核对于 2026-10-20
先说结论

怎么判断?

先把文字准确性与阅读顺序分开核对,再决定是否接入。Indra OCR 可在 CPU 上把 PDF 或图片转为 Markdown、文本及带坐标的 JSON;默认 auto 模式会优先利用通过检查的 PDF 文本层,缺失部分再做 OCR。本次核对的源码版本为 1.1.2,要求 Python 3.10 或更新版本。本文依据官方 README 和 CLI 源码提供复现步骤,未安装模型,也未测量中文识别率或处理速度。

01

先确认本地运行需要哪些文件

项目依赖 ONNX Runtime、OpenCV 和 pypdfium2,不要求 PyTorch 或 GPU。README 列出的已测环境包括 Linux 与 Apple silicon macOS;其他设备应自行验证。首次运行会下载约 76 MB 的默认模型,之后使用缓存;离线处理前需要准备模型文件,并通过 --model-dir 指向本地目录。

以下命令沿用官方安装与 CLI 用法,并限制为前两页、四个 CPU 核,便于小范围试用。安装后先记录 --version 的输出,因为软件包版本可能与 GitHub main 不同。执行示例会真实读取 sample.pdf 并产生结果文件;本文没有执行这些命令,样本文件需由使用者自行准备。

python3 -m pip install indra-ocr
indra-ocr --version
indra-ocr sample.pdf --max-pages 2 --cores 4 --format json --out results/ --timings
02

不要把文本层提取误当识别结果

auto 模式会混合使用 PDF 文本层与 OCR,--mode ocr 则忽略文本层,重新识别每页。比较工具时要记录实际采用的模式,否则可复制文字的 PDF 与纯扫描件会得到不同处理。需要专门测试 OCR 时,可对同一份样本追加 --mode ocr,另存结果再比较。

CLI 的 JSON 输出会写成每页一个对象的 JSONL 文件,source 字段标明实际处理方式。把它与原始 PDF 是否带有文本层一起记录,才方便解释结果差异。输出顺序正确,也不能反推所有字词都正确,需要另外抽查原图中的关键数字和专有名词。

输出内容适合检查什么
lines逐行文字、置信度与坐标
blocks标题和正文等区块的阅读顺序
source / timings实际处理方式与各阶段耗时
03

用分栏样本对照段落阅读顺序

准备一页常见的双栏扫描件。人工给标题和正文段落标序号,再把图注、脚注标在各自的位置。对照 JSON 中 blocks 的顺序,查看左栏是否接到了右栏的中间,或页脚是否插入正文。保留这份人工参照,后续升级模型时可以重复检查同一页。

再用输出完成一次实际任务,例如查找某条款的条件,并回到原图确认条件与结论仍属同一段。若后续要交给模型摘要,顺序错误可能被改写成一段通顺但含义错误的文字。这里提出的是验证方法,不能作为 Indra 已经通过该样本的证明。

04

复杂表格和手写材料另做判断

原仓库明确把复杂表格和退化扫描件列为限制。跨行合并单元格、没有边框的表格,可能出现行列错配;手写页也不能照搬印刷体的表现。中文或日文竖排还有跨版面文章顺序问题,数学转 LaTeX 需要另开 --math,且会增加处理时间。

代码采用 Apache 2.0,模型权重使用修改后的 OpenRAIL-M,不能把两者视为同一许可。README 写有研究、个人及融资或收入低于 2,000 万美元创业公司的免费范围,并限制与其 API 竞争的用途;正式使用前应读取完整权重许可。本文没有核验任何商业授权资格。

核对来源

以下链接支持文中的项目描述或事件事实。本站判断由编辑撰写,未把来源中的主张当作本站实测结论。

返回AI 开源 ↗