doctr

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

开源 🏷️完全免费 🔧 仅开源项目,无在线服务,需自行部署 计算机视觉 🍴 复刻 691 🐛 待处理 19 👀 关注 50
访问官网 ↗ GitHub ↗
GitHub 星标 ★ 6424
维护状态 活跃
是否开源 开源
定价模式 🏷️完全免费 开源库,Apache-2.0 许可证,完全免费,可自行部署使用。

项目预览

doctr 项目界面预览图
图片来源:GitHub 官方仓库名片

项目数据

分类计算机视觉
开发团队mindee
定价模式🏷️完全免费
价格说明开源库,Apache-2.0 许可证,完全免费,可自行部署使用。
访问状态🔧 仅开源项目,无在线服务,需自行部署
是否开源是
开源协议Apache-2.0
主要语言Python
技术栈/模型deep-learning,document-parsing,document-recognition,documentai,layout-analysis,ocr,pytorch,table-structure-recognition,text-detection,text-recognition
GitHub 星标★ 6424
上线时间2021-01-08 00:00:00
代码更新2026-11-06
仓库体积284.1 MB
本站数据更新2026-11-09
维护状态活跃
收录时间2026-08-10
浏览次数5

项目介绍

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

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

数据来源:GitHub API 逐日快照 · 收录于 2026-08-10 · 当前星标 ★ 6424

使用教程

难度:入门 约 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
PORT否docker-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

上一篇:eSearch

下一篇:snow-apps

同类项目推荐

CWR 开源

对比学习一键复原水下图像,颜色细节双提升

Code and dataset for Single Underwater Image Restoration by Contrastive Learning, IG···

★ 92 2026-08-09
scoresight 开源

直播记分牌自动识别,比分实时变数据

ScoreSight is a powerful scoreboard OCR software for live broadcasts

★ 154 2026-10-12
torchgeo 开源

像用torchvision一样做遥感深度学习

TorchGeo: datasets, samplers, transforms, and pre-trained models for geospatial data

★ 4236 2026-09-21
visionworkbench 开源

NASA 出品的 C++ 视觉工具箱,做高精度图像配准与三维重建

The NASA Vision Workbench is a general purpose image processing and computer vision ···

★ 504 2026-09-18
AliceVision 开源

多张照片一键生成带纹理三维模型

3D Computer Vision Framework

★ 3530 2026-09-18
viseron 开源

本地化智能监控,隐私安全,实时识别物体人脸车牌

Self-hosted, local only NVR and AI Computer Vision software. With features such as ···

★ 3686 2026-08-10
ml-autofocusformer 开源

让 Transformer 只算关键像素,分割边界更准更省算力

This is an official implementation for "AutoFocusFormer: Image Segmentation off the ···

★ 126 2026-10-01
OXR 开源

开源文档解析模型,准又快,扫描件直接变结构化文本

An open-source document parsing model with SOTA accuracy and speed, using an RSI loo···

★ 3691 2026-10-24
receipt-ocr 开源

拍张票据照片,自动提取金额日期等关键字段

An efficient OCR engine for receipt image processing.

★ 753 2026-09-16