doctr

用 PyTorch 或 TensorFlow 快速实现文档文字检测与识别

docTR 是一个基于深度学习的 OCR 库,专注于文档文本识别,由 t2k 团队持续维护。它解决了从文档图像中高效、准确地检测和识别文字的问题,提供了文本检测和文本识别两大核心能力。docTR 支持 PyTorch 和 TensorFlow 两种主流深度学习框架,用户可以根据自己的技术栈灵活选择。其设计强调无缝集成和高性能,提供了简洁的 API 和预训练模型,方便开发者快速构建 OCR 应用。此外,docTR 还支持多语言识别,并提供了可访问性考虑,适合处理扫描文档、截图、自然场景图像等多种输入。项目在 GitHub 上拥有超过 6200 星标,属于成长中的活跃项目,社区反馈积极。

开源 free 计算机视觉
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 6361
维护状态 活跃
是否开源
定价模式 free

项目数据

分类计算机视觉
开发团队mindee
所属国家
定价模式free
价格说明开源库,Apache-2.0 许可证,完全免费,可自行部署使用。
访问状态
是否开源
开源协议Apache-2.0
主要语言Python
技术栈/模型deep-learning,document-recognition,ocr,optical-character-recognition,pytorch,tensorflow2,text-detection,text-detection-recognition,text-recognition
GitHub 星标★ 6361
30天Star增速
HF 下载量
上线时间2021-01-08 00:00:00
最近更新2026-09-22 00:00:00
维护状态活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-10
浏览次数4

使用教程

难度:入门 约 15 分钟 部署方式:库/依赖 8 步

环境要求

  • Python 环境与 pip(README 未指定最低版本)
  • 如需可视化结果,需额外安装 matplotlib 与 mplcursors
  • 如需解析网页 URL,需额外安装 weasyprint
  • 本地 Demo 需要 Streamlit 依赖
  • 使用 Docker GPU 镜像时,宿主机 CUDA 需不低于 12.2 并配置 NVIDIA Container Toolkit

安装与启动步骤

  1. 1安装 docTR

    使用 pip 安装核心库,即可获得文本检测与识别能力,支持 PyTorch 后端。

    pip install python-doctr
  2. 2安装可选依赖

    需要可视化、HTML 解析和 contrib 模块时再安装这一组附加依赖。

    pip install "python-doctr[viz,html,contrib]"
  3. 3加载预训练模型

    用 ocr_predictor 指定检测与识别架构,pretrained=True 会自动下载权重。

    from doctr.models import ocr_predictor
    
    model = ocr_predictor(det_arch="db_resnet50", reco_arch="crnn_vgg16_bn", pretrained=True)
  4. 4读取文档

    支持 PDF、图片,也支持从 URL 读取网页(需 weasyprint)。把路径换成自己的文件。

    from doctr.io import DocumentFile
    
    pdf_doc = DocumentFile.from_pdf("path/to/your/doc.pdf")
    single_img_doc = DocumentFile.from_images("path/to/your/img.jpg")
    webpage_doc = DocumentFile.from_url("https://www.yoursite.com")
  5. 5执行识别并导出

    推理得到 Document 对象,可直接 show() 查看或 export() 成可转 JSON 的嵌套字典。

    result = model([single_img_doc])
    result.show()
    json_output = result.export()
  6. 6启动本地 Demo

    先安装 demo 专用依赖(含 Streamlit),再用 streamlit 命令在浏览器中打开应用。

    pip install -r demo/pt-requirements.txt
    streamlit run demo/app.py
  7. 7部署本地 API

    进入 api 目录安装 poetry 与依赖,再用 uvicorn 启动带自动文档的 OCR 服务。

    cd api/
    pip install poetry
    make lock
    pip install -r requirements.txt
    uvicorn --reload --workers 1 --host 0.0.0.0 --port=8002 --app-dir api/ app.main:app
  8. 8用容器跑 API

    也可用 docker-compose 一键构建并后台启动同一套 API,端口由 PORT 指定。

    PORT=8002 docker-compose up -d --build

关键配置

配置项必填说明示例
det_arch文本检测模型架构名称db_resnet50
reco_arch文本识别模型架构名称crnn_vgg16_bn
pretrained是否加载预训练权重,默认按需开启True
PORTdocker-compose 启动 API 时映射的端口8002

如何确认成功

API 启动后访问 http://localhost:8002/redoc 能看到自动生成的接口文档,说明检测、识别、OCR、KIE 路由已就绪。

常见问题

Q:Docker 镜像里 GPU 跑不起来怎么办?

A:镜像基于 CUDA 12.2,宿主机 CUDA 需不低于 12.2,并按 NVIDIA Container Toolkit 安装指南配置 Docker 的 GPU 支持,否则 Torch 无法初始化 GPU。

Q:show() 或 from_url() 报缺少依赖?

A:show() 需要 matplotlib 与 mplcursors,from_url() 需要 weasyprint,安装 python-doctr[viz,html,contrib] 即可补齐。

Q:文档示例请求地址为何和启动端口不一致?

A:README 中 API 实际监听 8002,而请求示例写的是 8080,请以你启动时指定的端口为准自行替换。

Q:如何把识别结果给下游系统?

A:用 result.export() 导出嵌套字典,结构为 Page/Block/Line/Word,便于直接转成 JSON 传输。

注意事项

  • README 未给出 pip install 之外的最小 Python 版本要求,建议使用较新的 Python 环境。
  • Docker 镜像标签见 GitHub Packages 页面,GPU 运行需加 --gpus all 参数。
  • 本地构建镜像可用 docker build -t doctr . 并通过 --build-arg 指定 FRAMEWORK、PYTHON_VERSION、DOCTR_VERSION。

核心亮点

  • 同时支持 PyTorch 和 TensorFlow 双框架,技术栈灵活
  • 提供预训练模型,开箱即用,降低 OCR 入门门槛
  • 文本检测和识别一体化,API 简洁,易于集成到业务

不足之处

  • 对于复杂排版或手写文字的识别效果可能不如专用商业方案
  • 文档和社区资源相对较少,中文教程和案例待丰富

适用场景

  • 扫描文档数字化,提取关键信息
  • 自动化处理表单、票据和证件
  • 构建图像搜索或文档分类系统

替代项目

PaddleOCR、Tesseract、EasyOCR

项目介绍

doctr 是计算机视觉领域的开源项目,由 mindee 开发,2021 年首次发布。

在全站 13,014 个收录项目中,它的 GitHub 星标数(6,361)位列前 8%,在计算机视觉分类的 446 个项目里位列前 8%。

近 44 天,它的 GitHub 星标从 6,204 增加到 6,361,净增 157。

项目目前处于活跃维护状态,最近一次代码更新于 2026-09-22。开源库,Apache-2.0 许可证,完全免费,可自行部署使用。

它主要面向的使用场景是:扫描文档数字化,提取关键信息。同类可对比的替代方案包括 PaddleOCR、Tesseract、EasyOCR。

上一篇:eSearch

下一篇:snow-apps

同类项目推荐

modlens 开源

给纯文本编码代理装上眼睛,粘贴图片即刻获得结构化视觉证据。

The first vision plugin for DeepSeek Harness, and the vision bridge for every text-o···

★ 4019 2026-08-19
opencv 开源

开箱即用的视觉算法库,搞定图像视频处理与识别

Open Source Computer Vision Library

★ 90930 2026-08-10
OpenCVTutorials 开源

中文 OpenCV 教程,从入门到实战,边看边跑代码

OpenCV-Python4.1 中文文档

★ 1430 2026-08-20
DEIMv2 开源

用DINOv3做实时检测,又快又准,直接落地。

[DEIMv2] Real Time Object Detection Meets DINOv3

★ 2046 2026-08-14