项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-10 · 当前星标 ★ 6424
使用教程
环境要求
- Python 环境与 pip(README 未指定最低版本)
- 如需可视化结果,需额外安装 matplotlib 与 mplcursors
- 如需解析网页 URL,需额外安装 weasyprint
- 本地 Demo 需要 Streamlit 依赖
- 使用 Docker GPU 镜像时,宿主机 CUDA 需不低于 12.2 并配置 NVIDIA Container Toolkit
安装与启动步骤
-
1安装 docTR
使用 pip 安装核心库,即可获得文本检测与识别能力,支持 PyTorch 后端。
pip install python-doctr -
2安装可选依赖
需要可视化、HTML 解析和 contrib 模块时再安装这一组附加依赖。
pip install "python-doctr[viz,html,contrib]" -
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读取文档
支持 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执行识别并导出
推理得到 Document 对象,可直接 show() 查看或 export() 成可转 JSON 的嵌套字典。
result = model([single_img_doc]) result.show() json_output = result.export() -
6启动本地 Demo
先安装 demo 专用依赖(含 Streamlit),再用 streamlit 命令在浏览器中打开应用。
pip install -r demo/pt-requirements.txt streamlit run demo/app.py -
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用容器跑 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
同类项目推荐
CWR
开源
对比学习一键复原水下图像,颜色细节双提升
Code and dataset for Single Underwater Image Restoration by Contrastive Learning, IG···
scoresight
开源
直播记分牌自动识别,比分实时变数据
ScoreSight is a powerful scoreboard OCR software for live broadcasts
torchgeo
开源
像用torchvision一样做遥感深度学习
TorchGeo: datasets, samplers, transforms, and pre-trained models for geospatial data
visionworkbench
开源
NASA 出品的 C++ 视觉工具箱,做高精度图像配准与三维重建
The NASA Vision Workbench is a general purpose image processing and computer vision ···
AliceVision
开源
多张照片一键生成带纹理三维模型
3D Computer Vision Framework
viseron
开源
本地化智能监控,隐私安全,实时识别物体人脸车牌
Self-hosted, local only NVR and AI Computer Vision software. With features such as ···
ml-autofocusformer
开源
让 Transformer 只算关键像素,分割边界更准更省算力
This is an official implementation for "AutoFocusFormer: Image Segmentation off the ···
OXR
开源
开源文档解析模型,准又快,扫描件直接变结构化文本
An open-source document parsing model with SOTA accuracy and speed, using an RSI loo···
receipt-ocr
开源
拍张票据照片,自动提取金额日期等关键字段
An efficient OCR engine for receipt image processing.
