把 OCR 当成一条可配置的管线

docTR(Document Text Recognition)和一次调用的 OCR 库立场不同:它把 OCR 暴露成你可以配置的两个阶段。一个检测模型找出文字在哪,一个识别模型把它读出来,每个阶段的架构由你选。这让它成为那些「想调速度与准确率权衡、而不接受黑盒」的团队会用的 OCR 库。它由文档 AI 公司 Mindee 维护,跑在 PyTorch 上,截至 2026-06 有 6,140 星,比头部引擎小,但工程打磨得像一个在维护的产品。

这个偏小的 star 数其实低估了它。只有约 30 个未决 issue,它是本列表里维护得较好的 OCR 项目之一。

它做什么

你建一个 ocr_predictor,指它到一份文档,拿回按页、块、行、词组织的结构化输出,每个都带几何位置。因为检测和识别是分开的,你可以把一个更快的检测器换成更准的,或换一个更贴合你文字的识别模型,而不必重写代码。它还提供做关键信息抽取的 KIE predictor,以及对旋转页面的方向处理。

安装

第一件要弄对的事是包名,因为它不是 doctr:

pip install python-doctr

可选 extras 加上可视化和 HTML 支持,比如 pip install "python-doctr[viz,html]"。导入时写 from doctr.models import ocr_predictor。注意从 1.0 版起,TensorFlow 后端已弃用,docTR 现在以 PyTorch 为主;如果你之前靠 TF serving,那条路没了。

选模型

灵活性就是它的卖点,所以最关键的选择是你把哪些模型接在一起。检测有 DBNet、LinkNet、FAST 等架构,在延迟和准确率之间取舍。识别有 CRNN、PARSeq、ViTSTR 等选项,在不规则文本和较长文本上表现不同。默认 predictor 是个合理起点;真正的价值,来自你对自己的文档做剖析、再换掉某个组件去贴合它。

适合与不适合

想要一条可定制的 OCR 管线、能对自己的文档类型做剖析和微调、又想要一个维护中的 Apache-2.0 库加干净的 Python API 时,选它。它适合把文档处理做进产品里的工程团队;只跑一次性脚本的话,它偏重了。

如果你只想一行从图像里取文字,它就杀鸡用牛刀了,那种场景 EasyOCR 上手更快。它的生态比大引擎小、预训练语言更少,不再支持 TensorFlow 后端,而且自训练模型若不当心会比预训练模型慢很多。它也不开箱做表格结构识别。

docTR 和其它 OCR 引擎的对比

docTREasyOCRTesseractPaddleOCR
Stars6,14029,61674,73782,109
设计两阶段,模型可换一次调用 API引擎加包装predictor API
后端PyTorch(TF 已弃)PyTorchC++PaddlePaddle
可定制
维护活跃,未决 issue 少放缓活跃活跃

数字为截至 2026 年 6 月的 GitHub 数据。EasyOCR 做快速多语言活儿上手更快,但维护放缓。Tesseract 是轻量的 CPU 经典。PaddleOCR 覆盖广、中日韩强。docTR 的独门价值,是一条活跃维护、可配置的管线,代价是更陡的学习曲线。

star 曲线

star 曲线稳步上行,这符合一个聚焦的工程库:靠搭文档管线的团队口口相传慢慢长。它进入 2026 年仍持续、活跃的发布节奏,印证了维护信号。

issue 区给你的预警

这里的 issue,是一个维护中的项目正常会浮现的那类。自训练检测模型可能比预训练的慢很多,所以剖析过再认定微调是免费升级。检测质量对图像缩放敏感,所以在你的真实输入分辨率下测试。有人想要更广的语言词表和表格结构识别,这些是要自己接的扩展点。还有 v1.0 弃用 TensorFlow,对原本在那个后端上的人是一次真实迁移。未决 issue 少,这点说明响应速度好。

相关仓库

要一行的多语言起步,看 EasyOCR。要轻量的 CPU 经典,看 Tesseract。要强中日韩,看 PaddleOCR。要把解析出的文档转成喂 LLM 的 Markdown,看 doclingunstructured。想看什么在涨,见 每日榜每周报告

常见问题

docTR 的 pip 包名是什么?python-doctr,不是 doctr。用 pip install python-doctr 装,然后 from doctr.models import ocr_predictor 导入。

docTR 还是 EasyOCR,该用哪个? docTR 给你一条可配置的两阶段管线,模型可换、维护活跃,适合做进产品。EasyOCR 是一次调用 API,做快速活儿上手更快。要可调管线用 docTR,要最快出结果用 EasyOCR。

docTR 还支持 TensorFlow 吗? 不支持了。从 1.0 版起 TensorFlow 后端已弃用,docTR 现在以 PyTorch 为主。若你依赖 TF serving,要规划迁移。

docTR 能商用吗? 能,它是 Apache-2.0,由文档 AI 公司 Mindee 维护,许可证对商业用途宽松。

该选哪个检测和识别模型? 先用默认 predictor,再对你的文档做剖析、换组件。检测如 DBNet、LinkNet、FAST 在速度和准确率间取舍;识别如 CRNN、PARSeq、ViTSTR 在不规则和较长文本上表现不同。