如何在mindee/doctr项目中共享和使用OCR模型

如何在mindee/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

项目概述

mindee/doctr是一个开源的OCR(光学字符识别)工具库,专注于文档文本识别任务。该项目提供了多种预训练模型,并支持用户训练自定义模型后与社区共享。本文将详细介绍如何在doctr项目中加载和使用社区共享的OCR模型,以及如何将自己的训练成果贡献给社区。

从模型中心加载预训练模型

doctr集成了与模型中心的接口,使得加载社区共享的模型变得非常简单。无论是使用PyTorch还是TensorFlow框架,都可以轻松实现。

PyTorch示例

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

# 加载图像
image = DocumentFile.from_images(['data/example.jpg'])

# 从模型中心加载自定义检测模型
det_model = from_hub('Felix92/doctr-torch-db-mobilenet-v3-large')

# 从模型中心加载自定义识别模型
reco_model = from_hub('Felix92/doctr-torch-crnn-mobilenet-v3-large-french')

# 将这些模型插入OCR预测器
predictor = ocr_predictor(det_arch=det_model, reco_arch=reco_model)
result = predictor(image)

TensorFlow示例

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

# 加载图像
image = DocumentFile.from_images(['data/example.jpg'])

# 从模型中心加载自定义检测模型
det_model = from_hub('Felix92/doctr-tf-db-resnet50')

# 从模型中心加载自定义识别模型
reco_model = from_hub('Felix92/doctr-tf-crnn-vgg16-bn-french')

# 将这些模型插入OCR预测器
predictor = ocr_predictor(det_arch=det_model, reco_arch=reco_model)
result = predictor(image)

将训练好的模型推送到模型中心

如果你训练了一个性能优异的OCR模型,可以将其分享给社区。推送模型到模型中心需要完成以下步骤:

  1. 确保已创建模型中心账户
  2. 安装Git LFS(大文件存储)扩展

基本推送方法

from doctr.models import recognition, login_to_hub, push_to_hf_hub

# 登录模型中心
login_to_hub()

# 加载或创建你的模型
my_awesome_model = recognition.crnn_mobilenet_v3_large(pretrained=True)

# 推送模型到中心
push_to_hf_hub(
    my_awesome_model,
    model_name='doctr-crnn-mobilenet-v3-large-french-v1',
    task='recognition',
    arch='crnn_mobilenet_v3_large'
)

训练后直接推送

你还可以在训练脚本中直接添加推送参数,实现训练完成后自动推送:

PyTorch版本
python3 train_pytorch.py crnn_mobilenet_v3_large --name doctr-crnn-mobilenet-v3-large --push-to-hub
TensorFlow版本
python3 train_tensorflow.py crnn_mobilenet_v3_large --name doctr-crnn-mobilenet-v3-large --push-to-hub

模型命名规范建议

为了保持社区模型的一致性和可搜索性,建议遵循以下命名规范:

  • 分类模型doctr-<架构>-<词汇表>
  • 检测模型doctr-<架构>
  • 识别模型doctr-<架构>-<语言/词汇表>

社区预训练模型参考

以下是社区贡献的一些预训练模型示例:

分类模型

| 架构 | 模型ID | 词汇表 | 框架 | |----------------|------------------------------------|----------|-----------| | resnet18 | Felix92/doctr-dummy-torch-resnet18 | 法语 | PyTorch | | resnet18 | Felix92/doctr-dummy-tf-resnet18 | 法语 | TensorFlow|

检测模型

| 架构 | 模型ID | 框架 | |------------------------|----------------------------------------|-----------| | db_mobilenet_v3_large | Felix92/doctr-torch-db-mobilenet-v3-large | PyTorch | | db_resnet50 | Felix92/doctr-tf-db-resnet50 | TensorFlow|

识别模型

| 架构 | 模型ID | 语言 | 框架 | |--------------------|--------------------------------------------|--------------------|-----------| | crnn_mobilenet_v3_large | Felix92/doctr-torch-crnn-mobilenet-v3-large | 法语 | PyTorch | | crnn_vgg16_bn | Felix92/doctr-tf-crnn-vgg16-bn-french | 法语 | TensorFlow| | parseq | Felix92/doctr-torch-parseq-multilingual-v1 | 多语言 | PyTorch |

最佳实践建议

  1. 模型测试:在推送模型前,确保在多种测试集上验证其性能
  2. 文档说明:为你的模型添加详细的README说明,包括训练数据、性能指标和使用示例
  3. 版本控制:使用版本号(如-v1, -v2)来区分模型迭代
  4. 多语言支持:考虑训练支持多种语言的模型,这对社区更有价值

通过共享你的模型,你不仅可以帮助其他开发者节省时间和资源,还能促进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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

幸竹任

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

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

抵扣说明:

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

余额充值