Doctr:深度学习驱动的开源OCR库完全指南

Doctr:深度学习驱动的开源OCR库完全指南

【免费下载链接】doctr docTR (Document Text Recognition) - a seamless, high-performing & accessible library for OCR-related tasks powered by Deep Learning. 【免费下载链接】doctr 项目地址: https://gitcode.com/gh_mirrors/do/doctr

Doctr是一个基于深度学习的开源文档文本识别库,专注于光学字符识别相关任务。该项目采用PyTorch作为主要深度学习框架,提供了从文本检测到识别的完整解决方案,帮助开发者和企业高效处理文档数据。

项目概述与核心价值

Doctr的核心使命是让光学字符识别变得无缝且对任何人都可访问。该项目通过两阶段的方法实现端到端OCR:首先进行文本检测(定位单词),然后进行文本识别(识别单词中的所有字符)。

主要特点包括:

  • 支持多种文本检测和识别架构
  • 能够处理旋转和倾斜的文档
  • 提供预训练模型和数据集支持
  • 完整的API和演示应用

快速入门指南

环境要求与安装

Doctr需要Python 3.10或更高版本。可以通过pip快速安装最新稳定版本:

pip install python-doctr

对于开发者模式,可以通过Git安装:

git clone https://gitcode.com/gh_mirrors/do/doctr
pip install -e doctr/.

基础使用示例

Doctr提供了简单直观的API接口。以下是一个完整的使用示例:

from doctr.io import DocumentFile
from doctr.models import ocr_predictor

# 加载模型
model = ocr_predictor(pretrained=True)

# 从PDF或图像读取文档
# PDF文档
pdf_doc = DocumentFile.from_pdf("path/to/your/doc.pdf")
# 单张图像
single_img_doc = DocumentFile.from_images("path/to/your/img.jpg")

# 进行分析
result = model(pdf_doc)

# 可视化结果
result.show()

核心架构详解

文本检测模型

文本检测任务负责在给定图像中定位文本元素。Doctr支持多种检测架构:

  • DBNet系列:db_resnet50、db_mobilenet_v3_large
  • LinkNet系列:linknet_resnet18、linknet_resnet34、linknet_resnet50
  • FAST系列:fast_tiny、fast_small、fast_base

文本检测效果展示

文本识别模型

文本识别任务负责转录给定图像中的字符序列。支持的架构包括:

  • CRNN系列:crnn_vgg16_bn、crnn_mobilenet_v3_small、crnn_mobilenet_v3_large
  • SAR:sar_resnet31
  • MASTER:端到端可训练的场景文本识别网络
  • ViT系列:vitstr_small、vitstr_base
  • PARSeq:基于排列自回归序列模型的场景文本识别

数据集支持

Doctr提供了丰富的数据集支持,涵盖检测、识别和OCR任务:

检测数据集

  • FUNSD:149个训练样本,50个测试样本
  • SROIE:626个训练样本,360个测试样本
  • CORD:800个训练样本,100个测试样本

识别数据集

  • FUNSD:21888个训练样本,8707个测试样本(英文)
  • SROIE:33608个训练样本,19342个测试样本(英文/仅大写标签)
  • CORD:19370个训练样本,2186个测试样本(英文)

高级功能与应用

端到端OCR预测

Doctr支持任意检测和识别模型的组合使用:

from doctr.models import ocr_predictor

# 使用特定架构组合
model = ocr_predictor('db_resnet50', 'crnn_vgg16_bn', pretrained=True)

# 处理旋转文档
model = ocr_predictor('linknet_resnet18', pretrained=True, assume_straight_pages=False)

KIE预测器

KIE(关键信息提取)预测器比OCR更灵活,可以检测文档中的多个类别:

from doctr.models import kie_predictor

model = kie_predictor('db_resnet50', 'crnn_vgg16_bn', pretrained=True)
result = model(doc)

# 按类别获取预测结果
predictions = result.pages[0].predictions
for class_name in predictions.keys():
    for prediction in predictions[class_name]:
        print(f"{class_name}: {prediction}")

性能基准测试

文本检测性能对比

Doctr提供了详细的基准测试数据,在公开数据集上的表现:

db_resnet50在FUNSD数据集上达到83.56%的召回率和86.68%的精确率,在CORD数据集上达到92.61%的召回率和86.39%的精确率。

文本识别性能对比

crnn_vgg16_bn在FUNSD数据集上达到88.21%的准确匹配率。

部署与集成

Docker容器支持

Doctr提供Docker容器支持,便于测试和部署。Docker镜像支持GPU,基于CUDA 12.2。

docker run -it --gpus all ghcr.io/mindee/doctr:torch-py3.9.18-2024-10 bash

API集成模板

Doctr提供了完整的API集成模板,基于FastAPI框架:

cd api/
pip install -r requirements.txt
uvicorn --reload --workers 1 --host 0.0.0.0 --port=8002 --app-dir api/ app.main:app

演示应用

Doctr提供了一个最小化的演示应用,让用户可以体验端到端OCR模型:

演示应用界面

可以通过以下命令本地运行演示应用:

pip install -r demo/pt-requirements.txt
streamlit run demo/app.py

输出格式与数据处理

文档结构

OCR预测器返回一个具有嵌套结构的Document对象,包含Page、Block、Line、Word、Artefact等层级。

输出格式支持

Doctr支持多种输出格式:

  • JSON格式:适合API集成和数据交换
  • XML格式:支持hOCR标准
  • 纯文本:通过render方法获取
# 获取纯文本输出
text_output = result.render()

# 导出为JSON
json_output = result.export()

# 导出为XML
xml_output = result.export_as_xml()

模型优化与自定义

批处理大小调整

可以根据硬件配置优化检测和识别模型的批处理大小:

model = ocr_predictor(pretrained=True, det_bs=4, reco_bs=1024)

GPU加速支持

Doctr支持在NVIDIA GPU和Apple Silicon(MPS)上运行:

import torch
from doctr.models import ocr_predictor

# NVIDIA GPU
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
predictor = ocr_predictor(pretrained=True).to(device)

实际应用场景

Doctr在多个行业和场景中都有广泛应用:

  • 金融票据处理:自动识别发票、收据中的关键信息
  • 医疗表格识别:批量处理医疗记录和表格数据
  • 企业文档管理:自动化数据录入和文档分类
  • 数据分析和报告生成:从文档中提取关键指标

总结与展望

Doctr作为一个功能强大、准确率高、开源免费的文档文本识别项目,为企业自动化处理表单数据提供了完整的技术解决方案。其开源特性、高准确率和易用性,使其成为处理文档数据的首选工具。

通过Doctr,企业可以节省90%的人工处理时间,提高工作效率,实现数字化转型。无论是需要收集用户信息、订单数据,还是进行数据分析和报告生成,Doctr都能提供全面的技术支持。

【免费下载链接】doctr docTR (Document Text Recognition) - a seamless, high-performing & accessible library for OCR-related tasks powered by Deep Learning. 【免费下载链接】doctr 项目地址: https://gitcode.com/gh_mirrors/do/doctr

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值