首页
/ OnnxTR 项目使用与启动教程

OnnxTR 项目使用与启动教程

2025-04-21 11:49:20作者:秋阔奎Evelyn

1. 项目介绍

OnnxTR 是一个基于 ONNX Runtime 的 Document Text Recognition(文档文本识别)库,它是一个围绕 doctr 库的 ONNX 管道封装器。OnnxTR 提供了一种无缝、高效且易于访问的 OCR(光学字符识别)解决方案,适用于从文档中提取文本信息。

2. 项目快速启动

环境准备

  • Python 3.10 或更高版本
  • pip 包管理工具

安装

根据您的硬件配置选择以下安装命令:

  • 标准CPU支持:
pip install onnxtr[cpu]
  • CPU支持,无OpenCV:
pip install onnxtr[cpu-headless]
  • GPU支持:
pip install onnxtr[gpu]
  • GPU支持,无OpenCV:
pip install onnxtr[gpu-headless]
  • OpenVINO CPU | GPU支持:
pip install onnxtr[openvino]
  • OpenVINO支持,无OpenCV:
pip install onnxtr[openvino-headless]
  • 带HTML支持:
pip install onnxtr[html]
  • 带可视化支持:
pip install onnxtr[viz]
  • 支持所有依赖项:
pip install onnxtr[html, gpu, viz]

推荐:

  • 如果您有 NVIDIA GPU,使用带有 gpu 的变体。
  • 如果您有 Intel CPU 或 GPU,使用带有 openvino 的变体。
  • 否则,使用带有 cpu 的变体。

使用示例

读取文档并使用默认的 ocr_predictor 模型:

from onnxtr.io import DocumentFile
from onnxtr.models import ocr_predictor, EngineConfig

# 创建模型实例
model = ocr_predictor(
    det_arch='fast_base',        # 检测架构
    reco_arch='vitstr_base',     # 识别架构
    det_bs=2,                    # 检测批量大小
    reco_bs=512,                 # 识别批量大小
    # 其他参数...
)

# 读取文档
doc = DocumentFile.from_pdf("path/to/your/doc.pdf")

# 分析文档
result = model(doc)

# 显示结果(需要安装 matplotlib 和 mplcursors)
result.show()

3. 应用案例和最佳实践

读取不同类型的文档

OnnxTR 支持多种文档格式的读取,例如:

# PDF文档
pdf_doc = DocumentFile.from_pdf("path/to/your/doc.pdf")

# 单个图片文档
single_img_doc = DocumentFile.from_images("path/to/your/img.jpg")

# 网页文档(需要安装 weasyprint)
webpage_doc = DocumentFile.from_url("https://www.yoursite.com")

# 多页图片文档
multi_img_doc = DocumentFile.from_images(["path/to/page1.jpg", "path/to/page2.jpg"])

重建原始文档

可以从预测结果重建原始文档:

import matplotlib.pyplot as plt

synthetic_pages = result.synthesize()
plt.imshow(synthetic_pages[0])
plt.axis('off')
plt.show()

4. 典型生态项目

OnnxTR 是基于 ONNX Runtime 构建的,可以与多个开源项目配合使用,例如:

  • doctr: 一个用于文档理解的深度学习库。
  • ONNX Runtime: 一个高性能的 ONNX 模型推理引擎。

通过这些开源项目的组合,可以实现更加强大和灵活的文本识别和文档分析功能。

登录后查看全文
热门项目推荐